03 — Praktika

Tyrimo atvejai

Šeši detalūs scenarijai iš realios praktikos. Kiekvienam pateikiama: situacija, žingsninė metodika, įrankių rinkinys, galimi rezultatai ir pavyzdinė tyrimo išvada.

Case 01

Blockchain forensics

Kriptovaliutų pėdsakai per mikserius, biržas ir piniginių klasterius

Scenarijus

DeFi protokolas praranda 2.41M USDT dėl smart contract pažeidžiamumo. Lėšos akimirksniu konvertuojamos į ETH ir per Tornado Cash mikserį pradedamos „skalbti". Užduotis — atkurti pinigų judėjimo kelią, identifikuoti išvedimo taškus ir paruošti KYC užklausą biržoms.

Tyrimo žingsniai

  1. Pradinio piniginės adreso identifikavimas (eksploito tranzakcija)
  2. Adresų klasterizavimas (common-input ownership heuristika)
  3. „Peeling chain" sekimas — smulkesnių pervedimų grandinė
  4. Mikserio depozitų laiko ir denominacijų koreliacija
  5. Išėjimo (off-ramp) taškų identifikavimas — CEX deposit adresai
  6. KYC užklausa per FNTT, Europol kanalus

Galimi rezultatai

  • Adresų klasterio žemėlapis su 87% lėšų sekamumu
  • Identifikuotas išėjimo taškas (Binance, KuCoin deposit ID)
  • KYC duomenys per teisėtus kanalus (paso kopija, IP, sesijos)
  • Tarpinis „mule" agentas, kurio sąskaita naudota išvedimui
  • Funkcijų signatūrų atitikimas su žinomomis Lazarus, FIN7 atakomis

Įrankiai

  • Chainalysis Reactor
  • TRM Labs
  • Crystal Expert
  • Breadcrumbs
  • Etherscan
  • OXT
  • Arkham

Teisinis pagrindas

LR BPK 154, 158 str. · FATF Travel Rule (R.16) · AMLD6 direktyva · Tarptautinė pagalba pagal Budapešto konvenciją.

case://BC-2024-0091.tracing
# Lėšų judėjimo žemėlapis
source:        0x4a1cd8e2  (exploited vault)
stolen:        2,412,890 USDT  # Ethereum mainnet
first_hop:     0x9c33f721  # Uniswap swap to ETH
mixer:        Tornado Cash 100 ETH pool
deposits:     28 tx in 9h 14m  # pattern: 10 ETH x 28

## Off-ramp clusters (post-mixer)
cluster_A:    Binance hot wallet         2,099,514 USDT (87.0%)
cluster_B:    KuCoin deposit               265,418 USDT (11.0%)
cluster_C:    unknown / OTC desk          47,958 USDT ( 2.0%)

