Heuristisk analys hittar de nya hoten

När man skriver om antivirusprogram är det svårt att inte prata om heuristik. Det är ett svårt ord att säga och faktiskt även ett ganska knepigt begrepp att förklara. Men det är jul och då ska man vara snäll – så här kommer ett försök.

Eftersom skadlig kod finns i så extremt många varianter och eftersom de som skapar den blir fler och använder allt mer avancerade metoder har endast virussignaturer inte räckt långt på ganska många år. Det krävs något mer, någon form av intelligens, eller åtminstone något som känner igen ett oönskat beteende, inte bara en viss fil eller en sorts malware.

Det går att dra en enkel parallell till verkligheten. Om du står vid ett övergångsställe och det lyser röd gubbe så vet du att du inte ska gå, när det är grönt så går det bra. Men även om det är grönt så går du inte bara, du tittar ändå för att försäkra dig om att det inte kommer bilar eller cyklister som skulle kunna tänkas missa dig. Det kommer en cyklist som kör mot rött, du stannar.

Alla situationer är unika och du behandlar dem olika. Kommer det en bil, men den är ganska långt borta så beter du dig på ett sätt. Kommer en bil på samma avstånd, men i högre fart så gör du en annan bedömning.

Våra hjärnor vet direkt och instinktivt om en situation är bra och rätt eftersom vi tar in ny information om nya miljöer och händelser och kombinerar med tidigare erfarenheter. I grund och botten tillämpar vi en logisk algoritm kombinerad med erfarenhet och sunt förnuft på varje beslutssituation.

Då vi försöker efterlikna detta på datorer kallar vi det heuristik. Problemet är att en dator inte kan anpassa sig till något utanför fördefinierade händelser, för datorn är alla beslutssituationer svarta eller vita, något är antingen sant eller falskt.

Vi kan skapa någon form av intelligens i ekvationen för datorn genom att definiera gränser och tröskelvärden och bestämma hur beslut ska fattas inom dessa olika gränser. Det är där heuristiken börjar: vi låter datorn vidta fördefinierade åtgärder, ungefär som en människa skulle göra.

När vi applicerar det här på datorsäkerhet blir det lite svårare. Gränsen mellan det potentiellt skadliga och det harmlösa är fin, eftersom det beror på situationen eller programmet. Ett program som öppnar alla filer på ett system kan vara ett indexeringsverktyg eller ett antivirusprogram. Men om programmet börjar skriva till vissa filer? Då kan det fortfarande vara ett antivirusprogram som rensar en misstänkt fil, men det kan också vara ett skadligt program som sprider sig.

När en människa tittar på koden är det oftast ganska tydligt vad programmet gör och du kommer att agera utifrån din bedömning. Ovanstående är fortfarande bara en heuristisk analys. Idag är skadlig kod ganska komplex och ofokuserad. Den sekvens som gör något skadligt kan vara väl gömd inuti vanlig kod och utspridd över delar av program som körs. Den kan också vara beroende av åtgärder i andra processer som körs. För att upptäcka detta dynamiskt, måste du kombinera resultat från olika processer som på egen hand kan vara oskyldiga, men skadliga när de kombineras.

Att skapa en heuristisk sekvens för att upptäcka komplex skadlig kod är också känt som ”avancerad heuristik” och är ett mycket kraftfullt sätt att upptäcka nya skadliga program och hot eller modifierade hot och varianter av befintlig skadlig kod.

Eftersom sekvensen av olika händelser måste överskrida en gräns för att utlösa en åtgärd, så går det som en logisk slutsats att anta att det granskade objektet sannolikt inte är säkert och bör blockeras.

Och när de som skapar skadlig kod försöker hitta nya sätt att ta över eller infektera ett system, så uppdateras antivirusprogrammen med avancerade heuristiska regler för att motverka detta. Under åren har därmed avancerad heuristik med ökande erfarenhet blivit ett kraftfullt och framgångsrikt verktyg som stoppar mängder av attacker.

God jul till alla bloggläsare och ESET-fans!

Missa inget!

Prenumerera på Säkerhetsbloggen via e-post!

Comments: 2

Your email address will not be published.

  • Johan, Permalink

    Tack tack! God Jul till er alla på ES också! Och det är bra att du skriver i bloggen lite oftare nu Anders 🙂

  • Peter, Permalink

    Tack för en bra förklaring! Mycket intressant!