i ett tidigare inlägg pratade jag om hur du kan använda STIX, TAXII och CybOX för att dela hotinformation.
en av de viktigaste delarna för att sätta cyberthreat information till god användning kräver att informationen är genomförbar, eller åtminstone användbar. Den delade informationen måste vara korrekt, fullständig och relevant för din miljö.
CybOX tillhandahåller en gemensam struktur för att representera cyberobservabla över och bland verksamhetsområdena för företags cybersäkerhet. CybOX kan innehålla hashar, strängar eller registernycklar. Information som tillhandahålls via systemet kan användas för att kontrollera förekomsten av skadlig kod i din miljö. YARA är ett av alternativen till att använda CyBOX, men de två utesluter inte varandra.
vad är YARA?
YARA är ett verktyg för att hjälpa malware forskare identifiera och klassificera malware prover. Det har kallats den mönstermatchande Swiss Army knife för säkerhetsforskare (och alla andra). Det är multiplatform och kan användas från både kommandoradsgränssnittet eller via dina egna Python-skript.
verktyget låter dig utföra signaturbaserad upptäckt av skadlig kod, något som liknar vad antiviruslösningar kan göra för dig.
Hur Använder Du Det?
för att kunna använda den här metoden behöver du en regel och en fil som du vill kontrollera. Till exempel, för att köra den från kommandoraden, skulle du använda:
detta kommer att matas ut om den angivna regeln matchar den angivna filen. Om du inte ser utdata och du inte har använt negate-alternativet betyder det att ingen regel har matchat.
du kan starta det med ett antal konfigurationsväxlar; dessa är de två viktigaste :
- -n: Skriv ut endast icke-nöjda regler (negate).
- – r: rekursivt söka igenom kataloger.
regler
en regel är en uppsättning strängar och någon form av logik, skriven i booleska uttryck.
det finns stöd för tre olika typer av strängar:
- hexadecimala strängar, som är användbara för att definiera råa byte;
- textsträngar;
- reguljära uttryck.
villkoren är booleska uttryck som du kommer att känna igen från vanliga programmeringsspråk. De kan fungera på någon av de givna strängarna men också på speciella inbyggda variabler, till exempel filstorleken, eller på externa variabler som du definierar utanför regeln. Det finns också stöd för användning av moduler, till exempel gök, för att utöka de funktioner som du kan använda under förhållandena.
du kommer att dra nytta av YARA om du ger det en bra regeluppsättning. Du kan antingen skriva dina egna regler eller få dem från en annan leverantör.
Skriv dina egna regler
att skriva dina egna regler är inte så svårt om du tar hänsyn till dessa riktlinjer:
- de kriterier som du använder för att matcha måste vara en nödvändig del av beteendet hos skadlig programvara.
- kriterierna bör vara tillräckligt för att skilja den testade malware familjen från andra malware familjer.
- kriterierna måste vara något som är vanligt i olika prover.
när du har analyserat skadlig programvara och extraherat användbara, igenkännbara data från den kan du sedan omvandla informationen till YARA-strängar och kombinera dem med någon form av logik.
hämta regler från externa källor
eftersom YARA använder signaturer som liknar antiviruslösningar, skulle det vara meningsfullt att återanvända dessa signaturer som en regeldatabas. Med användning av manuset clamav_to_yara.py, du kan konvertera ClamAV-signaturdatabasen till din egen regeluppsättning.
en annan källa för regler är GitHub repository YaraRules. Detta är en regeluppsättning under GNU-GPLv2-licensen som underhålls av en grupp it-säkerhetsforskare. Reglerna lagras i olika kategorier — regler som syftar till att upptäcka anti-debug och anti-visualiseringstekniker, skadliga dokument, packers etc. – och uppdateras ofta. Du kan få dem genom att klona Github-förvaret.
vissa plattformar för delning av hotinformation, som MISP och ThreatConnect, stöder också YARA. Detta gör att du kan bygga regler baserade på din egen insamlade hotinformation.
generera automatiskt regler
med hjälp av Regelgeneratorn från Joe Sandbox kan du skapa signaturer för Windows baserat på statiska och dynamiska beteendedata. Observera att samma regler gäller som vid användning av gratis online malware analys sandlådor. Du laddar upp dina filer till en extern molntjänst, vilket inte bör göras med känsliga filer eller data som innehåller någon form av användaruppgifter.
ytterligare användningsfall
jag nämnde tidigare att du kan konvertera ClamAV-databasen till en användbar regeluppsättning. Det går också tvärtom. Antag att du har en uppsättning detaljerade regler. Du kan konfigurera ClamAV för att utöka sin funktionsuppsättning med dina angivna regler och stödja YARA. Detta gör att du kan matcha reglerna för komprimerade eller packade filer. VirusTotal private API har också en funktion som du kan ange dina egna regler och få dem utlösta när ett matchande prov laddas upp.
Signaturbaserat skydd är inte tillräckligt
endast förlita sig på signaturbaserat skydd är inte längre tillräckligt bra. Angripare har utvecklat motåtgärder som de kan använda för att kringgå denna metod. Med hjälp av olika krypteringstjänster, packers och polymorfism kan de enkelt generera skadlig kod som är tillräckligt annorlunda så att den inte längre matchar befintliga signaturer. Det tar sedan lite tid innan den nya smaken plockas upp och en signatur delas.
dessa nackdelar gör inte signaturbaserad upptäckt föråldrad. Säkerhetsgemenskapen är stark för att dela nya hotindikatorer, så dessa typer av verktyg kommer fortfarande att visa sig vara en viktig tillgång för ditt arsenal.
slutsats
även om signaturbaserad detektering med YARA har sina gränser, är det ett lättanvänt och ganska enkelt sätt att upptäcka skadlig kod i din miljö. Det skulle inte vara klokt att förlita sig på det som den enda hotskyddsåtgärden, men med tanke på den enkla användningen skulle det inte heller vara bra att missa det här verktyget.