Allgemein ist Reverse Engineering der Vorgang, um aus einem bestehenden fertigen Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Mit den gewonnenen Ergebnissen und Einsichten wird zur Verifikation das Produkt nachgebaut, was im Weiteren prinzipiell auch ermöglicht, Veränderungen und Weiterentwicklungen daran durchzuführen. Somit ist das generelle Ziel von Reverse Engineering der Nachbau eigener oder fremder Produkte.
Im Softwarebereich wird versucht, die Funktionsweise einer kompilierten Software zu analysieren, ohne dabei auf den Quelltext oder die Spezifikation der Software zugreifen zu müssen oder zu können. Für die Umsetzung wird in der Regel Dekompilierung mithilfe eines Decompilers genutzt. Dabei werden Maschinencodes in eine für Menschen lesbare Sprache übersetzt. Ist das automatisierte Übersetzen nicht möglich, kann der ermittelbare Binärcode des Programms auch direkt mit einem Disassembler (gegebenenfalls als Teil eines Debuggers) manuell analysiert werden.
Ziele des Reverse Engineerings im Softwarebereich
1.) Vorbereitung eines Cyber-Angriffs Als Vorbereitung eines Cyber-Angriffs können zum Beispiel Sicherheits-Updates mittels Reverse Engineering durch Angreifer untersucht werden, um Erkenntnisse über Sicherheitslücken zu sammeln, die durch das Update geschlossen werden sollen. Mittels dieser sicherheitsrelevanten Informationen kann ein Angreifer Rückschlüsse ziehen, wie diese Schwachstelle auf den IT-Systemen ausgenutzt werden kann, die das Update noch nicht installiert haben, um dann – mithilfe eines Exploits – einen Angriff auf nicht upgedatete IT-Systeme durchzuführen.
2.) Analyse von Angriffstools Mithilfe von Reverse Engineering kann jedoch auch Malware analysiert werden, um darüber Gegenmaßnahmen zu definieren, zum Beispiel die Malware zu erkennen oder deren Schadfunktionen (Spam, DDoS, Keylogger, Ransomware, Spyware, Adware, Trojanisches Pferd, …) zu unterdrücken.
3.) Finden von Schwachstellen Die Analyse des Binärcodes von bestehender Software kann aber auch mit dem Ziel genutzt werden, um Schwachstellen in Betriebssystemen und Applikationen zu analysieren, damit diese behoben werden können.
4.) Verifikation der Cyber-Sicherheit von Produkten Ein weiterer Anwendungsfall ist die Analyse von Software, um die Umsetzung von geeigneten IT-Sicherheitsmaßnahmen zu verifizieren.
Weitere Informationen zum Begriff “Reverse Engineering”
Lehrbuch Cyber-Sicherheit – Das Lehrbuch für Konzepte, Mechanismen, Architekturen und Eigenschaften von Cyber-Sicherheitssystemen in der Digitalisierung
Reverse Engineering ist der Vorgang, um aus einem fertigen Produkt durch Untersuchung die Konstruktionselemente zu extrahieren. Im Bereich Cyber-Sicherheit können mit Reverse Engineering z. B. Angriffe vorbereitet, Angriffstool analysiert, Schwachstellen gefunden oder Cyber-Sicherheitsprodukte verifiziert werden.
Author
Prof. Norbert Pohlmann
Publisher Name
Institut für Internet-Sicherheit – if(is)
Publisher Logo
Reverse Engineering Prof. Dr. Norbert Pohlmann - Cyber-Sicherheitsexperten