KI-Agent schlägt Sicherheitsfixes via Pull Requests
Ein Sicherheitsalarm wird ausgelöst. Ein LLM liest den Kontext. Es schreibt einen Konfigurationsfix. Es öffnet einen GitHub Pull Request. Ein zweites LLM überprüft die Arbeit. Ein Mensch mergt den Fix.
Der Agent greift nie direkt auf die Produktion zu. Er führt niemals eigenständig Merges durch.
Normale Kubernetes-Controller versuchen es einfach immer wieder. Wenn ein Pod aufgrund einer fehlerhaften Konfiguration abstürzt, startet der Controller ihn unendlich oft neu. Er behebt jedoch nicht die Ursache. Die Sicherheit steht vor demselben Problem. Ein SIEM löst einen Alarm aus. Ein Mensch muss ihn lesen und einen Fix schreiben. Dieser Prozess ist langsam.
Wir haben einen Agenten entwickelt, um dies zu lösen. Er liest Sicherheitsalarme und analysiert die Infrastruktur, um einen Entwurf zu erstellen. Dies ist kein Autopilot. Es ist ein Entwurfsgenerator. Alles andere bleibt unter menschlicher Kontrolle und unter GitOps-Kontrolle.
So funktioniert es:
• Wazuh erkennt Angriffe und speichert Alarme in einer Datenbank. • Eine Bridge ruft neue Alarme ab und startet den Agenten. • Der Agent nutzt eingeschränkte Tools. Er kann Dateien lesen/schreiben, Branches erstellen und die GitHub API nutzen. Er bearbeitet ausschließlich Konfigurationsdateien. • ArgoCD überwacht das Repository. Nichts wird bereitgestellt, bis ein Mensch den PR mergt.
Wir nutzen zwei Sicherheitsebenen:
Code-Checks. Regeln ohne LLM-Beteiligung verifizieren den Diff. Wir prüfen, ob die Änderung innerhalb der Konfigurationsdateien bleibt. Wir prüfen, ob der Serverpfad zum Alarm passt. Wir prüfen die Größe des Diffs. Wenn dies fehlschlägt, wird der PR gestoppt.
Ein zweites LLM-Review. Eine andere Modellfamilie liest den PR. Sie gibt eine Einschätzung ab. Wir verwenden ein anderes Modell, da Modelle oft dazu neigen, sich selbst zuzustimmen. Wir weisen das Modell zudem an, dem PR-Text nicht blind zu vertrauen. Dies verhindert, dass Angreifer Befehle im Alarm verstecken.
Was wir während der Entwicklung geändert haben:
• Wir sind von Cloud-LLMs auf unseren eigenen Server mit Ollama umgestiegen. Dies hält Daten privat und verhindert Dienstunterbrechungen. • Wir haben „ToolCalling“-Agenten durch „CodeAgent“ ersetzt. Kleine Modelle haben Schwierigkeiten, sauberes JSON zu senden. CodeAgent schreibt stattdessen Python. Dies reduzierte die Fehler und Schritte von über 20 auf lediglich 3 bis 8. • Wir haben „run_shell“-Tools durch spezifische Git-Tools ersetzt. Dies verhindert gefährliche Befehle wie „rm -rf“. • Wir sind von einem „Push“-Setup zu einem „Pull“-Setup gewechselt, um die Netzwerkstabilität zu verbessern.
Wir behandeln das LLM wie einen schnellen Junior-Entwickler. Seine Entwürfe sind nützlich, weil Menschen und sekundäre Prüfungen zwischen dem Agenten und Ihrer Produktionsumgebung stehen.
Quelle: https://dev.to/aisecops/an-ai-agent-that-proposes-security-fixes-as-pull-requests-2hjj
Optionale Lern-Community: https://t.me/GyaanSetuAi
