Aktuelles, Branche, Gastbeiträge - geschrieben von am Dienstag, August 23, 2016 18:54 - ein Kommentar

Hacker bald nutzlos und überflüssig

Computer (Bots) identifizieren und beheben automatisiert Sicherheitslücken in Software

Von unseren Gastautoren Thomas Bötner, Michael Arcan und Hartmut Pohl

[datensicherheit.de, 23.08.2016] Computer patchen ihre Sicherheitslücken selbst? Die sieben internationalen Teams des DARPA Cyber Grand Challenge im Rahmen der DEFCON Anfang August in Las Vegas haben gezeigt, wie es funktionieren kann. Ihre selbstlernenden Systeme haben vollständig autonom unveröffentlichte [1] Sicherheitslücken und Angriffe identifiziert und vollautomatisiert Patches geschrieben. Was bedeutet dieser technische Fortschritt, die konsequente Anwendung der Digitalisierung/Automatisierung der IT-Sicherheitsbranche für die Zukunft? Werden Sicherheitsuntersuchungen und Patch-Entwicklungen zukünftig autonom von Maschinen durchgeführt? Wo liegen hier die Chancen und wo die Grenzen?

Wettbewerb der Zukunftstagentur DARPA

Sie werden sich nicht mehr erinnern: Aber 2004 führte die Defense Advanced Research Projects Agency (DARPA), die Wissenschafts- Behörde des US-Verteidigungsministeriums, die erste ‚DARPA Grand Challenge‘ durch: Über 100 Fahrzeuge traten an, um einen Hindernissparkur von ca. 240 km Länge ohne menschliches Eingreifen autonom zu durchfahren. Eine damals gewaltige Herausforderung: Grand Challenge. Und so war es keine große Überraschung, als keines der Fahrzeuge die Ziellinie erreichte (die autonom zurückgelegte Strecke lag unter 12 km). Heute, 12 Jahre später, scheinen selbst-fahrende Autos zum Greifen nah. Fahrerassistenzsysteme wie Teslas Autopilot sind bereits auf unseren Straßen unterwegs – geben aber nur eine Vorahnung auf das noch Kommende. Das 2004 Undenkbare ist heute (fast schon) ein Premiumfeature und wird morgen (vielleicht auch erst übermorgen?) zur Serienausstattung aller Fahrzeuge gehören.

Einen vergleichbar revolutionären Sprung soll die diesjährige DARPA Cyber Grand Challenge anstoßen. Die gewaltige Herausforderung besteht

  • in der automatisierten Analyse zuvor unbekannter Programme auf Sicherheitslücken und dem
  • automatisierten Patchen.

Derzeit erfordert die Identifizierung von Sicherheitslücken ein hohes Maß an Kreativität und ‚händischer‘ Arbeit. Zwar greifen Experten auf einen großen Pool an Tools zurück, jedoch bleibt die Auswertung der Ergebnisse dieser Tools manuelle Arbeit. Ebenfalls ist die Entwicklung von Patches als Gegenmaßnahmen ein weitestgehend manueller Prozess.

Ziel war auch in diesem Wettbewerb, den wirkungsvollsten Weg der Automatisierung zu erkennen – hier der Fehlerbehebung in Software und nicht etwa der Wettbewerb zwischen Mensch und Maschine.

Hacking-Wettbewerb

Nach einem 3-jährigen Auswahlwettbewerb hatten sich sieben Teams für diesen Wettbewerb qualifiziert und gezeigt, wozu IT-Systeme heute schon eigenständig in der Lage sind und wo die Grenzen liegen. In 96 Runden traten die Cyber Reasoning Systeme (CRS) genannten Hacking-Bots der Teams insgesamt nur 8 Stunden lang gegeneinander an [2]. In jeder Runde erhielten die Bots den ausführbaren Binärcode der dem System zuvor unbekannten Programme, in denen Sicherheitslücken identifiziert werden sollten. Die Bots mussten diese Programme

  • selbständig starten
  • die Funktionalität gewährleisten
  • auf Sicherheitslücken hin untersuchen und schließlich
  • Patches entwickeln und diese
  • in den Maschinencode installieren und auch noch
  • gegen Angriffe der gegnerischen Bots verteidigen – Capture-the-Flag (CTF) Prinzip.

Bewertung

