KI und im speziellen Sprachmodelle wie ChatGPT sind in aller Munde. In vielen Bereichen wird daran gearbeitet, mittels KI Prozesse zu optimieren bzw. zu automatisieren. Auch in der Security-Branche tut sich so einiges. In diesem Blogpost möchten wir einen kleinen Einblick in aktuelle Entwicklungen in der Welt des Offensive Security Tooling geben.
Wer sich mit offensiver Security, also Penetration Testing, Bug Hunting und Co. beschäftigt, der stellt oft fest: Die spannenden und spektakulärsten Software-Schwachstellen werden immer noch manuell gefunden. Das Tooling beschränkt sich oft auf einen Code Editor, einen Debugger und vielleicht ein paar Python-Skripte. So beindruckend das auch sein mag, es skaliert einfach nicht. Es wird mehr Software geschrieben, als Security-Expert*innen Code reviewen können. Wie kann man die Arbeit von Security-Expert*innen nun optimieren oder sogar automatisieren?
Das automatisierte Auffinden und Ausbessern von Schwachstellen ist ein Ziel, das sowohl die akademische Forschung als auch in einige R&D-Abteilungen von Firmen anstreben. Vor fast zehn Jahren hat die DARPA, der Forschungsarm des US Militärs, die Cyber Grand Challenge (CGC) gestartet, die dann jedoch auf der DEFCON Konferenz im August 2016 ihr Ende fand. Das Ziel dieser Veranstaltung war es, komplett autonom agierende Systeme zu entwickeln, die Schwachstellen in Software entdecken, ausnutzen und ausbessern können und diese Systeme in einem Wettbewerb gegeneinander antreten zu lassen (im Stil eines “Capture the Flag”). DARPA nennt diese Art von System Cyber Reasoning System (CRS). Das Problem: Die Teilnehmer*innen der CGC haben zwar beeindruckende CRS entwickelt, diese CRS hatten jedoch außerhalb des Wettbewerbs nicht direkt den Nutzen den man sich vielleicht erhofft hatte. Die Gründe:
Auch wenn die Cyber Reasoning Systeme aus dem CGC nicht direkt Anwendung gefunden haben, so hat die Security Community doch einiges aus diesem Wettbewerb gelernt. Zum Beispiel wurde klar, dass coverage-guided fuzzing der wohl effektivste und effizienteste Weg ist, um Schwachstellen automatisch zu finden. Allerdings zeigt sich auch hier: Um Fuzzing in die Praxis zu bringen benötigt es Know-How und vor allem Zeit, Fuzzing in den Entwicklungsprozess zu integrieren.
Nun hat die DARPA bei der DEFCON Konferenz diesen August den Nachfolger der Cyber Grand Challenge abgeschlossen. In der AIxCC, der AI Cyber Challenge, hat die DARPA das Setting so erweitert, dass es näher an der Realität von Software Teams liegt. Ähnlich zu dem CGC-Wettbewerb mussten die Cyber Reasoning-Systeme autonom Schwachstellen auffinden, einen Testcase zum Reproduzieren erstellen (Proof-of-Vulnerability) und dann auch einen Patch erstellen. Diesmal gab es Source Code statt Binärdateien und es mussten sowohl C- als auch Java-Projekte analysiert werden. Die wichtigste Änderung jedoch: Jedes CRS hat Zugriff auf ein großzügiges KI-Budget bekommen. Damit konnten die Teilnehmer aktuelle KI-Modelle, vor allem Large Language Models wie ChatGPT, nutzen, um Prozesse zu automatisieren. Die Ergebnisse sind spannend und die entwickelten Cyber Reasoning-Systeme haben fantastische Ergebnisse geliefert:
Der AIxCC Wettbewerb hat gezeigt, dass KI das Potenzial hat, die Probleme, die wir mit Security Tooling aktuell haben, zu lösen. Auch außerhalb des AIxCC Wettbewerbs werden am laufenden Band neue KI Tools vorgestellt, die Security-Expertise automatisieren. Wir sehen hier einige spannende Einsatzszenarien von KI:
Es gibt also viel Potenzial Offensive Security mit KI zu automatisieren. Im offensiven Bereich, also dem Auffinden von Schwachstellen, ist es auch leichter mit den Schwächen einer KI umzugehen. Es ist zwar unmöglich zu beweisen, dass ein System sicher ist, es ist jedoch leicht zu zeigen, dass ein System unsicher ist: Man entwickelt einen Proof-of-Concept Exploit um zu demonstrieren, dass eine Schwachstelle existiert. So kann man relativ leicht testen, ob die KI nur halluziniert oder ob sie tatsächlich eine Schwachstelle gefunden hat.
Bevor wir all das in der Praxis verwenden werden, wird noch einiges an Engineering passieren müssen. So muss der Einsatz von LLMs noch günstiger werden. Ein Beispiel: Das Buttercup CRS von Trail of Bits hat im Rahmen des AIxCC-Wettbewerbs rund 39.000 $ an Cloud Compute und LLM Budget verbraucht, um 28 Schwachstellen zu identifizieren. Das sind also rund 1400 $ pro Bug. Da die Projekte aber auch absichtlich eingesetzte Schwachstellen enthielten, muss man davon ausgehen, dass ein echter Einsatz eines solchen Systems weitaus mehr kosten wird. In bestehenden Prototypen und Systemen wird fast immer auf die stärksten und größten Sprachmodelle zurückgegriffen. Es ist nicht klar, ob das tatsächlich für alle Aufgaben notwendig ist. Man könnte also versuchen mit kleineren, aber spezialisierteren KI-Modellen hier die Kosten zu reduzieren.
Das Fazit unserer Analyse ist, dass wir in naher Zukunft eine Vielzahl von spannenden Projekten und innovativen Produkten erwarten können, die das Tooling von Security-Expert*innen langfristig verändern werden. Wir bleiben engagiert und werden weiterhin aufmerksam verfolgen, wie sich diese Trends entwickeln. Zudem unterstützen wir gerne bei der Bewertung und Integration neuer KI-basierter Sicherheitsprodukte, um sicherzustellen, dass unsere Partner und Kunden von den besten verfügbaren Lösungen profitieren können.
Ob als Security Champion im Entwicklungsteam oder beim Auffinden und Beheben von Schwachstellen: Unsere IT Security Consultants sorgen an jedem Punkt des Software Development Lifecycle für sichere Anwendungen.