Software die zichzelf oplost

Martin Rinard , een professor in computerwetenschappen aan het MIT, is onbeschaamd over het uiteindelijke doel van het onderzoek van zijn groep: het leveren van een onsterfelijk, onkwetsbaar programma. In het werk dat deze maand werd gepresenteerd op het ACM Symposium on Operating Systems Principles in Big Sky, MT, ontwikkelde een groep MIT-onderzoekers, geleid door Rinard en Michael Ernst, die nu universitair hoofddocent is aan de Universiteit van Washington, software die kan vinden en repareer bepaalde soorten softwarefouten binnen enkele minuten.





Wanneer een potentieel schadelijke kwetsbaarheid wordt ontdekt in een stuk software, duurt het gemiddeld bijna een maand voordat menselijke ingenieurs met een oplossing komen en de oplossing naar de getroffen systemen pushen, volgens een rapport van beveiligingsbedrijf Symantec in 2006 De onderzoekers, die aan het werk hebben samengewerkt met een startup genaamd Determina, hopen dat de nieuwe software, ClearView genaamd, dit proces zal versnellen, waardoor de software aanzienlijk beter bestand is tegen falen of aanvallen.

ClearView werkt zonder hulp van mensen en zonder toegang tot de onderliggende broncode van een programma (een vaak propriëtaire set instructies die definieert hoe een stuk software zich zal gedragen). In plaats daarvan controleert het systeem het gedrag van een binair bestand: de vorm die het programma aanneemt om instructies op de hardware van een computer uit te voeren.

Door het normale gedrag van een programma te observeren en een reeks regels toe te wijzen, detecteert ClearView bepaalde soorten fouten, met name fouten die worden veroorzaakt wanneer een aanvaller kwaadaardige invoer in een programma injecteert. Wanneer er iets misgaat, detecteert ClearView de anomalie en identificeert het de regels die zijn overtreden. Het komt dan met verschillende mogelijke patches die zijn ontworpen om de software te dwingen de geschonden regels te volgen. (De patches worden rechtstreeks op het binaire bestand toegepast, waarbij de broncode wordt omzeild.) ClearView analyseert deze mogelijkheden om te beslissen welke het meest waarschijnlijk werken, installeert vervolgens de beste kandidaten en test hun effectiviteit. Als aanvullende regels worden geschonden, of als een patch ervoor zorgt dat het systeem crasht, wijst ClearView het af en probeert het een andere.



ClearView is met name effectief wanneer het is geïnstalleerd op een groep machines waarop dezelfde software wordt uitgevoerd. In dat geval wordt wat ClearView leert van fouten op de ene machine, gebruikt om alle andere te herstellen. Omdat het geen toegang tot de broncode vereist, zegt Rinard dat ClearView kan worden gebruikt om programma's te repareren zonder de medewerking van het bedrijf dat de software heeft gemaakt, of om programma's te repareren die niet langer worden onderhouden. Hij hoopt dat het systeem de levensduur van oudere versies van software, gemaakt door failliete bedrijven, kan verlengen, naast het beschermen van de huidige software.

Om het systeem te testen, installeerden de onderzoekers ClearView op een groep computers met Firefox en huurden ze een onafhankelijk team in om de webbrowser aan te vallen. Het vijandige team gebruikte 10 verschillende aanvalsmethoden, die elk een kwaadaardige code in Firefox injecteerden. ClearView blokkeerde met succes alle mogelijke aanvallen door wangedrag te detecteren en de toepassing te beëindigen voordat de aanval het beoogde effect kon hebben. De allereerste keer dat ClearView een exploit tegenkomt, sluit het het programma en begint het binaire bestand te analyseren, op zoek naar een patch die de fout had kunnen stoppen.

Voor zeven van de benaderingen van het aanvallende team heeft ClearView patches gemaakt die de onderliggende fouten corrigeerden. In alle gevallen verwierp het correcties die negatieve bijwerkingen hadden. Gemiddeld kwam ClearView met een succesvolle patch binnen ongeveer vijf minuten na de eerste blootstelling aan een aanval.



Wat dit onderzoek ons ​​doet geloven, is dat software op zichzelf niet inherent kwetsbaar en broos is vanwege fouten, zegt Rinard. Het is kwetsbaar en broos omdat mensen bang zijn om de software door te laten gaan als ze denken dat er iets mis mee is. Sommige benaderingen van software-engineering, zoals foutloos computergebruik of acceptabel computergebruik, delen deze filosofie.

ClearView is een heel goed startpunt, zegt Yuanyuan Zhou , een professor in de informatica aan de Universiteit van Californië, San Diego, die ook onderzoek doet naar de betrouwbaarheid van software. Zhou prijst het evaluatieproces dat de onderzoekers voor het project hebben gebruikt, maar zegt dat ze ClearView getest wil zien op een grotere verscheidenheid aan toepassingen.

Het systeem ten koste van alles in stand houden lijkt de verdienste te hebben, voegt eraan toe: David Pearce , een hoofddocent in computerwetenschappen aan de Victoria University in Wellington, Nieuw-Zeeland. Hij wijst erop dat ClearView is ontworpen om patches toe te passen wanneer het detecteert dat er iets mis is gegaan. Sommige systemen zijn ontworpen om uit te schakelen wanneer een fout wordt gedetecteerd, maar als het doel van een aanvaller sabotage is, zegt Pearce, speelt deze aanpak hun in de kaart.

Maar de aanpak van ClearView kan voor de gebruiker enkele haperingen opleveren, voegt Pearce toe. Als een webbrowser bijvoorbeeld een bug had waardoor het niet in staat was om URL's langer dan een bepaalde lengte te verwerken, zou de patch van ClearView het systeem kunnen beschermen door de uiteinden van URL's die te lang waren af ​​te knippen, waardoor wordt voorkomen dat het programma faalt, maar ook voorkomt van volledig werken. Dergelijke problemen zouden echter waarschijnlijk niet ronduit schadelijk zijn. Het zijn over het algemeen alleen hackers die proberen dergelijke mazen in de wet te misbruiken, zegt Pearce, en zij zouden degenen zijn die eronder zouden lijden.

zich verstoppen