211service.com
Programvara som fixar sig själv
Martin Rinard , professor i datavetenskap vid MIT, är ogenerad över det slutliga målet för sin grupps forskning: att leverera ett odödligt, osårbart program. I arbete som presenterades denna månad vid ACM Symposium on Operating Systems Principles in Big Sky, MT, utvecklade en grupp MIT-forskare, ledda av Rinard och Michael Ernst, som nu är docent vid University of Washington, programvara som kan hitta och fixa vissa typer av programvarubuggar inom några minuter.
När en potentiellt skadlig sårbarhet upptäcks i en mjukvara tar det nästan en månad i genomsnitt för mänskliga ingenjörer att komma med en korrigering och att skicka ut korrigeringen till berörda system, enligt en rapport som utfärdades av säkerhetsföretaget Symantec 2006 Forskarna, som samarbetade med en startup som heter Determina i arbetet, hoppas att den nya programvaran, kallad ClearView, kommer att påskynda denna process, vilket gör programvaran betydligt mer motståndskraftig mot misslyckanden eller attacker.
ClearView fungerar utan hjälp från människor och utan tillgång till ett programs underliggande källkod (en ofta proprietär uppsättning instruktioner som definierar hur en mjukvara ska bete sig). Istället övervakar systemet beteendet hos en binär: den form som programmet tar för att utföra instruktioner på en dators hårdvara.
Genom att observera ett programs normala beteende och tilldela en uppsättning regler, upptäcker ClearView vissa typer av fel, särskilt de som orsakas när en angripare injicerar skadlig indata i ett program. När något går fel upptäcker ClearView anomalien och identifierar reglerna som har brutits. Det kommer sedan upp med flera potentiella patchar utformade för att tvinga programvaran att följa de överträdda reglerna. (Plåstren appliceras direkt på binären och går förbi källkoden.) ClearView analyserar dessa möjligheter för att avgöra vilka som är mest sannolikt att fungera, installerar sedan toppkandidaterna och testar deras effektivitet. Om ytterligare regler överträds, eller om en patch får systemet att krascha, avvisar ClearView det och försöker med en annan.
ClearView är särskilt effektivt när det installeras på en grupp maskiner som kör samma programvara. I så fall används det som ClearView lär sig av fel på en maskin för att fixa alla andra. Eftersom det inte kräver tillgång till källkod, säger Rinard att ClearView skulle kunna användas för att fixa program utan att kräva samarbete från företaget som tillverkade programvaran, eller för att reparera program som inte längre underhålls. Han hoppas att systemet kan förlänga livslängden för äldre versioner av mjukvara, skapade av företag som har gått i konkurs, förutom att skydda nuvarande mjukvara.
För att testa systemet installerade forskarna ClearView på en grupp datorer som kör Firefox och anlitade ett oberoende team för att attackera webbläsaren. Det fientliga teamet använde 10 olika attackmetoder, som var och en involverade att injicera en del skadlig kod i Firefox. ClearView lyckades blockera alla tänkbara attacker genom att upptäcka felaktigt beteende och avsluta programmet innan attacken kunde få avsedd effekt. Allra första gången ClearView stöter på en exploatering stänger det programmet och börjar analysera binären och letar efter en patch som kunde ha stoppat felet.
För sju av det anfallande lagets tillvägagångssätt skapade ClearView patchar som korrigerade de underliggande felen. I samtliga fall kasserade den korrigeringar som hade negativa biverkningar. I genomsnitt kom ClearView med en framgångsrik patch inom cirka fem minuter efter dess första exponering för en attack.
Vad den här forskningen får oss att tro är att mjukvara i sig inte är ömtålig och skör på grund av fel, säger Rinard. Det är bräckligt och skört eftersom folk är rädda för att låta programvaran fortsätta om de tror att det är något fel med den. Vissa programvarutekniska tillvägagångssätt, såsom felomedveten datoranvändning eller acceptabel datoranvändning, delar denna filosofi.
ClearView är en riktigt bra utgångspunkt, säger Yuanyuan Zhou , professor i datavetenskap vid University of California, San Diego, som också forskar om programvarans pålitlighet. Zhou berömmer den utvärderingsprocess som forskarna använde för projektet men säger att hon vill se ClearView testas på ett större antal applikationer.
Att hålla systemet igång till varje pris verkar vara fördelaktigt, tillägger David Pearce , en universitetslektor i datavetenskap vid Victoria University i Wellington, Nya Zeeland. Han påpekar att ClearView är utformad för att applicera patchar när den upptäcker att något har gått fel. Vissa system är utformade för att stängas av när ett fel upptäcks, men om en angripares mål är sabotage, säger Pearce, spelar detta tillvägagångssätt rakt i händerna på dem.
Men ClearViews tillvägagångssätt kan resultera i vissa hicka för användaren, tillägger Pearce. Till exempel, om en webbläsare hade en bugg som gjorde att den inte kunde hantera webbadresser över en viss längd, kan ClearViews patch skydda systemet genom att klippa bort ändarna på webbadresser som var för långa – förhindra att programmet misslyckas, men också förhindra det från att arbeta fullt ut. Men sådana problem skulle förmodligen inte vara direkt skadliga. Det är i allmänhet bara hackare som försöker utnyttja sådana kryphål, säger Pearce, och det skulle vara de som drabbades.