· 6 min de citit
Analiza malware cu AI: triajul unui dropper de tip script obfuscat
Un flux de triaj malware pas cu pas cu Odin v1: deobfuscezi un dropper, rezumi comportamentul, extragi IOC-uri în JSON, mapezi pe ATT&CK și scrii nota de triaj.
Dropperele de tip script sunt cel mai frecvent lucru pe care un analist de SOC e rugat să-l verifice: un fișier PowerShell sau JavaScript dintr-un atașament de email, câteva straturi de obfuscare și un URL de download la final. Triajul e repetitiv, iar modelele mainstream refuză adesea să deobfuscheze un sample tocmai pentru că e malițios. Odin v1 răspunde direct, ceea ce îl face un asistent practic pentru munca asta. Ghidul de mai jos face triajul unui dropper PowerShell sintetic, de la prima privire până la nota de triaj finală.
Mai întâi, manipulează sample-ul în siguranță
Modelul nu atinge niciodată sample-ul. Tu îl atingi, iar partea asta trebuie făcută corect:
- Lucrează într-un VM de analiză izolat, fără acces la rețea (sau cu o rețea simulată), cu un snapshot făcut înainte să începi și revenire la el după.
- Nu deschide și nu rula niciodată un sample pe host. Scoate din VM text, nu fișiere.
- Fă defang la URL-uri, domenii și IP-uri înainte să iasă din VM (
hxxps://,[.]), ca să nu dea nimeni click pe ele mai târziu. - Calculează hash-urile singur, cu
Get-FileHashsausha256sum. Nu cere unui model să calculeze sau să-și amintească hash-uri.
Odin acceptă doar text, așa că lipești conținutul scriptului, output-ul de la strings sau textul unui raport de sandbox, nu binare, capturi de ecran sau PDF-uri. Prompturile și răspunsurile trimise prin API nu sunt stocate, dar scoate totuși numele clienților și hostname-urile interne de care nu ai nevoie pentru analiză.
Sample-ul
Acesta este un sample sintetic, trunchiat și defanged, scris pentru acest articol. Arată trucuri tipice fără să poată fi rulat:
Pasul 1: deobfuscarea
Dă-i modelului rolul, contextul și exact output-ul pe care îl vrei:
Ești asistentul unui analist de malware. Scriptul de mai jos a fost extras dintr-un atașament de phishing, într-un VM de laborator izolat. Nu executa nimic. Deobfuschează-l static: rezolvă fiecare truc de construire a string-urilor, rescrie scriptul cu nume de variabile lizibile și enumeră fiecare tehnică de obfuscare pe care ai rezolvat-o. Dacă un strat conține date codate pe care nu le poți vedea, spune ce sunt probabil și cum se decodează în siguranță.
Te poți aștepta la un script curățat plus o listă cu trucurile rezolvate: format string-ul -f se reordonează în Net.WebClient, array-ul de caractere 73, 69, 88 înseamnă IEX (Invoke-Expression), iar blob-ul base64 e text UTF-16LE care se execută în memorie. Pentru că aici blob-ul a fost scos, un răspuns bun îți spune să-l decodezi în VM (CyberChef „From Base64”, apoi „Decode text” UTF-16LE) și să lipești rezultatul ca strat următor.
La straturile lungi de base64 sau XOR, decodează local și lipește output-ul. Modelele pot transcrie greșit string-urile codate lungi, pe când un decodor local e exact.
Pasul 2: rezumatul comportamentului
Apoi cere un rezumat al comportamentului pe înțelesul oricui, separând ce face codul de ce face probabil:
Rezumă ce face acest script, în ordinea execuției. Marchează fiecare afirmație ca CONFIRMED (vizibil în cod) sau INFERRED (probabil, dar depinde de conținut pe care nu l-am văzut).
Pentru acest sample, te poți aștepta la: descărcare confirmată a unei a doua etape în %APPDATA%\Microsoft\SyncHost\synchost.ps1 cu un user agent custom, execuția în memorie a unui strat încorporat și persistență printr-un scheduled task la logon, cu fereastră ascunsă. Adresa de fallback și rolul celei de-a doua etape rămân deduse până când decodezi blob-ul. Tocmai împărțirea asta în confirmat și dedus face rezumatul sigur de pus într-un raport.
Pasul 3: extragerea IOC-urilor în JSON
Cere o schemă fixă, ca output-ul să poată merge direct în TIP sau în SIEM:
Când ai zeci de scripturi decodate sau rapoarte de sandbox, treci pe odin-flash. E mai rapid și mai ieftin, iar extragerea de IOC-uri e o sarcină de tipare care nu cere raționament profund. Păstrează odin-v1 (thinking activat implicit, context de 1.000.000 de tokeni) pentru deobfuscare și analiza comportamentului.
Verifică prin sondaj output-ul față de textul sursă. Promptul interzice indicatorii inventați, dar tu ești cel care semnează raportul. Ghidul pentru OpenAI SDK explică configurarea clientului.
Pasul 4: maparea pe MITRE ATT&CK
Cere o mapare în care fiecare tehnică citează linia de cod care o justifică și în care mapările slabe sunt marcate ca atare. Te poți aștepta la ceva de felul acesta:
Contestă tehnicile fără dovezi. Dacă modelul adaugă un application layer protocol pentru C2 înainte să fi văzut vreun cod de beaconing, cere-i să-l mute la „inferred”.
Pasul 5: nota de triaj
La final, dă-i modelului tot ce ai obținut în pașii anteriori și cere o notă în formatul echipei tale:
Detecțiile sunt pasul firesc următor. Ghidul nostru despre reguli Sigma și YARA cu AI acoperă reguli Sigma pentru PowerShell suspect și o regulă YARA pentru această familie fictivă, SyncHost. Dacă vrei să automatizezi tot pipeline-ul cu scripturi, vezi Claude Code pentru tooling de securitate, iar pentru motivul pentru care contează aici un model axat pe securitate, citește cercetare în securitate cu mai puține refuzuri.
Primii pași
Creează o cheie API în consolă și urmează quickstart-ul ca să trimiți prima cerere. Analizează sample-uri doar în medii izolate pe care le controlezi și lucrează în limitele Politicii de utilizare acceptabile.