Punkte wurden für identifizierte Sicherheitslücken vergeben sowie für erfolgreiche Angriffe auf die geschützten Programme der anderen Teams, erkannte und abgewiesene Angriffe auf eigene Systeme, entwickelte Patches und insbesondere für die Zeit, in der das Programm ohne funktionale Einschränkung lief (Verfügbarkeit):

  • Availability (Verfügbarkeit): Auch nach Patchen funktioniert das Programm korrekt.
  • Security (Sicherheit): Jedes Team kann sein System mit einem generischen oder auch mit einem maßgeschneiderten Patch schützen.
  • Evaluation (Bewertung gegnerischer Software): Jedes Team darf Vulnerability Scanner programmieren und auf gegnerische Software ansetzen um Sicherheitslücken zu identifizieren.

Die Punkte wurden in den drei Bereichen zusammengefasst, in jeder Runde miteinander multipliziert und alle Rundenwerte zu einem einzigen Wert addiert. Das beste Team erhielt 2 Mio. $, das zweite 1 Mio. $ und das dritte 0.75 Mio. $. Die Teams schnitten wie folgt ab:

DARPA Grand Challenge

Graphik: softScheck

Rangfolge, teilnehmende Teams (Unternehmen und Hochschulen) und erreichte Punktzahl

Fachliche Erfolge

Im Laufe des Wettkampfs identifizierten die Bots 650-mal Sicherheitslücken und entwickelten selbständig jeweils einen Proof-of-Vulnerability (POV). Darunter befand sich eine Sicherheitslücke, die selbst den DARPA-Programmierern nicht bekannt war. Einem Bot gelang es sogar, sich gegen das Ausnutzen dieser Sicherheitslücke zu schützen, ohne sie zu kennen. Es wurden 650 Sicherheitslücken identifiziert und 421 Patches entwickelt.

Wie genau die sieben Bots zu diesen Ergebnissen kamen, bleibt bisher ein weitgehend gut gehütetes Geheimnis. Zum einen um es den anderen Teams schwerer zu machen, zum anderen wird eine zukünftige kommerzielle Vermarktung der Bots nicht ausgeschlossen. Das Team Shellfish hat allerdings bereits angekündigt, den Code ihres Bots vollständig zu veröffentlichen. Es ist aber nicht bekannt inwieweit die Teams überhaupt die vollen Veröffentlichungsrechte besitzen.

Methoden der Teams

Zur Identifizierung der Sicherheitslücken kamen mehrere dynamische und statische Methoden zum Einsatz. Die Schwierigkeit dabei ist, möglichst alle Code Segmente zu überprüfen. Dieses Ziel ist mit der Methode Dynamic Analysis – Fuzzing am besten zu erreichen. Beim Fuzzing wird durch systematisches Ausprobieren einer großen Anzahl Eingabedaten Anomalien in einem Zielsystem provoziert. Fuzzing kann jedoch bei mangelhafter Auswahl der Eingabedaten ein sehr zeitaufwendiger Prozess werden. Fuzzing erfordert daher den Eingriff von Experten. Die Methode Fuzzing sollte daher nicht allein für die automatische Suche nach Sicherheitslücken eingesetzt werden. Fuzzer kamen dennoch zum Einsatz, da auf die grundsätzlich hohe Erfolgsrate dieser Methode nicht verzichtet werden konnte.

Um in kurzer Zeit eine möglichst hohe Code Coverage zu erreichen, wurde eine Kombination von Symbolic Execution und Fuzzing eingesetzt. Dabei wurde zunächst mittels Symbolic Execution ein Pfadbaum der Anwendung herauskristallisiert. Auf Basis dieses Pfadbaumes wurde der Fuzzer in die Lage versetzt, an einen bestimmten Eingabepunkt in der Anwendung zu gelangen ohne die dafür notwendigen Eingabedaten mühsam „erraten“ zu müssen. Neben den dynamischen Methoden kamen auch statische, wie Static Machine-Code Analysis zu Einsatz. Hier einige der relevanten Angriffstools:

DARPA Grand Challenge

Graphik: softScheck

In den Tests eingesetzte Produkte und Methoden (Auszug)

Die zu den Sicherheitslücken entwickelten Patches lassen sich in zwei Gruppen unterteilen:

  • Specific Purpose, die eine bestimmte Sicherheitslücke schließen und
  • General Purpose, die aus allgemeinen Systemhärtungen, wie Memory Randomization und Trennung von nicht ausführbaren (non-executable) und ausführbaren (executable) Daten bestehen.

Weitere „Patches“ umfassen Intrusion Detection/Prevention Systeme und Filtern der Eingabedaten auf identifizierte Angriffe. Außerdem wurde versucht, die Patches der anderen Teams zu analysieren und die eigenen Patches gegen Analysen der anderen Teams zu schützen.

