Warum das Hinzufügen von Fehlern zu Software diese sicherer machen kann

Wenn es um Radarverfolgung geht, ist eine der effektivsten Gegenmaßnahmen, eine Wolke aus Aluminiumstreifen oder metallisiertem Kunststoff freizusetzen. Diese reflektieren das Radar stark und erzeugen Tausende von Zielen, die die Radarechos überschwemmen und verwirren. Das verwirrt alles, was versucht, Sie zu verfolgen, wie zum Beispiel eine radargesteuerte Rakete.





Die meisten Militärflugzeuge und Kriegsschiffe sowie viele ballistische Raketen haben Täuschungssysteme, die Spreu enthalten. Und jetzt wenden Cybersicherheitsforscher dieselbe Idee auf Software an.

Die Idee ist im Prinzip einfach. Software enthält oft Fehler, von denen die meisten von ihren Erstellern und legitimen Benutzern unbemerkt bleiben. Aber böswillige Akteure suchen aktiv nach diesen Fehlern, um sie für gezielte Angriffe auszunutzen. Ihr Ziel ist es, den Computer zu übernehmen oder ihn anderweitig zu manipulieren.

Aber nicht alle Fehler sind gleich. Einige können nicht für böswillige Zwecke ausgenutzt werden und bewirken nichts Schlimmeres, als ein Programm zum Absturz zu bringen. Dies kann schwerwiegend sein, aber es gibt eine große Klasse von Software, wie z. B. Hintergrund-Microservices, die darauf ausgelegt sind, Abstürze elegant zu handhaben, indem die Software neu gestartet wird, während der Benutzer nicht klüger ist. Diese Fehler sind viel weniger schwerwiegend als solche, die eine böswillige Kontrolle ermöglichen.



Aber sie voneinander zu unterscheiden ist nicht immer einfach. Nachdem böswillige Programmierer Fehler gefunden haben, müssen sie die wirklich gefährlichen von den relativ harmlosen unterscheiden, und dieser Prozess ist im Allgemeinen schwierig und zeitaufwändig.

Das ist die Grundlage für einen neuen Ansatz, der von Zhenghao Hu und Kollegen an der New York University entwickelt wurde. Warum nicht gewöhnlichen Code mit gutartigen Fehlern füllen, um potenzielle Angreifer zu täuschen?

Die Idee ist, Angreifer zu zwingen, ihre Ressourcen zu verbrauchen, um Fehler zu finden und zu testen, die für sie nutzlos sind. Hu und Co nennen diese Köder Chaff Bugs, in Anlehnung an die Aluminiumstreifen, die verwendet werden, um Radaroperatoren zu täuschen.



Die Idee ist nur der letzte Schritt in einem immer komplexer werdenden Katz-und-Maus-Spiel, in dem Sicherheitsexperten gegen Angreifer antreten. In den letzten Jahren haben verschiedene Gruppen Programme entwickelt, die den Code durchsuchen und nach Schwachstellen suchen, die ein Angreifer ausnutzen könnte. Sicherheitsexperten verwenden diesen Ansatz, um diese Schwachstellen zu finden und zu entfernen, bevor der Code öffentlich wird, während böswillige Angreifer denselben Ansatz verwenden, um Fehler zu finden, die sie ausnutzen können.

Aber für Sicherheitsforscher ist die Entwicklung dieser Programme schwierig und setzt voraus, dass es überhaupt Schwachstellen in der Software gibt. Daher haben Forscher ein weiteres Tool entwickelt, das diese Fehler automatisch zu Software hinzufügt, damit sie später vom Schwachstellensuchprogramm entdeckt werden können.

Es stellt sich heraus, dass das Hinzufügen von Fehlern keineswegs einfach ist. Zufällige Änderungen am Code machen ihn in der Regel unbrauchbar, anstatt interessante Anomalien einzuführen. Stattdessen umfasst der Prozess das Ausführen des Codes mit verschiedenen Eingaben und das Überwachen, was mit diesen Eingaben passiert, während der Code fortschreitet.



Dieser Prozess sucht nach Punkten im Programm, an denen die Eingabe nicht mehr verwendet wird, um zukünftige Entscheidungen zu treffen. In diesem Fall kann diese tote Eingabe böswillig manipuliert werden, um den Speicher zu beschädigen oder zum Überlaufen zu bringen.

Das Vulnerability-Spotting-Programm merkt sich, wo sich diese toten Zonen befinden, damit sie später ausgenutzt werden können.

Es stellt sich heraus, dass diese potenziellen Fehler häufig in Code vorkommen, der in Sprachen wie C und C++ geschrieben wurde, die keine Systeme haben, die die Speichernutzung überwachen.



Hu und Co verwenden diesen Ansatz einfach, um Speicherkorruptionsfehler im gesamten Code hinzuzufügen. Unter normalen Umständen sind diese Fehler harmlos. Aber wenn sie von einem böswilligen Akteur gefunden werden, können sie nur ausgenutzt werden, um das Programm zum Absturz zu bringen – nicht für etwas Unheimlicheres. Deshalb wirken sie wie Spreu.

Angreifer, die versuchen, Fehler in Software zu finden und auszunutzen, werden mit hoher Wahrscheinlichkeit einen absichtlich platzierten, nicht ausnutzbaren Fehler finden und wertvolle Ressourcen verschwenden, indem sie versuchen, einen funktionierenden Exploit zu erstellen, sagen Hu und Co.

Das Team zeigt weiter, dass die aktuellen Prozesse zur Erkennung potenzieller Fehler durch diesen Ansatz getäuscht werden. Wir zeigen, dass die Funktionalität der Software nicht beeinträchtigt wird, und demonstrieren, dass unsere Fehler für aktuelle Triage-Tools ausnutzbar erscheinen, sagen sie

Das ist ein interessanter Ansatz, der das Potenzial hat, böswillige Angreifer erheblich abzulenken. Wir glauben, dass Chaff Bugs als wirksame Abschreckung sowohl gegen menschliche Angreifer als auch gegen automatisierte Cyber-Reasoning-Systeme dienen können, sagen Hu und Co.

Aber es wirft auch einige interessante Fragen auf. Zum Beispiel gibt es keinen wirklichen Beweis dafür, dass das Triaging von Fehlern, um ausnutzbare zu finden, notwendigerweise schwierig und zeitaufwändig ist. Es ist theoretisch möglich, dass jemand irgendwo einen schnellen Weg gefunden hat, dies zu tun.

Wenn sich herausstellt, dass es eine Möglichkeit gibt, Spreu-Bugs leicht von ausnutzbaren zu unterscheiden, verliert dieser Ansatz an Wert. Tatsächlich versuchen Hu und Co. nicht, ihre Fehler zu verstecken oder zu verschleiern. Das bedeutet, dass sie derzeit viele Artefakte enthalten, mit denen Angreifer sie identifizieren und ignorieren könnten, sagen sie.

Es gibt auch sehr wenige Variationen bei diesen injizierten Fehlern. [Dies] könnte es einem Angreifer ermöglichen, Muster in den von uns produzierten Fehlern zu identifizieren und diejenigen auszuschließen, die mit dem Muster übereinstimmen, sagen sie.

Aber es gibt erhebliches Potenzial voraus. Die Idee, Bugs hinzuzufügen, anstatt sie zu entfernen, ist ein herrlich böswilliger Ansatz zur Cyberkriminalität und einer, der einige interessante Wege für zukünftige Forschung eröffnen sollte.

Ref: arxiv.org/abs/1808.00659 : Chaff Bugs: Angreifer abschrecken, indem Softwarefehler gemacht werden

verbergen