Meister des Codes: Von Quellcodeanalysen & Schwachstellensuche

Meister des Codes: Von Quellcodeanalysen & Schwachstellensuche

Dr. Dietmar Rosenthal

Die Sicherheit eines IT-Produktes hängt maßgeblich von einem sorgfältig entwickelten Quellcode ab. Dietmar Rosenthal ist darauf spezialisiert, auch noch die letzte Schwachstelle darin zu finden.
Dr. Dietmar Rosenthal

Fachexperte für Source Code Analysis

 

Kontakt: 

+49 201 8999 647
E-Mail schreiben

Du bist Fachexperte für Source Code Analysis. Was kann man sich darunter konkret vorstellen?


Quellcode ist für uns in der Produktgruppe Software Evaluation (SWE) der Anfangs- und Endpunkt aller Sicherheitsanalysen. Der Bauplan, an dem man – zumindest in der Theorie – alle Eigenschaften des Produktes ablesen kann. Das macht die Quellcode-Analyse aber auch so anspruchsvoll: Es ist genauso schwierig, ein sicheres Produkt zu entwerfen, wie den Bauplan des Produkts, also den Quellcode, auf Sicherheitslücken hin zu untersuchen. Man kann das gut daran ablesen, dass auch nach Jahren immer wieder neue Sicherheitslücken in alten Open-Source-Paketen gefunden werden, sogenannte CVEs, die in „Security Advisories“ veröffentlicht werden.

Meine Rolle als Fachexperte ist zweigeteilt: Einerseits unterstütze ich die Mitarbeitenden darin, Sicherheitslücken gezielt im Quellcode finden zu können, z.B. durch Schulungen in Quellcode-Review, oder durch Tools, die Handarbeit zuverlässig ersetzen können. Andererseits helfe ich dabei, den Quellcode überhaupt erst so zu dokumentieren, dass unsere Kund:innen und Mitarbeitende die Abläufe im Produkt nachvollziehen können.

Das Buzzword ist: Security-By-Design. Sind die Abläufe im Produkt so angelegt, dass Probleme erst gar nicht entstehen können, handelt es sich also um ein Produkt, das die Security schon eingebaut hat? Oder muss der User höllisch aufpassen, dass er ja keine Fehler bei der Bedienung macht, um nicht bestohlen oder ausspioniert zu werden? Man kann das tatsächlich am Quellcode ablesen, auch wenn es schwierig ist.

Wie hat sich dein Interesse für Quellcodeanalyse entwickelt? Was begeistert dich daran?


Ich war eigentlich schon als Teenager Fachexperte für Quellcode-Review, ohne dass ich das Wort damals schon gekannt hätte. Ich habe Dokumentationen und den Quellcode meiner Homecomputer studiert und überlegt, was da wohl alles schief gehen könnte.

Später habe ich neben dem Studium und direkt danach als „Fullstack-Developer“ gearbeitet, ohne den Spaß an der Analyse je zu verlieren. Ich habe als Evaluator bei TÜVIT vom Start weg viel Quellcode analysiert und setze das jetzt nahtlos als Fachexperte fort.

Gibt es etwas Bestimmtes, an dem du aktuell arbeitest bzw. forschst?


Die größten Baustellen sind aktuell die Prüfung von Open-Source-Paketen und die Dokumentation des Produktdesigns aus dem Quellcode heraus.

Die systematische Auflistung aller Open-Source-Komponenten in einem Produkt nennt man „Software Composition Analysis“. Das ist der Goldstandard, also der Königsweg, um alle bereits bekannten Schwachstellen in einem Produkt zu finden. Die Tools im Markt wenden sich allerdings an Hersteller und Entwickler:innen, nicht an Prüfer:innen und Evaluator:innen. Sie funktionieren nicht in einer Sicherheits-Zertifizierung – wir müssen dafür neue Wege gehen.

Bei der Dokumentation des Produktdesigns aus dem Quellcode stellen wir das Pferd wieder auf die Füße: Viele Hersteller zäumen das Pferd von hinten auf, indem sie nachträglich für eine Zertifizierung den Quellcode aufwendig beschreiben und „nacherzählen“. Das entspricht aber nicht der guten Praxis für Entwickler:innen. Die würden die Dokumentation direkt in den Quellcode als Kommentare einfügen. Wir holen diese Kommentare jetzt aus dem Quellcode heraus und geben sie den Evaluator:innen zurück.

  

„Bei Software ist der Quellcode quasi ,das Produkt‘. Entwickler:innen schauen in den Quellcode, wenn sie verstehen wollen, wie das Produkt wirklich funktioniert. Auditor:innen & Evaluator:innen auf der Suche nach Schwachstellen auch.“

  

Die Technologie schreitet stetig weiter voran. Wirkt sich das aus deiner Perspektive auch auf die Durchführung von Quellcodeanalysen aus? Gehen damit neue Anforderungen einher?


Die größte technologische Umwälzung zurzeit sind klar generative Künstliche Intelligenz (KI) und Large Language Models (LLM). Software-Entwickler:innen sind wiederum ganz weit vorne, sie lassen schon jetzt besonders „langweiligen“ Code von ChatGPT und ähnlichen Modellen schreiben. Die offensichtliche Frage wäre, ist denn der Quellcode, den ChatGPT schreibt, überhaupt sicher und korrekt? Oder macht ChatGPT typische Fehler, die ein:e menschliche:r Entwickler:in so nicht machen würde? Die andere offensichtliche Frage wäre: Kann LLM typische Schwachstellen im Quellcode erkennen und menschliche Prüfer:innen entlasten?

Die letztere Frage stellt sich als naiv heraus, denn es ist schon gar nicht klar, was für „typische Schwachstellen“ in einer Sicherheitszertifizierung zu betrachten sind. Ist es fehlerhafte Bedienung von sogenannten kryptographischen Mechanismen? Sind es handfeste Fehler in Formeln? Schwächen im Produktdesign, also fehlende „Security-By-Design“? Hier müssen wir für jeden Punkt vergleichen: Liefern LLM bessere oder schlechtere Ergebnisse als bereits vorhandene Tools? Denn das BSI und die Community erwarten zurecht von uns, dass wir die neueste Technologie anwenden.

Hat deine berufliche Tätigkeit auch Einfluss auf dein Privatleben? Also stehst du Anwendungen oder IT-Produkten beispielsweise kritischer gegenüber als andere?


Der Programmierer, der gezielt Youtube-Videos anklickt, um den Algorithmus auszutricksen, ist schon ein altes Meme. Heute wären es wahrscheinlich eher TikTok-Videos. Ich glaube nicht, dass ich als IT-Security-Professional noch mal kritischer mit Produkten umgehe als andere IT-Affine. Ich bin vielleicht ein bisschen frustriert, dass IT-Security nicht die Rolle spielt, die sie spielen sollte und vermeide Apps, die ein bisschen Bequemlichkeit bieten, ohne dass Sicherheit mitgedacht wurde.