Software, der fikser sig selv

Martin Rinard , en professor i datalogi ved MIT, er uforskammet over det ultimative mål med sin gruppes forskning: at levere et udødelig, usårligt program. I arbejde præsenteret i denne måned på ACM Symposium on Operating Systems Principles in Big Sky, MT, udviklede en gruppe MIT-forskere, ledet af Rinard og Michael Ernst, som nu er lektor ved University of Washington, software, der kan finde og rette visse typer softwarefejl inden for få minutter.





Når en potentielt skadelig sårbarhed opdages i et stykke software, tager det i gennemsnit næsten en måned for menneskelige ingeniører at komme med en rettelse og skubbe rettelsen ud til de berørte systemer, ifølge en rapport udstedt af sikkerhedsfirmaet Symantec i 2006 Forskerne, der samarbejdede med en startup kaldet Determina om arbejdet, håber, at den nye software, kaldet ClearView, vil fremskynde denne proces og gøre softwaren væsentligt mere modstandsdygtig over for fejl eller angreb.

ClearView fungerer uden hjælp fra mennesker og uden adgang til et programs underliggende kildekode (et ofte proprietært sæt instruktioner, der definerer, hvordan et stykke software vil opføre sig). I stedet overvåger systemet opførselen af ​​en binær: den form programmet tager for at udføre instruktioner på en computers hardware.

Ved at observere et programs normale adfærd og tildele et sæt regler, opdager ClearView visse typer fejl, især dem, der forårsages, når en angriber injicerer ondsindet input i et program. Når noget går galt, opdager ClearView anomalien og identificerer de regler, der er blevet overtrådt. Det kommer derefter med flere potentielle patches designet til at tvinge softwaren til at følge de overtrådte regler. (Propperne påføres direkte på det binære, uden at kildekoden er). ClearView analyserer disse muligheder for at afgøre, hvilke der er mest sandsynlige, der virker, installerer derefter de bedste kandidater og tester deres effektivitet. Hvis yderligere regler overtrædes, eller hvis en patch får systemet til at gå ned, afviser ClearView det og prøver en anden.



ClearView er særligt effektivt, når det installeres på en gruppe af maskiner, der kører den samme software. I så fald bruges det, ClearView lærer af fejl på én maskine, til at rette alle de andre. Fordi det ikke kræver adgang til kildekode, siger Rinard, at ClearView kunne bruges til at reparere programmer uden at kræve samarbejde fra firmaet, der har lavet softwaren, eller til at reparere programmer, der ikke længere vedligeholdes. Han håber, at systemet kan forlænge levetiden for ældre versioner af software, skabt af virksomheder, der er gået konkurs, ud over at beskytte nuværende software.

For at teste systemet installerede forskerne ClearView på en gruppe computere med Firefox og hyrede et uafhængigt team til at angribe webbrowseren. Det fjendtlige hold brugte 10 forskellige angrebsmetoder, som hver involverede indsprøjtning af noget ondsindet kode i Firefox. ClearView blokerede alle mulige angreb ved at opdage forkert opførsel og afslutte applikationen, før angrebet kunne få sin tilsigtede effekt. Allerførste gang, ClearView støder på en udnyttelse, lukker det programmet og begynder at analysere det binære, og søger efter en patch, der kunne have stoppet fejlen.

For syv af det angribende holds tilgange skabte ClearView patches, der rettede de underliggende fejl. I alle tilfælde kasserede den korrektioner, der havde negative bivirkninger. I gennemsnit kom ClearView med en vellykket patch inden for cirka fem minutter efter dens første eksponering for et angreb.



Det, som denne forskning får os til at tro, er, at software ikke i sig selv er skrøbeligt og skørt på grund af fejl, siger Rinard. Den er skrøbelig og skør, fordi folk er bange for at lade softwaren fortsætte, hvis de tror, ​​der er noget galt med den. Nogle softwareteknologiske tilgange, såsom fejlbevidst computing eller acceptabel computing, deler denne filosofi.

ClearView er et rigtig godt udgangspunkt, siger Yuanyuan Zhou , professor i computervidenskab ved University of California, San Diego, som også forsker i softwarepålidelighed. Zhou roser den evalueringsproces, forskerne brugte til projektet, men siger, at hun ønsker at se ClearView testet på en bredere vifte af applikationer.

At holde systemet kørende for enhver pris ser ud til at have fordel, tilføjer David Pearce , en lektor i datalogi ved Victoria University i Wellington, New Zealand. Han påpeger, at ClearView er designet til at påføre patches, når den opdager, at noget er gået galt. Nogle systemer er designet til at lukke ned, når en fejl opdages, men hvis en angribers mål er sabotage, siger Pearce, spiller denne tilgang lige i deres hænder.

Men ClearViews tilgang kan resultere i nogle hikke for brugeren, tilføjer Pearce. For eksempel, hvis en webbrowser havde en fejl, der gjorde den ude af stand til at håndtere URL'er over en vis længde, kan ClearViews patch beskytte systemet ved at klippe enderne af URL'er, der var for lange - forhindre programmet i at fejle, men også forhindre det fra at arbejde fuldt ud. Sådanne problemer ville dog sandsynligvis ikke være direkte skadelige. Det er generelt kun hackere, der forsøger at udnytte sådanne smuthuller, siger Pearce, og det ville være dem, der led.

skjule