Authentifizierung - Sitzungs-Timeouts

Einführung
USER_END protokolliert, dass eine authentifizierte Sitzung beendet wurde, weil das konfigurierte Leerlauf-Timeout abgelaufen ist. Es gilt für Webinterface- und JSON‑RPC‑API‑Sitzungen auf ADS‑TEC Industrial IT IRF1000 und IRF3000. Das Standard-Timeout beträgt 300 Sekunden. Jede Interaktion mit dem Webinterface setzt den Timer zurück. Jede gültige JSON‑RPC‑Anfrage setzt den Timer zurück.
Verwenden Sie dieses Ereignis, um zu überprüfen, ob unbeaufsichtigte Sitzungen automatisch geschlossen werden. Untersuchen Sie häufige USER_END-Ereignisse für privilegierte Konten, da sie auf offene Bedienkonsolen hindeuten können, von denen nicht abgemeldet wurde. Prüfen Sie den Wert Source auf unbekannte IP-Adressen (web) oder MAC-Adressen (adsdpd). Konfigurieren Sie für OT-Netzwerke ein striktes Timeout unter /priv/priv.php?id=USERS_SECURITYSETTINGS.
Webinterface-Ansicht
Die Authentifizierungs-Audit-Ansicht im aktuellen VIEW-Webinterface zeigt authentifizierungsbezogene Audit-Einträge in einer Tabelle an. Sie umfasst erfolgreiche und fehlgeschlagene Anmeldungen (USER_LOGIN), explizite Abmeldungen (USER_LOGOUT) und Leerlauf-Timeouts, die eine Sitzung beenden (USER_END).
Während einer aktiven Login-Ban-Periode werden fehlgeschlagene Anmeldeversuche nicht protokolliert, sodass zeitliche Lücken zwischen sichtbaren fehlgeschlagenen Anmeldungen auftreten können. Die Spalte Session zeigt die ersten vier Zeichen des Sitzungs-Hashes. Method zeigt web (einschließlich JSON‑RPC‑Zugriff) oder adsdpd. Source ist der Ursprung der Anfrage: eine IP-Adresse für Webzugriff oder eine MAC-Adresse für Zugriff über den adsdpd-Dienst.
Die Spalten sind wie folgt zugeordnet:
| Feld | Beschreibung | Beispiel |
|---|---|---|
| Date | Lokales Gerätedatum des Ereignisses | 10/14/25 |
| Time | Lokale Gerätezeit des Ereignisses | 10:26:31 |
| Username | Kontoname, dem die Sitzung gehörte | admin |
| Action Taken | Normalisierter Aktionstext. Bei einem Timeout wird ended-session angezeigt |
ended-session |
| Session | Erste vier Zeichen des Sitzungs-Hashes | d4ec |
| Method | Anmeldemethode. web umfasst JSON‑RPC; adsdpd ist der Gerätedienst |
web |
| Source | Ursprungsadresse. IP für web, MAC für adsdpd. Kann leer sein, wenn unbekannt | 192.0.2.15 |
| Reason | Fehlergrund-Text, sofern verfügbar. Bei einem normalen Timeout leer | |
| Result | Ergebnis des Vorgangs (success oder failure) |
success |
Erläuterung des rohen audit.log-Eintrags
Jedes Leerlauf-Timeout schreibt einen USER_END-Datensatz in audit.log. Standard-auditd-Felder wie pid, uid, auid, ses, UID und AUID werden von auditd selbst befüllt und folgen der Upstream-auditd-Dokumentation.
Der Beispieleintrag sieht im Log so aus und ist hier zur besseren Lesbarkeit umbrochen:
type=USER_END msg=audit(1760430391.184:24): pid=5447 uid=0 auid=4294967295 ses=4294967295 msg='op=user-session-timeout acct="admin" exe="web" hostname=? addr=? terminal=d4ec reason= res=success'^]UID="root" AUID="unset"
Die Felder werden wie folgt interpretiert:
| Feld | Beschreibung | Beispiel |
|---|---|---|
| type | Audit-Nachrichtentyp | USER_END |
| msg | Audit-Zeitstempel und Datensatz-ID (audit(…:…)) |
audit(1760430391.184:24) |
| pid | Prozess-ID des Emitters (rpcd) | 5447 |
| uid | Effektive Benutzer-ID des Emitters | 0 |
| auid | Audit-Benutzer-ID (hier nicht gesetzt) | 4294967295 |
| ses | Numerische Audit-Sitzungs-ID | 4294967295 |
| op | Operationszeichenfolge innerhalb von msg='…' |
user-session-timeout |
| acct | Kontoname innerhalb von msg='…' |
admin |
| exe | Quellkomponente innerhalb von msg='…'. web umfasst JSON‑RPC; adsdpd ist Dienstzugriff |
web |
| hostname | Nicht verwendet; bleibt ? |
? |
| addr | Quelladresse. IP für web, MAC für adsdpd | ? |
| terminal | Erste vier Zeichen des SHA‑256-Hashes der Sitzung | d4ec |
| reason | Grund-Text bei Fehlern. Bei einem normalen Timeout leer | |
| res | Ergebnis des Vorgangs (success oder failure) |
success |
| UID | Textkopie von uid |
root |
| AUID | Textkopie von auid |
unset |
Für die SIEM- oder SOC-Integration parsen Sie die Schlüssel-Wert-Paare innerhalb des in Anführungszeichen gesetzten msg='…'-Abschnitts, um op, acct, exe, addr, terminal, reason und res zu extrahieren. Um Authentifizierungsaktivitäten zu korrelieren, kombinieren Sie acct (Benutzername), terminal (Präfix des Sitzungs-Hashes) und exe (Methode). Ein normales Leerlauf-Timeout hat res=success und ein leeres reason.
Wann das Ereignis erzeugt wird
USER_END wird erzeugt, wenn eine angemeldete Sitzung das konfigurierte Leerlauf-Timeout erreicht und der rpcd-Dienst die Sitzung beendet.
Der rpcd-Prozess ruft seine Funktion destroy() auf, die audit_log_acct_message() aus libaudit verwendet, um einen USER_END-Datensatz in audit.log zu schreiben. Dies gilt sowohl für Webinterface-Sitzungen als auch für JSON‑RPC‑API‑Sitzungen; JSON‑RPC‑Sitzungen erscheinen in den Logs als Methode web.
USER_END unterscheidet sich von USER_LOGOUT, das eine benutzerinitiierte Abmeldung protokolliert. Ein normales Timeout hat op=user-session-timeout, einen gültigen acct-Benutzernamen, exe=web oder exe=adsdpd und res=success.
Beispiel-audit.log-Eintrag
<pre>
type=USER_END msg=audit(1760430391.184:24): pid=5447 uid=0 auid=4294967295 ses=4294967295 msg='op=user-session-timeout acct="admin" exe="web" hostname=? addr=? terminal=d4ec reason= res=success'^]UID="root" AUID="unset"
</pre>