## KYC request status
jurisdiction: LT (FNTT) - BVI (Binance)
filed:        2024-08-22 11:04 EET
response:     received 2024-09-01  | passport, IP, session UA
linked_id:    Subject-7193  (see case://NEE-2024-0473)
Case 02

Web atakų forensika

Web shell, WAF apėjimas, plugin pažeidžiamumas ir duomenų eksfiltracija

Scenarijus

E-komercijos platforma (WordPress, WooCommerce) pastebi neįprastą administratoriaus paskyrų skaičių. Klientai praneša, kad atsiskaitymo lange parodomas svetimas mokėjimo langas. Įtariama, kad svetainėje veikia web shell ir suklastota mokėjimų forma (Magecart-style).

Tyrimo žingsniai

  1. Nginx, Apache access ir error logų rinkimas (90 d.)
  2. WAF (ModSecurity, Cloudflare) įvykių koreliacija
  3. Failų sistemos diff — naujai sukurti ar pakeisti PHP failai
  4. YARA signatūrų taikymas web shell aptikimui
  5. Užkratos vektoriaus (CVE) identifikavimas plugin'e
  6. JS injekcijos paieška checkout puslapyje (Magecart skimmer)
  7. DB užklausų analizė — kokie duomenys eksfiltruoti

Galimi rezultatai

  • Tiksli atakos chronologija nuo zero-day iki eksfiltracijos
  • Web shell hash, virš 12 IOC indikatorių
  • Eksfiltruotų kortelių sąrašas (klientų informavimas pagal BDAR)
  • Magecart skimmer C2 endpoint'as ir DOMAIN sąsaja
  • Privilegijų eskalacijos kelias nuo www-data iki root

Įrankiai

  • ELK Stack
  • Wazuh
  • YARA
  • GoAccess
  • Web Shell Detector
  • OWASP ZAP
  • Burp Suite

MITRE ATT&CK

  • T1190 Exploit Public-Facing App
  • T1505.003 Web Shell
  • T1059.004 Unix Shell
  • T1056 Input Capture
nginx/access.log — užkratos akimirka
# Įsibrovimo HTTP užklausa
185.220.101.42 - - [14/Aug/2024:02:17:33 EEST] "POST
  /wp-content/plugins/wpforms-lite/includes/admin/ajax-actions.php
  ?action=wpforms_form_save&data=PD9waHAgZX..."
  200 412
  "-" "ZmEu"

# Po 2 sek. — web shell suaktyvinamas
185.220.101.42 - - [14/Aug/2024:02:17:35 EEST] "GET
  /wp-content/uploads/2024/08/.cache.php?cmd=id"
  200 86

# Magecart skimmer įdiegimas checkout.js
185.220.101.42 - - [14/Aug/2024:02:18:11 EEST] "POST"
  /wp-admin/admin-ajax.php?action=heartbeat"
  200  # inject: cdn-pay[.]net/skim.js

## IOC
shell_sha256: 9f3c1a7e4d2b5c8a6f0e9b4d7a3c1e5f2b8a6d9c7e1f0a4b3d8c5e2f1a9b6d3
skimmer_c2:   cdn-pay[.]net  # registered 6 days before attack
cve:         CVE-2024-10571  (WPForms Lite < 1.9.1)
Case 03

Tinklo srauto forensika

PCAP analizė, C2 beaconing aptikimas, eksfiltracijos sekimas

Scenarijus

SOC analitikas pastebi keistą periodinį TLS srautą iš darbo stoties į 185.220.101.42 kas 67 sekundes. EDR sprendimas nieko nemarkiruoja. Įtariamas fileless C2 beaconing. Prieš išjungiant darbo stotį, padaroma RAM išklotinė ir paimamas pilnas tinklo PCAP iš core switch SPAN porto.

Tyrimo žingsniai

  1. PCAP failo „carve" (Arkime, Moloch)
  2. JA3, JA4 TLS clientHello fingerprintų lyginimas su žinomais
  3. Beaconing intervalų analizė (jitter, sleep skew)
  4. DNS užklausų DGA (Domain Generation Algorithm) aptikimas
  5. Eksfiltracijos „byte volume" anomalijų paieška
  6. C2 infrastruktūros žemėlapis per passive DNS, VirusTotal

Galimi rezultatai

  • Patvirtintas C2 protokolas, raktinis žodis URI
  • JA3 atitikimas Cobalt Strike Malleable C2 profiliui
  • Beacon intervalas: 67 ± 11 s (sleep jitter 16%)
  • Eksfiltruoti ~412 MB per HTTPS POST į kelis CDN
  • Atributacija į žinomą APT (TTP atitikimas 78%)

Įrankiai

  • Wireshark
  • Zeek (Bro)
  • Suricata
  • Arkime
  • NetworkMiner
  • RITA
  • JA4

MITRE ATT&CK

  • T1071.001 Web Protocols
  • T1573 Encrypted Channel
  • T1041 Exfil over C2
  • T1568.002 DGA
zeek/conn.log — beaconing pattern
# Periodiniai beacon prisijungimai (kas ~67 s)
ts=1716042893.21 uid=Co7wxR orig=10.0.42.117 resp=185.220.101.42:443
  proto=tcp duration=8.31s orig_bytes=512 resp_bytes=128
  conn_state=SF history=ShADdaF
  ja3=e7d705a3286e19ea42f587b344ee6865  Cobalt Strike default
  ja3s=ec74a5c51106f0419184d0dd08fb05bc

ts=1716042960.43 uid=Co8axR orig=10.0.42.117 resp=185.220.101.42:443
  duration=7.94s orig_bytes=528 resp_bytes=144
  ja3=e7d705a3286e19ea42f587b344ee6865

## Eksfiltracijos „sprogimas" (00:14:22 UTC)
ts=1716046462.18 uid=Cq9zxR resp=185.220.101.42:443
  duration=412.7s orig_bytes=432,189,440  412 MB uplink
  conn_state=SF

# Statistika
beacons_total: 1,247 over 23h 11m
avg_interval:  67.2s10.8s jitter)
classification: Cobalt Strike Beacon (high confidence)
Case 04

Software forensics ir reverse

Kenkėjiškojo kodo analizė, šifravimo schemos atskleidimas, dekriptoriaus paieška

Scenarijus

Ligoninės darbo stotis užšifruota nežinomu ransomware. Antivirusas signatūros nepažįsta, dekriptorius viešai neegzistuoja. Užduotis — atlikti pilną binarinio failo analizę, identifikuoti šifravimo schemą, nustatyti, ar raktas saugomas vietoje, perduodamas į C2, ar formuojamas determinuotai (galima atvirkščia inžinerija).

