Externe Geräteschnittstellen

Einführung
USER_DEVICE-Ereignisse zeigen Änderungen an externen Schnittstellen der ADS‑TEC IRF1000 und IRF3000. Sie erfassen das Hinzufügen/Entfernen von USB-Geräten, Ethernet-Link-Übergänge UP/DOWN sowie VPN‑Key/CUT-Eingangsübergänge. Nutzen Sie diese Einträge, um unautorisierte USB-Nutzung, verdächtiges Link-Flapping oder unerwartete VPN‑Key/CUT-Zustandsänderungen zu erkennen.
Wenn ein Schaltschrank versiegelt sein soll, ist jedes USB-Add-Ereignis oder jede IO-Zustandsänderung auf UP außerhalb eines definierten Wartungsfensters ein wahrscheinlicher Richtlinienverstoß. Konfigurieren Sie SIEM-Regeln für wiederholte Link-Umschaltungen und für USB-Aktivität auf Produktivsystemen.
Hinweis: Die IRF1000 verfügt über keine externen USB-Anschlüsse. Daher erzeugen IRF1000-Geräte keine USB-USER_DEVICE-Ereignisse.
Webinterface-Ansicht
Das VIEW-Webinterface listet USER_DEVICE-Einträge in der Tabelle Device audit auf. Die Tabelle zeigt eine Zeile pro Ereignis, nach Zeit sortiert. Der Screenshot in diesem Abschnitt zeigt typische IO-VPN‑Key/CUT-UP/DOWN-Ereignisse, LINK-ETH1-DOWN/UP-Ereignisse und USB-Add/Remove-Ereignisse.
Für die Kategorie USB werden die Vendor-ID und die Product-ID derzeit nicht im Webinterface angezeigt. Die Spalte Interface ist bei USB-Ereignissen leer.
Spalten in der Tabelle „Device audit“
| Feld | Beschreibung | Beispiel |
|---|---|---|
| Date | Lokales Gerätedatum des Ereignisses | 10/16/25 |
| Time | Lokale Gerätezeit im Format HH:MM:SS | 06:01:05 |
| Category | Ereigniskategorie. Mögliche Werte: USB, LINK, IO |
LINK |
| Interface | Betroffene Schnittstelle. LINK: ETHx. IO: IO_VPNKEY oder IO_CUT. USB: in der VIEW-Oberfläche leer |
ETH1 |
| Operation | Zustandsänderung der Schnittstelle. LINK/IO: UP oder DOWN. USB: add oder remove |
UP |
Das VIEW-Webinterface formatiert die Daten aus der audit.log lediglich neu und beschriftet die Spalten. Es fügt keine zusätzliche Interpretation hinzu. Alle Detailinformationen, einschließlich der Zuordnung zu physischen Schnittstellen, stammen aus den unten beschriebenen Feldern der audit.log.
Erläuterung des rohen audit.log-Eintrags
Die rohe audit.log enthält type=USER_DEVICE-Datensätze, die über audit_log_user_message() geschrieben werden. Hier werden nur die USER_DEVICE-spezifischen Felder beschrieben. Standard-auditd-Felder werden von auditd selbst befüllt; Einzelheiten finden Sie in der offiziellen auditd-Dokumentation.
USER_DEVICE-Felder in audit.log
| Feld | Beschreibung | Beispiel |
|---|---|---|
| type | Audit-Ereignistyp | USER_DEVICE |
| audit(…) | Audit-Zeitstempel und -Sequenz in der Form audit(epoch.sec:seq) |
1760587…:119 |
| pid | PID des Prozesses, der das Ereignis geschrieben hat | 7496 |
| uid | Effektive UID des Prozesses | 0 |
| auid | Audit-Login-UID | 4294967295 |
| ses | Audit-Sitzungs-ID | 4294967295 |
| msg.category | Kategorie des Schnittstellenereignisses | LINK / USB / IO |
| msg.operation | Operation oder Zustandsänderung | UP / DOWN / add / remove |
| msg.interface | Schnittstellenkennung. LINK: ETHx. IO: IO_VPNKEY oder IO_CUT. Bei USB nicht vorhanden |
ETH1 |
| msg.vendor | USB-Vendor-ID (nur für Kategorie USB) | 23a9 |
| msg.product | USB-Product-ID (nur für Kategorie USB) | ef18 |
| msg.exe | Ausführbare Datei, die das Ereignis protokolliert hat (audit-hw-log, audit-log-netlink oder ubus-gpiocutalarmd) |
/usr/bin/audit-… |
| msg.hostname | Auf dieser Plattform nicht befüllt | ? |
| msg.addr | Auf dieser Plattform nicht befüllt | ? |
| msg.terminal | Auf dieser Plattform nicht befüllt | ? |
| msg.res | Ergebnis-String. Standardmäßig auf success gesetzt, da keine kontextabhängige Prüfung erfolgt |
success |
| UID | Textform von uid |
root |
| AUID | Textform von auid |
unset |
Für die SOC- oder SIEM-Integration parsen Sie die Schlüssel/Wert-Paare innerhalb von msg='…'. Behandeln Sie ein fehlendes interface-Feld bei USB-Ereignissen als erwartetes Verhalten. Eine gängige Normalisierung besteht darin, category, operation und interface zu Standardfeldern zu kombinieren, zum Beispiel device.interface=ETH1 und action=link_up für ein LINK/UP-Ereignis.
Wann das Ereignis erzeugt wird
Das Gerät erzeugt ein USER_DEVICE-Ereignis, wenn eine überwachte externe Schnittstelle ihren Zustand ändert. Das gleiche Verhalten gilt für IRF1000 und IRF3000, mit der Ausnahme, dass die IRF1000 keine USB-USER_DEVICE-Ereignisse erzeugt.
Kategorien:
- USB: Ein USB-Gerät mit Vendor- und Product-ID wird am zugänglichen USB-Anschluss hinzugefügt oder entfernt.
- LINK: Ein Ethernet-Port-Link geht auf UP oder DOWN. Dies geschieht üblicherweise beim Ein- oder Ausstecken eines Kabels, die aktuelle Firmware protokolliert jedoch auch Software-Link-Änderungen aus der Konfiguration.
- IO: Das VPN‑Key- oder CUT-Eingangssignal geht auf UP oder DOWN. Während des Gerätestarts kann ein Übergang protokolliert werden, auch wenn keine externe Änderung stattgefunden hat.
Integrierte Ratenbegrenzungen:
- LINK: höchstens 20 Meldungen pro Tag. Dies schützt das Audit-Log vor übermäßigem Link-Flapping.
- IO (VPN‑Key/CUT): höchstens 20 Meldungen pro Stunde.
- USB: derzeit keine Ratenbegrenzung. Sehr häufiges USB-Ein-/Ausstecken erscheint daher vollständig im Audit-Log.
Ereigniserzeuger auf dem Gerät:
- USB-Ereignisse werden von
audit-hw-logerzeugt, das über ein Kernel-uevent durch ein Hotplug-Shell-Skript ausgelöst wird. - LINK-Ereignisse werden von
audit-log-netlinkerzeugt, das über einen Netlink-Socket auf Link-Änderungen lauscht. - IO-Ereignisse werden von
ubus-gpiocutalarmderzeugt, das das Linux-epoll-Subsystem verwendet, um GPIO-Eingänge zu überwachen.
Diese Userspace-Programme schreiben USER_DEVICE-Meldungen über die libaudit-Funktion audit_log_user_message().
Beispiel eines audit.log-Eintrags
(1) type=USER_DEVICE msg=audit(1760508902.053:8): pid=5480 uid=0 auid=4294967295 ses=4294967295 msg='category="IO" operation="UP" interface="IO_VPNKEY" exe="/usr/sbin/ubus-gpiocutalarmd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(2) type=USER_DEVICE msg=audit(1760508905.215:9): pid=5480 uid=0 auid=4294967295 ses=4294967295 msg='category="IO" operation="UP" interface="IO_CUT" exe="/usr/sbin/ubus-gpiocutalarmd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(3) type=USER_DEVICE msg=audit(1760508907.624:8): pid=5480 uid=0 auid=4294967295 ses=4294967295 msg='category="IO" operation="DOWN" interface="IO_VPNKEY" exe="/usr/sbin/ubus-gpiocutalarmd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(4) type=USER_DEVICE msg=audit(1760508907.624:9): pid=5480 uid=0 auid=4294967295 ses=4294967295 msg='category="IO" operation="DOWN" interface="IO_CUT" exe="/usr/sbin/ubus-gpiocutalarmd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(5) type=USER_DEVICE msg=audit(1760587265.684:118): pid=7496 uid=0 auid=4294967295 ses=4294967295 msg='category="LINK" operation="DOWN" interface="ETH1" exe="/usr/bin/audit-log-netlink" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(6) type=USER_DEVICE msg=audit(1760587268.032:119): pid=7496 uid=0 auid=4294967295 ses=4294967295 msg='category="LINK" operation="UP" interface="ETH1" exe="/usr/bin/audit-log-netlink" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(7) type=USER_DEVICE msg=audit(1760587484.444:120): pid=13569 uid=0 auid=4294967295 ses=4294967295 msg='category="USB" operation="add" vendor="23a9" product="ef18" exe="/usr/sbin/audit-hw-log" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(8) type=USER_DEVICE msg=audit(1760587485.148:121): pid=13643 uid=0 auid=4294967295 ses=4294967295 msg='category="USB" operation="remove" vendor="23a9" product="ef18" exe="/usr/sbin/audit-hw-log" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"