Wie LLMs helfen können, statische Quellcodeanalyse salonfähig zu machen
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.