Die Bots mussten selbstständig entscheiden, ob und wann sie patchen. Denn während des Patchens wird die Verfügbarkeit des jeweiligen Dienstes eingeschränkt. Daher wurden Sicherheitslücken, die schwer zu identifizieren waren, erst spät oder gar nicht gepatcht, obwohl der Patch frühzeitig bereitstand.

Bewertung der Bots und Teams

Die Automatisierung wird auch in der IT-Security zweifellos weiter sehr schnell voranschreiten. Automatisierungsbemühungen sind bekannt und auch die eingesetzten Methoden. Z.B. gehört Fuzzing und gehören auch die entsprechenden Tools (z.B. der AFL Fuzzer) heute schon bei high-end Security Beratungsunternehmen zu den Standardverfahren. Jedoch wird die Konfiguration der Tools und Auswertung der Ergebnisse auch weiterhin durch Experten vorgenommen.

Auch bei der Entwicklung von Patches ist derzeit der Anteil an händischer Arbeit hoch. Die autonomen Patches der Bots setzten eine automatisierbare Überprüfung der Funktionalität voraus. Das ist in den meisten Fällen nicht gegeben. Zurzeit stecken allgemein anwendbare automatisierte funktionale Testverfahren noch in den Kinderschuhen.

Viele der erkannten und gepatchten Sicherheitslücken stellen nur simple Fehler dar; die Bots beherrschen komplexere Sicherheitslücken und deren Patchen (noch) nicht. So sind Vergleiche zu den früheren ersten Schach- und Go-Wettkämpfen zwischen Mensch und Computer durchaus angebracht: Automatisierte Systeme wie Cyber Reasoning Systems werden zukünftig sehr schnell immer intelligenter und erfolgreicher, so dass sie bei automatisierten Security Tests Menschen weit hinter sich lassen werden.

Ausblick

  1. Neu ist nur die Kombination von Methoden/Tools und die automatisierte Tool-Steuerung. Die eingesetzten Methoden sind nicht neu.
  2. In diesem Wettbewerb der DARPA wurden nur simple Sicherheitslücken und solche identifiziert, deren Muster dem Bot bekannt waren. Die angestrebte automatisierte Identifizierung von Sicherheitslücken ist nicht trivial.
  3. Auch nach dem automatisierten Security Patchen muss die Funktion der Software naturgemäß noch erhalten bleiben. Dazu muss der Bot die Funktionen des zu patchenden Systems also ‚verstehen‘. Das dazu notwendige autonome funktionale Testen ist allerdings derzeit nur mit Einschränkungen möglich.
  4. Insgesamt stellt der Wettbewerb gleichwohl einen bemerkenswert großen Fortschritt im Security Testing dar:
    • Mit den entwickelten Tools können Angriffe erkannt und wirkungsvoll verhindert werden.
    • Sicherheitslücken können automatisiert identifiziert, gepatcht und korrigiert werden.
    • Erste Produkte auf der Basis dieses Wettbewerbs dürften ausgewählten Kunden derzeit schon angeboten werden.

Autoren:

Thomas Bötner, Senior IT-Security Consultant softScheck GmbH, Sankt Augustin
Michael Arcan, IT-Security Consultant softScheck GmbH, Sankt Augustin
Prof. Dr. Hartmut Pohl, geschäftsführender Gesellschafter softScheck GmbH, Sankt Augustin

Weitere Infromationen zum Thema:

[1]U.a. wurden auch Sicherheitslücken nach bekannten Mustern wie Heartbleed, Slammer, Stuxnet etc. speziell entwickelt.
[2] Jedem Team stand dazu ein spezieller Wasser-gekühlter Computer mit ca. 1,000 Intel Xeon Prozessorkernen (2.5 GHz) und 16 Terabytes RAM zur Verfügung mit der – speziell für diesen Wettbewerb entwickelten – open source Linux Modifikation DARPA Experimental Cybersecurity Research Evaluation Environment (DECREE) als Betriebssystem.

datensicherheit.de, 09.07.2015
ISO 27034-basiertes Certified Secure Software Development & Testing



ein Kommentar

Sie können Kommentare zu diesem Eintrag über den RSS-2.0-Feed verfolgen. Sie können einen Kommentar hinterlassen oder einen Trackback von Ihrer Website hierher setzen.

Meter
Aug 23, 2016 20:00

Alleine der Titel zeugt leider von Inkompetenz… Tut mir leid, ist aber die Wahrheit.
Gibt so viele andere Aufgaben Felder.

Kommentieren

Kommentar

Current ye@r *

Schulungsangebot

mITSM ISO 27001 Zertfifizierungs Audit

Partner

ZIM-BB
fit4sec

Gefragte Themen


Datenschutzhinweis