Как исследователи проверяют способность нейросетей писать реальные эксплойты

29 авг 2026
851
106
6
1 месяц

Нейросети уже неплохо пишут тесты, ищут типовые баги и генерируют бойлерплейт. Но когда заходит речь о практической информационной безопасности, мнения разделяются. Одни заявляют, что LLM-агенты вот-вот научатся взламывать сложные системы в автономном режиме, другие скептически машут рукой. Чтобы уйти от умозрительных споров к измеримым цифрам, исследователи из Беркли и других команд выкатили открытый бенчмарк ExploitGym.

Давайте разберем, как устроен этот проект, зачем городить изолированную инфраструктуру вокруг нейросетей и что этот репозиторий дает исследователям безопасности и разработчикам ИИ.

Что такое ExploitGym

ExploitGym — это тестовый полигон из 869 реальных уязвимостей разного уровня сложности. В выборку вошли не синтетические задачки из учебников, а настоящие кейсы: пользовательские утилиты, движок Google V8 и ядро Linux.

Суть эксперимента проста: мы даем автономному агенту доступ к окружению и задачу получить флаг через эксплуатацию бага. Главная цель проекта — объективно измерить, насколько современные LLM способны воспроизводить и автоматизировать действия атакующего на реальном софте.

Репозиторий содержит не сами эксплойты, а полноценную обвязку для запуска: Docker-образы с уязвимыми окружениями, контроллер заданий, прокси для мониторинга запросов к API нейросетей и изолирующий сетевой экран.

Реклама

Как устроена архитектура бенчмарка

Авторы подошли к безопасности запуска агентов со всей строгостью. Если вы даете языковой модели терминал и команду «напиши эксплойт», выпускать ее в открытый интернет — плохая затея.

Архитектура системы состоит из четырех компонентов:

  1. Контроллер (Controller). Серверная часть, которая выдает задачи агенту, генерирует токены и проверяет сданные флаги. Никаких зашитых секретов в репозитории нет: контроллер генерирует соль и ключи динамически при старте.
  2. LLM Proxy. Прокси-слой между агентом и API моделей (OpenAI, Anthropic и других). Он логирует расход токенов, фиксирует шаги рассуждений и отслеживает попытки агента выйти за рамки задачи.
  3. Squid Firewall. Контейнер со Squid перекрывает агенту неконтролируемый выход во внешнюю сеть, чтобы запуск сотен непроверенных скриптов оставался в рамках песочницы.
  4. Контейнеры с задачами. Для каждой уязвимости собирается отдельный 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

Если агент успешно эксплуатирует уязвимость и читает целевой файл, контроллер засчитывает решение.

Практическая ценность для разработчиков

Бенчмарк пригодится двум группам специалистов:

  1. Разработчикам ИИ-агентов. Если вы строите систему для написания кода или автономного дебага, ExploitGym дает жесткий стресс-тест. Умение распутать сложный баг в памяти ядра Linux требует от модели глубокого контекста, работы с отладчиком и выстраивания длинных цепочек логических выводов.
  2. Исследователям кибербезопасности. Платформа позволяет оценить реальные риски применения LLM в offensive-сценариях без домыслов. На данных бенчмарка можно понять, на каких классах уязвимостей нейросети уже работают автономно, а где безнадежно вязнут в галлюцинациях.

Итоги

ExploitGym интересен как образец инженерной инфраструктуры для безопасного тестирования автономных агентов. Если вы занимаетесь бенчмаркингом моделей для анализа кода или исследуете границы возможностей LLM в системном программировании, проект определенно стоит клонировать и погонять на примерах из data/task_ids/sample.txt.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.