- YARA tillåter beskrivning av familjer av skadlig kod med hjälp av flexibla regler baserade på strängar, binära mönster och filegenskaper.
- Väl utformade regler kan upptäcka allt från ransomware och APT:er till webshells och zero-day exploits i flera miljöer.
- Att integrera YARA i säkerhetskopior, forensiska arbetsflöden och företagsverktyg stärker försvaret utöver traditionell antivirusprogramvara.
- YARA-communityn och regeldatabaserna gör det enkelt att dela information och kontinuerligt förbättra upptäckten.

¿Hur använder man YARA för avancerad upptäckt av skadlig kod? När traditionella antivirusprogram når sina gränser och angripare slinker igenom alla möjliga sprickor, kommer ett verktyg som har blivit oumbärligt i incidenthanteringslabb till användning: YARA, den "schweiziska kniven" för att jaga skadlig kodDen är utformad för att beskriva familjer av skadlig programvara med hjälp av textuella och binära mönster, och möjliggör att gå långt bortom enkel hashmatchning.
I rätt händer är YARA inte bara till för att hitta inte bara kända exempel på skadlig kod, utan även nya varianter, zero-day exploits och till och med kommersiella offensiva verktygI den här artikeln utforskar vi på djupet och i praktiken hur man använder YARA för avancerad upptäckt av skadlig kod, hur man skriver robusta regler, hur man testar dem, hur man integrerar dem i plattformar som Veeam eller ditt eget analysarbetsflöde, och vilka bästa praxis yrkesgemenskapen följer.
Vad är YARA och varför är det så kraftfullt på att upptäcka skadlig kod?
YARA står för ”Yet Another Recursive Acronym” och har blivit en de facto standard inom hotanalys eftersom Det gör det möjligt att beskriva familjer av skadlig kod med hjälp av läsbara, tydliga och mycket flexibla regler.Istället för att enbart förlita sig på statiska antivirussignaturer arbetar YARA med mönster som du själv definierar.
Grundidén är enkel: en YARA-regel undersöker en fil (eller ett minne eller en dataström) och kontrollerar om en rad villkor är uppfyllda. villkor baserade på textsträngar, hexadecimala sekvenser, reguljära uttryck eller filegenskaperOm villkoret är uppfyllt finns det en "matchning" och du kan varna, blockera eller utföra en mer djupgående analys.
Denna metod gör det möjligt för säkerhetsteam Identifiera och klassificera skadlig kod av alla typer: klassiska virus, maskar, trojaner, ransomware, webshells, kryptominers, skadliga makron och mycket mer.Den är inte begränsad till specifika filändelser eller format, så den upptäcker även en förklädd körbar fil med filändelsen .pdf eller en HTML-fil som innehåller ett webshell.
Dessutom är YARA redan integrerat i många viktiga tjänster och verktyg i cybersäkerhetsekosystemet: VirusTotal, sandlådor som Cuckoo, säkerhetskopieringsplattformar som Veeam eller hotjaktlösningar från topptillverkareDärför har det blivit nästan ett krav för avancerade analytiker och forskare att behärska YARA.
Avancerade användningsfall av YARA för detektering av skadlig kod
En av YARAS styrkor är att den anpassar sig perfekt till flera säkerhetsscenarier, från SOC till skadlig programvara. Samma regler gäller för både engångsjakter och kontinuerlig övervakning..
Det mest direkta fallet handlar om att skapa specifika regler för specifik skadlig kod eller hela familjerOm din organisation attackeras av en kampanj baserad på en känd familj (till exempel en fjärråtkomsttrojan eller ett APT-hot) kan du profilera karakteristiska strängar och mönster och skapa regler som snabbt identifierar nya relaterade exempel.
En annan klassisk användning är fokus för YARA baserat på signaturerDessa regler är utformade för att lokalisera hashkoder, mycket specifika textsträngar, kodavsnitt, registernycklar eller till och med specifika bytesekvenser som upprepas i flera varianter av samma skadliga programvara. Tänk dock på att om du bara söker efter triviala strängar riskerar du att generera falska positiva resultat.
YARA lyser också upp när det gäller filtrering efter filtyper eller strukturella egenskaperDet är möjligt att skapa regler som gäller för PE-körbara filer, Office-dokument, PDF-filer eller praktiskt taget vilket format som helst, genom att kombinera strängar med egenskaper som filstorlek, specifika rubriker (t.ex. 0x5A4D för PE-körbara filer) eller import av misstänkta funktioner.
I moderna miljöer är dess användning kopplad till intelligens av amenazasPublika arkiv, forskningsrapporter och IOC-flöden översätts till YARA-regler som integreras i SIEM, EDR, säkerhetskopieringsplattformar eller sandlådor. Detta gör det möjligt för organisationer att snabbt upptäcka nya hot som delar egenskaper med kampanjer som redan analyserats.
Förstå syntaxen för YARA-regler
YARAS syntax är ganska lik den i C, men på ett enklare och mer fokuserat sätt. Varje regel består av ett namn, ett valfritt metadataavsnitt, ett strängavsnitt och nödvändigtvis ett villkorsavsnitt.Från och med nu ligger kraften i hur du kombinerar allt detta.
Den första är regelnamnDet måste stå precis efter sökordet härska (o regla Om du dokumenterar på spanska, även om nyckelordet i filen kommer att vara härskaoch måste vara en giltig identifierare: inga mellanslag, inga siffror och inga understreck. Det är en bra idé att följa en tydlig konvention, till exempel något i stil med Variant av familjen_av_skadlig_programvara o APT_Actor_Tool, vilket gör att du med en snabb blick kan identifiera vad den är avsedd att detektera.
Nästa kommer avsnittet strängardär du definierar de mönster du vill söka efter. Här kan du använda tre huvudtyper: textsträngar, hexadecimala sekvenser och reguljära uttryckTextsträngar är idealiska för läsbara kodavsnitt, URL:er, interna meddelanden, sökvägsnamn eller PDB:er. Hexadecimaler låter dig fånga råa bytemönster, vilket är mycket användbart när koden är obfuskerad men behåller vissa konstanta sekvenser.
Reguljära uttryck ger flexibilitet när du behöver täcka små variationer i en sträng, till exempel att ändra domäner eller något ändrade delar av kod. Dessutom tillåter både strängar och regex att escape-tecken representerar godtyckliga byte., vilket öppnar dörren för mycket exakta hybridmönster.
avsnitt tillstånd Det är den enda obligatoriska och definierar när en regel anses "matcha" en fil. Där använder du booleska och aritmetiska operationer (och, eller, inte, +, -, *, /, någon, alla, innehåller, etc.) för att uttrycka en finare detekteringslogik än ett enkelt "om den här strängen visas".
Du kan till exempel ange att regeln endast är giltig om filen är mindre än en viss storlek, om alla kritiska strängar visas eller om minst en av flera strängar finns. Du kan också kombinera villkor som stränglängd, antal träffar, specifika förskjutningar i filen eller storleken på själva filen.Kreativitet här gör skillnaden mellan generiska regler och kirurgiska detektioner.
Slutligen har du det valfria avsnittet metaPerfekt för att dokumentera perioden. Det är vanligt att inkludera författare, skapandedatum, beskrivning, intern version, referens till rapporter eller ärenden och, i allmänhet, all information som hjälper till att hålla arkivet organiserat och begripligt för andra analytiker.
Praktiska exempel på avancerade YARA-regler
För att sätta allt ovanstående i perspektiv är det bra att se hur en enkel regel är strukturerad och hur den blir mer komplex när körbara filer, misstänkta importer eller repetitiva instruktionssekvenser kommer in i bilden. Låt oss börja med en leksakslinjal och gradvis öka storleken..
En minimal regel kan bara innehålla en sträng och ett villkor som gör den obligatorisk. Du kan till exempel söka efter en specifik textsträng eller en bytesekvens som representerar ett fragment av skadlig kod. Villkoret skulle i så fall helt enkelt ange att regeln är uppfylld om den strängen eller det mönstret visas., utan ytterligare filter.
Men i verkliga situationer är detta inte tillräckligt bra, eftersom Enkla kedjor genererar ofta många falska positiva resultatDärför är det vanligt att kombinera flera strängar (text och hexadecimal) med ytterligare begränsningar: att filen inte överskrider en viss storlek, att den innehåller specifika rubriker eller att den bara aktiveras om minst en sträng från varje definierad grupp hittas.
Ett typiskt exempel på PE-analys av körbara komponenter innebär att importera modulen pe från YARA, vilket låter dig fråga efter interna egenskaper hos binärfilen: importerade funktioner, sektioner, tidsstämplar etc. En avancerad regel kan kräva att filen importeras Createprocess från Kernel32.dll och vissa HTTP-funktioner från wininet.dll, utöver att innehålla en specifik sträng som indikerar skadligt beteende.
Den här typen av logik är perfekt för att lokalisera Trojaner med fjärranslutning eller exfiltreringsfunktioneräven när filnamn eller sökvägar ändras från en kampanj till en annan. Det viktiga är att fokusera på det underliggande beteendet: processskapande, HTTP-förfrågningar, kryptering, persistens etc.
En annan mycket effektiv teknik är att titta på sekvenser av instruktioner som upprepas mellan exempel från samma familj. Även om angripare paketerar eller obfuskerar binärfilen, återanvänder de ofta delar av kod som är svåra att ändra. Om du efter statisk analys hittar konstanta block av instruktioner kan du formulera en regel med jokertecken i hexadecimala strängar som fångar det mönstret samtidigt som en viss tolerans bibehålls.
Med dessa "kodbeteendebaserade" regler är det möjligt spåra hela skadlig kodkampanjer som de från PlugX/Korplug eller andra APT-familjerDu upptäcker inte bara en specifik hash, utan du går efter angriparnas utvecklingsstil, så att säga.
Användning av YARA i verkliga kampanjer och nolldagshot
YARA har bevisat sitt värde särskilt inom avancerade hot och zero-day exploits, där klassiska skyddsmekanismer kommer för sent. Ett välkänt exempel är användningen av YARA för att lokalisera ett exploit i Silverlight från minimal läckt information..
I det fallet, från e-postmeddelanden som stulits från ett företag som ägnar sig åt utveckling av stötande verktyg, härleddes tillräckliga mönster för att bygga en regel inriktad på ett specifikt utnyttjande. Med den enda regeln kunde forskarna spåra provet genom ett hav av misstänkta filer.Identifiera exploiten och tvinga fram en patch för att förhindra mycket allvarligare skador.
Den här typen av berättelser illustrerar hur YARA kan fungera som fisknät i ett hav av filerFöreställ dig ditt företagsnätverk som ett hav fullt av "fiskar" (filer) av alla de slag. Dina regler är som fack i ett trålnät: varje fack innehåller de fiskar som passar specifika egenskaper.
När du är klar med draget har du prover grupperade efter likhet med specifika familjer eller grupper av angripare: ”liknar art X”, ”liknar art Y”, etc. Några av dessa exempel kan vara helt nya för dig (nya binärfiler, nya kampanjer), men de passar in i ett känt mönster, vilket påskyndar din klassificering och ditt svar.
För att få ut det mesta av YARA i detta sammanhang samarbetar många organisationer avancerad utbildning, praktiska laboratorier och kontrollerade experimentmiljöerDet finns högspecialiserade kurser som uteslutande är inriktade på konsten att skriva bra regler, ofta baserade på verkliga fall av cyberspionage, där eleverna övar med autentiska exempel och lär sig att söka efter "något" även när de inte vet exakt vad de letar efter.
Integrera YARA i säkerhetskopierings- och återställningsplattformar
Ett område där YARA passar in perfekt, och som ofta går något obemärkt förbi, är skyddet av säkerhetskopior. Om säkerhetskopior är infekterade med skadlig kod eller ransomware kan en återställning starta om en hel kampanj.Det är därför vissa tillverkare har integrerat YARA-motorer direkt i sina lösningar.
Nästa generations säkerhetskopieringsplattformar kan lanseras YARA regelbaserade analyssessioner om återställningspunkterMålet är tvåfaldigt: att lokalisera den sista "rengöringspunkten" före en incident och att upptäcka skadligt innehåll dolt i filer som kanske inte har utlösts av andra kontroller.
I dessa miljöer innebär den typiska processen att välja ett alternativ av "Skanna återställningspunkter med en YARA-linjal"under konfigurationen av ett analysjobb. Därefter anges sökvägen till regelfilen (vanligtvis med filändelsen .yara eller .yar), vilken vanligtvis lagras i en konfigurationsmapp som är specifik för säkerhetskopieringslösningen."
Under körningen itererar motorn sig igenom objekten i kopian, tillämpar reglerna och Den registrerar alla matchningar i en specifik YARA-analyslogg.Administratören kan visa dessa loggar från konsolen, granska statistik, se vilka filer som utlöste varningen och till och med spåra vilka maskiner och specifikt datum varje matchning motsvarar.
Denna integration kompletteras av andra mekanismer som t.ex. avvikelsedetektering, övervakning av säkerhetskopiors storlek, sökning efter specifika IOC:er eller analys av misstänkta verktygMen när det gäller regler anpassade till en specifik ransomware-familj eller kampanj är YARA det bästa verktyget för att förfina den sökningen.
Hur man testar och validerar YARA-regler utan att bryta nätverket

När du väl börjar skriva dina egna regler är nästa viktiga steg att testa dem noggrant. En alltför aggressiv regel kan generera en flod av falska positiva resultat, medan en alltför slapp regel kan låta verkliga hot slinka igenom.Därför är testfasen lika viktig som skrivfasen.
Den goda nyheten är att du inte behöver skapa ett labb fullt av fungerande skadlig kod och infektera halva nätverket för att göra detta. Det finns redan arkiv och datamängder som erbjuder denna information. kända och kontrollerade exempel på skadlig kod för forskningsändamålDu kan ladda ner dessa exempel till en isolerad miljö och använda dem som en testbädd för dina regler.
Det vanliga tillvägagångssättet är att börja med att köra YARA lokalt, från kommandoraden, mot en katalog som innehåller misstänkta filer. Om dina regler matchar där de ska och knappt bryter mot reglerna i rena filer, är du på rätt spår.Om de utlöser för mycket är det dags att granska strängar, förfina villkor eller införa ytterligare begränsningar (storlek, import, offsets etc.).
En annan viktig punkt är att se till att dina regler inte äventyrar prestandan. När du skannar stora kataloger, fullständiga säkerhetskopior eller massiva exempelsamlingar, Dåligt optimerade regler kan sakta ner analysen eller förbruka mer resurser än önskat.Därför är det lämpligt att mäta tider, förenkla komplicerade uttryck och undvika alltför tung regex.
Efter att ha genomgått laboratorietestfasen kommer du att kunna Sprid reglerna i produktionsmiljönOavsett om det är i ert SIEM, era säkerhetskopieringssystem, e-postservrar eller var ni än vill integrera dem. Och glöm inte att upprätthålla en kontinuerlig granskningscykel: allt eftersom kampanjer utvecklas kommer era regler att behöva justeras regelbundet.
Verktyg, program och arbetsflöde med YARA

Utöver den officiella binärfilen har många yrkesverksamma utvecklat små program och skript kring YARA för att underlätta dess dagliga användning. En typisk metod innebär att skapa en applikation för montera ditt eget säkerhetskit som automatiskt läser alla regler i en mapp och tillämpar dem på en analyskatalog.
Den här typen av hemmagjorda verktyg fungerar vanligtvis med en enkel katalogstruktur: en mapp för regler nedladdade från internet (till exempel ”rulesyar”) och en annan mapp för misstänkta filer som kommer att analyseras (till exempel ”skadlig programvara”). När programmet startar kontrollerar det att båda mapparna finns, listar reglerna på skärmen och förbereder sig för körning.
När du trycker på en knapp som "Starta kontrollenProgrammet startar sedan YARA-filen med önskade parametrar: skanning av alla filer i mappen, rekursiv analys av underkataloger, utmatning av statistik, utskrift av metadata etc. Alla träffar visas i ett resultatfönster som anger vilken fil som matchade vilken regel.
Det här arbetsflödet möjliggör till exempel identifiering av problem i en batch exporterade e-postmeddelanden. skadliga inbäddade bilder, farliga bilagor eller webbskal gömda i till synes oskyldiga filerMånga forensiska undersökningar i företagsmiljöer förlitar sig just på denna typ av mekanism.
När det gäller de mest användbara parametrarna vid anrop av YARA, utmärker sig alternativ som följande: -r för att söka rekursivt, -S för att visa statistik, -m för att extrahera metadata och -w för att ignorera varningarGenom att kombinera dessa flaggor kan du anpassa beteendet till ditt ärende: från en snabb analys i en specifik katalog till en fullständig genomsökning av en komplex mappstruktur.
Bästa praxis vid skrivning och underhåll av YARA-regler
För att förhindra att ditt regelarkiv blir en ohanterlig röra är det lämpligt att tillämpa en rad bästa praxis. Det första är att arbeta med konsekventa mallar och namngivningskonventionerså att vilken analytiker som helst med en snabb blick kan förstå vad varje regel gör.
Många lag använder ett standardformat som inkluderar rubrik med metadata, taggar som anger hottyp, aktör eller plattform och en tydlig beskrivning av vad som upptäcksDetta hjälper inte bara internt, utan även när du delar regler med communityn eller bidrar till offentliga arkiv.
En annan rekommendation är att alltid komma ihåg att YARA är bara ytterligare ett försvarslagerDen ersätter inte antivirusprogram eller EDR, utan kompletterar dem snarare i strategier för Skydda din Windows-datorIdealiskt sett bör YARA passa in i bredare referensramverk, såsom NIST-ramverket, som också behandlar identifiering, skydd, upptäckt, respons och återställning av tillgångar.
Ur teknisk synvinkel är det värt att avsätta tid för att undvika falska positiva resultatDetta innebär att man undviker alltför generiska strängar, kombinerar flera villkor och använder operatorer som alla o något av Använd ditt förstånd och utnyttja filens strukturella egenskaper. Ju mer specifik logiken kring den skadliga programvarans beteende är, desto bättre.
Slutligen, upprätthåll en disciplin versionshantering och regelbunden granskning Det är avgörande. Skadliga programfamiljer utvecklas, indikatorer ändras och de regler som fungerar idag kan vara otillräckliga eller bli föråldrade. Att regelbundet granska och förfina sin regeluppsättning är en del av cybersäkerhetens katt-och-råtta-lek.
YARA-communityn och tillgängliga resurser
En av de främsta anledningarna till att YARA har kommit så här långt är styrkan i deras community. Forskare, säkerhetsföretag och räddningsteam från hela världen delar kontinuerligt regler, exempel och dokumentation.skapar ett mycket rikt ekosystem.
Den viktigaste referenspunkten är YARAS officiella arkiv på GitHubDär hittar du de senaste versionerna av verktyget, källkoden och länkar till dokumentationen. Därifrån kan du följa projektets framsteg, rapportera problem eller bidra med förbättringar om du vill.
Den officiella dokumentationen, som finns tillgänglig på plattformar som ReadTheDocs, erbjuder en komplett syntaxguide, tillgängliga moduler, regelexempel och användningsreferenserDet är en viktig resurs för att dra nytta av de mest avancerade funktionerna, såsom PE-inspektion, ELF, minnesregler eller integrationer med andra verktyg.
Dessutom finns det community-databaser med YARA-regler och signaturer där analytiker från hela världen kan De publicerar färdiga samlingar eller samlingar som kan anpassas efter dina behov.Dessa arkiv innehåller vanligtvis regler för specifika familjer av skadlig kod, exploit kit, skadligt använda penetrationstestverktyg, webbshells, kryptominers och mycket mer.
Parallellt erbjuder många tillverkare och forskningsgrupper Specifik utbildning på YARA, från grundläggande nivåer till mycket avancerade kurserDessa initiativ inkluderar ofta virtuella laborationer och praktiska övningar baserade på verkliga scenarier. Vissa erbjuds till och med kostnadsfritt till ideella organisationer eller enheter som är särskilt sårbara för riktade attacker.
Hela detta ekosystem innebär att du, med lite engagemang, kan gå från att skriva dina första grundläggande regler till att utveckla sofistikerade programvarupaket som kan spåra komplexa kampanjer och upptäcka hot som aldrig tidigare skådatsOch genom att kombinera YARA med traditionellt antivirusprogram, säker säkerhetskopiering och hotinformation gör du det betydligt svårare för illvilliga aktörer som strövar omkring på internet.
Med allt ovanstående är det tydligt att YARA är mycket mer än ett enkelt kommandoradsverktyg: det är en nyckelbit i alla avancerade strategier för att upptäcka skadlig kod, ett flexibelt verktyg som anpassar sig till ditt sätt att tänka som analytiker och vanligt språk som kopplar samman laboratorier, SOC:er och forskningssamhällen runt om i världen, vilket gör att varje ny regel ger ytterligare ett skyddslager mot alltmer sofistikerade kampanjer.
Brinner för teknik sedan han var liten. Jag älskar att vara uppdaterad inom branschen och framför allt kommunicera den. Det är därför jag har varit dedikerad till kommunikation på teknik- och videospelswebbplatser i många år nu. Du kan hitta mig som skriver om Android, Windows, MacOS, iOS, Nintendo eller något annat relaterat ämne som du tänker på.