Wie LLMs helfen können, statische Quellcodeanalyse salonfähig zu machen
Neuer Glanz für SAST
Der Artikel im Java Magazin beschreibt die Herausforderungen und Chancen der Kombination von statischer Quellcodeanalyse (SAST) mit Large-Language-Modellen (LLMs) zur Verbesserung der Softwaresicherheit.
Herausforderungen bei SAST:
SAST-Werkzeuge identifizieren Sicherheitslücken im Quellcode jedoch häufig vermischt mit vielen False Positives (Fehlalarme), was Akzeptanzprobleme und zusätzliche Arbeit verursacht.
Durch übliche Maßnahmen zur Gegensteuerung besteht allerdings die Gefahr von False Negatives (übersehene Schwachstellen).
Potential von LLMs:
LLMs könnten False Positives erkennen und zudem eine Priorisierung von Sicherheitslücken vornehmen.
Die Komplexität von Sicherheitsproblemen erfordern hier jedoch eine detaillierte Steuerung und problemspezifische Prompts.
Kombinierter Ansatz:
SAST identifiziert verdächtige Codestellen, welche dann von LLMs weiter verarbeitet/analysiert werden.
Vorteile: Erkennung von False Positives, erhöhte Akzeptanz von SAST-Tools, effektive Priorisierung relevanter Sicherheitslücken zur Prozessoptimierung sowie Möglichkeit zum Einsatz großzügiger Regelsätze sowie weniger ausgereifter (dafür möglicherweise spezialisierter) SAST-Tools.
Prototypische Umsetzung:
Mit einer webbasierten Anwendung wurden verschiedene proprietäre und Open-Source LLMs getestet und die Qualität der Ergebnisse verglichen.
Erkenntnis: Bestimmte LLMs können False Positives sehr zuverlässig erkennen.
Herausforderungen bei der Integration:
Eine optimale Promptgestaltung , die Lieferung des korrekten Code-Kontextes und die Unsicherheit bei LLM-Entscheidungen bleiben (lösbare!) Herausforderungen.
Eine genaue Steuerung und möglicherweise auch gleichzeitige Nutzung mehrerer unterschiedlicher LLMs ist notwendig, um belastbare Ergebnisse zu erzielen.
Kosten-Nutzen-Abwägung:
Die Kosten für LLM-Einsätze sind moderat und verglichen mit manuellen Audits kosteneffizient.
Fazit:
Die Kombination von LLMs und SAST kann ein wirkungsvolles Werkzeug zur Verbesserung der Softwaresicherheit sein, indem False Positives reduziert und manuelle Überprüfungen effektiver gestaltet werden. Langfristig könnten LLMs eine entscheidende Rolle in automatisierten Sicherheitsprozessen spielen.
Der Artikel erschien in der Dezember Ausgabe 2024 im Java Magazin von entwickler.de.
*im Abo von entwickler.de verfügbar
Autor
Mirko Richter ist Software-Security Berater, Sourcecode-Analyse-Spezialist und Schulungsleiter für Grundlagenschulungen bis hin zu Advanced-Coding- und Secure-SDLC-Trainings. Er beschäftigt sich seit Mitte der 90er-Jahre mit Softwareentwicklung, -architektur und -sicherheit. Er ist Sprecher auf Konferenzen und Autor mehrerer Fachartikel.
Application Security und Secure Coding
LAS - Lean Application Security
Ein erprobtes Konzept für inhärent sichere Anwendungen und Systeme durch frühzeitige Einbindung von Sicherheit in den Softwareentwicklungsprozess.
ATLAS - Security Testing Platform
mgm ATLAS ist die effiziente Integration von automatisierten Tests in Entwicklungsprozesse. Es ergänzt unseren Lean Application Security Ansatz optimal um eine schlanke und skalierbare Testplattform.