Det är hela tiden en kamp för att kunna ligga före dem som skapar elak kod. Antivirusföretagen förlitar sig allt mindre enbart på signaturer och arbetar för att hitta andra metoder för att bekämpa skadlig kod. En variant är heuristiken.

Statistiken talar mot den signaturbaserade virusskanningen och för den heuristiska. Runt år 2000 fanns det cirka 300 000 virus, där en hel del av dem var varianter av andra virus. I dag finns det miljoner virus och de blir hela tiden fler. Signaturerna blir helt enkelt för många, särskilt som en hel del virus modifierar sig själva.

”Faktum är att virus inte är

det största hotet längre.”


Virusskapandet har också blivit kommersialiserat. Färdiga virus med särskilda syften är till salu och virustillverkarna kan tjäna stora pengar. Med pengar som drivkraft är det allt fler som ger sig in i branschen och utmaningarna för antivirusföretagen ökar.


Dolda program den lurigaste sorten

Virus och annan skadlig kod må ställa till problem för användaren, men bedrägligast av dem alla är de dolda programmen (rootkits). Ett sådant program smyger sig in i datorn, modifierar viktiga systemkomponenter och går därför inte att upptäcka. Processen går inte att avslöja ens med systemverktygen, eftersom de dolda programmen byter ut själva programmet för att lista processer.

McAfee rapporterade redan år 2006 att andelen skadlig kod som kunde klassas som dolda program på tre år hade ökat med 600 procent. Företaget rapporterar också att den dolda, skadliga koden har blivit alltmer komplex och att den tenderar att öka ännu mer i framtiden.

Det är också svårt att veta hur många dolda program som finns. De döljer sig själva och slutanvändaren kanske aldrig kommer att upptäcka att ett dolt program finns på datorn.

Syftet med ett dolt program kan vara alltifrån att ha en dold spamrobot på en intet ont anande användares dator till att försöka stjäla inloggningsuppgifter.



Heuristik grekisk upptäckt

Ordet heuristik kommer från grekiskan, där det i sin ursprungliga form var ”heuriskein”, vilket betyder ”att upptäcka”. Just att upptäcka är också vad det handlar om när vi talar om heuristiska skanningar efter virus.

Historiskt sett har alltså antivirusprogrammen främst förlitat sig på att söka efter virus genom att matcha den kod som exekveras mot en specifik signatur. Antivirusprogrammet söker också efter andra filer som kanske inte exekveras men som finns med i signaturen. Sökningen sker aktivt i de regioner på hårddisken där virus vanligtvis infekterar. Moderna antivirusprogram kan också gå en aning utanför signaturen och hitta varianter av samma virus baserat på hur signaturen ser ut.

Problemet med signaturbaserade sökningar är att de i princip enbart kan hitta skadlig kod som är känd sedan tidigare. Om viruset eller den skadliga koden inte finns i signaturfilen kommer antivirusprogrammet inte att reagera. Därför behövs heuristik.

Den heuristiska skanningen påminner om skanningen med signaturer, men i stället för att leta efter virus som finns definierade i signaturen försöker den heuristiska skanningen titta på hur programmen beter sig. Beteendet ska skilja sig från hur de vanliga, harmlösa programmen beter sig för att något ska kunna klassas som skadlig kod.

Ett tydligt exempel på en heuristisk skanning är när antivirusprogrammet letar efter ett beteende hos makrovirus som försöker stänga av den inbyggda antivirusfunktionen i Word. Just försök att stoppa antivirusprogram eller andra antivirusfunktioner i datorn är ett typiskt virusbeteende som är ganska enkelt att hitta för antivirusprogrammen genom heuristisk skanning.


Virusen blir big business


Vi ställde några frågor om virus och framtiden till Bengt Carlsson, som är docent vid Blekinge Tekniska Högskola.

Är hotet från virus lika stort i dag som för några år sedan?

– Virus är nog ett lika stort hot i dag, men virusen har ändrat karaktär. Förut gällde det att få uppmärksamhet, i dag är det en affärsverksamhet.

– De stora, braskande spridningarna av virus, eller egentligen maskar, har ersatts av en verksamhet som sker mer i det fördolda. Vill man till exempel installera en proxyserver för att från offrets dator sprida skräppost ska man inte gå ut och annonsera om det.

Kommer antivirusprogrammen att kunna skydda mot alla nya typer av virus utan att ständigt behöva uppdateras?

– Nej, här pågår en ständig kapprustning. Blir antivirusverktygen bättre kommer nya typer av virus att försöka överlista dem. På sätt och vis har antivirusverktygen den jobbigaste sitsen. För angriparen räcker det med att hitta en attackmöjlighet, medan antivirusverktyget måste hitta alla, både nuvarande och framtida, svagheter. Det är en övermäktig uppgift både för nuvarande och framtida ai-verktyg.

Vad tror du om framtiden för virus?


– Generellt blir det nog fler som sprider virus. Det finns enklare verktyg för att sprida virus där inga förkunskaper behövs. Men att skapa virus kräver förmodligen allt högre tekniska kunskaper och det ökar inte lika uppenbart.

