Signaturbaseret detektion med YARA

i et tidligere indlæg talte jeg om, hvordan du kan bruge det til at dele trusselsinformation.

et af nøgleelementerne for at sætte cybertrussel information til god brug kræver, at informationen er handlingsbar eller i det mindste brugbar. De delte oplysninger skal være nøjagtige, fuldstændige og relevante for dit miljø.

Cyboks giver en fælles struktur til at repræsentere cyberobservabler på tværs af og blandt de operationelle områder inden for virksomhedens cybersikkerhed. Cyboks kan indeholde hashes, strenge eller registreringsdatabasenøgler. Oplysninger, der leveres via systemet, kan bruges til at kontrollere, om der er skadelige programmer i dit miljø. YARA er et af alternativerne til at bruge Cyboks, men de to udelukker ikke hinanden.

Hvad er YARA?

YARA er et værktøj designet til at hjælpe forskere med at identificere og klassificere prøver. Det er blevet kaldt den mønstermatchende Svenske hærkniv for sikkerhedsforskere (og alle andre). Det er multiplatform og kan bruges fra både dens kommandolinjegrænseflade eller gennem dine egne Python-scripts.

værktøjet giver dig mulighed for at udføre signaturbaseret detektion af ondsindet program, noget der ligner hvad antivirusløsninger kan gøre for dig.

Hvordan Bruger Du Det?

for at bruge denne metode skal du have en regel og en fil, du vil kontrollere. For eksempel, for at køre det fra kommandolinjen, ville du bruge:
dette vil output, hvis den givne regel matcher på den medfølgende fil. Hvis du ikke kan se output, og du ikke har brugt indstillingen negate, betyder det, at ingen regel har matchet.

du kan starte det med en række konfigurationsafbrydere; disse er de to vigtigste :

  • -N: Udskriv kun ikke-tilfredse regler (negere).
  • – r: rekursivt søge gennem mapper.

regler

en regel er et sæt strenge og en form for logik, skrevet i boolske udtryk.

der er støtte til tre forskellige typer af strenge:

  • Seksadecimale strenge, som er nyttige til at definere rå byte;
  • tekststrenge;
  • regulære udtryk.

betingelserne er boolske udtryk, som du vil genkende fra almindelige programmeringssprog. De kan arbejde på en hvilken som helst af de givne strenge, men også på specielle indbyggede variabler, såsom filstørrelsen, eller på eksterne variabler, som du definerer uden for reglen. Der er også støtte til brugen af moduler, såsom gøg, for at udvide de funktioner, du kan bruge under forholdene.

du får mest ud af YARA, hvis du giver det en god regelsæt. Du kan enten skrive dine egne regler eller få dem fra en anden udbyder.

Skriv dine egne regler

at skrive dine egne regler er ikke så svært, hvis du tager disse retningslinjer i betragtning:

  • de kriterier, du bruger til at matche, skal være en nødvendig del af ondskabens opførsel.
  • kriterierne skal være tilstrækkelige til at skelne den testede ondsindede programfamilie fra andre ondsindede programfamilier.
  • kriterierne skal være noget, der er almindeligt på tværs af forskellige prøver.

når du har analyseret programmet og hentet nyttige, genkendelige data fra det, kan du derefter omdanne oplysningerne til YARA-strenge og kombinere dem med en eller anden form for logik.

Hent regler fra eksterne kilder

da YARA bruger signaturer, der ligner antivirusløsninger, ville det være fornuftigt at genbruge disse signaturer som regel database. Ved brug af scriptet clamav_to_yara.py, du kan konvertere ClamAV-signaturdatabasen til dit eget regelsæt.

en anden kilde til regler er Github repository YaraRules. Dette er et regelsæt under GNU-GPLv2-licensen, der vedligeholdes af en gruppe it-sikkerhedsforskere. Reglerne gemmes i forskellige kategorier — regler, der har til formål at opdage anti-debug og anti-visualiseringsteknikker, ondsindede dokumenter, pakker osv. – og ofte opdateret. Du kan få dem ved at klone Github-depotet.

nogle platforme til deling af trusselsinformation, såsom MISP og ThreatConnect, understøtter også YARA. Dette giver dig mulighed for at opbygge regler baseret på dine egne indsamlede trusselsoplysninger.

Generer automatisk regler

ved brug af Regelgeneratoren fra Joe sandkasse kan du oprette signaturer til Vinduer baseret på statiske og dynamiske adfærdsdata. Bemærk, at de samme regler gælder som ved brug af gratis online sandkasser. Du uploader dine filer til en ekstern skytjeneste, hvilket ikke bør gøres med følsomme filer eller data, der indeholder nogen form for brugeroplysninger.

yderligere brugssager

jeg nævnte tidligere, at du kan konvertere ClamAV-databasen til et brugbart regelsæt. Det går også omvendt. Antag at du har et sæt detaljerede regler. Du kan konfigurere ClamAV til at udvide dets funktionssæt med dine angivne regler og support YARA. Dette giver dig mulighed for at matche reglerne for komprimerede eller pakkede filer. VirusTotal private API har også en funktion, som du kan indtaste dine egne regler og få dem udløst, når en matchende prøve uploades.

signaturbaseret beskyttelse er ikke nok

kun at stole på signaturbaseret beskyttelse er ikke længere godt nok. Angribere har udviklet modforanstaltninger, som de kan bruge til at omgå denne metode. Ved hjælp af forskellige krypteringstjenester, pakker og polymorfisme kan de nemt generere skadelige programmer, der er forskellige nok, så det ikke længere matcher eksisterende signaturer. Det tager derefter nogen tid, før den nye smag afhentes, og en signatur deles.

disse ulemper gør ikke signaturbaseret detektion forældet. Sikkerhedssamfundet er stærkt til at dele nye trusselsindikatorer, så disse typer værktøjer vil stadig vise sig at være et vigtigt aktiv for dit arsenal.

konklusion

selvom signaturbaseret detektion med YARA har sine grænser, er det en nem at bruge og forholdsvis enkel måde at opdage skadelige programmer i dit miljø. Det ville ikke være klogt at stole på det som den eneste trusselbeskyttelsesforanstaltning, men i betragtning af den enkle brug ville det heller ikke være en god ide at gå glip af dette værktøj.

You might also like

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.