- YARA omogoča opisovanje družin zlonamerne programske opreme z uporabo prilagodljivih pravil, ki temeljijo na nizih, binarnih vzorcih in lastnostih datotek.
- Dobro zasnovana pravila lahko zaznajo vse od izsiljevalske programske opreme in APT-jev do spletnih lupin in izkoriščanja ničelnega dne v več okoljih.
- Integracija YARA v varnostne kopije, forenzične delovne procese in korporativna orodja krepi obrambo, ki presega tradicionalno protivirusno programsko opremo.
- Skupnost in repozitoriji pravil YARA olajšajo deljenje obveščevalnih podatkov in nenehno izboljšujejo zaznavanje.

¿Kako uporabljati YARA za napredno odkrivanje zlonamerne programske opreme? Ko tradicionalni protivirusni programi dosežejo svoje meje in se napadalci prebijejo skozi vsako možno razpoko, pride v poštev orodje, ki je postalo nepogrešljivo v laboratorijih za odzivanje na incidente: YARA, »švicarski nož« za lov na zlonamerno programsko opremoZasnovan je za opisovanje družin zlonamerne programske opreme z uporabo besedilnih in binarnih vzorcev, kar omogoča veliko več kot le preprosto ujemanje zgoščevalnih vrednosti.
V pravih rokah YARA ni namenjena le iskanju ne le znanih vzorcev zlonamerne programske opreme, temveč tudi nove različice, izkoriščanja ničelnega dne in celo komercialna ofenzivna orodjaV tem članku bomo podrobno in praktično raziskali, kako uporabljati YARA za napredno zaznavanje zlonamerne programske opreme, kako napisati robustna pravila, kako jih testirati, kako jih integrirati v platforme, kot je Veeam, ali v lasten analitični potek dela, in katere najboljše prakse upošteva strokovna skupnost.
Kaj je YARA in zakaj je tako močna pri odkrivanju zlonamerne programske opreme?
YARA je kratica za »še ena rekurzivna kratica« in je postala dejanski standard pri analizi groženj, ker Omogoča opisovanje družin zlonamerne programske opreme z uporabo berljivih, jasnih in zelo prilagodljivih pravil.Namesto da se zanaša izključno na statične protivirusne podpise, YARA deluje z vzorci, ki jih sami definirate.
Osnovna ideja je preprosta: pravilo YARA pregleda datoteko (ali pomnilnik ali podatkovni tok) in preveri, ali je izpolnjena vrsta pogojev. pogoji, ki temeljijo na besedilnih nizih, šestnajstiških zaporedjih, regularnih izrazih ali lastnostih datotekČe je pogoj izpolnjen, gre za »ujemanje« in lahko opozorite, blokirate ali izvedete poglobljeno analizo.
Ta pristop omogoča varnostnim ekipam Prepoznajte in razvrstite zlonamerno programsko opremo vseh vrst: klasične viruse, črve, trojanske konje, izsiljevalsko programsko opremo, spletne lupine, rudarje kriptovalut, zlonamerne makre in še veliko večNi omejen na določene končnice datotek ali formate, zato zazna tudi prikrito izvedljivo datoteko s končnico .pdf ali datoteko HTML, ki vsebuje spletno lupino.
Poleg tega je YARA že integrirana v številne ključne storitve in orodja ekosistema kibernetske varnosti: VirusTotal, peskovniki, kot je Cuckoo, platforme za varnostno kopiranje, kot je Veeam, ali rešitve za iskanje groženj vrhunskih proizvajalcevZato je obvladovanje YARA postalo skoraj obvezno za napredne analitike in raziskovalce.
Napredni primeri uporabe YARA pri odkrivanju zlonamerne programske opreme
Ena od prednosti YARA-e je, da se kot rokavica prilagaja številnim varnostnim scenarijem, od SOC do laboratorija za zlonamerno programsko opremo. Ista pravila veljajo tako za enkratne love kot za stalno spremljanje..
Najbolj neposreden primer vključuje ustvarjanje posebna pravila za določeno zlonamerno programsko opremo ali celotne družineČe vašo organizacijo napada kampanja, ki temelji na znani družini (na primer trojanski konj za oddaljeni dostop ali grožnja APT), lahko profilirate značilne nize in vzorce ter ustvarite pravila, ki hitro prepoznajo nove povezane vzorce.
Druga klasična uporaba je v središču pozornosti YARA na podlagi podpisovTa pravila so zasnovana za iskanje zgoščevalnih vrednosti (hash), zelo specifičnih besedilnih nizov, delčkov kode, ključev registra ali celo specifičnih zaporedij bajtov, ki se ponavljajo v več različicah iste zlonamerne programske opreme. Vendar ne pozabite, da če iščete le trivialne nize, tvegate lažno pozitivne rezultate.
YARA blesti tudi pri filtriranju po vrste datotek ali strukturne značilnostiUstvariti je mogoče pravila, ki veljajo za izvedljive datoteke PE, pisarniške dokumente, PDF-je ali praktično katero koli obliko zapisa, tako da nize kombinirate z lastnostmi, kot so velikost datoteke, določene glave (npr. 0x5A4D za izvedljive datoteke PE) ali sumljivi uvozi funkcij.
V sodobnem okolju je njegova uporaba povezana z obveščevalne podatke o grožnjahJavna skladišča, raziskovalna poročila in viri IOC se prevedejo v pravila YARA, ki so integrirana v SIEM, EDR, platforme za varnostno kopiranje ali peskovnike. To organizacijam omogoča, da hitro odkrivanje novih groženj, ki imajo skupne značilnosti z že analiziranimi kampanjami.
Razumevanje sintakse pravil YARA
Sintaksa jezika YARA je precej podobna sintaksi jezika C, vendar na enostavnejši in bolj osredotočen način. Vsako pravilo je sestavljeno iz imena, neobveznega razdelka z metapodatki, razdelka z nizi in nujno razdelka s pogojem.Od tu naprej je moč v tem, kako vse to združiš.
Prvi je ime pravilaMora biti takoj za ključno besedo izreči (o pravilo Če dokumentirate v španščini, čeprav bo ključna beseda v datoteki izrečiin mora biti veljaven identifikator: brez presledkov, brez številk in brez podčrtaja. Priporočljivo je upoštevati jasno konvencijo, na primer nekaj takega Različica družine zlonamerne programske opreme o Orodje_Akter_APT, kar vam omogoča, da na prvi pogled prepoznate, kaj naj bi zaznal.
Sledi razdelek strunekjer določite vzorce, ki jih želite iskati. Tukaj lahko uporabite tri glavne tipe: besedilni nizi, šestnajstiška zaporedja in regularni izraziBesedilni nizi so idealni za človeku berljive delčke kode, URL-je, notranja sporočila, imena poti ali PDB-je. Šestnajstiški zapisi omogočajo zajemanje surovih bajtnih vzorcev, kar je zelo uporabno, ko je koda zakrita, vendar ohrani določena konstantna zaporedja.
Regularni izrazi zagotavljajo prilagodljivost, ko morate zajeti majhne spremembe v nizu, kot so spreminjanje domen ali nekoliko spremenjeni deli kode. Poleg tega tako nizi kot regularni izrazi omogočajo, da ubežniki predstavljajo poljubne bajte., kar odpira vrata zelo natančnim hibridnim vzorcem.
Oddelek stanje Je edini obvezni in določa, kdaj se pravilo šteje za "ujemanje" z datoteko. Tam se uporabljajo logične in aritmetične operacije (in, ali, ne, +, -, *, /, kateri koli, vse, vsebuje itd.) za izražanje natančnejše logike zaznavanja kot preprosto "če se ta niz pojavi".
Na primer, lahko določite, da je pravilo veljavno le, če je datoteka manjša od določene velikosti, če so prisotni vsi kritični nizi ali če je prisoten vsaj eden od več nizov. Kombinirate lahko tudi pogoje, kot so dolžina niza, število zadetkov, specifični odmiki v datoteki ali velikost same datoteke.Ustvarjalnost tukaj naredi razliko med generičnimi pravili in kirurškimi odkrivanji.
Končno imate neobvezni razdelek metaIdealno za dokumentiranje obdobja. Običajno je, da se vključi avtor, datum nastanka, opis, interna različica, sklic na poročila ali zahteve in na splošno vse informacije, ki pomagajo ohranjati repozitorij organiziran in razumljiv za druge analitike.
Praktični primeri naprednih pravil YARA
Da bi vse zgoraj navedeno postavili v perspektivo, je koristno videti, kako je strukturirano preprosto pravilo in kako postane bolj zapleteno, ko pridejo v poštev izvedljive datoteke, sumljivi uvozi ali ponavljajoča se zaporedja ukazov. Začnimo z ravnilom za igrače in postopoma povečujemo velikost..
Minimalno pravilo lahko vsebuje le niz in pogoj, zaradi katerega je obvezno. Na primer, lahko iščete določen besedilni niz ali zaporedje bajtov, ki predstavlja fragment zlonamerne programske opreme. Pogoj bi v tem primeru preprosto navedel, da je pravilo izpolnjeno, če se ta niz ali vzorec pojavi., brez nadaljnjih filtrov.
Vendar pa v resničnem svetu to ne uspe, ker Preproste verige pogosto ustvarijo veliko lažno pozitivnih rezultatovZato je običajno kombinirati več nizov (besedilnih in šestnajstiških) z dodatnimi omejitvami: da datoteka ne presega določene velikosti, da vsebuje določene glave ali da se aktivira le, če je najden vsaj en niz iz vsake definirane skupine.
Tipičen primer v analizi izvedljivih datotek PE vključuje uvoz modula pe iz YARA, ki vam omogoča poizvedovanje po notranjih lastnostih binarne datoteke: uvoženih funkcijah, razdelkih, časovnih žigih itd. Napredno pravilo lahko zahteva uvoz datoteke CreateProcess iz Kernel32.dll in nekaj funkcij HTTP iz datoteka wininet.dll, poleg tega pa vsebuje tudi določen niz, ki kaže na zlonamerno vedenje.
Ta vrsta logike je idealna za iskanje Trojanci z možnostmi oddaljene povezave ali izstopatudi ko se imena datotek ali poti spreminjajo med kampanjami. Pomembno je, da se osredotočimo na osnovno vedenje: ustvarjanje procesov, zahteve HTTP, šifriranje, vztrajnost itd.
Druga zelo učinkovita tehnika je pogled na zaporedja navodil, ki se ponavljajo med vzorci iz iste družine. Tudi če napadalci zapakirajo ali zakrijejo binarno datoteko, pogosto ponovno uporabijo dele kode, ki jih je težko spremeniti. Če po statični analizi najdete konstantne bloke ukazov, lahko oblikujete pravilo z nadomestni znaki v šestnajstiških nizih ki zajame ta vzorec, hkrati pa ohranja določeno toleranco.
S temi pravili, ki temeljijo na vedenju kode, je mogoče sledite celotnim kampanjam zlonamerne programske opreme, kot so kampanje PlugX/Korplug ali druge družine APTNe zaznate le določenega zgoščenega koda, ampak se lotite, tako rekoč, razvojnega sloga napadalcev.
Uporaba YARA v resničnih kampanjah in grožnjah ničtega dne
YARA se je izkazala za še posebej uporabno na področju naprednih groženj in izkoriščanja zero-day izkoriščanja, kjer klasični zaščitni mehanizmi pridejo prepozno. Znan primer je uporaba YARA za iskanje izkoriščanja v Silverlightu na podlagi minimalnih razkritih obveščevalnih podatkov..
V tem primeru so iz e-poštnih sporočil, ukradenih podjetju, ki se ukvarja z razvojem ofenzivnih orodij, izpeljali dovolj vzorcev za izdelavo pravila, usmerjenega v določeno zlorabo. S tem enim samim pravilom so raziskovalci lahko izsledili vzorec skozi morje sumljivih datotek.Prepoznajte izkoriščanje in ga prisilite k odpravljanju napak, s čimer preprečite veliko resnejšo škodo.
Te vrste zgodb ponazarjajo, kako lahko YARA deluje kot ribiška mreža v morju datotekPredstavljajte si svoje poslovno omrežje kot ocean, poln "rib" (datotek) vseh vrst. Vaša pravila so kot predelki v vlečni mreži: vsak predelek vsebuje ribe, ki ustrezajo določenim značilnostim.
Ko končaš z vlečenjem, imaš vzorci, razvrščeni po podobnosti z določenimi družinami ali skupinami napadalcev: »podobno vrsti X«, »podobno vrsti Y« itd. Nekateri od teh vzorcev so vam morda popolnoma novi (nove binarne datoteke, nove kampanje), vendar se ujemajo z znanim vzorcem, kar pospeši vašo klasifikacijo in odziv.
Da bi v tem kontekstu kar najbolje izkoristile YARA, številne organizacije združujejo moči napredno usposabljanje, praktični laboratoriji in nadzorovana eksperimentalna okoljaObstajajo visoko specializirani tečaji, posvečeni izključno umetnosti pisanja dobrih pravil, pogosto na podlagi resničnih primerov kibernetske vohunjenja, v katerih študenti vadijo z avtentičnimi vzorci in se učijo iskati "nekaj", tudi če ne vedo natančno, kaj iščejo.
Integrirajte YARA v platforme za varnostno kopiranje in obnovitev
Eno področje, kjer se YARA odlično ujema in ki pogosto ostane nekoliko neopaženo, je zaščita varnostnih kopij. Če so varnostne kopije okužene z zlonamerno programsko opremo ali izsiljevalsko programsko opremo, lahko obnovitev ponovno zažene celotno kampanjo.Zato so nekateri proizvajalci motorje YARA vključili neposredno v svoje rešitve.
Začetek delovanja platform za varnostno kopiranje naslednje generacije Seje analize na podlagi pravil YARA na obnovitvenih točkahCilj je dvojen: najti zadnjo »čisto« točko pred incidentom in odkriti zlonamerno vsebino, skrito v datotekah, ki je morda niso sprožili drugi pregledi.
V teh okoljih tipičen postopek vključuje izbiro možnosti »Skenirajte obnovitvene točke z ravnilom YARA"med konfiguracijo analitičnega opravila. Nato se določi pot do datoteke s pravili (običajno s končnico .yara ali .yar), ki je običajno shranjena v konfiguracijski mapi, specifični za rešitev varnostnega kopiranja."
Med izvajanjem mehanizem iterira skozi objekte, ki jih vsebuje kopija, uporabi pravila in Vse tekme beleži v poseben dnevnik analize YARA.Skrbnik si lahko te dnevnike ogleda iz konzole, pregleda statistiko, vidi, katere datoteke so sprožile opozorilo, in celo izsledi, katerim računalnikom in določenemu datumu ustreza posamezno ujemanje.
To integracijo dopolnjujejo drugi mehanizmi, kot so odkrivanje anomalij, spremljanje velikosti varnostnih kopij, iskanje določenih IOC-jev ali analiza sumljivih orodijKo pa gre za pravila, prilagojena določeni družini ali kampanji izsiljevalske programske opreme, je YARA najboljše orodje za izboljšanje tega iskanja.
Kako preizkusiti in potrditi pravila YARA, ne da bi pri tem porušili svoje omrežje

Ko začnete pisati svoja pravila, je naslednji ključni korak, da jih temeljito preizkusite. Preveč agresivno pravilo lahko povzroči poplavo lažno pozitivnih rezultatov, preveč ohlapno pa lahko pusti, da se resnične grožnje izmuznejo skozi.Zato je faza testiranja prav tako pomembna kot faza pisanja.
Dobra novica je, da vam za to ni treba vzpostaviti laboratorija, polnega delujoče zlonamerne programske opreme, in okužiti polovice omrežja. Repozitoriji in nabori podatkov, ki ponujajo te informacije, že obstajajo. znani in nadzorovani vzorci zlonamerne programske opreme za raziskovalne nameneTe vzorce lahko prenesete v izolirano okolje in jih uporabite kot testno okolje za svoja pravila.
Običajni pristop je, da začnete z lokalnim zagonom programa YARA iz ukazne vrstice v imeniku, ki vsebuje sumljive datoteke. Če se vaša pravila ujemajo tam, kjer bi se morala, in se v čistih datotekah komaj kaj pokvarijo, ste na pravi poti.Če sprožijo preveč, je čas za pregled nizov, izboljšanje pogojev ali uvedbo dodatnih omejitev (velikost, uvozi, odmiki itd.).
Druga ključna točka je zagotoviti, da vaša pravila ne ogrožajo zmogljivosti. Pri skeniranju velikih imenikov, popolnih varnostnih kopij ali obsežnih zbirk vzorcev, Slabo optimizirana pravila lahko upočasnijo analizo ali porabijo več virov, kot je želeno.Zato je priporočljivo meriti čase, poenostaviti zapletene izraze in se izogibati pretirano težkim regularnim izrazom.
Po opravljeni fazi laboratorijskega testiranja boste lahko Spodbujanje pravil v produkcijsko okoljeNe glede na to, ali gre za vaš SIEM, vaše varnostne sisteme, e-poštne strežnike ali kamor koli jih želite integrirati. In ne pozabite na vzdrževanje stalnega cikla pregledovanja: ko se kampanje razvijajo, bodo vaša pravila potrebovala občasne prilagoditve.
Orodja, programi in potek dela z YARO

Poleg uradne binarne datoteke so številni strokovnjaki razvili manjše programe in skripte okoli YARA, da bi olajšali njeno vsakodnevno uporabo. Tipičen pristop vključuje ustvarjanje aplikacije za sestavite svoj varnostni komplet ki samodejno prebere vsa pravila v mapi in jih uporabi za mapo za analizo.
Te vrste doma narejenih orodij običajno delujejo s preprosto strukturo imenikov: ena mapa za pravila, prenesena z interneta (na primer »rulesyar«) in drugo mapo za sumljive datoteke, ki bodo analizirane (na primer »zlonamerna programska oprema«). Ko se program zažene, preveri, ali obe mapi obstajata, na zaslonu prikaže pravila in se pripravi na izvajanje.
Ko pritisnete gumb, kot je "Začni preverjanjeAplikacija nato zažene izvedljivo datoteko YARA z želenimi parametri: skeniranje vseh datotek v mapi, rekurzivna analiza poddirektorjev, izpis statističnih podatkov, izpis metapodatkov itd. Vsa ujemanja so prikazana v oknu z rezultati, ki označujejo, katera datoteka ustreza kateremu pravilu.
Ta potek dela omogoča na primer odkrivanje težav v seriji izvoženih e-poštnih sporočil. zlonamerne vdelane slike, nevarne priloge ali spletne lupine, skrite v na videz neškodljivih datotekahŠtevilne forenzične preiskave v korporativnih okoljih se zanašajo prav na tovrstni mehanizem.
Kar zadeva najbolj uporabne parametre pri klicanju YARA, izstopajo možnosti, kot so naslednje: -r za rekurzivno iskanje, -S za prikaz statistike, -m za ekstrahiranje metapodatkov in -w za prezrtje opozorilZ združevanjem teh zastavic lahko prilagodite delovanje svojemu primeru: od hitre analize v določenem imeniku do popolnega skeniranja kompleksne strukture map.
Najboljše prakse pri pisanju in vzdrževanju pravil YARA
Da preprečite, da bi vaše skladišče pravil postalo neobvladljiva zmešnjava, je priporočljivo uporabiti vrsto najboljših praks. Prvo je delo z doslednimi predlogami in konvencijami poimenovanjatako da lahko vsak analitik na prvi pogled razume, kaj vsako pravilo počne.
Številne ekipe uporabljajo standardni format, ki vključuje glava z metapodatki, oznakami, ki označujejo vrsto grožnje, akterja ali platformo, in jasnim opisom zaznanegaTo pomaga ne le interno, ampak tudi, ko delite pravila s skupnostjo ali prispevate k javnim repozitorijem.
Drugo priporočilo je, da si vedno zapomnite, da YARA je le še ena plast obrambeNe nadomešča protivirusne programske opreme ali EDR, temveč ju dopolnjuje v strategijah za Zaščitite svoj računalnik z operacijskim sistemom WindowsV idealnem primeru bi se moral YARA ujemati s širšimi referenčnimi okviri, kot je okvir NIST, ki obravnava tudi identifikacijo, zaščito, odkrivanje, odzivanje in obnovo sredstev.
S tehničnega vidika se splača nameniti čas izogibajte se lažnim pozitivnim rezultatomTo vključuje izogibanje preveč generičnim nizom, kombiniranje več pogojev in uporabo operatorjev, kot je vse od o kateri koli od Uporabite svojo glavo in izkoristite strukturne lastnosti datoteke. Bolj ko je logika, ki obdaja delovanje zlonamerne programske opreme, tem bolje.
Nenazadnje ohranite disciplino različice in redni pregled To je ključnega pomena. Družine zlonamerne programske opreme se razvijajo, kazalniki se spreminjajo in pravila, ki delujejo danes, lahko ne uspejo ali postanejo zastarela. Redno pregledovanje in izpopolnjevanje nabora pravil je del igre mačke in miši na področju kibernetske varnosti.
Skupnost YARA in razpoložljivi viri
Eden glavnih razlogov, zakaj je YARA prišla tako daleč, je moč njene skupnosti. Raziskovalci, varnostna podjetja in odzivne ekipe z vsega sveta nenehno delijo pravila, primere in dokumentacijo.ustvarjanje zelo bogatega ekosistema.
Glavna referenčna točka je Uradni repozitorij YARA na GitHubuTam boste našli najnovejše različice orodja, izvorno kodo in povezave do dokumentacije. Od tam lahko spremljate napredek projekta, poročate o težavah ali po želji prispevate k izboljšavam.
Uradna dokumentacija, ki je na voljo na platformah, kot je ReadTheDocs, ponuja popoln vodnik po sintaksi, razpoložljivi moduli, primeri pravil in reference za uporaboJe bistven vir za izkoriščanje najnaprednejših funkcij, kot so PE inšpekcija, ELF, pravila pomnilnika ali integracije z drugimi orodji.
Poleg tega obstajajo skupnostni repozitoriji pravil in podpisov YARA, kjer analitiki z vsega sveta Objavljajo zbirke, ki so že pripravljene za uporabo, ali zbirke, ki jih je mogoče prilagoditi vašim potrebam.Ta skladišča običajno vključujejo pravila za določene družine zlonamerne programske opreme, komplete za izkoriščanje, zlonamerno uporabljena orodja za testiranje vdorov, spletne lupine, rudarje kriptovalut in še veliko več.
Vzporedno številni proizvajalci in raziskovalne skupine ponujajo Specifično usposabljanje pri YARA, od osnovnih stopenj do zelo naprednih tečajevpogosto z virtualnimi laboratoriji in praktičnimi vajami, ki temeljijo na primerih iz resničnega sveta. Nekatere od teh pobud so celo brezplačno na voljo neprofitnim organizacijam ali subjektom, ki so še posebej ranljivi za ciljno usmerjene napade.
Celoten ekosistem pomeni, da lahko z malo predanosti preidete od pisanja prvih osnovnih pravil do razviti sofisticirane pakete, ki so sposobni slediti kompleksnim kampanjam in odkrivati neprimerljive grožnjeZ združitvijo YARA s tradicionalnim protivirusnim programom, varnim varnostnim kopiranjem in obveščanjem o grožnjah pa zlonamernim akterjem, ki tavajo po internetu, precej otežite delo.
Glede na vse zgoraj navedeno je jasno, da je YARA veliko več kot le preprost pripomoček ukazne vrstice: je ključni kos v kateri koli napredni strategiji za odkrivanje zlonamerne programske opreme, prilagodljivo orodje, ki se prilagodi vašemu načinu razmišljanja kot analitik in skupni jezik ki povezuje laboratorije, SOC-je in raziskovalne skupnosti po vsem svetu, kar omogoča, da vsako novo pravilo doda še eno plast zaščite pred vse bolj dovršenimi kampanjami.
Navdušen nad tehnologijo že od malih nog. Všeč mi je, da sem na tekočem v sektorju in predvsem to komuniciram. Zato se že vrsto let posvečam komunikaciji na spletnih mestih o tehnologiji in video igrah. Najdete me, da pišem o sistemih Android, Windows, MacOS, iOS, Nintendo ali kateri koli drugi sorodni temi, ki vam pride na misel.