Technik

Lückensuche in drei Schritten

So spüren die Forscher Schwachstellen auf

Um Schwachstellen im Code unabhängig vom Gerät zu finden, führen die Bochumer IT-Forscher eine Softwareanalyse aus drei Schritten durch: Sie übersetzen die Binärsprache, spüren darin Programmierfehler auf und testen, unter welchen Bedingungen die Schwachstellen relevant werden.

Übersetzen

Im ersten Schritt übersetzen die Forscher die Binärcodes zunächst in eine Zwischensprache. Ein Additionsbefehl eines Mikrocontrollers sieht in der Zwischensprache dann genauso aus wie ein Additionsbefehl eines Intel-Prozessors.

Um eine Software zu analysieren, benötigt Thorsten Holz nicht den Original-Quellcode. Der Binärcode, den er direkt aus einem Gerät auslesen kann, reicht aus. © RUB/ Schirdewahn

„Das ist Fleißarbeit“, erzählt Holz, denn es gilt, viele verschiedene Instruktionen zu übersetzen. „Unsere Zwischensprache enthält weniger als zwei Dutzend Befehle. Was komplexe Prozessoren in einem einzigen Schritt tun, müssen wir daher in vielen kleinen Einzelschritten machen.“ Den Verschlüsselungsbefehl eines Intel-Prozessors würden die Wissenschaftler zum Beispiel in eine lange Folge von arithmetischen und logischen Operationen sowie Sprungbefehlen zerlegen.

Programmfehler suchen

Ist ein Programm in die Zwischensprache übersetzt, kann Holz’ Team es automatisch analysieren, um Schwachstellen aufzudecken. Die Forscher suchen nach Programmierfehlern, über die Angreifer die Software unter ihre Kontrolle bringen können.

Kritisch sind etwa Stellen im Code, an denen eine Variable eigentlich nur eine bestimmte Länge haben darf, aber Angreifer über diese Grenze hinausschreiben können. Oder logische Fehler: Sie können auftreten, wenn das Programm prüft, ob eine Variable einer bestimmten Bedingung entspricht, etwa kleiner, größer oder gleich null ist. Vergisst der Programmierer, eine dieser Bedingungen abzufragen, können Angreifer sich unter Umständen über die Lücke Zugang verschaffen.

Die Software von vernetzten Systemen besteht aus Tausenden bis Millionen Zeilen Code. Es ist eine Herausforderung, darin die sicherheitsrelevanten Schwachstellen zu finden. © RUB/ Schirdewahn

Sicherheitsrelevanz prüfen

Haben die Forscher Programmierfehler aufgespürt, untersuchen sie im nächsten Schritt, ob diese sicherheitskritisch sind. Denn nicht jede Lücke hat Folgen in der Praxis. „Manchmal gibt es zwar Programmierfehler in der Software, aber nicht alle Fehler können von einem Angreifer ausgenutzt werden“, so Holz.

In ihrer Analyse ermitteln die Forscher, unter welchen Bedingungen eine bestimmte Stelle des Codes aufgerufen wird. Dazu verwenden sie Standardverfahren wie die symbolische Ausführung. Sie füttern das zu untersuchende Programm, etwa eine Taschenrechner-App, dafür mit Variablen statt konkreten Zahlen.

Ein Beispiel: Statt fünf und acht bekommt die App als Input die Platzhalter Alpha und Beta. Ein Algorithmus berechnet dann, welche Werte die Variablen annehmen müssen, um einen gewissen Punkt im Programmcode zu erreichen. „Das Ergebnis könnte etwa lauten, dass Alpha zwischen 100 und 500 liegen muss, um an die sicherheitskritische Schwachstelle im Code zu gelangen“, veranschaulicht Holz.

  1. zurück
  2. |
  3. 1
  4. |
  5. 2
  6. |
  7. 3
  8. |
  9. 4
  10. |
  11. 5
  12. |
  13. 6
  14. |
  15. 7
  16. |
  17. weiter

RUBIN/ Julia Weiler, Ruhr-Universität Bochum
Stand: 29.07.2016

Keine Meldungen mehr verpassen – mit unserem wöchentlichen Newsletter.
Teilen:

In den Schlagzeilen

Inhalt des Dossiers

Kleiner Code für große Sicherheit
Forschung gegen Sicherheitslücken im Internet der Dinge

Binäres Sprachgewirr
Schwierige Vielfalt im vernetzten Haushalt

Lückensuche in drei Schritten
So spüren die Forscher Schwachstellen auf

Lücken zu!
Aufspüren und Beseitigen ist das Ziel

Verschlüsselt, aber…
Vernetzte Kleingeräte sind oft schlechter geschützt

Gut, aber nicht unknackbar
Symmetrische Verschlüsselung und ihre Schwachstellen

Lightweight-Kryptografie
Sichere Verschlüsselung im Sparmodus

Diaschauen zum Thema

News zum Thema

Online-Games: Was der Nutzername verrät
Name und Spielverhalten geben Rückschluss auf Persönlichkeit

Neue Masche beim Identitätsklau
Betrügerische Onlineshops verhökern Fälschungen im Namen ahnungsloser Nutzer

Datenleck in Apps bedroht Millionen Nutzer
Fehlerhafte Authentifizierungen für Cloud-Speicher erleichtern Angriffe

Der Computer kennt uns besser
Schon wenige "Likes" verraten, wer wir sind und wie wir ticken

Dossiers zum Thema