Zur GPN17 des Entropia e.V. im ZKM - Zentrum f\xfcr Kunst und Medien und der Hochschule f\xfcr Gestaltung (HfG) hat Florian Magin (@0x464d) einen Vortrag zu Automated Binary Analysis gehalten und war bereit uns auch im Podcast zu erz\xe4hlen, wie er mit mathematischen Verfahren Software auf Schwachstellen analysiert. Florian studiert Informatik an der TU Darmstadt und engagiert sich im CTF-Team Wizards of Dos seiner Universit\xe4t. Sein Interesse an der Computersicherheit hat ihn auch zur Firma ERNW Research gef\xfchrt, wo er als Werkstudent in der IT-Sicherheitsforschung t\xe4tig ist. Wie wichtig die Suche nach Schwachstellen und deren Absicherung ist, wurde k\xfcrzlich bei der weltweiten Verbreitung der WannaCry/WannaCrypt-Schadsoftware bewusst, die die Aufmerksamkeit von einer anderen und lukrativeren Schadsoftware Adylkuzz ablenkte. Unter der Binary Analysis versteht man die quellenlose Analyse eines Programms alleine auf den Daten im Maschinencode auf einem Speichermedium. Ein erster Schritt der Analysis ist die Wandlung der Maschinensprache in Mnemonic durch einen Disassembler. Dieser Programmcode kann sich deutlich von einer urspr\xfcnglichen Quelltext des Programms unterscheiden, da der Maschinencode erzeugende Compiler eine Vielzahl von Optimierungsm\xf6glichkeiten umsetzt, die den Ablauf und das Abbild des Programms im Maschinencode deutlich ver\xe4ndern k\xf6nnen. Eine Herausforderung stellt sich inzwischen in der Gr\xf6\xdfe der Programme: W\xe4hrend es inzwischen zahlreiche Wettbewerbe gibt, Programme unter extremen Platzbeschr\xe4nkungen umzusetzen, w\xe4chst die Gr\xf6\xdfe klassischer Programme stark an. Ein Maschinensprache-Befehl kann in einem Byte kodiert sein, wie fr\xfcher etwa hexadezimal C9 auf dem Z80 eine Unterroutine beendet, so k\xf6nnen in 4 Bytes Operationen wie eine Addition samt Parameter definiert sein. Die automatisierte Bin\xe4ranalyse hat besonders durch die Darpa Cyber Grand Challenge im Jahr 2016 gro\xdfes Interesse geweckt, wo die Teams autonome Software entwickeln sollten, die f\xfcr sich alleine den CTF-Wettbewerb bestreitet. Eine Anwendung solcher automatisierten Programme ist die schnelle \xdcberpr\xfcfung von neuer Software auf bekannte oder typische Schwachstellen oder Implementierungsfehler. Eine sehr allgemeine Methode zur Detektion von Sicherheitsl\xfccken ist das Fuzzing: Das Open Source Tool AFL modifiziert beispielsweise korrekte Eingabewerte und pr\xfcft bei welcher Modifikation das Programm vom zuvor aufgezeichneten Programmablauf abweicht und damit einen Hinweis auf eine m\xf6gliche Schwachstelle gibt. Es kann dabei idealerweise auf dem Sourcecode operieren oder auch das Programm in einem Emulator wie QEMU ausf\xfchren und analysieren. (...)