Kā lasīt sistēmas žurnālus: pamati Linux, macOS un Windows
Iedomājies, ka tavā uzņēmumā ir noticis kiberuzbrukums. Hakeri ir ieguvuši piekļuvi datiem, bet neviens nezina — kad, kā un kādā veidā tas notika. Šādā situācijā sistēmas žurnālfaili (log files) ir vienīgie, kas var atbildēt uz šiem jautājumiem.
Žurnālu lasīšana ir viena no pirmajām prasmēm, ko apgūst ikviens SOC analītiķis un Blue Team speciālists. Un tā nav tik biedējoša, kā sākotnēji šķiet.
Kas ir žurnālfails un kāpēc tas ir svarīgs?
Žurnālfails jeb log file ir teksta fails, kurā operētājsistēma vai aplikācija automātiski ieraksta visu, kas notiek: kurš pierakstījās, kāda komanda tika izpildīta, kāda kļūda radās un precīzs notikuma laiks. Tas ir kā digitāla dienasgrāmata — katrs notikums ar laika zīmogu.
Kiberdrošībā žurnāli palīdz:
- Atklāt uzbrukumus — piemēram, atkārtotus neveiksmīgus autentifikācijas mēģinājumus (brute force)
- Izmeklēt incidentus — rekonstruēt, kas notika pirms, laikā un pēc uzbrukuma
- Pierādīt atbilstību — NIS2, GDPR un citi standarti pieprasa žurnālu glabāšanu un pārskatīšanu
Žurnālu analīze nav tikai programmētāju vai sistēmadministratoru prasme — tā ir kiberdrošības analītiķu ikdiena.
Linux — žurnālu mājas
Linux ir kiberdrošības speciālista vide “pēc noklusējuma”. Lielākā daļa serveru pasaulē darbojas uz Linux, un tāpēc šīs OS žurnāli ir jāsaprot pirmie.
Galvenās žurnālu atrašanās vietas
Klasiskākie žurnāli atrodas mapē /var/log/:
| Fails | Ko satur |
|---|---|
/var/log/auth.log | Pieslēgšanās, sudo komandas (Debian/Ubuntu) |
/var/log/secure | Tas pats — RHEL, CentOS, Fedora sistēmās |
/var/log/syslog | Vispārīgi sistēmas notikumi |
/var/log/kern.log | Kodola (kernel) notikumi |
/var/log/faillog | Neveiksmīgie pieslēgšanās mēģinājumi |
journalctl — modernais veids
Mūsdienu Linux distribūcijās galvenais rīks ir journalctl, kas nolasa systemd centralizēto žurnālu:
# Skatīt žurnālus reāllaikā
journalctl -f
# Tikai SSH servisa žurnāli
journalctl -u ssh
# Žurnāli tikai no šodienas
journalctl --since today
# Neveiksmīgie SSH autentifikācijas mēģinājumi
journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed"
Meklēšana ar grep
grep ir tavs draugs, kad meklē konkrētu informāciju lielā žurnālā:
# Neveiksmīgie SSH autentifikācijas mēģinājumi
grep "Failed password" /var/log/auth.log
# Pēdējās 50 rindas reāllaikā
tail -f -n 50 /var/log/auth.log
# Visi sudo komandu palaišanas gadījumi
grep "sudo" /var/log/auth.log
Praktisks piemērs: Ja redzi simtiem rindu ar Failed password for root from 185.234.X.X — kāds aktīvi mēģina brutāli ielauzties caur SSH. Tas ir reāls signāls, ka sistēma ir uzbrukuma mērķis.
macOS — Apple vienotā žurnālu sistēma
macOS kopš versijas 10.12 izmanto Apple Unified Logging System — centralizētu žurnālu sistēmu, kas apkopo datus no visas operētājsistēmas vienā vietā.
log komanda — tavs galvenais rīks
# Skatīt žurnālus reāllaikā
log stream
# Filtrēt pēc konkrēta procesa
log stream --process sshd
# Rādīt kļūdas no pēdējās stundas
log show --last 1h --level error
# Atrast autentifikācijas notikumus pēdējās 24 stundās
log show --predicate 'eventMessage contains "authentication"' --last 24h
Kur vēl meklēt?
- Console.app — grafiskā lietotne (pieejama Launchpad) žurnālu vizuālai apskatei – tā ļauj filtrēt pēc laika, procesa vai kļūdas veida
/var/log/— vecākie faili, piemēram,system.log~/Library/Logs/— lietotāja aplikāciju žurnāli/Library/Logs/— sistēmas līmeņa aplikāciju žurnāli
macOS žurnāli satur daudz vairāk tehniska “trokšņa” nekā Linux, tāpēc filtrēšana pēc laika perioda un kļūdas līmeņa ir īpaši svarīga. Ja skaties žurnālus nefiltrēti, var viegli pazust detaļās.
Windows — notikumu žurnāli un Event ID
Windows sistēmās žurnālu centrs ir Windows Event Log. Tas satur tūkstošiem ierakstu, bet kiberdrošībai svarīgākie ir trīs kanāli:
- Security — pieslēgšanās, tiesību izmaiņas, kontu pārvaldība
- System — sistēmas servisi, draiveri, kļūdas
- Application — instalētās programmas un to kļūdas
Grafiskā vide — Event Viewer
- Nospied
Win + R, ievadieventvwr.mscun nospied Enter - Paplašini
Windows Logs→Security - Labajā panelī izmanto Filter Current Log…, lai meklētu pēc Event ID vai laika perioda
Vissvarīgākie Event ID kiberdrošībā
Šie skaitļi ir jāzina katram SOC analītiķim:
| Event ID | Notikums |
|---|---|
| 4624 | Veiksmīga pieslēgšanās |
| 4625 | Neveiksmīga pieslēgšanās |
| 4648 | Pieslēgšanās ar tiešajiem akreditācijas datiem (iespējams pass-the-hash) |
| 4720 | Jauns lietotāja konts izveidots |
| 4728 | Lietotājs pievienots drošības grupai |
| 7045 | Jauns serviss instalēts sistēmā |
| 4688 | Jauns process uzsākts (ja audits iespējots) |
PowerShell — ātrāks par Event Viewer
Grafiskais Event Viewer ir lēns ar lieliem žurnāliem. PowerShell ir daudz efektīvāks:
# Pēdējie 20 neveiksmīgie pieslēgšanās mēģinājumi
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20
# Visi jaunie konti, kas izveidoti pēdējās 24 stundās
Get-WinEvent -FilterHashtable @{
LogName='Security'; Id=4720; StartTime=(Get-Date).AddDays(-1)
}
# Detalizēts notikuma skats
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 5 |
Format-List
Ko meklēt žurnālos? — Brīdinājuma signāli
Neatkarīgi no operētājsistēmas, šie modeļi ir aizdomīgi un vienmēr prasa tālāku izmeklēšanu:
Brute force uzbrukums Daudz neveiksmīgu pieslēgšanās mēģinājumu no vienas IP adreses īsā laika periodā — bieži vien ar tūlītēju veiksmīgu pieslēgšanos beigās. Tas ir klasisks paroļu uzminēšanas modelis.
Pieslēgšanās neparastā laikā Konta aktivitāte plkst. 3:00 no rīta, kad konkrētais lietotājs parasti nestrādā. Var norādīt uz nozagtu kontu.
Jauni administratora konti Windows Event ID 4720 + 4728 kombinācija — uzbrucējs ir izveidojis sev backdoor kontu ar paaugstinātām tiesībām.
Jauni servisi Windows Event ID 7045 var norādīt, ka uzbrucējs instalējis backdoor vai RAT (Remote Access Trojan) kā sistēmas servisu, nodrošinot pastāvīgu piekļuvi.
Neparastas attālinātas piekļuves sesijas Pieslēgšanās no svešas valsts vai IP adreses, ko lietotājs nekad agrāk nav izmantojis.
Žurnālu lasīšana pirmajā reizē var likties kā hieroglīfu atšifrēšana — teksts ir, bet nozīme slēpjas aiz laika zīmogu, kodu un anglisko apzīmējumu. Taču ar praksi šī prasme ļoti ātri kļūst par otro dabu.
Vēlies apgūt žurnālu analīzi strukturētā vidē ar reāliem uzbrukumu scenārijiem? Mūsu Kiberdrošības Speciālista programmā žurnālu analīze un SIEM rīki (Splunk, Elastic) ir pilnvērtīga programmas daļa. Ja vēlies iet dziļāk tieši šajā tēmā, apskati mūsu SIEM un Splunk moduli — kompaktu, praktiski orientētu kursu ar reāliem laboratoriju uzdevumiem.
Vēl šaubies, ar ko sākt? Izpildi mūsu bezmaksas 3 jautājumu testu, un palīdzēsim saprast, kura programma der tev vislabāk.