Как исследователи проверяют способность нейросетей писать реальные эксплойты
Нейросети уже неплохо пишут тесты, ищут типовые баги и генерируют бойлерплейт. Но когда заходит речь о практической информационной безопасности, мнения разделяются. Одни заявляют, что LLM-агенты вот-вот научатся взламывать сложные системы в автономном режиме, другие скептически машут рукой. Чтобы уйти от умозрительных споров к измеримым цифрам, исследователи из Беркли и других команд выкатили открытый бенчмарк ExploitGym.
Давайте разберем, как устроен этот проект, зачем городить изолированную инфраструктуру вокруг нейросетей и что этот репозиторий дает исследователям безопасности и разработчикам ИИ.
Что такое ExploitGym
ExploitGym — это тестовый полигон из 869 реальных уязвимостей разного уровня сложности. В выборку вошли не синтетические задачки из учебников, а настоящие кейсы: пользовательские утилиты, движок Google V8 и ядро Linux.
Суть эксперимента проста: мы даем автономному агенту доступ к окружению и задачу получить флаг через эксплуатацию бага. Главная цель проекта — объективно измерить, насколько современные LLM способны воспроизводить и автоматизировать действия атакующего на реальном софте.
Репозиторий содержит не сами эксплойты, а полноценную обвязку для запуска: Docker-образы с уязвимыми окружениями, контроллер заданий, прокси для мониторинга запросов к API нейросетей и изолирующий сетевой экран.
Как устроена архитектура бенчмарка
Авторы подошли к безопасности запуска агентов со всей строгостью. Если вы даете языковой модели терминал и команду «напиши эксплойт», выпускать ее в открытый интернет — плохая затея.
Архитектура системы состоит из четырех компонентов:
- Контроллер (Controller). Серверная часть, которая выдает задачи агенту, генерирует токены и проверяет сданные флаги. Никаких зашитых секретов в репозитории нет: контроллер генерирует соль и ключи динамически при старте.
- LLM Proxy. Прокси-слой между агентом и API моделей (OpenAI, Anthropic и других). Он логирует расход токенов, фиксирует шаги рассуждений и отслеживает попытки агента выйти за рамки задачи.
- Squid Firewall. Контейнер со Squid перекрывает агенту неконтролируемый выход во внешнюю сеть, чтобы запуск сотен непроверенных скриптов оставался в рамках песочницы.
- Контейнеры с задачами. Для каждой уязвимости собирается отдельный Docker-образ с необходимыми бинарниками, отладчиком GDB и вспомогательными утилитами вроде socat и netcat.
Быстрый старт и запуск тестов
Сборка окружения завязана на пакетный менеджер uv и Docker. Для базового запуска потребуется Python 3.10+, Docker и установленные ключи к API провайдеров.
Сначала подтягиваем зависимости и собираем артефакты:
# Установка зависимостей через uv
uv sync --extra proxy
# Сборка артефактов и распаковка данных
bash scripts/setup/setup_data.sh
# Проверка корректности установки
bash scripts/setup/validate.sh
Дальше поднимаем сетевой экран и скачиваем образы для тестовой выборки заданий:
# Образ файрвола
docker pull ubuntu/squid:latest
# Загрузка Docker-образов для выбранного списка задач
uv run scripts/setup/pull_images.py data/task_ids/sample.txt
После этого запускается скрипт предварительной проверки pre_run.py, который поднимает контроллер, файрвол и прокси. Скрипт выведет в терминал сгенерированные переменные окружения, которые понадобятся агенту:
export OPENAI_API_KEY="ваш-ключ"
export ANTHROPIC_API_KEY="ваш-ключ"
# Запуск инфраструктуры
uv run scripts/setup/pre_run.py data/task_ids/sample.txt
# Экспорт сгенерированных секретов контроллера
export CYBERGYM_ADMIN_KEY=...
export CYBERGYM_SERVER_SALT=...
export CYBERGYM_SERVER_FLAG_SEED=...
export CYBERGYM_SERVER_API_KEY=...
# Старт тестового агента
uv run examples/run_agent.py --help
Если агент успешно эксплуатирует уязвимость и читает целевой файл, контроллер засчитывает решение.
Практическая ценность для разработчиков
Бенчмарк пригодится двум группам специалистов:
- Разработчикам ИИ-агентов. Если вы строите систему для написания кода или автономного дебага, ExploitGym дает жесткий стресс-тест. Умение распутать сложный баг в памяти ядра Linux требует от модели глубокого контекста, работы с отладчиком и выстраивания длинных цепочек логических выводов.
- Исследователям кибербезопасности. Платформа позволяет оценить реальные риски применения LLM в offensive-сценариях без домыслов. На данных бенчмарка можно понять, на каких классах уязвимостей нейросети уже работают автономно, а где безнадежно вязнут в галлюцинациях.
Итоги
ExploitGym интересен как образец инженерной инфраструктуры для безопасного тестирования автономных агентов. Если вы занимаетесь бенчмаркингом моделей для анализа кода или исследуете границы возможностей LLM в системном программировании, проект определенно стоит клонировать и погонять на примерах из data/task_ids/sample.txt.
