# Referenz zum EDR-Ereignisschema ## Inhaltsverzeichnis - [Dateiaktivität](#file-activity) - [Zuordnungen der Aktivitäts-IDs](#fa-activities) - [Zieldatei](#fa-target-file) - [Resultierende Datei](#fa-resulting-file) - [Akteurprozess](#fa-actor) - [Beobachtbare Werte](#fa-observables) - [Beispielabfragen](#fa-queries) - [Prozessaktivität](#process-activity) - [Zuordnungen der Aktivitäts-IDs](#pa-activities) - [Zielprozess](#pa-target) - [Übergeordneter Zielprozess](#pa-parent) - [Akteurprozess](#pa-actor) - [Beispielabfragen](#pa-queries) - [Authentifizierung](#authentication) - [Zuordnungen der Aktivitäts-IDs](#au-activities) - [Anmeldestatus](#au-status) - [Akteurbenutzer](#au-actor-user) - [Zielbenutzer](#au-target-user) - [Anmeldetyp](#au-logon-type) - [Authentifizierungsprotokoll](#au-auth-protocol) - [Beispielabfragen](#au-queries) ## Dateiaktivität `class_name = "File Activity"` | `class_uid = 1001` Ereignisse der Dateiaktivität werden immer dann erzeugt, wenn ein Prozess eine Dateisystemoperation ausführt — etwa das Erstellen, Schreiben, Löschen oder Umbenennen einer Datei. ### Zuordnungen der Aktivitäts-IDs | activity_id | activity_name | type_uid | Beschreibung | |---|---|---|---| | 6 | Erstellen | 100101 | Eine neue Datei wurde im Dateisystem erstellt | | 8 | Aktualisieren | 100103 | Daten wurden in eine bestehende Datei geschrieben | | 9 | Löschen | 100104 | Eine Datei wurde gelöscht | | 10 | Umbenennen | 100105 | Eine Datei wurde umbenannt | | 20 | Verzeichnis erstellen | — | Ein neues Dateiverzeichnis wurde erstellt | ### Zieldatei (file.*) | Feld | Typ | Beschreibung | |---|---|---| | file.name | String | Dateiname einschließlich Erweiterung (z. B. malware.exe) | | file.path | String | Vollständiger Dateisystempfad | | file.ext | String | Dateierweiterung ohne führenden Punkt | | file.type_id | Long | Dateityp (1=Regulär, 2=Ordner, 7=Symlink, 8=Ausführbar) | ### Resultierende Datei (file_result.*) Nach Umbenennungs- oder Kopiervorgängen vorhanden — beschreibt die Datei **nach** dem Vorgang. | Feld | Typ | Beschreibung | |---|---|---| | file_result.name | String | Neuer Dateiname nach dem Vorgang | | file_result.path | String | Neuer vollständiger Pfad nach dem Vorgang | | file_result.ext | String | Erweiterung der resultierenden Datei | | file_result.type_id | Long | Dateityp der resultierenden Datei | ### Akteur — Auslösender Prozess (actor.process.*) | Feld | Typ | Beschreibung | |---|---|---| | actor.process.name | String | Name des Prozesses, der die Dateivorgangs ausführt | | actor.process.pid | Long | PID des ausführenden Prozesses | | actor.process.uid | String | Eindeutige ID der ausführenden Prozessinstanz | | actor.process.cmd_line | String | Vollständige Befehlszeile des ausführenden Prozesses | | actor.process.created_time | DateTime | Zeitstempel, wann der ausführende Prozess erstellt wurde | | actor.process.file.name | String | Name der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.path | String | Pfad der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.sha256 | String | SHA-256 der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.ext | String | Dateierweiterung der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.type_id | Long | Dateityp-ID der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.hashes.algorithm | String | Hash-Algorithmus | | actor.process.file.hashes.value | String | Hash-Wert | | actor.process.file.company_name | String | Firmenname der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.version | String | Version der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.size | Long | Größe der ausführbaren Datei des ausführenden Prozesses in Byte | | actor.process.file.accessed_time | DateTime | Letzte Zugriffszeit der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.modified_time | DateTime | Letzte Änderungszeit der ausführbaren Datei des ausführenden Prozesses | | actor.process.file.created_time | DateTime | Erstellungszeit der ausführbaren Datei des ausführenden Prozesses | | actor.process.user.name | String | Benutzername, unter dem der ausführende Prozess läuft | | actor.process.user.type_id | Long | Kontotyp (1=Benutzer, 2=Admin, 3=System) | ### Werte von observables.name | observables.name | Beschreibung | |---|---| | File Create Event | Eine Datei wurde erstellt | | File Write Event | In eine Datei wurde geschrieben | | File Delete Event | Eine Datei wurde gelöscht | | File Rename Event | Eine Datei wurde umbenannt | | Directory Create Event | Ein Verzeichnis wurde erstellt | Verwenden Sie dieses Feld als schnelle Filter-Kurzform: `observables.name = "File Write Event"` ### Beispielabfragen **In Temp geschriebene ausführbare Dateien durch beliebige Prozesse:** `class_name = "File Activity" and activity_id = 8 and file.ext = "exe" and file.path contains "Temp"` **Von PowerShell geschriebene Dateien:** `class_name = "File Activity" and activity_id = 8 and actor.process.name = "powershell.exe"` **Dateien mit doppelter Erweiterung (z. B. invoice.pdf.exe):** `class_name = "File Activity" and file.name contains ".pdf.exe"` **Von Skript-Engines in benutzerschreibbare Pfade abgelegte Dateien:** `class_name = "File Activity" and activity_id = 6 and actor.process.name in "powershell.exe","wscript.exe","cscript.exe","mshta.exe" and file.path contains "AppData"` ## Prozessaktivität `class_name = "Process Activity"` | `class_uid = 1007` Ereignisse der Prozessaktivität werden erzeugt, wenn ein Prozess gestartet wird, endet oder einer Injektions- oder Modul-Ladeoperation unterliegt. Dies ist die einzige Klasse, in der das Prozessobjekt auf oberster Ebene `process.*` (der Zielprozess) sich von `actor.process.*` (dem auslösenden Prozess) unterscheidet. **Kritische Unterscheidung:** `actor.process` = der Prozess, der die Aktion ausgeführt hat (z. B. winword.exe startet cmd.exe). `process` = der Prozess, auf den eingewirkt wird (z. B. cmd.exe, der gerade gestartet wurde). Dies ist **nur bei Ereignissen der Prozessaktivität gültig** — in allen anderen Klassen ist `process.*` nicht vorhanden. ### Zuordnungen der Aktivitäts-IDs | activity_id | activity_name | type_uid | Beschreibung | |---|---|---|---| | 1 | Start | 100701 | Ein Prozess wurde gestartet/erstellt | | 2 | Beenden | 100702 | Ein Prozess wurde beendet | ### Zielprozess (process.*) — Kernfelder | Feld | Typ | Beschreibung | |---|---|---| | process.name | String | Name des Laufzeitprozesses (z. B. cmd.exe) | | process.pid | Long | Vom Betriebssystem vergebene PID | | process.uid | String | Eindeutige plattformübergreifende Prozessinstanz-ID | | process.cmd_line | String | Vollständige Befehlszeile einschließlich Argumenten | | process.created_time | DateTime | Zeitstempel, wann der Prozess erstellt wurde | | process.user.name | String | Benutzername, unter dem der Zielprozess läuft | | process.user.type_id | Long | Kontotyp | | process.lineage_uid | String[] | Vollständige Abstammungskette des Zielprozesses | ### Zielprozess — Dateimetadaten (process.file.*) | Feld | Typ | Beschreibung | |---|---|---| | process.file.name | String | Name der ausführbaren Datei | | process.file.path | String | Vollständiger Pfad der ausführbaren Datei | | process.file.sha256 | String | SHA-256 der ausführbaren Datei | | process.file.ext | String | Dateierweiterung | | process.file.type_id | Long | Dateityp-ID | | process.file.hashes.algorithm | String | Hash-Algorithmus | | process.file.hashes.value | String | Hash-Wert | | process.file.company_name | String | Firmenname der ausführbaren Datei | | process.file.version | String | Version der ausführbaren Datei | | process.file.size | Long | Größe der ausführbaren Datei in Byte | | process.file.accessed_time | DateTime | Letzte Zugriffszeit der ausführbaren Datei | | process.file.modified_time | DateTime | Letzte Änderungszeit der ausführbaren Datei | | process.file.created_time | DateTime | Erstellungszeit der ausführbaren Datei | ### Übergeordneter Zielprozess (process.parent_process.*) | Feld | Typ | Beschreibung | |---|---|---| | process.parent_process.name | String | Name des übergeordneten Prozesses | | process.parent_process.pid | Long | PID des übergeordneten Prozesses | | process.parent_process.uid | String | Eindeutige ID des übergeordneten Prozesses | | process.parent_process.cmd_line | String | Befehlszeile des übergeordneten Prozesses | | process.parent_process.file.name | String | Name der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.path | String | Pfad der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.sha256 | String | SHA-256 der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.hashes.algorithm | String | Hash-Algorithmus | | process.parent_process.file.hashes.value | String | Hash-Wert | | process.parent_process.file.company_name | String | Firmenname der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.version | String | Version der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.size | Long | Größe der ausführbaren Datei des übergeordneten Prozesses in Byte | | process.parent_process.file.accessed_time | DateTime | Letzte Zugriffszeit der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.modified_time | DateTime | Letzte Änderungszeit der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.file.created_time | DateTime | Erstellungszeit der ausführbaren Datei des übergeordneten Prozesses | | process.parent_process.user.name | String | Benutzername, unter dem der übergeordnete Prozess läuft | | process.parent_process.user.type_id | Long | Kontotyp des übergeordneten Benutzerkontos | ### Akteur — Auslösender Prozess (actor.process.*) Gleiche Struktur wie beschrieben unter [Dateiaktivität > Akteurprozess](#fa-actor). In allen Ereignisklassen vorhanden. ### Beispielabfragen **Gestartete PowerShell mit Ausführung als SYSTEM:** `class_name = "Process Activity" and activity_id = 1 and process.name = "powershell.exe" and process.user.type_id = 3` **Von Word gestartete cmd.exe (Makroausführung):** `class_name = "Process Activity" and activity_id = 1 and process.name = "cmd.exe" and actor.process.name = "winword.exe"` **lsass.exe als übergeordneter Prozess (Zugriff auf Anmeldedaten per Prozessinjektion):** `class_name = "Process Activity" and activity_id = 1 and process.parent_process.name = "lsass.exe"` **Aus Temp-Verzeichnissen gestartete Prozesse:** `class_name = "Process Activity" and activity_id = 1 and process.file.path contains "Temp"` **Skript-Engine startet Netzwerkwerkzeug (Double-Hop):** `class_name = "Process Activity" and activity_id = 1 and process.name in "curl.exe","wget.exe","certutil.exe","bitsadmin.exe" and actor.process.name in "powershell.exe","wscript.exe","cscript.exe","mshta.exe"` ## Authentifizierung `class_name = "Authentication"` | `class_uid = 3002` Authentifizierungsereignisse erfassen Anmeldeaktivitäten auf dem Endpunkt — sowohl interaktive als auch Netzwerkanmeldungen. Diese Ereignisse sind essenziell für die Erkennung von Brute-Force-Angriffen, Missbrauch von Anmeldedaten, lateraler Bewegung und Rechteausweitung über den Kontokontext. ### Zuordnungen der Aktivitäts-IDs | activity_id | activity_name | type_uid | Beschreibung | |---|---|---|---| | 501 | Anmeldung | 300201 | Es wurde ein Benutzeranmeldeversuch durchgeführt | ### Anmeldestatus | Feld | Typ | Bekannte Werte | Beschreibung | |---|---|---|---| | status | String | Erfolg, Fehler | Menschenlesbares Ergebnis | | status_id | Long | 0=Unbekannt, 1=Erfolg, 2=Fehler, 99=Sonstige | Ergebnis-ID | | status_detail | String | Anmeldung erfolgreich | Anbieterspezifisches Statusdetail | ### Akteurbenutzer — Wer die Anmeldung initiiert hat (actor.user.*) | Feld | Typ | Beschreibung | |---|---|---| | actor.user.name | String | Benutzername, der die Anmeldung versucht oder durchführt | | actor.user.domain | String | Domäne des Benutzers (z. B. WORKGROUP) | ### Zielbenutzer — Wer authentifiziert wurde (user.*) | Feld | Typ | Beschreibung | |---|---|---| | user.name | String | Name des authentifizierten Benutzers | | user.type | String | Bezeichnung des Kontotyps (z. B. Benutzer, System) | | user.type_id | Long | Kontotyp-ID (1=Benutzer, 2=Admin, 3=System) | | user.domain | String | Domäne des authentifizierten Benutzers (z. B. NT AUTHORITY) | ### Anmeldetyp | Feld | Typ | Beschreibung | |---|---|---| | logon_type | String | Bezeichnung des Anmeldetyps (z. B. Dienst, Interaktiv) | | logon_type_id | Long | ID des Anmeldetyps (siehe Referenz unten) | ### Referenz der Anmeldetyp-IDs | logon_type_id | Anmeldetyp | |---|---| | 0 | Unbekannt | | 1 | System | | 2 | Interaktiv | | 3 | Netzwerk | | 4 | Batch | | 5 | Dienst | | 7 | Entsperren | | 8 | Netzwerk-Cleartext | | 9 | Neue Anmeldedaten | | 10 | Remote interaktiv | | 11 | Zwischengespeichert interaktiv | | 12 | Zwischengespeichert remote interaktiv | | 13 | Zwischengespeichert entsperren | | 99 | Sonstige | ### Authentifizierungsprotokoll | Feld | Typ | Beschreibung | |---|---|---| | auth_protocol | String | Bezeichnung des Authentifizierungsprotokolls (z. B. Negotiate, Kerberos) | | auth_protocol_id | Long | ID des Authentifizierungsprotokolls (siehe Referenz unten) | ### Referenz der Authentifizierungsprotokoll-IDs | auth_protocol_id | Protokoll | |---|---| | 0 | Unbekannt | | 1 | NTLM | | 2 | Kerberos | | 3 | Digest | | 12 | LDAP | ### Sitzung & Quelle | Feld | Typ | Beschreibung | |---|---|---| | session.uid | String | Eindeutiger Sitzungsbezeichner (z. B. 0x3E7) | | is_remote | Boolean | Ob die Authentifizierung remote erfolgte | | src_endpoint.ip | String | Quell-IP der Anmeldeanforderung | ### Beispielabfragen **Fehlgeschlagene Anmeldungen eines bestimmten Benutzers:** `class_name = "Authentication" and status_id = 2 and actor.user.name = "administrator"` **Alle fehlgeschlagenen Anmeldungen (Brute-Force-Suche):** `class_name = "Authentication" and status_id = 2` **Erfolgreiche Anmeldungen von einer unerwarteten Quell-IP:** `class_name = "Authentication" and status_id = 1 and src_endpoint.ip != "10.0.0.0"` **Anmeldungen von Systemkonten:** `class_name = "Authentication" and status_id = 1 and user.type_id = 3` **Remote-Anmeldesitzungen:** `class_name = "Authentication" and is_remote = true` **Anmeldungen vom Typ Dienst:** `class_name = "Authentication" and logon_type_id = 5` **Anmeldungen mit Kerberos-Authentifizierung:** `class_name = "Authentication" and auth_protocol_id = 2`