– Om man ska tro forskaren Peter Gutmann, som speciellt har studerat ryska maffian, går utvecklingen allt mera åt businesshållet. Några har en affärsidé, andra står för den operativa verksamheten och åter andra tillhandahåller tekniken. Eftersom allt fler resurser finns på nätet kommer också brottsligheten att flytta över dit.

– Ett alternativt stort hot är att slå ut befintlig it-teknik som ett led i terrorism eller virtuell krigföring.



Reglerna måste uppdateras

De antivirusprogram som finns på marknaden arbetar på ungefär samma sätt med heuristiska skanningar. Neal Hindocha, som är principal security solutions specialist på Symantec, berättar att det finns en heuristikmotor i företagets produkter som verifierar att de exekverbara filerna följer specifikationerna för filformatet.

– Redan där stoppar Symantec många virus. Men faktum är att virus inte är det största hotet längre, säger Neal Hindocha.

Även om vanliga virus har fått konkurrens av andra hot kan virus fortfarande ställa till en hel del problem om de tar sig igenom operativsystemets skydd.

Symantec har också en heuristikmotor som bland annat upptäcker sårbarheter. Motorn uppdateras förstås så ofta det går när Symantec får reda på nya typer av sårbarheter. Det finns också en heuristikmotor specifikt för skriptspråk, som till exempel VB-skript och Java.

Även hos Trend Micro arbetar heuristikmotorn med ett regelverk. David Sancho, som är senior AV researcher på Trend Micro, berättar att företagets heuristiska regler är indelade och uppsatta efter olika så kallade malwarefamiljer.

– Det finns många regler för varje familj, men det är svårt att generalisera kring hur de fungerar eftersom vår motor är mycket flexibel och kan tillämpa diverse olika regler. Det stora antalet kombinationer gör dock lösningen mycket pålitlig och den kan upptäcka både kända och okända filer, säger David Sancho.


Minuspoäng till Word

Regelverken kan förstås bli väldigt komplexa. En vanlig metod är att använda poängsättning för att väga olika risker mot varandra. Som exempel kan vi titta på Microsoft Word. Word skulle få minuspoäng för att tangentbordstryckningar faktiskt lagras och att programmet således kan vara en keylogger. Å andra sidan får Word pluspoäng för att tecknen faktiskt visas på skärmen.

Slutpoängen avgör om det är dags att larma eller inte. Det enklaste är att överlåta åt användaren att avgöra hur alarmet ska hanteras. På så vis kan felmarginalen också minimeras, eftersom användaren förhoppningsvis vet om han eller hon har startat programmet eller inte.

Det här fungerar förstås inte när det inte finns några användare närvarande, som i en brandvägg eller på en e-postserver. Då måste man lita på att antivirusprogrammet fattar rätt beslut.


"Heuristikmotorerna upptäcker mycket, men givetvis kan de som skriver virus testa sig fram tills
de k
ommer runt detektionerna."

Neal Hindocha, principal security solutions specialist, Symantec.


Man kan förstås tycka att det skulle vara enkelt för virusmakarna att programmera sig runt de heuristiska skanningarna. En keylogger skulle kunna efterlikna beteendet hos Microsoft Word för att som i exemplet ovan få samma poäng. Att programmera sig runt reglerna är dock inte så enkelt.

– Enkelt skulle jag inte säga att det är. Heuristikmotorerna upptäcker mycket och även mycket virus, men givetvis kan man anta att även de som skriver virus har antivirusprodukter och vill de kan de testa sig fram tills de kommer runt detektionerna, oavsett produkt, säger Neal Hindocha på Symantec.


Tidskrävande testande

Att testa sig fram till hur de heuristiska reglerna fungerar är förstås komplicerat om man inte har tillgång till källkoden. Det är tidskrävande för hackare att förstå hur de heuristiska reglerna fungerar. Det finns förstås brister i regelverken som gör att skadlig kod kan slippa undan.

– Oavsett hur flexibelt och omfattande ett system är finns det alltid en risk för att ny och unikt utformad skadlig kod undslipper skanning. Just därför är det oerhört viktigt för it-säkerhetsföretag att ha ett kvalificerat researchteam som förbättrar de heuristiska reglerna, säger David Sancho på Trend Micro.

Lösningen från antivirusprogrammen handlar således om att uppdatera heuristikmotorerna kontinuerligt och ofta. Uppdateras de tillräckligt ofta hinner inte virusprogrammerarna hitta idiotsäkra vägar runt den heuristiska skanningen.

Eftersom skanningen bygger på att upptäcka beteenden är det dock lätt att se ett problem när det gäller avancerade regelverk. Med fler beteenden som ska upptäckas kan bearbetningen kräva mycket kraft av datorn. Traditionella, signaturbaserade skanningar efter virus har alltid dragits med prestandaproblem.



"Oavsett hur flexibelt ett system är finns det alltid en risk för att ny och unikt utformad skadlig kod undslipper skanning."

 



David Sancho
, senior AV researcher, Trend Micro.


