ИИ-агент предлагает исправления безопасности через Pull Requests

Срабатывает оповещение о безопасности. LLM считывает контекст. Она пишет исправление конфигурации. Она открывает Pull Request в GitHub. Вторая LLM проверяет работу. Человек объединяет исправление.

Агент никогда не касается продакшена. Он никогда не делает merge самостоятельно.

Обычные контроллеры Kubernetes просто пытаются повторить действие. Если под падает из-за неверной конфигурации, контроллер бесконечно его перезапускает. Он не устраняет первопричину. В безопасности та же проблема. SIEM генерирует оповещение. Человек должен прочитать его и написать исправление. Этот процесс занимает много времени.

Мы создали агента для решения этой задачи. Он считывает оповещения безопасности и анализирует инфраструктуру, чтобы подготовить черновик. Это не автопилот. Это генератор черновиков. Все остальное остается под контролем человека и GitOps.

Как это работает:

• Wazuh обнаруживает атаки и сохраняет оповещения в базу данных. • Bridge забирает новые оповещения и запускает агента. • Агент использует ограниченный набор инструментов. Он может читать/записывать файлы, создавать ветки и использовать GitHub API. Он редактирует только конфигурационные файлы. • ArgoCD следит за репозиторием. Ничего не развертывается, пока человек не объединит PR.

Мы используем два уровня безопасности:

  1. Проверка кода. Правила, не использующие LLM, проверяют diff. Мы проверяем, остается ли изменение в пределах конфигурационных файлов. Мы проверяем, соответствует ли путь сервера оповещению. Мы проверяем размер diff. Если проверка не пройдена, PR останавливается.

  2. Проверка второй LLM. Другое семейство моделей читает PR. Оно выносит свое мнение. Мы используем другую модель, потому что модели часто соглашаются сами с собой. Мы также говорим модели не доверять тексту PR. Это предотвращает попытки злоумышленников скрыть команды в оповещении.

Что мы изменили в процессе разработки:

• Мы перешли от облачных LLM к собственному серверу с использованием Ollama. Это обеспечивает конфиденциальность данных и предотвращает перебои в работе сервиса. • Мы заменили агентов типа "ToolCalling" на "CodeAgent". Малым моделям трудно генерировать чистый JSON. Вместо этого CodeAgent пишет на Python. Это сократило количество ошибок и шагов с 20+ до 3–8. • Мы заменили инструменты "run_shell" на специализированные Git-инструменты. Это предотвращает выполнение опасных команд, таких как "rm -rf". • Мы перешли от схемы "push" к схеме "pull" для лучшей стабильности сети.

Мы относимся к LLM как к быстрому junior-разработчику. Его черновики полезны, потому что между агентом и вашей рабочей средой стоят люди и дополнительные проверки.

Source: https://dev.to/aisecops/an-ai-agent-that-proposes-security-fixes-as-pull-requests-2hjj

Optional learning community: https://t.me/GyaanSetuAi