Topologische Analyse von Programmcode
Die Erkenntnisse aus diesem Projekt zeigen einen innovativen Ansatz, um Programmcode hierarchisch aufzubereiten und diese Hierarchie infolgedessen „flach“ wieder abzubilden. Das dabei verfolgte Konzept kann eingesetzt werden, um die Analyse großer Anwendungen durch Abstraktion zu vereinfachen und gewisse Implementierungsmuster in Programmen wieder zu finden.
Bei der sicherheitsorientierten Analyse von Applikationen tritt zunehmend der Umstand auf, dass die eigentlich zu untersuchenden Eigenschaften von Programmen im Code immer schwerer auffindbar und nachvollziehbar werden. Zunehmende Komplexität und umfangreicherer Funktionsumfang von Programmen tragen dazu bei, dass sich manuelle Überprüfungen der Implementierung nur auf gewisse Aspekte konzentrieren können (z.B. Code mit kryptographischen Funktionsroutinen), andere, potentiell ebenfalls sicherheitsrelevante Aspekte aber außer Acht gelassen werden oder nicht in allen vorkommenden Verwendungsszenarien analysiert werden können.
Im Zuge dieses Projekts wurde ein Ansatz gesucht, um Programmcode so aufzubereiten, dass eine topologische Suche ermöglicht wird. Angesichts der gegebenen Herausforderungen lag dabei die graphische Darstellung von Code als AST (Abstract Syntax Tree) für die Suche von zusammengehörigen Codefragmenten nahe. Das Ziel war es, die Analyse großer Anwendungen zu vereinfachen und effizient feststellen zu können, wo sich sicherheitskritische Programmteile befinden.