– Reglerna är komplexa, men om de är välgjorda tar de inte så mycket processorkraft i anspråk. Så snart systemet upptäcker att systemkraven inte är uppfyllda slutar motorn att bearbeta reglerna. Nyckeln är att ha de mest prestandakrävande reglerna på ändarna av varje regelkedja, säger David Sancho.

Att antivirusprogrammet anpassar sin aktivitet efter hur mycket resurser som finns lediga är förstås ett effektivt sätt att motverka prestandaproblem. Ett annat sätt är att försöka undvika att skanna samma fil flera gånger.

– Symantecs antiviruslösningar sparar ett så kallat hash-värde av filen som är skannad och därför skannas inte samma fil två gånger med heuristikmotorerna. Bara om heuristikmotorn har ändrats skannas filer om, säger Neal Hindocha.


Effektiv eller inte?

Hur effektiv är då den heuristiska skanningen? Frågan är dessvärre inte så enkel som att bara säga att en heuristisk skanning är ineffektiv om den inte upptäcker en ny sorts skadlig kod.

Den tyska tidningen Computertechnik har hittat indikationer på att heuristiska skanningar har blivit sämre, men den potentiellt skadliga koden kan bete sig på väldigt många olika sätt och det är kombinationen heuristisk skanning och signaturbaserad skanning som är effektiv. De kompletterar varandra.

Ett problem är förstås att den heuristiska skanningen kan ta fel och stoppa kod som inte är skadlig. Om det sker någon enstaka gång är det inga problem, men sker det alltför ofta kommer antivirusprogrammet att upplevas som väldigt besvärligt.

– En alltför förenklad regel som ”alla filer mindre än 120 kilobyte är virus” skulle givetvis fånga många virus, men även felaktigt stoppa normala filer. Man kan göra det mer exakt genom att lägga till regler och ju fler specifikationer, desto mindre felaktiga angivelser. Dock kommer felmarginalen aldrig att bli noll, utmaningen är att testa de heuristiska reglerna med så många normala filer som möjligt för att förebygga de felaktiga upptäckterna, säger David Sancho.


Skulle kunna stoppa allt

I teorin skulle en ny heuristisk regel kunna stoppa allt om det skulle råka vara fel i den. Det ställer höga krav på antivirusleverantörerna. Börjar en heuristisk skanning att stoppa exempelvis Outlook kommer supporttelefonerna att gå varma. Det är dock sällan ett antivirusprogram stoppar affärskritiska tillämpningar.

– Ett steg i vår kvalitetssäkringsprocess är att skanna rena filer där inte en enda fil får upptäckas. Jag vet inte hur stort urvalet är, men när jag 2004 lämnade avdelningen där Symantec analyserar hot låg det på några terabyte, säger Neal Hindocha.



Att kvalitetstesta de heuristiska reglerna mot kända, säkra program är förstås en nödvändig process. Den tid det tar att ta fram en ny regel, kvalitetssäkra den och sedan få ut den är den tid en virusprogrammerare har för att försöka komma runt heuristiken och vara säker på att viruset klarar sig. Uppdateringar sker ofta och frågan är om det är värt mödan att försöka analysera de heuristiska reglerna för att kunna undvika dem. Innan viruset har programmerats klart kan nya regler ha kommit ut. Det är en ständig kamp mot tiden för alla parter.


Heuristik är lösningen

Det råder inget tvivel om att det är inom heuristiken som en stor del av lösningen finns. Att tolka skadligt beteende hos program är den bästa metoden på lång sikt. Forskningen kring heuristisk skanning fortsätter, men är det rimligt att tro att vi i framtiden inte kommer att behöva oroa oss för virus tack vare avancerade skanningar?

– Det finns ingen enskild teknik eller metod som kan vinna kampen mot skadlig kod. Ett bra skydd får den som använder mångsidiga och uppdaterade säkerhetslösningar som är anpassade för just de egna behoven, säger David Sancho på Trend Micro.

Neal Hindocha på Symantec är inne på samma linje. Han tycker visserligen att det är svårt att förutsäga framtiden i det här fallet, men han tror inte att heuristisk skanning är den enda lösningen på virusproblematiken.

– Den heuristiska skanningen fungerar bra i dag. Förhoppningsvis kommer kombinationen definitionsbaserad skanning och heuristisk skanning att fungera ett tag framöver också.

Illustration: Jonas Englund

» Läs mer om skadlig kod på vår specialsida!


Så går du vidare, externa länkar:


» epheurs1.htm – Matnyttig allmän information om heuristik från Frans Veldman.

» Xcon2005_Drew_Copley.pdf – Drew Copley från Eeye berättar om heuristiska antivirusskanningar och mycket annat om skadlig kod.

»vad bör finnas i ditt antivirusprogram – Enkel guide över vad man ska tänka på när det gäller antivirusprogram. Webbplatsen innehåller också mer användbar information om antivirusprogram.

» psi.bth.se/seclab.html – Security Labs på Blekinge Tekniska Högskola forskar bland annat om virus.