Software-Forensik

Code zerpflückt

7. Juli 2017, 8:45 Uhr | Von Bill Graham
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Die Rolle der statistischen Analyse

Gegenwärtig findet Software-Forensik so statt, dass der Quell- und Binärcode minutiös manuell untersucht wird. Das Aufdecken von Fehlern oder Manipulationsspuren ist schwierig und zeitraubend. Hier können automatisierte Tools und Techniken Zeit und Geld sparen. Darum spielen Statische-Analyse-Tools eine wichtige Rolle in der Software-Forensik.

GrammaTech hat die Anwendung der statischen Analyse zum Erkennen und Analysieren von Sicherheits-Schwachstellen ausführlich diskutiert. Im Endeffekt erfolgt das Aufspüren von Malware durch eine Tainted-Data-Analyse im Verbund mit aufgedeckten Schwachstellen. Fortschrittliche Statische-Analyse-Tools können Sicherheitslücken im Code automatisch detektieren. Die Tainted-Data-Analyse geht noch einen Schritt weiter: Mit ihr lässt sich feststellen, ob von außen kommender Input genutzt werden kann, um aus einer Schwachstelle eine echte Sicherheitsbedrohung zu machen. Die einzigartige Binär-Analyse von CodeSonar bringt dieselben Detektierungs- und Aufspürfähigkeiten mit wie das quellcodebasierte Produkt und lässt sich mit IDA Pro, einem der führenden Software-Forensik-Tools, integrieren.

Automatisierte Binärcode-Analyse

Durch die Automatisierung eines Ablaufs, der sonst das minutiöse und schwierige, manuelle Reverse Engineering des Binärcodes erfordern würde, bringt die fortschrittliche statische Analyse viele Vorteile mit sich, wie zum Beispiel

passend zum Thema

Die Verfolgung des Steuerungs- und Datenflusses wird bei komplexer Software sehr schnell unübersichtlich. Diese Aufrufpfade zeigen, dass das Unterfangen beinahe aussichtslos ist, wenn man sich nicht automatischer Hilfsmittel bedient.
Bild 2. Die Verfolgung des Steuerungs- und Datenflusses wird bei komplexer Software sehr schnell unübersichtlich. Diese Aufrufpfade zeigen, dass das Unterfangen beinahe aussichtslos ist, wenn man sich nicht automatischer Hilfsmittel bedient.
© GrammaTech
  • bessere Erkennung: Die automatisierte statische Analyse kann Fehler und Schwachstellen in Binär-Executables oder Library Object-Files beliebiger Größe erkennen – selbst über mehrere Compiliereinheiten und/oder Funktionen hinweg. Entsprechende manuelle Analysen sind dagegen schwierig und beschränken sich häufig auf vorgegebene Abschnitte des Binärcodes. Auch wenn die automatisierte Analyse die manuellen Verfahren vielleicht nicht vollständig ersetzt, verbessert sie zweifellos die Erkennungsrate und den Umfang der Analyse.
  • bessere Verfolgungsfähigkeiten: Zu den schwierigsten Aspekten der manuellen forensischen Investigation gehört das Verfolgen des Steuerungs- und Datenflusses (Bild 2), das sich bei reinem Binärcode noch schwieriger gestaltet. Die fortschrittliche statische Analyse führt die Analyse des Steuerungs- und Datenflusses für die gesamte Applikation durch. Dieser erweiterte Analyseumfang verbessert nicht nur das Erkennen, sondern reduziert auch die Zahl der Falsch-Positiv-Meldungen (also der fälschlich gemeldeten Fehler) und hilft bei der Tainted-Data-Analyse. Außerdem wartet CodeSonar mit einer ausgefeilten Web-Benutzeroberfläche auf, die entscheidend bei der Untersuchung von Fehlern hilft.
  • Ermittlungseffizienz: Das automatische Erkennen, Aufspüren und Melden von Schwachstellen verbessert die Effizienz der Binärcode-Investigation entscheidend. Ermittler im Bereich der Software-Forensik können sich darauf verlassen, dass die Binär-Analyse-Technologie von CodeSonar etwaige Schwachstellen im gesamten Code aufdeckt. Das ermöglicht es ihnen, sich mit ihrer manuellen Ermittlungstätigkeit auf ganz bestimmte Codeabschnitte zu konzentrieren. Berücksichtigt man die Kosten des manuellen Reverse Engineering und der Untersuchung von Binärcode, macht sich CodeSonar sehr schnell bezahlt.
  • Reports zum Sammeln von Beweisen: Umfassende Fehlerreports, Code-Visualisierung und die Integration mit Schwachstellenmanagement-Systemen sind entscheidende Elemente, die die Untersuchungen für die Software-Forensik unterstützen. Das Automatisieren von Teilen der Reportfunktionen bedeutet also: Zeit sparen und die Fehlerhäufigkeit reduzieren.
  • Hybrid-Analyse von Quell- und Binärcode: Auch wenn dieser Text die Binärcode-Analyse fokussiert, ist die Prüfung des Quellcodes (sofern verfügbar) ebenso wichtig. So kann beispielsweise ein verärgerter Mitarbeiter den Quellcode mit Malware versehen haben. Die Quellcode-Analyse nutzt die gleichen Features und Vorteile wie die Binär-Analyse; CodeSonar kann in ein und demselben Projekt sowohl Quell- als auch Binär-Ergebnisse dokumentieren.

Die automatisierte statische Binärcode-Analyse bietet viele Vorteile für die Software-Forensik. Indem CodeSonar den Umfang, die Genauigkeit und die Tiefe der Software-Analyse steigert, kann es gegenüber der manuellen Zurückentwicklung von Binärcode zahllose Arbeitsstunden einsparen. Mit den klaren Vorteilen, die sie für die Aufdeckung von Schwachstellen und das Sammeln von Indizien bietet, stellt die Binärcode-Analyse ein wichtiges Hilfsmittel für die Software-Forensik dar.

Der Autor:

Bill Graham, Technical Marketing Engineer bei GrammaTech.
Bill Graham, Technical Marketing Engineer bei GrammaTech.
© GrammaTech

Bill Graham
ist Technical Marketing Engineer bei GrammaTech. Er hat über 25 Jahre Erfahrung in der Software-Industrie, inklusive der Entwicklung von Embedded- und Real-Time-Systemen, statischer Analyse, UML-Modellierung und objektorientiertem Design. Vor seiner Zeit bei GrammaTech war Bill in verschiedenen Positionen im Marketing und Produktmanagement bei Wind River, QNX und IBM tätig. Bill hat einen Bachelor- und Master-Abschluss in Computer Systems Engineering der Carleton University.


  1. Code zerpflückt
  2. Die Rolle der statistischen Analyse

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu GrammaTEch

Weitere Artikel zu Cyber-Security