Tyrimo žingsniai

  1. Statinė analizė: PE header, sekcijos, eilutės, imports (IDA, Ghidra)
  2. Packer'io aptikimas (DIE, PE-bear) ir unpacking (UPX, custom)
  3. Dinaminė analizė izoliuotoje smėlio dėžėje (Cuckoo, ANY.RUN)
  4. API call trace — CryptoAPI, BCrypt kvietimai
  5. Šifravimo algoritmo ir režimo identifikavimas (Chacha20, AES-CBC)
  6. Raktų valdymo schema: PRNG seed, C2, laikinas raktas
  7. CAPA, YARA signatūrų kūrimas šeimos identifikavimui

Galimi rezultatai

  • Pilna IOC ataskaita (hashes, mutex'ai, kelias, raktai)
  • C2 protokolas dekoduotas — galima konfigūracijos ištrauka
  • Šifravimo schemos diagrama (kaip generuojamas raktas)
  • Atributacija pagal kodo panašumus (Black Basta, LockBit, Akira)
  • Galima dekriptoriaus prielaida (jei naudojamas silpnas PRNG)

Įrankiai

  • IDA Pro
  • Ghidra
  • x64dbg
  • Cuckoo
  • ANY.RUN
  • DIE
  • PE-bear
  • CAPA
  • FLOSS

MITRE ATT&CK

  • T1486 Data Encrypted for Impact
  • T1027 Obfuscated Files
  • T1497.001 Anti-VM
  • T1547.001 Run Keys
capa output — sample.exe
# Anti-analysis
capa: detect virtual machine via CPUID          (T1497.001)
capa: detect debugger via IsDebuggerPresent      (T1622)
capa: check for sandbox via timing-attack        (T1497.003)

# Encryption
capa: encrypt data using ChaCha20                 (T1486)
capa: generate key via CryptGenRandom             # weak seed
capa: encode key in registry HKCU\Software\...           (T1112)

# C2 communication
capa: resolve domain via DNS-over-HTTPS           (T1071.004)
capa: communicate via HTTPS POST                 (T1071.001)
capa: send RSA-encrypted session key

# Persistence
capa: persist via Run registry key                       (T1547.001)
capa: persist via Scheduled Task "AdobeUpdateService" (T1053.005)

# Impact
capa: delete Volume Shadow Copies (vssadmin)              (T1490)
capa: drop ransom note "!HOW_TO_RECOVER.txt"

## Atributacija
rich_header:  matches Black Basta build chain
code_sim:     82% overlap with Akira r3-2024
verdict:      ransomware — variant Akira.B, Black Basta hybrid
Case 05

Atminties (RAM) forensika

Fileless atakos, proceso injekcija, slėpti tinklo prisijungimai

Scenarijus

Įmonės direktoriaus kompiuteris elgiasi neįprastai: lėtas, periodiškai siunčia paketus net tada, kai naršyklė uždaryta. Antivirusas ir EDR — švarūs. Diske įtartinų failų nėra. Tipinis „living off the land" scenarijus, kur kenksmingas kodas egzistuoja tik atmintyje. Padaroma RAM išklotinė per WinPMEM prieš sistemos perkrovimą.

Tyrimo žingsniai

  1. RAM atvaizdo paėmimas (WinPMEM, FTK Imager Lite)
  2. OS profilio identifikavimas (vol3 windows.info)
  3. Procesų medis — pstree, malfind, ldrmodules
  4. Proceso injekcijos paieška (hollow process, DLL injection)
  5. Slėpti tinklo prisijungimai (netscan)
  6. Cmdline ir envars istorija (cmdline, envars)
  7. YARA skenavimas tiesiai per memory (yarascan)

Galimi rezultatai

  • Injekuoto proceso PID ir „parent" (svchost, spoolsv, injected)
  • C2 ryšiai, kurių EDR neaptiko (raw socket)
  • In-memory PowerShell payload (Base64, GZip)
  • Tikras paleistas kodas, kuris skiriasi nuo disko failo (hollowing patvirtinimas)
  • Iškrautas iš RAM pilnas vykdomasis failas (procdump)

Įrankiai

  • Volatility 3
  • MemProcFS
  • Rekall
  • WinPMEM
  • AVML
  • bulk_extractor

MITRE ATT&CK

  • T1055.012 Process Hollowing
  • T1055.001 DLL Injection
  • T1059.001 PowerShell
  • T1620 Reflective Loading
vol3 windows.malfind — injekcija aptikta
# Volatility 3 — proceso injekcijos požymiai
$ vol3 -f mem.raw windows.malfind

PID    Process       Start VPN      End VPN     Tag   Protection
----   -------       ---------      -------     ---   ----------
1240   svchost.exe   0x1f0000       0x1ffffff   VadS  PAGE_EXECUTE_READWRITE
       # Disassembly preview:
       0x1f0000  e8 00 00 00 00     call 0x1f0005
       0x1f0005  58                  pop  rax
       0x1f0006  48 83 c0 12         add  rax, 0x12
       0x1f000a  48 31 c9            xor  rcx, rcx
       # Hallmark of reflective loader, Cobalt Strike beacon

$ vol3 -f mem.raw windows.netscan
Proto  Local Addr           Foreign Addr        State        Owner
-----  ----------           ------------        -----        -----
TCP    10.0.42.117:51234    185.220.101.42:443  ESTABLISHED  svchost.exe (1240)
       # But EDR shows no network activity for PID 1240 — hidden

$ vol3 -f mem.raw windows.cmdline --pid 1240
PID    Process       CommandLine
----   -------       -----------
1240   svchost.exe   C:\Windows\System32\svchost.exe -k netsvcs -p -s Schedule
                     legitimate command line — but executable image differs

$ vol3 -f mem.raw windows.dumpfiles --pid 1240
dumped 1240.svchost.exe.bin (SHA256: a7c3…f902)
# Hash NOT matching legitimate svchost.exe — confirmed process hollowing
Case 06

Mobiliųjų prietaisų forensika

Stalkerware aptikimas, šnipinėjimo programų analizė, GPS pėdsakai

Scenarijus

Smurto auka įtaria, kad jos buvęs partneris seka jos buvimo vietą realiu laiku ir mato susirašinėjimą. Telefone (Android 14) nematyti įtartinų aplikacijų, bet baterija išsenka per 6 valandas, įrenginys įkaista. Užduotis — atlikti telefono forensinį tyrimą ir paruošti įrodymus prokuratūrai dėl privataus gyvenimo neliečiamumo pažeidimo (LR BK 167 str.).

Tyrimo žingsniai

  1. Loginis nuskaitymas su aukos sutikimu (Cellebrite, MOBILedit)
  2. Įdiegtų aplikacijų inventorizacija (įsk. system-level)
  3. Slėpto „launcher'io" be ikonos paieška
  4. Pranešimų ir „accessibility service" leidimų analizė
  5. GPS, lokacijos istorija (Google, Android sistemos logai)
  6. WhatsApp, Signal duomenų bazės dekriptavimas
  7. Stalkerware signatūrų taikymas (mvt-android)
  8. Tinklo srauto analizė per VPN proxy (jei galima)

Galimi rezultatai

  • Stalkerware aplikacijos identifikavimas, kūrėjo URL
  • Diegimo data ir aplinkybės (USB debugging, sideload)
  • Eksfiltracijos kanalas — C2 serverio adresas
  • Aukos lokacijos taškų sąrašas, perduotų stalkeriui
  • Galimas atakuotojo identifikavimas per C2, pay-per-use paskyrą

Įrankiai

  • Cellebrite UFED
  • MSAB XRY
  • Magnet AXIOM
  • Oxygen Forensic
  • MVT (Mobile Verification Toolkit)
  • Andriller
  • iLEAPP, ALEAPP

Teisinis pagrindas

LR BK 167 str. (privataus gyvenimo neliečiamumas) · 168 str. (informacijos neteisėtas rinkimas) · BPK 158 str. (objektų apžiūra) · Eksperto skyrimas pagal BPK 84 str.

mvt-android scan — stalkerware aptiktas
# Mobile Verification Toolkit — Android scan results
$ mvt-android check-backup --output ./case-mobile-06 backup/

## Įdiegtų aplikacijų patikra (suspicious)
[!] Detected app: com.qoolsoft.androidsystemwebview
    name:        "Android System WebView"  # spoofed
    real_pkg:    not from Google Play
    install:     2024-02-14 21:33 EET  # installed via adb sideload
    permissions: ACCESS_FINE_LOCATION, RECORD_AUDIO, READ_SMS,
                 READ_CONTACTS, READ_CALL_LOG, BIND_ACCESSIBILITY
    launcher_icon: hidden
    matches:     mvAndroidStalkerware:FlexiSPY rule

## SafetyNet, Play Protect bypass
[!] Device Owner: "com.qoolsoft.androidsystemwebview"
    # App promoted to device admin — cannot be uninstalled normally

## Tinklo srautas (paskutinės 24 val.)
domain: api.flexispyclient[.]com          1,247 prisijungimai
domain: geo-tracker-cdn[.]net            8,932 POST užklausų
total_exfil: 147 MB (audio, SMS, GPS, contacts)

## Išvada
verdict:    commercial stalkerware (FlexiSPY-family)
vector:     fizinis prieigos langas, USB sideload
evidence:   tinkama BPK 158 str. apžiūros aktui
recommend:  KYC užklausa FlexiSPY (UK) per Europol