Każde pole w XenXDR ma jedną nazwę: z kropkami, zgodną z ECS i taką samą w całej platformie. Tę nazwę wpisujesz w pasku zapytania Logs, na nią zamieniane są pola z importowanych reguł Sigma i do niej odwołują się dashboardy oraz detekcje. Ta sama nazwa obowiązuje dla wszystkich źródeł: file.path to plik, którego dotyczy zdarzenie, niezależnie od tego, czy pochodzi ono z Sysmona, Microsoft Defender czy auditd.
Wpisywanie nazwy pola
Nazwy z kropkami tworzą drzewo i tak też podpowiada je pasek zapytania: najpierw proponuje kolejny człon po kropce, więc nazwę budujesz krok po kroku, bez zapamiętywania całej ścieżki.
pro → process. → process.par → process.parent. → process.parent.exe
→ process.parent.executable
Podpowiedź zakończona kropką to gałąź: jej wybranie przenosi poziom niżej i pokazuje zawartość gałęzi. Pełne nazwy pól są wyświetlane pod gałęziami, więc widzisz wszystkie dostępne pola. Człony możesz też wpisywać w skrócie: pro.par prowadzi do tej samej gałęzi.
Każde pole ma też skrót złożony z pierwszych liter członów. Wpisz go bezpośrednio albo poprzedź znakiem ;, aby szukać wyłącznie wśród skrótów, gdy te same litery pasują też do początku pełnej nazwy.
| Pole | Skrót |
|---|---|
host.name | ;hn, ;hname |
event.module | ;em, ;emodule |
event.type | ;et, ;etype |
event.severity | ;es, ;eseverity |
user.name | ;un, ;uname |
process.executable | ;pe, ;pexecutable |
process.parent.executable | ;ppe, ;ppexecutable |
process.command_line | ;pc, ;pcl, ;pcommand_line |
file.path | ;fp, ;fpath |
user.target.name | ;utn, ;utname |
user.audit.id | ;uai, ;uaid |
event.outcome | ;eo, ;eoutcome |
threat.name | ;tn, ;tname |
powershell.script_block_text | ;ps, ;psbt, ;pscript_block_text |
amsi.content | ;ac, ;acontent |
threat.indicator.value | ;tiv, ;tivalue |
rule.onhost.id | ;roi, ;roid |
auditd.key | ;ak, ;akey |
auditd.syscall.name | ;asn, ;asname |
Gdy skrót pasuje do kilku pól, podpowiadane są wszystkie: ;ppe to zarówno process.parent.executable, jak i process.parent.entity_id, a częściej używane pole pojawia się jako pierwsze. Kilka zapisów, których analitycy często używają, przypisano ręcznie: ;cmd → process.command_line · ;cli → process.command_line · ;pcmd → process.parent.command_line · ;exe → process.executable · ;img → process.executable · ;pexe → process.parent.executable · ;cwd → process.working_directory · ;sip → source.ip · ;dip → destination.ip · ;sport → source.port · ;dport → destination.port · ;host → host.name · ;user → user.name · ;sev → event.severity · ;evt → event.type · ;mod → event.module · ;code → event.code · ;msg → message · ;sha256 → file.hash.sha256 · ;url → url.original · ;chan → winlog.channel.
Pola
| Pole | Typ | Właściwości | Opis |
|---|---|---|---|
host.name | string | bez rozróżniania wielkości liter, grupowalne | Nazwa hosta, z którego pochodzi zdarzenie np. WKS-0412 |
agent.id | string | bez rozróżniania wielkości liter, grupowalne | Identyfikator agenta XenXDR na zgłaszającej stacji |
observer.vendor | string | bez rozróżniania wielkości liter | Producent, od którego pochodzi zdarzenie: microsoft, fortinet, okta, … np. microsoft |
observer.product | string | bez rozróżniania wielkości liter | Produkt, który wyemitował zdarzenie: sysmon, defender, fortigate, entra, … np. sysmon |
event.module | string | bez rozróżniania wielkości liter | Strumień telemetrii, po którym filtruje konsola: sysmon, defender, security, powershell, firewall, auditd, syslog, http, hec, … np. sysmon |
event.dataset | string | bez rozróżniania wielkości liter | Strumień w obrębie produktu: sysmon, cef, syslog, sourcetype z HEC np. cef |
event.type | string | bez rozróżniania wielkości liter | Znormalizowany rodzaj zdarzenia, wspólny dla wszystkich źródeł; to według niego działają reguły np. process_create |
event.code | number | Natywny identyfikator zdarzenia (Windows 4625, Sysmon 1, …) np. 4625 | |
event.severity | string | bez rozróżniania wielkości liter | Wskazówka dla triage nadawana podczas przyjmowania danych: info, low, medium, high, critical np. high |
user.name | string | bez rozróżniania wielkości liter, grupowalne | Konto wykonujące działanie; konto, którego działanie dotyczy, to user.target.name np. j.doe |
source.ip | string | grupowalne | Znormalizowany adres źródłowy np. 10.0.0.99 |
source.port | number | Znormalizowany port źródłowy | |
destination.ip | string | grupowalne | Znormalizowany adres docelowy np. 203.0.113.10 |
destination.port | number | Znormalizowany port docelowy np. 443 | |
url.original | string | bez rozróżniania wielkości liter, grupowalne | Adres URL / zapytanie DNS / cel żądania np. evil.example.com |
process.executable | string | bez rozróżniania wielkości liter, grupowalne | Pełna ścieżka uruchomionego obrazu np. C:\Windows\System32\powershell.exe |
process.entity_id | string | grupowalne | Stała tożsamość procesu, według której budowane jest drzewo procesów np. a1b2c3d4-0001-6001-ab00-000000001700 |
process.pid | number | Identyfikator procesu | |
process.parent.entity_id | string | grupowalne | Tożsamość procesu nadrzędnego przy process_create; otwierany proces przy process_access |
process.parent.executable | string | bez rozróżniania wielkości liter | Ścieżka obrazu procesu nadrzędnego np. C:\Windows\explorer.exe |
process.parent.pid | number | Identyfikator procesu nadrzędnego w chwili utworzenia | |
file.hash.sha256 | string | grupowalne | SHA256, jeśli źródło go dostarcza |
message | string | bez rozróżniania wielkości liter | Czytelny komunikat zdarzenia np. An account failed to log on. |
fields | map | Każde pole wyemitowane przez źródło, które nie ma nazwy kanonicznej, pod własnym kluczem źródła | |
raw | string | Oryginalny dokument zdarzenia, zachowany dosłownie na potrzeby analizy śledczej | |
winlog.channel | string | bez rozróżniania wielkości liter | Kanał dziennika zdarzeń Windows np. Microsoft-Windows-Sysmon/Operational |
winlog.provider | string | bez rozróżniania wielkości liter | Nazwa dostawcy zdarzeń np. Microsoft-Windows-Security-Auditing |
log.file.path | string | bez rozróżniania wielkości liter | Ścieżka pliku, z którego odczytano wiersz logu np. /var/log/auth.log |
log.syslog.facility | string | bez rozróżniania wielkości liter | Kategoria syslog (facility), pod którą urządzenie zapisało wpis np. auth |
log.syslog.appname | string | bez rozróżniania wielkości liter | APP-NAME syslog (RFC 5424) lub tag przed dwukropkiem np. sshd |
log.syslog.procid | string | PROCID syslog; pid nadawcy jako tekst, dokładnie w takiej postaci, w jakiej go zapisał | |
splunk.sourcetype | string | bez rozróżniania wielkości liter | Sourcetype Splunk z koperty HEC np. cisco:asa |
process.command_line | string | bez rozróżniania wielkości liter | Pełny wiersz poleceń procesu; Sysmon 1, Security 4688 lub odtworzony z rekordu EXECVE auditd np. powershell -enc SQBFAFgA… |
process.parent.command_line | string | bez rozróżniania wielkości liter | Wiersz poleceń procesu nadrzędnego |
process.name | string | bez rozróżniania wielkości liter | Krótka nazwa polecenia widziana przez jądro (auditd comm=); nazwa bazowa, podczas gdy process.executable to pełna ścieżka np. sh |
process.title | string | bez rozróżniania wielkości liter | Obcięte przez jądro argv; wartość zastępcza, gdy brak rekordu EXECVE |
process.working_directory | string | bez rozróżniania wielkości liter | Katalog roboczy w chwili startu procesu (Sysmon) lub wywołania systemowego (auditd) |
process.integrity_level | string | bez rozróżniania wielkości liter | Poziom integralności procesu np. High |
process.args_count | number | Liczba argumentów execve (auditd EXECVE argc=) np. 3 | |
process.creator.entity_id | string | Proces, który według jądra faktycznie utworzył ten proces; różni się od procesu nadrzędnego dokładnie wtedy, gdy PPID został podrobiony np. a1b2c3d4-0001-6001-ab00-000000001700 | |
process.creator.pid | number | Pid procesu tworzącego, gdy zgłoszony rodzic może być fałszywy np. 4 | |
process.creator.executable | string | bez rozróżniania wielkości liter | Obraz procesu, który faktycznie utworzył ten proces; zapisywany tylko, gdy różni się od procesu nadrzędnego, a brak oznacza, że to ten sam proces np. C:\Windows\System32\svchost.exe |
process.creator.mismatch | boolean | True, gdy proces tworzący nie jest zgłoszonym procesem nadrzędnym; podrobienie PPID tego nie ukryje, ale sama niezgodność nie przesądza o zagrożeniu np. true | |
process.creator.broker | boolean | True, gdy niezgodność wynika ze znanej, legalnej zmiany procesu nadrzędnego, a nie z podrobienia np. true | |
process.creator.resolved | boolean | False, gdy proces tworzący udało się zidentyfikować tylko po pid np. false | |
process.start_key | string | Klucz startu procesu, w odróżnieniu od pid unikalny przez cały czas od uruchomienia systemu np. 91000 | |
process.parent.start_key | string | Klucz startu zgłoszonego procesu nadrzędnego, pozwalający wykryć ponowne użycie pid np. 70000 | |
process.exit_code | string | Kod wyjścia, z jakim proces się zakończył, według jądra np. 0 | |
process.exit_signal | string | Sygnał, który zakończył proces, jeśli taki był np. SIGKILL | |
process.parent.attested | boolean | True, gdy system operacyjny potwierdził proces nadrzędny w chwili startu procesu np. true | |
process.args_truncated | boolean | True, gdy wiersz poleceń był zbyt długi, by zapisać go w całości np. true | |
process.executable_partial | boolean | True, gdy nie udało się ustalić pełnej ścieżki pliku wykonywalnego np. true | |
winlog.process.granted_access | string | bez rozróżniania wielkości liter | Maska dostępu, której zażądał proces otwierający, w postaci zapisanej przez Sysmon 10; tekst szesnastkowy, więc testy bitów wymagają winlog.process.create_access np. 0x1010 |
winlog.process.create_access | boolean | bez rozróżniania wielkości liter | True, gdy maska dostępu Sysmon 10 zawiera PROCESS_CREATE_PROCESS (0x0080); wyliczane podczas przyjmowania danych, bo reguła nie może testować bitów w ciągu szesnastkowym np. true |
file.path | string | bez rozróżniania wielkości liter | Plik, na którym wykonano działanie; TargetFilename z Sysmon 11, Path z Defendera lub rekord PATH z auditd np. /etc/shadow |
file.paths | string | bez rozróżniania wielkości liter | Każda ścieżka rozwiązana przez wywołanie systemowe, w kolejności |
file.mode | string | Bity uprawnień dotkniętego pliku np. 0100755 | |
file.inode | string | I-węzeł dotkniętego pliku; pozwala odróżnić nadpisanie od podmiany | |
file.owner.id | string | Uid właściciela dotkniętego pliku (auditd PATH ouid=) np. 0 | |
file.share.name | string | bez rozróżniania wielkości liter | Udział SMB, którego dotyczyło zdarzenie (5140/5145) np. \\*\ADMIN$ |
dll.path | string | bez rozróżniania wielkości liter | Załadowana biblioteka DLL lub obraz (Sysmon 7) |
dll.code_signature.signed | boolean | bez rozróżniania wielkości liter | Stan podpisu obrazu (Sysmon 7) np. true |
registry.path | string | bez rozróżniania wielkości liter | Zapisany klucz lub wartość rejestru (Sysmon 13) |
destination.domain | string | bez rozróżniania wielkości liter | Rozwiązana nazwa hosta docelowego |
network.transport | string | bez rozróżniania wielkości liter | Protokół transportowy np. tcp |
network.type | string | bez rozróżniania wielkości liter | Rodzina gniazd, do której kierowane było połączenie: ipv4, ipv6, unix |
network.socket.path | string | bez rozróżniania wielkości liter | Ścieżka gniazda uniksowego dla zdarzeń ipc_connect |
dns.answers | string | bez rozróżniania wielkości liter | Odpowiedzi DNS (Sysmon 22) |
network.direction | string | bez rozróżniania wielkości liter | Kierunek przepływu: inbound, outbound lub internal np. outbound |
network.bytes_sent | number | Bajty wysłane przez stację w tym przepływie; pozwalają odróżnić beaconing od wycieku danych i przypisać ruch do procesu, czego nie da log firewalla np. 4096 | |
network.bytes_received | number | Bajty odebrane przez stację w tym przepływie np. 182000 | |
network.packets | number | Liczba pakietów w przepływie np. 210 | |
event.duration_ms | number | Czas trwania obserwowanej operacji lub przepływu w milisekundach np. 61000 | |
user.target.name | string | bez rozróżniania wielkości liter | Konto, na którym wykonano działanie: cel logowania, acct= z auditd, tożsamość, którą sudo miało przyjąć np. Administrator |
user.effective.name | string | bez rozróżniania wielkości liter | Konto, które otworzyło sesję w imieniu celu (PAM „by <user>”) np. j.doe |
user.full_name | string | bez rozróżniania wielkości liter | Nazwa wyświetlana konta wykonującego działanie (Okta/Entra) np. Jane Doe |
user.type | string | bez rozróżniania wielkości liter | Rodzaj podmiotu wykonującego działanie: User, SystemPrincipal, Application np. User |
user_agent.original | string | bez rozróżniania wielkości liter | Ciąg user-agent wysłany przez klienta np. Mozilla/5.0 … |
source.geo.name | string | bez rozróżniania wielkości liter | Lokalizacja adresu źródłowego według dostawcy np. Warsaw, PL |
user.domain | string | bez rozróżniania wielkości liter | Domena konta docelowego |
user.id | string | Identyfikator użytkownika obowiązujący przy wywołaniu systemowym (liczbowy, chyba że auditd działa w trybie ENRICHED) | |
user.group.id | string | Identyfikator grupy przy wywołaniu systemowym | |
user.effective.id | string | Efektywny uid; różni się od user.id dokładnie wtedy, gdy uruchomiono coś z setuid np. 0 | |
user.effective.group.id | string | Efektywny identyfikator grupy przy wywołaniu systemowym | |
user.audit.id | string | Uid logowania; przetrwa su/sudo, więc wskazuje, kto naprawdę działa np. 1000 | |
winlog.session_id | string | Sesja Windows, w której działa proces; 0 to usługi, 1 użytkownik konsoli; proces z sesji usług uruchamiający proces interaktywny jest wart sprawdzenia np. 1 | |
winlog.logon.type | number | Typ logowania Windows: 2 interaktywne, 3 sieciowe, 10 RDP… np. 10 | |
winlog.logon.id | string | bez rozróżniania wielkości liter | Identyfikator logowania utworzonej sesji; łączy logowanie ze wszystkim, co zrobiono w jego ramach np. 0x3e7 |
winlog.logon.subject_id | string | bez rozróżniania wielkości liter | Identyfikator logowania sesji, która zażądała operacji |
winlog.logon.process | string | bez rozróżniania wielkości liter | Proces logowania, który obsłużył uwierzytelnienie np. Advapi |
winlog.logon.authentication_package | string | bez rozróżniania wielkości liter | Pakiet uwierzytelniania (NTLM, Kerberos…) |
winlog.logon.workstation | string | bez rozróżniania wielkości liter | Stacja robocza, z której nastąpiło logowanie |
winlog.kerberos.ticket_encryption | string | bez rozróżniania wielkości liter | Typ szyfrowania biletu Kerberos (4769); 0x17 to RC4, do którego obniża szyfrowanie Kerberoasting np. 0x17 |
winlog.privileges | string | bez rozróżniania wielkości liter | Przypisane lub użyte uprawnienia (4672/4673) np. SeDebugPrivilege |
winlog.status | string | bez rozróżniania wielkości liter | Kod stanu NT operacji np. 0xc000006d |
event.outcome | string | bez rozróżniania wielkości liter | Czy operacja się powiodła; success= z auditd przy wywołaniu systemowym, res= w rekordzie USER_/CRED_, wynik z Okta/Entra np. yes |
event.reason | string | bez rozróżniania wielkości liter | Dlaczego operacja zakończyła się w ten sposób, słowami dostawcy np. Invalid username or password |
event.id | string | Własny unikalny identyfikator zdarzenia nadany przez dostawcę; różny od event.code, który jest liczbowym rodzajem zdarzenia np. 9f1c… | |
event.action | string | bez rozróżniania wielkości liter | Działanie naprawcze wykonane przez produkt (Defender) np. Quarantine |
threat.name | string | bez rozróżniania wielkości liter | Nazwa detekcji Defendera np. Trojan:Win32/Wacatac.B!ml |
threat.category | string | bez rozróżniania wielkości liter | Kategoria zagrożenia według Defendera |
service.name | string | bez rozróżniania wielkości liter | Zainstalowana lub zmieniona usługa (7045/4697) |
service.executable | string | bez rozróżniania wielkości liter | Ścieżka pliku wykonywalnego usługi (7045) |
service.unit | string | bez rozróżniania wielkości liter | Jednostka systemd wskazana w rekordzie audytu np. sshd.service |
device.instance_id | string | bez rozróżniania wielkości liter | Identyfikator instancji podłączanego urządzenia (Kernel-PnP) np. USBSTOR\Disk&Ven_Kingston&Prod_DataTraveler\0019E06B1234&0 |
device.driver | string | Sterownik lub usługa, która przejęła podłączane urządzenie | |
device.class | string | Klasa instalacji podłączanego urządzenia np. DiskDrive | |
device.storage | boolean | true, gdy podłączane urządzenie jest pamięcią masową; odpowiada na częste pytanie o nośniki wymienne | |
device.port | string | Port magistrali USB, na którym wykryto urządzenie (wiersz jądra Linuksa) np. 1-1.4 | |
device.vendor | string | idVendor USB podłączanego urządzenia, w postaci wypisanej przez jądro np. 0951 | |
device.product | string | idProduct USB podłączanego urządzenia, w postaci wypisanej przez jądro np. 1666 | |
service.start_type | string | Obecny typ uruchamiania usługi (SCM 7045/7040) np. auto start | |
service.start_type_old | string | Typ uruchamiania usługi przed zmianą 7040 | |
service.account | string | bez rozróżniania wielkości liter | Konto, na którym działa nowo zainstalowana usługa np. LocalSystem |
winlog.task_name | string | bez rozróżniania wielkości liter | Zarejestrowane lub zaktualizowane zaplanowane zadanie (106/140) |
powershell.script_block_text | string | bez rozróżniania wielkości liter | Zalogowany blok skryptu PowerShell (4104) |
entra.application | string | bez rozróżniania wielkości liter | Aplikacja, do której nastąpiło logowanie np. Office 365 Exchange Online |
entra.client_app | string | bez rozróżniania wielkości liter | Typ aplikacji klienckiej użytej przy logowaniu; tu widać starsze protokoły np. Browser |
entra.category | string | bez rozróżniania wielkości liter | Kategoria audytu katalogu według nazewnictwa Entra np. UserManagement |
dns.question.type | string | bez rozróżniania wielkości liter | Typ rekordu, o który pytano: A, AAAA, CNAME, TXT… np. AAAA |
dns.response_code | string | bez rozróżniania wielkości liter | Stan odpowiedzi: NOERROR, NXDOMAIN, SERVFAIL, REFUSED, TIMEOUT np. NXDOMAIN |
dns.answers.cname | string | bez rozróżniania wielkości liter | Aliasy CNAME w odpowiedzi, oddzielone od adresów, aby reguła na dns.answers dopasowywała tylko adresy |
dns.server | string | Serwer DNS, do którego trafiło zapytanie (ServerList z DNS-Client w Windows) | |
dns.id | string | Identyfikator transakcji komunikatu DNS, łączący zapytanie z odpowiedzią | |
dns.partial | boolean | True, gdy odpowiedź DNS zapisano częściowo | |
network.flow.state | string | bez rozróżniania wielkości liter | open dla rekordu minutowego wciąż trwającego połączenia, closed dla ostatniego np. closed |
network.flow.continued | boolean | True w każdym rekordzie przepływu po pierwszym dla tego samego połączenia; liczniki są przyrostowe, więc ich suma daje wartość całkowitą | |
network.flow.bytes_total | boolean | True, gdy liczniki bajtów są sumami z całego czasu trwania połączenia | |
file.target_path | string | bez rozróżniania wielkości liter | Nowa ścieżka po zmianie nazwy lub utworzeniu łącza np. C:\Users\j.doe\Downloads\payload.exe |
file.extension | string | bez rozróżniania wielkości liter | Rozszerzenie pliku, na którym wykonano działanie, bez kropki np. vbs |
file.extension_changed | boolean | True, gdy zmiana nazwy zmieniła rozszerzenie; typowy krok przygotowania ataku (payload.txt → payload.exe) | |
file.name | string | bez rozróżniania wielkości liter | Nazwa bazowa pliku, na którym wykonano działanie np. update.vbs |
file.directory | string | bez rozróżniania wielkości liter | Katalog pliku, na którym wykonano działanie |
file.alternate_stream | boolean | True, gdy ścieżka wskazuje alternatywny strumień danych NTFS; takiego zapisu nie widać w zwykłej liście plików katalogu | |
file.write_bytes | number | Bajty pierwszego zapisu przez uchwyt w minucie objętej rekordem | |
file.truncated | boolean | True, gdy otwarcie obcięło plik (O_TRUNC) | |
file.path_partial | boolean | True, gdy ścieżka jest względna wobec systemu plików, a nie bezwzględna | |
file.path_truncated | boolean | True, gdy ścieżka była zbyt długa, by zapisać ją w całości | |
registry.key | string | bez rozróżniania wielkości liter | Klucz zapisu w rejestrze, bez nazwy wartości np. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
registry.value | string | bez rozróżniania wielkości liter | Nazwa wartości zapisu w rejestrze np. Updater |
registry.data | string | bez rozróżniania wielkości liter | Zapisane dane w postaci przedstawionej przez dostawcę, z limitem 512 bajtów |
registry.data_type | string | bez rozróżniania wielkości liter | Typ REG_* zapisanej wartości np. REG_SZ |
registry.data_truncated | boolean | True, gdy registry.data obcięto na limicie | |
registry.hive | string | bez rozróżniania wielkości liter | HKLM lub HKU np. HKLM |
registry.path_partial | boolean | True, gdy klucz dało się nazwać tylko względem obiektu nadrzędnego | |
dll.base | string | Adres załadowania obrazu | |
dll.size | string | Rozmiar zmapowanego obrazu | |
dll.checksum | string | Suma kontrolna PE obrazu, według programu ładującego | |
dll.timestamp | string | Znacznik czasu linkowania PE obrazu | |
dll.unusual_path | boolean | True, gdy obraz załadowano spoza katalogów systemowych i katalogów programów | |
amsi.app | string | bez rozróżniania wielkości liter | Aplikacja, która przekazała treść do AMSI (host PowerShell, WSH, VBA…) |
amsi.content | string | bez rozróżniania wielkości liter | Treść skryptu w postaci przeskanowanej przez dostawcę AMSI; po usunięciu zaciemnienia, z limitem 8 KB |
amsi.content_name | string | bez rozróżniania wielkości liter | Nazwa lub ścieżka przekazana do AMSI dla treści |
amsi.content_size | number | Liczba bajtów przekazanych do skanera | |
amsi.result | string | bez rozróżniania wielkości liter | Werdykt skanera: clean, not_detected, blocked_by_admin, detected np. detected |
amsi.hash | string | Skrót treści zgłoszony przez AMSI | |
amsi.content_truncated | boolean | True, gdy amsi.content jest niepełne | |
powershell.script_block_id | string | Identyfikator łączący fragmenty jednego bloku skryptu | |
powershell.message_number | number | Numer fragmentu bloku skryptu | |
powershell.message_total | number | Liczba fragmentów bloku skryptu | |
powershell.suspicious | boolean | True, gdy blok pasuje do własnej listy podejrzanych treści PowerShell (logowany na poziomie Warning niezależnie od tego, czy włączono Script Block Logging) | |
powershell.script_block_truncated | boolean | True, gdy tekst bloku jest niepełny | |
powershell.command | string | bez rozróżniania wielkości liter | Szczegóły wykonania potoku PowerShell (4103) |
powershell.command_truncated | boolean | True, gdy powershell.command obcięto | |
wmi.namespace | string | bez rozróżniania wielkości liter | Przestrzeń nazw WMI operacji lub subskrypcji np. //./root/subscription |
wmi.filter | string | bez rozróżniania wielkości liter | Filtr zdarzeń (ESS) trwałej subskrypcji |
wmi.consumer | string | bez rozróżniania wielkości liter | Konsument trwałej subskrypcji; to, co uruchamia się, gdy filtr zadziała np. CommandLineEventConsumer.Name="Updater" |
wmi.possible_cause | string | bez rozróżniania wielkości liter | Własna uwaga WMI-Activity do zdarzenia subskrypcji |
wmi.operation | string | bez rozróżniania wielkości liter | Operacja WMI w zapisie kanału Trace np. Start IWbemServices::ExecMethod - root\cimv2 : Win32_Process::Create |
wmi.client_machine | string | bez rozróżniania wielkości liter | Maszyna, z której połączył się klient WMI; jeśli to inny host, może to oznaczać ruch boczny |
winlog.task_action | string | bez rozróżniania wielkości liter | Plik wykonywalny uruchomiony przez zaplanowane zadanie (129) |
process.working_directory_partial | boolean | True, gdy nie udało się ustalić pełnego katalogu roboczego | |
process.target.pid | number | Pid, do którego podłączył się ptrace | |
process.target.entity_id | string | Tożsamość procesu, do którego podłączył się ptrace | |
process.target.executable | string | bez rozróżniania wielkości liter | Obraz procesu, do którego podłączył się ptrace |
process.target.name | string | bez rozróżniania wielkości liter | Nazwa polecenia celu ptrace, którego nie udało się nazwać po obrazie |
process.ptrace.mode | string | Bity PTRACE_MODE_* sprawdzenia dostępu | |
module.name | string | bez rozróżniania wielkości liter | Żądany lub załadowany moduł jądra np. rootkit |
bpf.cmd | string | Numer polecenia bpf(2) (5 = BPF_PROG_LOAD) | |
kexec.syscall | string | kexec_load lub kexec_file_load | |
kexec.flags | string | Flagi przekazane do kexec | |
container.id | string | Kontener, do którego należy proces, według jego cgroup np. 3f1c2b5a9d8e | |
container.runtime | string | bez rozróżniania wielkości liter | Środowisko uruchomieniowe, do którego należy kontener: docker, containerd, cri-o, podman, kubernetes |
process.hash.sha256 | string | SHA256 obrazu procesu, używany do dopasowywania wskaźników | |
threat.indicator.type | string | bez rozróżniania wielkości liter | Co dopasowało wskaźnik: hash, ip lub domain |
threat.indicator.value | string | bez rozróżniania wielkości liter | Wskaźnik, który został dopasowany |
threat.indicator.rev | string | Wersja zestawu wskaźników, względem której nastąpiło dopasowanie | |
rule.onhost.id | string | bez rozróżniania wielkości liter | Reguła na hoście, która zadziałała np. shadow-copy-delete |
rule.onhost.response | string | bez rozróżniania wielkości liter | Reakcja reguły: alert lub alert+kill |
rule.onhost.version | string | Wersja stałej listy reguł, którą ma agent | |
rule.onhost.killed | boolean | True, gdy zabicie procesu przez regułę się powiodło | |
rule.onhost.kill_error | string | Przyczyna niepowodzenia zabicia procesu: pid nie wykonywał już wskazanego obrazu albo system odmówił | |
rule.onhost.kill_disabled | boolean | True, gdy reguła chciała zabić proces, ale grupa nie ma włączonego zabijania | |
auditd.key | string | bez rozróżniania wielkości liter | Tag reguły audytu, która wygenerowała rekord np. xen-persistence |
auditd.syscall.name | string | bez rozróżniania wielkości liter | Rozwiązana nazwa wywołania systemowego dla architektury, która je wykonała np. execve |
auditd.syscall.number | number | Surowy numer wywołania systemowego (zależny od ABI; lepiej używać auditd.syscall.name) | |
auditd.arch | string | bez rozróżniania wielkości liter | ABI audytu procesu wywołującego np. c000003e |
auditd.nametype | string | bez rozróżniania wielkości liter | Sposób użycia ścieżki: NORMAL, CREATE, DELETE, PARENT |
auditd.session | string | Identyfikator sesji audytu; grupuje wszystko, co zrobiono w ramach jednego logowania | |
auditd.tty | string | bez rozróżniania wielkości liter | Terminal sterujący np. pts0 |
auditd.record_types | string | bez rozróżniania wielkości liter | Rekordy audytu scalone w to zdarzenie np. SYSCALL,EXECVE,CWD,PATH,PROCTITLE |
auditd.record_type | string | bez rozróżniania wielkości liter | Rekord audytu, z którego zbudowano to zdarzenie, gdy brak rekordu wywołania systemowego np. USER_AUTH |
auditd.id | string | Numer seryjny audytu łączący powiązane rekordy | |
auditd.exit | number | Wartość zwrócona przez wywołanie systemowe; wartość ujemna to errno, więc odmowa otwarcia jest tu widoczna nawet przy success=yes np. -13 | |
auditd.op | string | bez rozróżniania wielkości liter | Operacja wskazana w rekordzie (op=), dla rekordów bez wywołania systemowego np. PAM:authentication |
Pola bez rozróżniania wielkości liter pasują niezależnie od wielkości liter. Pola grupowalne mogą być encją reguły detekcji, czyli wartością, według której grupowane są alerty.
Akceptowane aliasy
Reguły tworzone przez społeczność często używają własnych nazw pól. Gdy importowana reguła Sigma, KQL lub EQL używa jednego z poniższych zapisów, XenXDR zamienia go na nazwę ze słownika, więc reguła działa bez zmian. Aliasy dotyczą wyłącznie importowanych reguł. Zapisane zapytania, wyniki i pasek zapytania używają nazw widocznych w panelu pól.
| Pole | Akceptowane także |
|---|---|
host.name | hostname, computername, computer |
agent.id | agentid |
event.module | module |
event.type | eventtype |
event.code | eventid |
event.severity | log.level, severity name |
user.name | username, subjectusername, account, detection user, suser, duser, usrName |
source.ip | sourceip, ipaddress, clientip, SourceIp, IpAddress, src |
source.port | sourceport, ipport, SourcePort, IpPort, spt, srcPort |
destination.ip | destinationip, DestinationIp, dst |
destination.port | destinationport, DestinationPort, dpt, dstPort |
url.original | url.full, queryname, dns.question.name, QueryName, request |
process.executable | processname, image, newprocessname, exe, Image, SourceImage, NewProcessName, ProcessName, Process Name, exe, dproc, sproc |
process.entity_id | processguid, ProcessGuid, SourceProcessGUID |
process.pid | processid, ProcessId, NewProcessId |
process.parent.entity_id | parentprocessguid, ParentProcessGuid, TargetProcessGUID |
process.parent.executable | parentimage, parentprocessname, process.parent.name, ParentImage, TargetImage, ParentProcessName |
process.parent.pid | parentprocessid, ParentProcessId |
file.hash.sha256 | hashes, sha256, Hashes, fileHash |
process.command_line | commandline |
process.parent.command_line | parentcommandline |
process.name | comm |
process.title | proctitle |
process.working_directory | currentdirectory, cwd |
process.integrity_level | integritylevel |
winlog.process.granted_access | grantedaccess |
file.path | targetfilename, file_path |
file.share.name | sharename |
dll.path | imageloaded |
dll.code_signature.signed | signed |
registry.path | targetobject |
destination.domain | destinationhostname |
network.transport | protocol |
dns.answers | queryresults |
user.target.name | targetusername, acct, target_user |
user.domain | targetdomainname |
user.audit.id | auid |
winlog.logon.type | logontype |
winlog.logon.id | targetlogonid |
winlog.logon.subject_id | subjectlogonid |
winlog.logon.process | logonprocessname |
winlog.logon.authentication_package | authenticationpackagename |
winlog.logon.workstation | workstationname |
winlog.kerberos.ticket_encryption | ticketencryptiontype |
winlog.privileges | privilegelist |
winlog.status | status |
event.outcome | success, res |
service.name | servicename |
service.executable | imagepath |
winlog.task_name | taskname |
powershell.script_block_text | scriptblocktext |
auditd.key | audit_key |
auditd.syscall.name | syscall_name |
Dozwolone wartości
Wartości nadawane przez XenXDR podczas normalizacji. Autouzupełnianie je podpowiada.
event.module: sysmon, defender, security, system, powershell, firewall, scheduled-tasks, application, wmi, rdp, winrm, smb, code-integrity, applocker, bits, winlog, auditd, auth, journald, linux, container, syslog, http, hec, xenxdr, file
event.severity: info, low, medium, high, critical
event.type: process_create, process_exit, process_access, network_connect, dns_query, file_create, registry_set, image_load, create_remote_thread, logon_success, logon_failed, logoff, malware_detected, scriptblock_logged, service_installed, user_created, audit_log_cleared, sensor_state, ipc_connect, network_listen, module_load, module_unload, privilege_change, file_modified, file_delete, file_rename, file_permissions_changed, file_owner_changed, sudo_command, session_start, session_end, audit_config_changed, audit_started, audit_stopped, avc_denied, seccomp_violation, promiscuous_mode, user_deleted, credential_changed, bpf_load, memfd_create, namespace_change, kernel_load, signin, signin_failed, directory_audit