Software, die sich selbst repariert

Martin Rinar , Professor für Informatik am MIT, ist unverfroren über das ultimative Ziel der Forschung seiner Gruppe: die Bereitstellung eines unsterblichen, unverwundbaren Programms. In einer Arbeit, die diesen Monat auf dem ACM Symposium on Operating Systems Principles in Big Sky, MT, vorgestellt wurde, entwickelte eine Gruppe von MIT-Forschern unter der Leitung von Rinard und Michael Ernst, der jetzt außerordentlicher Professor an der University of Washington ist, eine Software, die das Auffinden und Beheben Sie bestimmte Arten von Softwarefehlern innerhalb von Minuten.





Wenn eine potenziell schädliche Schwachstelle in einer Software entdeckt wird, dauert es laut einem Bericht des Sicherheitsunternehmens Symantec aus dem Jahr 2006 durchschnittlich fast einen Monat, bis menschliche Ingenieure eine Lösung finden und diese auf die betroffenen Systeme übertragen Die Forscher, die bei der Arbeit mit einem Startup namens Determina zusammengearbeitet haben, hoffen, dass die neue Software namens ClearView diesen Prozess beschleunigen und die Software deutlich widerstandsfähiger gegen Ausfälle oder Angriffe machen wird.

ClearView funktioniert ohne menschliche Hilfe und ohne Zugriff auf den zugrunde liegenden Quellcode eines Programms (ein oft proprietärer Satz von Anweisungen, der das Verhalten einer Software definiert). Stattdessen überwacht das System das Verhalten einer Binärdatei: die Form, die das Programm annimmt, um Anweisungen auf der Hardware eines Computers auszuführen.

Durch die Beobachtung des normalen Verhaltens eines Programms und die Zuweisung von Regeln erkennt ClearView bestimmte Arten von Fehlern, insbesondere solche, die verursacht werden, wenn ein Angreifer bösartige Eingaben in ein Programm einschleust. Wenn etwas schief geht, erkennt ClearView die Anomalie und identifiziert die verletzten Regeln. Anschließend werden mehrere potenzielle Patches erstellt, die die Software zwingen sollen, die verletzten Regeln zu befolgen. (Die Patches werden unter Umgehung des Quellcodes direkt auf die Binärdatei angewendet.) ClearView analysiert diese Möglichkeiten, um zu entscheiden, welche am wahrscheinlichsten funktionieren, installiert dann die Top-Kandidaten und testet ihre Wirksamkeit. Wenn zusätzliche Regeln verletzt werden oder ein Patch das System zum Absturz bringt, weist ClearView es zurück und versucht es mit einem anderen.



ClearView ist besonders effektiv, wenn es auf einer Gruppe von Computern installiert wird, auf denen dieselbe Software ausgeführt wird. In diesem Fall wird das, was ClearView aus Fehlern auf einem Computer lernt, verwendet, um alle anderen zu beheben. Da kein Zugriff auf den Quellcode erforderlich ist, könnte ClearView laut Rinard verwendet werden, um Programme zu reparieren, ohne dass die Firma, die die Software erstellt hat, mitwirken muss, oder um Programme zu reparieren, die nicht mehr gewartet werden. Er hofft, dass das System die Lebensdauer älterer Softwareversionen verlängern kann, die von Unternehmen entwickelt wurden, die ihre Geschäftstätigkeit eingestellt haben, und zusätzlich zum Schutz aktueller Software.

Um das System zu testen, installierten die Forscher ClearView auf einer Gruppe von Computern mit Firefox und stellten ein unabhängiges Team ein, um den Webbrowser anzugreifen. Das feindliche Team nutzte 10 verschiedene Angriffsmethoden, bei denen jeweils ein Schadcode in Firefox eingeschleust wurde. ClearView blockierte erfolgreich alle möglichen Angriffe, indem es Fehlverhalten erkannte und die Anwendung beendete, bevor der Angriff seine beabsichtigte Wirkung entfalten konnte. Wenn ClearView zum ersten Mal auf einen Exploit stößt, schließt es das Programm und beginnt mit der Analyse der Binärdatei, wobei nach einem Patch gesucht wird, der den Fehler hätte stoppen können.

Für sieben Ansätze des angreifenden Teams erstellte ClearView Patches, die die zugrunde liegenden Fehler korrigierten. In allen Fällen wurden Korrekturen mit negativen Nebenwirkungen verworfen. Im Durchschnitt entwickelte ClearView innerhalb von etwa fünf Minuten nach dem ersten Angriff einen erfolgreichen Patch.



Diese Forschung lässt uns glauben, dass Software an sich nicht aufgrund von Fehlern fragil und brüchig ist, sagt Rinard. Es ist zerbrechlich und brüchig, weil die Leute Angst haben, die Software weiterlaufen zu lassen, wenn sie denken, dass etwas nicht stimmt. Einige Software-Engineering-Ansätze, wie zum Beispiel fehlerfreies Computing oder akzeptables Computing, teilen diese Philosophie.

ClearView ist ein wirklich guter Ausgangspunkt, sagt Yuanyuan Zhou , Professor für Informatik an der University of California, San Diego, der sich auch mit Software-Zuverlässigkeit beschäftigt. Zhou lobt den Bewertungsprozess, den die Forscher für das Projekt verwendeten, sagt jedoch, dass sie ClearView in einer größeren Vielfalt von Anwendungen testen möchte.

Das System um jeden Preis am Laufen zu halten, scheint seinen Vorteil zu haben, fügt hinzu David Pearce , ein leitender Dozent für Informatik an der Victoria University in Wellington, Neuseeland. Er weist darauf hin, dass ClearView so konzipiert ist, dass es Patches anwendet, wenn es erkennt, dass etwas schief gelaufen ist. Einige Systeme sind so konzipiert, dass sie bei Erkennung eines Fehlers herunterfahren, aber wenn das Ziel eines Angreifers Sabotage ist, spielt dieser Ansatz laut Pearce direkt in die Hände.

Der Ansatz von ClearView könnte jedoch zu Problemen für den Benutzer führen, fügt Pearce hinzu. Wenn beispielsweise ein Webbrowser einen Fehler hatte, der dazu führte, dass URLs ab einer bestimmten Länge nicht verarbeitet werden konnten, schützte der ClearView-Patch das System möglicherweise, indem er die Enden zu langer URLs abschneidet – und verhindert so, dass das Programm fehlschlägt, aber auch verhindert. voll arbeiten. Solche Probleme wären jedoch wahrscheinlich nicht gerade schädlich. Normalerweise versuchten nur Hacker, solche Schlupflöcher auszunutzen, sagt Pearce, und sie wären diejenigen, die darunter litten.

verbergen