DEMISEC: Erkennung bösartiger Quellcode-Implantate
16 November 2021
Am Forschungsinstitut CODE laufen derzeit über 20 drittmittelfinanzierte Projekte aus verschiedenen Forschungsgebieten in den Bereichen IT-Sicherheit, Quantentechnologien und Smart Data. Im Interview erklären die beteiligten Forscherinnen und Forscher ihre Arbeit sowie mögliche praktische Anwendungsfälle. Heute: Prof. Dr. Johannes Kinder über das Vorhaben „DEMISEC“.
Herr Prof. Kinder, Sie forschen seit August dieses Jahres gemeinsam mit Prof. Brunthaler im Projekt „DEMISEC – Detection of Malicious Implants in Source Code“. Was wird denn überhaupt als „malicious“, also als bösartig, bezeichnet, wenn es um Quellcode-Veränderungen geht?
Bösartiges Verhalten, für das wir uns im Rahmen von DEMISEC interessieren, sind z. B. Hintertüren oder Trojanische Pferde. Diese werden so in den Code eingefügt, dass der Angreifer später Zugriff auf jedes Gerät erhält, auf dem die Software einmal ausgeführt wird. Wenn die Software entsprechend weit verbreitet ist, kann das zu spektakulären Vorfällen führen wie dem SolarWinds Angriff aus dem Jahr 2020.
In anderen Fällen kapern Angreifer kleinere Open Source Projekte über die Zugangsdaten von Entwicklern und fügen dann z. B. Code zum Stehlen von Bitcoin Wallets, Passwörtern, oder Softwarelizenzen ein.
Ist nicht jede vorgenommene Änderung am Quellcode einer Software potenziell verdächtig?
Moderne Software besteht oft aus hunderten Teilkomponenten. Das bedeutet auch, dass man Entwicklern und Distributoren der eigenen Komponenten vertraut, die wiederum den Entwicklern und Distributoren ihrer Teilkomponenten vertrauen. Diese Lieferketten für Software werden immer länger, und es ist längst unmöglich, jeden Teil selbst zu warten. Komponenten werden ständig weiterentwickelt, etwa um Schwachstellen zu beheben, und die Release-Zyklen werden immer kürzer. Der Quellcode ändert sich also praktisch ständig.
"Ein einzelnes kompromittiertes Entwickler-Konto für ein Teilprojekt eines Teilprojekts einer Software kann allen ihren Nutzern Schadcode unterjubeln."
An sich ist das eine positive Entwicklung, aber es führt eben auch dazu, dass ein einzelnes kompromittiertes Entwickler-Konto für ein Teilprojekt eines Teilprojekts einer Software allen ihren Nutzern Schadcode unterjubeln kann.
Was genau bedeutet „implantieren“ in diesem Zusammenhang?
Die Implantate können verschieden Form haben. Im einfachsten Fall ist es ein zusammenhängendes Stück Programmcode, das in eine andere Funktion des Zielprogrammes eingefügt wird. Es ist aber auch möglich, den Code über mehrere Funktionen oder sogar Komponenten des Programmes zu verteilen, um ihn besser zu tarnen. Letztlich muss ein Angreifer nur dafür sorgen, dass der Code auch irgendwann ausgeführt wird.
Mit welchen Verfahren können solche Veränderungen erkannt werden?
Wir haben hier zwei Herangehensweisen, die sich ergänzen: Einerseits entwickeln wir logische Muster, um verschiedene Arten von Schadcode direkt im Quelltext zu erkennen. Dabei orientieren wir uns an bekannten Vorfällen, untersuchen aber auch mögliche alternative Angriffsformen. Man ist dabei aber letztendlich auf die Muster beschränkt, die man sich im Vorhinein definiert hat.
Daher ergänzen wir diese Methode mit einer Überwachung von Projekten in Hinblick auf ungewöhnliche Veränderungen. Wir entwickeln automatische Testverfahren für Software und vergleichen ihr Verhalten über mehrere Versionen hinweg. Wenn wir dabei feststellen, dass untypisches Verhalten hinzugekommen ist – wie etwa das Öffnen einer neuen Art von Verbindung – lösen wir eine Warnung aus. Wichtig ist hierbei, treffsicher zu bleiben und nicht zu viele Warnungen auszulösen.
Wie könnten die Forschungsergebnisse aus DEMISEC später in der Praxis zum Einsatz kommen?
Wir haben vor, mit unseren Verfahren verschiedene beliebte Open Source-Projekte regelmäßig zu überwachen. So können wir in der Zukunft einerseits mögliche Angriffe verhindern; andererseits können wir so auch neue Erkenntnisse darüber gewinnen, wie sich unsere Analysen über einen längeren Zeitraum schlagen. Prototypen, die wir dabei entwickeln, werden wir wie üblich veröffentlichen. Damit ließen sich dann auch dezentral Frühwarnsysteme zu auffälligen Veränderungen in Open Source-Projekten installieren.
Website des NPM Open Source Repository mit einer Liste von Paketen: Im Rahmen von DEMISEC sollen auffällige Veränderungen in Open-Source-Projekten überwacht werden. © FI CODE
Das Forschungsprojekt wird als Kooperation zwischen Ihrem Labor PATCH (Program Analysis, Testing, Comprehension, and Hardening) und der Professur für Sichere Software-Entwicklung (Prof. Brunthaler) durchgeführt. Welche Vorteile bringt die Zusammenarbeit?
Wir werden in DEMISEC eng mit Prof. Brunthalers Gruppe zusammenarbeiten, die langjährige Erfahrung in compilergestützten Methoden der Softwaresicherheit mitbringt. Insbesondere haben wir als Teil von DEMISEC vor, vertrauenswürdigen Code auch als solchen zu zertifizieren. Dabei soll es möglich werden, aus vertrauenswürdigem Quelltext kompilierte Komponenten so mit Zertifikaten zu versehen, dass leichte syntaktische Veränderungen erlaubt sind, gleichzeitig aber größere Veränderungen unmöglich gemacht werden.
Sie sind seit 2019 Professor am Forschungsinstitut CODE und bringen internationale Forschungserfahrung mit. Was schätzen Sie an der Arbeits- und Forschungsumgebung hier an der Universität der Bundeswehr München?
Einer der Vorteile des FI CODE ist, dass hier mehrere Gruppen an eng verwandten Themen forschen können, und sich so regelmäßig Synergien und Kooperationen ergeben. Es gibt weltweit nur wenige Orte, wo das möglich ist. Diese gemeinsame Ausrichtung schafft eine eigene Dynamik und Gemeinsamkeit, die für mich das Besondere an CODE ausmacht.
"Einer der Vorteile des FI CODE ist, dass hier mehrere Gruppen an eng verwandten Themen forschen können, und sich so regelmäßig Synergien und Kooperationen ergeben. Es gibt weltweit nur wenige Orte, wo das möglich ist."
Durch diese Bündelung an Kompetenzen können wir auch große Projekte gemeinsam stemmen und hochkarätige Veranstaltungen wie die CODE-Jahrestagung erfolgreich austragen. Dabei unterstützt uns auch maßgeblich unsere Universität, und ich schätze in diesem Zusammenhang auch besonders die kurzen Wege zu Kollegen und Hochschulleitung.
Das Projekt DEMISEC (Detection of Malicious Implants in Source Code – Erkennung bösartiger Software-Implantate durch neuartige Verfahren in der Programmanalyse) wird im Rahmen einer deutsch-israelischen Forschungskooperation im Auftrag des Bundesministeriums der Verteidigung (BMVg) durchgeführt. Auf israelischer Seite sind das Verteidigungsministerium, die Ben-Gurion-Universität des Negev (BGU) sowie weitere Forschungseinrichtungen beteiligt. Die Kooperation soll die Fähigkeiten beider Partner im Bereich Cyber Defence stärken, ist rein defensiv ausgerichtet und hat einen offenen Forschungscharakter.
Prof. Dr. Johannes Kinder wurde am 1. Januar 2019 auf die Professur für die Härtung von IT-Systemen an der Universität der Bundeswehr München berufen. Er leitet das PATCH-Labor für Programmanalyse, -transformation, -verständnis und -härtung und ist Mitglied des Forschungsinstituts CODE sowie des Instituts für Systemsicherheit an der Fakultät für Informatik der UniBw M. In seiner Forschung beschäftigt er sich mit der automatischen Härtung von Anwendungen und Systemen durch statische und dynamische Programmanalyse.
Teaserbild: Bösartige Quellcode-Veränderungen sind zum Beispiel sogenannte "Trojanische Pferde", die so in den Code eingefügt werden, dass Angreifer Zugriff auf jedes Gerät erhalten, auf dem die Software einmal ausgeführt wird. © FI CODE / 13smok@pixabay