yara-regler är ett sätt att identifiera skadlig kod (eller andra filer) genom att skapa regler som letar efter vissa egenskaper. YARA utvecklades ursprungligen av Victor Alvarez från Virustotal och används främst i forskning och upptäckt av skadlig kod. Det utvecklades med tanken att beskriva mönster som identifierar särskilda stammar eller hela familjer av skadlig kod.
Syntax
varje regel måste börja med ordregeln, följt av namnet eller identifieraren. Identifieraren kan innehålla valfritt alfanumeriskt tecken och understreck, men det första tecknet får inte vara en siffra. Det finns en lista över yara-nyckelord som inte får användas som identifierare eftersom de har en fördefinierad betydelse.
villkor
regler består av flera avsnitt. Villkorssektionen är den enda som krävs. Det här avsnittet anger när regelresultatet är sant för objektet (filen) som undersöks. Den innehåller ett booleskt uttryck som bestämmer resultatet. Villkoren är av design booleska uttryck och kan innehålla alla vanliga logiska och relationella operatörer. Du kan också inkludera en annan regel som en del av dina villkor.
strängar
för att ge villkorssektionen en mening behöver du också en strängsektion. Strängavsnitten är där du kan definiera strängarna som ska letas efter i filen. Låt oss titta på ett enkelt exempel.
rule vendor
{
strings:
$text_string1 = "Vendor name" wide
$text_string2 = "Alias name" wide
condition:
$text_string1 or $text_string2
}
regeln som visas ovan heter vendor och letar efter strängarna ”Vendor name” och ”Alias name”. Om någon av dessa strängar hittas är resultatet av regeln sant.
det finns flera typer av strängar du kan leta efter:
- Hexadecimal, i kombination med jokertecken, hopp och alternativ.
- textsträngar, med modifierare: nocase, fullword, wide och ascii.
- reguljära uttryck, med samma modifierare som textsträngar.
det finns många mer avancerade förhållanden du kan använda, men de ligger utanför ramen för detta inlägg. Om du vill veta mer kan du hitta den i Yara-dokumentationen.
Metadata
Metadata kan läggas till för att identifiera de filer som plockades upp av en viss regel. Metadataidentifierarna följs alltid av ett likhetstecken och det inställda värdet. De tilldelade värdena kan vara strängar, heltal eller ett booleskt värde. Observera att identifierings – / värdepar som definieras i avsnittet metadata inte kan användas i avsnittet Villkor, deras enda syfte är att lagra ytterligare information om regeln.
sammanfattning
YARA är ett verktyg som kan användas för att identifiera filer som uppfyller vissa villkor. Det används främst av säkerhetsforskare för att klassificera skadlig kod.
länkar
signaturbaserad detektering med YARA
senaste yara-dokumentationen
YARA: Enkelt och effektivt sätt att dissekera skadlig kod
skärmdumpar gjordes med Yara Editor av Adlice Software
Pieter Arntz