
Агентный сканер безопасности ИИ, который рассуждает как атакующий по исходному коду, подтверждает эксплуатируемые уязвимости с помощью исполняемых PoC и обеспечивает исправления по принципу «сначала тесты» через навыки hunt, fix и verify.
[!NOTE] Поддерживаемый форк VulnHunter от Capital One (Apache-2.0) — создан для работы на любой обвязке агента, а не только в Claude Code. Фокус этого форка: переносимость обвязки, песочничная (контейнеризованная) валидация эксплойтов и PoC с измеряемым воздействием. См. Почему изменения · Что меняет этот форк · Цифры.
От сопоставления шаблонов к доказуемости.
VulnHunter — это открытый агентный инструмент безопасности на базе ИИ, который применяет проактивный анализ с позиции атакующего непосредственно к исходному коду.
В отличие от традиционных пассивных SAST-сканеров, которые помечают подозрительные шаблоны и часто дают ложные срабатывания, VulnHunter рассуждает как противник. Он определяет, какие дефекты действительно эксплуатируемы, строит карты предполагаемых путей атаки и предлагает точечные исправления, подкреплённые доказательствами.
Современные цепочки поставок программного обеспечения глубоко взаимосвязаны. Одна уязвимость в широко используемом компоненте с открытым исходным кодом может одновременно затронуть тысячи предприятий.
VulnHunter был разработан внутри Capital One и открыт для сообщества. Этот форк продолжает эту работу — та же методология, переработанная для работы на любой обвязке агента, с песочничной (контейнеризованной) валидацией эксплойтов и PoC с измеряемым воздействием в качестве дорожной карты. См. Что меняет этот форк.
Предостережение о двойном назначении VulnHunter выполняет работы в области кибербезопасности двойного назначения (обнаружение и эксплуатация уязвимостей). Ожидайте ограничений: большинство коммерчески доступных моделей применяют защитные механизмы для кибербезопасности двойного назначения, а агрессивное поведение при эксплуатации может привести к срабатыванию ограничений скорости или флагов использования. Разработка и тестирование VulnHunter проводились на моделях с открытыми весами, предоставленных сообществом — де-рискнутых, abliterated и нецензурированных — которые, вероятно, будут иметь значение для организационного использования в дальнейшем. Проводите аудит только того кода, которым вы владеете или на аудит которого у вас есть разрешение.
[!IMPORTANT] Предварительные требования и требования к модели Методология VulnHunter построена для работы на моделях с открытыми весами, предоставленных сообществом — де-рискнутых, abliterated, нецензурированных, которые организации действительно могут развернуть. Требуется мощная модель рассуждения; самая сильная модель, которую предлагает ваша обвязка, даёт лучшие результаты, но методология не зависит от фронтирной модели конкретного поставщика. Вы предоставляете собственный доступ к модели.
| Возможность | Оригинал (Capital One) | Этот форк | Статус |
|---|---|---|---|
| Переносимость между харнессами | Навыки вызывают именно Claude Code; установщик нацелен на ~/.claude/skills; модельные шлюзы жёстко задают Opus; харнесс закрепляет claude-opus-4-8 | Навыки — это переносимые файлы промптов для харнессов (любой харнесс с каталогом навыков + субагентами); контракт окружения VULNHUNT_SKILLS_DIR / VULNHUNT_AGENTS_DIR / VULNHUNT_BIN_DIR / VULNHUNT_HOST_CMD / VULNHUNT_MODEL; модельные шлюзы переформулированы как «самая мощная модель рассуждения вашего харнесса» | Реализовано |
| Установщик без догадок | install.sh предполагает ~/.claude/skills | Явные каталоги, соблюдение семантики GROK_HOME, запись лаунчера vh в VULNHUNT_BIN_DIR/~/.local/bin, установка навыка vulnhunter-run + определения агента; обновлены эквиваленты .cmd для Windows | Реализовано |
Операторский навык vulnhunter-run | — (отсутствует) | Автономный оператор: клонирование → охота → поиск результатов → запись/валидация манифеста сканирования, с явными правилами остановки и без импровизации | Реализовано |
| Ужесточение бенчмарка/судьи | Фиксированная модель + базовый повтор | Модель через окружение, конфигурация повторов/отката, трассировка точек потерь в конвейере analyze_misses, отслеживание истории по каждой находке | Реализовано |
| Нейтральный к харнессу язык отчётов | Специфичный для Claude текст по всем навыкам | Нейтральный к харнессу язык инструментов (Agent → субагент, Claude CLI → сессия харнесса) | Реализовано |
| Валидация эксплойтов с приоритетом песочницы | Тесты эксплойтов могут быть статическими трассировками; выбор среды выполнения произвольный | Подготовка среды выполнения с приоритетом Docker; среда выполнения фиксируется для каждой находки; для серьёзности Medium+ требуется выполнение | В работе |
| PoC с измеренным воздействием | PoC — это документы; воздействие утверждается | Исполняемый PoC + числовая оценка воздействия в находке (раскрытые строки, усиленные запросы, потерянные ключевые часы) | В работе |
Методология VulnHunter по своей природе не зависит от хоста: это процедура промптов, а не привязка к инструменту. Исходный проект вырос внутри Claude Code — согласованный выбор и правильный первый дом. Но ландшафт агентных харнессов расширился, и методология безопасности, которая устанавливается только в один из них, перестаёт быть возможностью аудита и становится функцией вендора. Этот форк вносит четыре изменения, каждое со своей причиной.
Каждый навык здесь — это переносимый файл промпта с явным контрактом окружения (VULNHUNT_SKILLS_DIR, VULNHUNT_AGENTS_DIR, VULNHUNT_MODEL, VULNHUNT_HOST_CMD), а модельные шлюзы теперь запрашивают самую мощную модель рассуждения вашего харнесса вместо конкретного продукта. Лучше означает: одна и та же методология устанавливается в тот харнесс, который ваша команда уже использует, — и становится сравнимой между харнессами в прогонах бенчмарков, что и есть способ разработки этого форка.
Исходный установщик безусловно копировал навыки в ~/.claude/skills. На машине с двумя харнессами — или с харнессом с перемещённым домашним каталогом — эта догадка молча устанавливает в неправильное место. Установщик форка спрашивает или принимает переменные окружения и громко завершается с ошибкой и точной инструкцией, когда ответ отсутствует. Лучше означает: безопасно на машинах с несколькими харнессами, корректно при перемещённых домашних каталогах, громко вместо молчания при неверной конфигурации.
Исходный дизайн уже требовал фальсификации и тестов эксплойтов. Открытым оставался вопрос, насколько усердно работать, чтобы действительно их выполнить: статическая трассировка, тест с моками или настоящий контейнеризированный сервер. В одном бенчмарке из шести прогонов против одного коммита эта свобода выбора дала от 3 до 42 находок — и противоположные вердикты по одному и тому же стоку: одна доказана на моке, другая закрыта тестом против реального сервера. Этот форк добавляет процедуру провижининга среды выполнения (Docker в первую очередь, с записью для каждой находки) и дисциплину PoC, где воздействие измеряется — утёкшие строки, ×-усиление, потерянные ключе-часы — а не описывается словами. Лучше означает: валидность находки больше не зависит от того, у какой модели хватило инстинкта поднять контейнер. (В работе — план сборки опубликован в публичном roadmap; спрашивайте в issues или следите за Discussions репозитория.)