Zum Inhalt

Konfigurationsänderungen

Konfigurationsänderungen

Einführung

USYS_CONFIG-Ereignisse protokollieren jede Konfigurationsänderung auf ADS-TEC IRF1000/IRF3000-Geräten. Die Ereignis-Payload enthält die betroffene Konfigurationstabelle, den geänderten Schlüssel, den neuen Wert und die Bedingung, mit der die Zeile ausgewählt wurde. Das Gerät protokolliert sensible oder veraltete Werte als XXX, um ein Durchsickern von Anmeldedaten zu vermeiden und um gelöschte veraltete Felder wie password_md5 zu kennzeichnen. Nutzen Sie diese Ereignisse, um in OT-Umgebungen nachzuvollziehen, wer wann was geändert hat. Aus Sicherheitssicht sollten Sie auf unerwartete Insert- oder Delete-Operationen von Benutzern, Passwort-Aktualisierungen außerhalb genehmigter Wartungsfenster, Massenänderungen an der Tabelle config oder wiederholt fehlgeschlagene Änderungen achten. Untersuchen Sie Ereignisse, bei denen der handelnde Benutzer unerwartet ist, bei denen Änderungen von Konten stammen, für die Wartung deaktiviert ist, oder bei denen einer Konfigurationsänderung unmittelbar eine VPN- oder Sitzungserstellung von einer neuen Quelladresse folgt.

Webinterface-Ansicht

Konfigurationsänderungen werden im VIEW-Webinterface auf der Seite Konfigurations-Audit angezeigt. Jede Zeile in der Tabelle steht für eine USYS_CONFIG-Operation und wird in der lokalen Gerätezeit dargestellt. Für diese Ereignisse zeigt die Spalte Action Taken stets die normalisierte Bezeichnung changed-configuration.

Feld Beschreibung Beispiel
Date Ereignisdatum in lokaler Gerätezeit 10/14/25
Time Ereigniszeit mit Sekunden 15:57:21
Username Benutzer, der die Änderung durchgeführt hat (abgeleitet aus terminal) admin
Action Taken Normalisierte Aktionsbezeichnung für Konfigurationsschreibvorgänge changed-configuration
Result Ergebnis der Operation success
Table Betroffene Konfigurationstabelle users
Operation Operationstyp (insert, update, delete) update
Key Geänderte Spalte bzw. geänderter Konfigurationsschlüssel password_md5
Value Neuer Wert. Sensible oder veraltete Werte werden als XXX angezeigt. XXX
Condition Selektor zur Identifizierung der betroffenen Zeile; leer bei Inserts name=test

Insert-Operationen zeigen eine leere Condition und eine Value-Liste, die die Werte der neuen Zeile enthält, wobei sensible Felder als XXX maskiert sind.

Aktualisierungen von password_*-Schlüsseln werden in Value maskiert. Im Beispiel ist der Schlüssel password_md5 eine veraltete Spalte, die nicht mehr verwendet wird; sie wird gelöscht und erscheint daher als XXX.

Erläuterung des rohen audit.log-Eintrags

Jede USYS_CONFIG-Zeile in audit.log verwendet das Standard-Linux-Audit-Datensatzformat. ADS-TEC-spezifische Semantik ist in der zitierten msg-Payload enthalten. Auditd-interne Felder wie pid, uid, auid, ses, UID und AUID verhalten sich gemäß dem normalen auditd-Verhalten; Einzelheiten finden Sie in der offiziellen auditd-Dokumentation. Das Gerät befüllt hostname und addr für diese Ereignisse nicht.

Feld Beschreibung Beispiel
type Audit-Datensatztyp USYS_CONFIG
msg header audit(epoch:serial)-Kennung des Datensatzes audit(1760450241.912:100)
pid Prozess-ID (auditd-Standardfeld) 5465
uid Effektive UID (auditd-Standardfeld) 0
auid Login-UID (auditd-Standardfeld) 4294967295
ses Audit-Sitzungs-ID (auditd-Standardfeld) 4294967295
msg payload Zitierte Schlüssel-Wert-Liste mit den Änderungsdetails 'table="users" ...'
table Betroffene Tabelle der Konfigurationsänderung users
operation Auf die Tabelle angewandte Operation (insert, update, delete) update
key Spalte bzw. Konfigurationsschlüssel, dessen Wert geändert wird password_argon2
value Neuer in den Schlüssel geschriebener Wert. Geheimnisse werden als XXX protokolliert. XXX
condition WHERE-artiger Selektor, der die betroffene Zeile identifiziert; kann leer sein name=test
exe Ausführbare Datei, die die Änderung durchführt /usr/sbin/systemd
hostname Wird für diese Ereignisse nicht befüllt ?
addr Wird für diese Ereignisse nicht befüllt ?
terminal Benutzername, der die Änderung ausgelöst hat, wie vom System gesehen admin
res Ergebnis der Operation (success oder failure) success
UID Menschenlesbare Form von uid root
AUID Menschenlesbare Form von auid unset

