📊 Žurnālfailu (logu) analīze
Žurnālfailu (logu) analīze ir notikumu ierakstu sistemātiska vākšana, korelācija un izvērtēšana, lai savlaicīgi atklātu uzbrukumus, atbalstītu incidentu izmeklēšanu un izpildītu atbilstības prasības. Ceļvedis sešās sadaļās aptver visu procesu - no žurnālu avotiem un formātiem līdz centralizētai SIEM analīzei un uzbrukumu pazīmēm - balstoties uz atzītiem standartiem (NIST SP 800-92, ISO 27001, OWASP). Piemēri ir ilustratīvi un paredzēti mācībām.
Kas ir logu analīze
Log management dzīves cikls - NIST SP 800-92
Žurnālfails (log) ir hronoloģisks ieraksts par notikumiem sistēmā - kurš, kad, no kurienes un ko izdarīja. Logu analīze ir process, kurā šos ierakstus vāc, normalizē un izvērtē, lai atklātu drošības incidentus, atbalstītu izmeklēšanu un izpildītu atbilstības (compliance) prasības. NIST SP 800-92 to apraksta kā nepārtrauktu dzīves ciklu no notikuma ģenerēšanas līdz kontrolētai iznīcināšanai.
Pamatprincips: analizē centralizēti un ārpus pārbaudāmā hosta - kompromitētā sistēmā logiem vairs nevar uzticēties. Analīzes atklājumi atgriezeniski precizē, ko un kā žurnalēt.
Draudu atklāšana
Logi ir galvenais avots uzbrukumu agrīnai pamanīšanai - neizdevušās pieteikšanās, privilēģiju maiņa, anomāls tīkla trafiks.
Izmeklēšana
Incidenta laikā logi rekonstruē notikumu hronoloģiju (timeline) - ko uzbrucējs darīja, kad un cik tālu tika.
Atbilstība
ISO 27001, PCI DSS, NIS2 un GDPR pieprasa logošanu, glabāšanu un regulāru pārskatīšanu kā obligātu kontroli.
Atbildība
Nemainīgi audita ieraksti nodrošina nenoliedzamību (non-repudiation) - kurš subjekts veica kuru darbību.
Darbības pārskats
Kļūdu un veiktspējas logi palīdz noteikt normu (baseline) un pamanīt no tās novirzes.
Ko žurnalēt
Autentifikācija, piekļuves atteikumi, izmaiņas konfigurācijā un tiesībās, administratīvas darbības un kļūdas.
Nelogot jutīgo
Paroles, tokenus, pilnus karšu numurus un nevajadzīgus personas datus logos neraksta (GDPR datu minimizācija) - maskē vai izlaiž.
Signāls pret troksni
Vairāk logu nav labāk - bez normalizācijas un atlases analītiķi noslīkst trokšņa daudzumā. Definē, kas tiešām jāuzrauga.
Vienots laiks
Visiem avotiem - sinhronizēts laiks (NTP) un UTC. Bez tā notikumus no dažādām sistēmām nevar korekti salikt secībā (ISO 27001 A.8.17).
Kur rodas logi un kā tie izskatās
Avotu klasifikācija un izplatītākie formāti
Logi nāk no daudziem slāņiem - operētājsistēmas, tīkla iekārtām, aplikācijām un mākoņa. Lai tos salīdzinātu un korelētu, dažādie formāti tiek normalizēti vienotā shēmā. Strukturēti formāti (JSON) ir mašīnlasāmi un ievērojami atvieglo automātisku analīzi salīdzinājumā ar brīva teksta rindām.
Operētājsistēma
Linux: syslog, journald, /var/log/auth.log, auditd. Windows: Security / System / Application Event Log (EVTX), Sysmon. macOS: Unified Logging (log show), OpenBSM auditd.
Tīkls
Ugunsmūris, IDS/IPS (Suricata, Zeek), proxy, VPN, DNS pieprasījumi, NetFlow / flow logs.
Aplikācijas
Tīmekļa serveris (access / error logs), datubāze, aplikācijas biznesa notikumi - vēlams strukturēti (JSON).
Mākonis un identitāte
AWS CloudTrail, Azure Activity, GCP Audit Logs, VPC flow logs; IdP (Entra ID, Okta) pieteikšanās notikumi.
| Formāts | Tips | Kur sastopams | Piezīmes |
|---|---|---|---|
| Syslog (RFC 5424) | daļēji strukturēts | Linux/Unix, tīkla iekārtas | Standarta protokols pārraidei; satur facility, severity, timestamp, host. |
| JSON | strukturēts | modernās aplikācijas, mākonis | Mašīnlasāms (key-value); vienkārša parsēšana un meklēšana. Ieteicamais formāts. |
| Windows EVTX | strukturēts (binārs) | Windows Event Log | Notikumi ar Event ID; lasa ar wevtutil / Get-WinEvent vai SIEM aģentu. |
| CEF / LEEF | strukturēts | drošības iekārtas, SIEM | Ražotāju neatkarīgi formāti notikumu nodošanai SIEM. |
| W3C / Combined | daļēji strukturēts | nginx, Apache, IIS | Tīmekļa servera access log; lauki fiksētā secībā, parsē ar grok. |
Viens notikums, trīs formāti (ilustratīvi)
# 1) syslog (RFC 5424) - daļēji strukturēts <38>1 2026-06-03T14:22:01.003Z srv-01 sshd 2913 - - Failed password for root from 203.0.113.7 port 51022 ssh2 # 2) nginx combined - tīmekļa access log 203.0.113.7 - - [03/Jun/2026:14:22:01 +0000] "POST /admin/login HTTP/1.1" 401 564 "-" "curl/8.2" # 3) JSON - strukturēts (mašīnlasāms, ieteicams) { "ts": "2026-06-03T14:22:01Z", "host": "srv-01", "event": "auth.failure", "user": "root", "src_ip": "203.0.113.7", "service": "sshd", "outcome": "failure" }
Normalizācija
Dažādu avotu lauki tiek pārveidoti vienotā shēmā (piem., ECS - Elastic Common Schema), lai dažādus logus varētu meklēt un korelēt kopā.
Parsēšana
Brīva teksta rindas sadala laukos ar paraugiem (grok, regex). Strukturēti JSON logi šo soli lielā mērā novērš.
Bagātināšana
Notikumus papildina ar kontekstu: GeoIP pēc IP, aktīva (asset) loma, threat intel reputācija - tas paātrina lēmumu pieņemšanu.
No avota līdz SIEM
Centralizēta vākšana, glabāšana un integritāte
Logu nedrīkst analizēt tikai uz iekārtas, kur tie radās: ja sistēma tiek kompromitēta, uzbrucējs var tos izdzēst vai mainīt. Tāpēc logus pēc iespējas ātrāk nogādā ārpus hosta uz centrālu, tikai-pievienojamu (append-only) glabātuvi, kur tos parsē, indeksē un analizē.
Integritāte: logus nogādā ārpus hosta ātri, glabā append-only / WORM un pārbauda ar jaucējsummām (hash). Glabāšanas termiņš (retention) atbilstoši normatīviem - NIS2 vismaz 12 mēneši, PCI DSS gads. Laiks sinhronizēts (NTP, UTC), citādi notikumus no dažādiem avotiem nevar korekti korelēt.
Centralizācija
Visi logi vienuviet ļauj korelēt notikumus starp sistēmām un pasargā pierādījumus, ja avota iekārta tiek kompromitēta.
Integritāte
Append-only / WORM glabāšana un jaucējsummas (hash) novērš nepamanītu rediģēšanu - būtiski tiesiskai vērtībai.
Retention
Glabāšanas termiņu nosaka normatīvi un izmeklēšanas vajadzības; pēc termiņa - kontrolēta iznīcināšana, ne stihiska dzēšana.
Droša pārraide
Logus sūta pa šifrētu kanālu (syslog over TLS, RFC 5425) ar buferēšanu, lai īslaicīga tīkla kļūme tos nezaudētu.
Kā no datiem iegūst atklājumus
Analīzes tehnikas un Pyramid of Pain
Logu analīze apvieno noteikumos balstītu (signature) atklāšanu ar uzvedības (anomaly) analīzi. David Bianco 'Pyramid of Pain' modelis sakārto indikatorus pēc tā, cik grūti uzbrucējam tos nomainīt: jo augstāk piramīdā balstās atklāšana, jo noturīgāka tā ir.
Pyramid of Pain: labajā pusē - cik viegli uzbrucējam nomainīt indikatoru. Atklāšana pēc uzvedības (TTP, augšā) ir daudz noturīgāka nekā pēc atsevišķas IP vai jaucējsummas (lejā), ko uzbrucējs nomaina viegli.
Signature / noteikumi
Zināmu uzbrukumu paraugi kā meklēšanas noteikumi (piem., Sigma, korelācija). Precīzi, bet pamana tikai zināmo.
Anomāliju atklāšana
Vispirms nosaka normu (baseline), tad meklē novirzes - neierasts laiks, apjoms, ģeogrāfija, retas darbības.
Uzvedības analīze
User & Entity Behavior Analytics - veido katra lietotāja un sistēmas uzvedības profilu un signalizē par tā pārkāpumiem.
Korelācija
Saista notikumus no dažādiem avotiem vienā ainā - piem., neizdevusies pieteikšanās + veiksme + privilēģiju maiņa.
Slieksnis / agregācija
Saskaita notikumus logā - piem., N neizdevušās pieteikšanās minūtē no vienas IP = brute force trauksme.
Hronoloģija (timeline)
Notikumus sakārto laika ass secībā (super-timeline) incidenta rekonstrukcijai - piem., ar Plaso / Timesketch.
Sigma
Ražotāju neatkarīgs atklāšanas noteikumu formāts (YAML). Vienu noteikumu pārveido dažādu SIEM vaicājumos (SPL, KQL, EQL).
MITRE ATT&CK
Uzbrucēju taktiku un tehniku zināšanu bāze. Logu atklājumus piesaista konkrētām tehnikām, lai novērtētu pārklājumu.
Viltus trauksmes
Noteikumi jāregulē (tuning) - pārāk plaši rada viltus pozitīvus un noguruma efektu, pārāk šauri palaiž uzbrukumus garām.
Bagātināšana
Threat intelligence, GeoIP un aktīvu konteksts paaugstina atklājumu precizitāti un paātrina prioritizāciju.
Ko meklēt logos
Tipiskas uzbrukumu pazīmes un atslēgas notikumi
Lielākā daļa uzbrukumu atstāj raksturīgas pēdas žurnālfailos. Tālāk parādīts, kā atpazīt biežākos uzbrukuma posmus operētājsistēmās - Windows (Event ID), Linux (auth.log) un macOS (Unified Logging) - un tīkla telemetrijā (tcpdump, tshark, Zeek), sasaistot tos ar uzbrukuma fāzēm pēc MITRE ATT&CK.
Atsevišķs notikums var būt normāls - pazīme ir to secība un sablīvējums laikā, ko atklāj korelācija. Audita žurnāla notīrīšana (1102) ir anti-forensics signāls.
| Event ID | Avots | Nozīme | Ko pamanīt |
|---|---|---|---|
| 4624 | Security | Veiksmīga pieteikšanās | Logon Type: 2 interaktīvs, 3 tīkls, 10 RDP |
| 4625 | Security | Neizdevusies pieteikšanās | Daudz pēc kārtas no vienas IP = brute force; daudz kontu = password spray |
| 4648 | Security | Pieteikšanās ar tiešiem akreditācijas datiem | runas, lateral movement pazīme |
| 4672 | Security | Piešķirtas īpašas privilēģijas | Administratīva sesija - sasaistīt ar 4624 |
| 4688 | Security | Izveidots jauns process | Komandrindas argumenti (ja iespējots); aizdomīgi vecāku-bērnu procesi |
| 4720 / 4732 | Security | Konts izveidots / pievienots grupai | Privilēģiju eskalācija, persistence |
| 4768 / 4769 | Security | Kerberos TGT / TGS | Kerberoasting, Golden / Silver ticket pazīmes |
| 7045 | System | Instalēts jauns serviss | persistence; neparasts servisa nosaukums vai ceļš |
| 1102 | Security | Audita žurnāls notīrīts | Anti-forensics - gandrīz vienmēr aizdomīgi |
| Sysmon 1/3/11 | Sysmon | Process / tīkls / fails | Detalizēta telemetrija; būtiska EDR-stila atklāšanai |
Viena pazīme trīs operētājsistēmās - neizdevušos pieteikšanos avota meklēšana
─── LINUX · /var/log/auth.log (vai: journalctl -u ssh) ─── Jun 3 14:22:01 srv-01 sshd[2913]: Failed password for root from 203.0.113.7 port 51022 ssh2 Jun 3 14:23:11 srv-01 sshd[2960]: Accepted password for deploy from 203.0.113.7 port 51190 ssh2 # ← veiksme + sudo seko $ grep "Failed password" auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn ─── WINDOWS · Security Event Log (PowerShell) ─── PS> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 200 | Group-Object { $_.Properties[19].Value } | Sort-Object Count -Descending # avota IP pēc 4625 ─── macOS · Unified Logging (log show) ─── $ log show --last 1h --predicate 'process == "sshd" AND eventMessage CONTAINS "Failed"' 2026-06-03 14:22:01.003+0000 sshd: Failed password for root from 203.0.113.7 port 51022 ssh2 $ log show --predicate 'process == "sudo"' --last 30m # sudo / privilēģiju eskalācija
Tīkla telemetrija - C2 sakaru un datu izvešanas pazīmes (tcpdump · tshark · Zeek)
─── tcpdump · pakešu līmenis - savienojumi ar aizdomīgo IP ─── $ tcpdump -ni eth0 'host 203.0.113.7 and tcp port 22' 14:22:01.003 IP 203.0.113.7.51022 > 10.0.0.5.22: Flags [S], seq 0, length 0 14:22:01.004 IP 10.0.0.5.22 > 203.0.113.7.51022: Flags [R.], # atteikts ─── tshark · DNS pieprasījumi - tunelēšanas / exfil pazīme (gari, reti domēni) ─── $ tshark -r capture.pcap -Y "dns.flags.response == 0" -T fields -e dns.qry.name a8f3c1d9e7b2...e9.exfil.example # neparasti garš subdomēns = iespējama DNS tunelēšana ─── Zeek · conn.log - beaconing (regulāri, vienāda izmēra savienojumi uz vienu mērķi) ─── $ cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p duration orig_bytes | sort | uniq -c | sort -rn | head 240 10.0.0.5 198.51.100.9 443 1.01 512 # ← 240 gandrīz identiski savienojumi = iespējams C2 beacon
Brute force / spray
Daudz neizdevušos pieteikšanās (4625 / Failed password). Brute force - viena IP; password spray - viena parole pret daudziem kontiem.
Lateral movement
4624 Type 3 + 4648 starp hostiem, neparastas administratīvas saiknes, attālinātu servisu izmantošana.
Persistence
Jauni servisi (7045), plānoti uzdevumi (4698), cron izmaiņas, jauni konti (4720) - lai saglabātu piekļuvi.
Pēdu slēpšana
Audita žurnāla notīrīšana (1102), iztrūkstoši intervāli, izslēgta logošana - skaidrs anti-forensics signāls.
Datu izvešana
Neparasti liels izejošais apjoms, DNS tunelēšana, savienojumi ar nezināmiem galamērķiem nestandarta laikā.
Tīmekļa uzbrukumi
SQLi / XSS paraugi access logā, 4xx/5xx sablīvējumi, skeneru User-Agent virknes, piekļuve admin ceļiem.
Ekosistēma un atsauces
Rīki, labās prakses un starptautiskie standarti
SIEM
Centralizē, indeksē un korelē logus ar trauksmēm un dashboardiem: Splunk, Elastic Security, Microsoft Sentinel, QRadar, Wazuh, Graylog.
Aģenti / shippers
Vāc un sūta logus uz centru: Filebeat, Winlogbeat, Fluentd / Fluent Bit, rsyslog, syslog-ng, NXLog.
Atklāšanas valodas
Noteikumi un vaicājumi: Sigma (neatkarīgs), Splunk SPL, Microsoft KQL, Elastic EQL; CLI - grep, awk, jq.
Host / IR
Endpoint un izmeklēšana: auditd, Sysmon, osquery; timeline - Plaso / log2timeline, Timesketch.
Centralizē un dublē
Logus nogādā ārpus hosta tūlīt; glabā append-only / WORM ar jaucējsummu pārbaudi.
Sinhronizē laiku
NTP un UTC visiem avotiem - bez tā korelācija starp sistēmām nav uzticama (ISO 27001 A.8.17).
Strukturē (JSON)
Strukturēti logi atvieglo parsēšanu, meklēšanu un automatizāciju; definē vienotu shēmu.
Nelogo noslēpumus
Maskē paroles, tokenus un liekos personas datus (GDPR datu minimizācija).
Regulē trauksmes
Pārskati un piemēro noteikumus, lai mazinātu viltus pozitīvus un trauksmes nogurumu.
Sasaisti ar IR
Atklājumi iet uz incidentu reaģēšanas procesu (NIST SP 800-61) - logi ir tā kurināmais.
Saistība ar NIS2
NIS2 (ES 2022/2555) pieprasa notikumu logošanu, uzraudzību un incidentu atklāšanu; logu glabāšana atbalsta ziņošanas pienākumus.
GDPR
Logi bieži satur personas datus (IP, lietotājvārds) - tiem piemēro datu minimizāciju, glabāšanas termiņus un piekļuves kontroli.
Atruna
Materiāls ir izglītojošs pārskats, nevis standartu pilnais teksts. Konkrētai ieviešanai vienmēr jāskata oficiālais avots.