Hinweise zur SIEM- und SOC-Integration:

  • Alarmieren Sie bei operation=insert oder operation=delete auf table=users sowie bei key=password_*-Aktualisierungen außerhalb genehmigter Änderungsfenster.
  • Korrelieren Sie das Feld terminal (im Webinterface als Username angezeigt) mit Authentifizierungsprotokollen, um die tatsächliche Benutzeridentität zu bestätigen.
  • Verfolgen Sie Häufungen von Aktualisierungen auf table=config, um massenhafte oder skriptgesteuerte, nicht autorisierte Änderungen zu erkennen.
  • Untersuchen Sie Abfolgen mit res=failure gefolgt von res=success für denselben Benutzer oder dieselbe Tabelle, da diese auf Ausprobieren oder Trial-and-Error-Änderungen hindeuten können.

Wann das Ereignis erzeugt wird

Ein USYS_CONFIG-Audit-Ereignis wird immer dann erzeugt, wenn das Gerät über einen der unterstützten Wege in seine Konfigurationsdatenbank schreibt: das VIEW-Webinterface, JSON-RPC oder die Adsdp-API. Die Änderung wird von systemd / adsdpd mithilfe der ADS-TEC-libnvram-Implementierung ausgeführt. libnvram ruft die libaudit-Funktion audit_log_user_message() auf, die das Ereignis in audit.log schreibt. Das Ereignis unterscheidet nicht, welcher API-Pfad die Änderung ausgelöst hat; Sie müssen den im Feld terminal aufgezeichneten Benutzer (im Webinterface als Username angezeigt) zusammen mit anderen Protokollen verwenden, um die Aktion zuzuordnen. Zu den protokollierten Operationen gehören insert, update und delete auf Konfigurationstabellen wie config und users. Das Feld res zeichnet auf, ob die Operation mit success oder failure endete.

Beispiel für einen audit.log-Eintrag

(1) type=USYS_CONFIG msg=audit(1760444592.644:86): pid=5465 uid=0 auid=4294967295 ses=4294967295 msg='table="config" operation="update" key="system_location" value="NT" condition="" exe="/usr/sbin/systemd" hostname=? addr=? terminal=admin res=success'UID="root" AUID="unset"
(2) type=USYS_CONFIG msg=audit(1760450240.952:98): pid=5465 uid=0 auid=4294967295 ses=4294967295 msg='table="users" operation="insert" key="" value="'test','XXX','XXX','1','XXX','1970-01-01','1970-01-01'" condition="" exe="/usr/sbin/systemd" hostname=? addr=? terminal=admin res=success'UID="root" AUID="unset"
(3) type=USYS_CONFIG msg=audit(1760450241.912:100): pid=5465 uid=0 auid=4294967295 ses=4294967295 msg='table="users" operation="update" key="password_argon2" value="XXX" condition="name=test" exe="/usr/sbin/systemd" hostname=? addr=? terminal=admin res=success'UID="root" AUID="unset"
(4) type=USYS_CONFIG msg=audit(1760450241.912:101): pid=5465 uid=0 auid=4294967295 ses=4294967295 msg='table="users" operation="update" key="password_md5" value="XXX" condition="name=test" exe="/usr/sbin/systemd" hostname=? addr=? terminal=admin res=success'UID="root" AUID="unset"
(5) type=USYS_CONFIG msg=audit(1760450241.912:102): pid=5465 uid=0 auid=4294967295 ses=4294967295 msg='table="users" operation="update" key="password_changetime" value="2025-10-14" condition="name=test" exe="/usr/sbin/systemd" hostname=? addr=? terminal=admin res=success'UID="root" AUID="unset"
(6) type=USYS_CONFIG msg=audit(1760450253.616:105): pid=5465 uid=0 auid=4294967295 ses=4294967295 msg='table="users" operation="delete" key="" value="" condition="name=test" exe="/usr/sbin/systemd" hostname=? addr=? terminal=admin res=success'UID="root" AUID="unset"