DanLevy.net

Представляем ExploitHunter.app

Открытая платформа для работы с безопасностью, которая хранит в одном проекте область тестирования, согласования, инструменты и доказательства.

Содержание

У инструментов безопасности проблема с бумажной работой.

Они находят подозрительную строку, выдают ей бейдж уровня критичности и тихо перекладывают на вас доказательство того, что это вообще важно. Находка «высокой» критичности. Доказательства — это три grep в плаще.

ИИ-агенты могут сократить этот процесс. Но они также способны превратить расплывчатую инструкцию, браузер и shell в гораздо более быструю груду непроверенной активности.

ExploitHunter.app начинает там, где сканер останавливается. Дайте ему авторизованную цель и задачу. Агент строит карту доступных маршрутов, управляет браузером, запускает терминальные инструменты и средства безопасности, проверяет гипотезу и сохраняет ответы, снимки экрана и журналы команд, подтверждающие находку. Затем он превращает эти доказательства в отчёт со ссылками на источники.

Это проект с открытым исходным кодом и локальным приоритетом. Можно переключаться между размещёнными и локальными моделями, не разнося цель, согласования, историю и доказательства по отдельным проектам.

Это не сканер, к которому приклеили чат-бота. Это рабочая среда, которая помнит, что пробовал агент и что ему вернулось.

Говорить о безопасности дёшево. Польза начинается с выполнения авторизованной проверки, сохранения доказательств и передачи вам следующего шага.

Цикл намеренно скучный

Проект ExploitHunter каждый раз проходит одну и ту же последовательность:

authorize target → plan → request approval → probe → save evidence → prioritize → report

Порядок важен, потому что у агента есть реальный доступ к действиям.

Авторизация цели — это состояние проекта, а не контекст разговора. Она не живёт в сообщении чата, где фраза «да, давай» через три хода может начать означать что-то другое. Активные сканирования, проверки учётных данных, команды shell и запись файлов — всё это закрыто шлюзом согласования. Согласования команд с высоким воздействием привязаны к намерению, проекту и цели. По умолчанию они одноразовые.

Шлюзы согласования — не мелкий шрифт под рекламным описанием продукта. Именно они делают разумным подключение агента к реальным инструментам. Они ограничивают расползание области действия, уменьшают зависимость проверок от человеческой памяти и дают команде нечто более содержательное, чем «так сказал ИИ».

Продукт — это доказательства

Финальный ответ модели — не долговечная единица работы по безопасности. Ею являются доказательства.

Закройте приложение. Смените модель. Вернитесь завтра. У расследования всё ещё остаётся память.

ExploitHunter сохраняет историю проектов и тредов, но долговечная запись — это конвейер доказательств: что именно проверяли, на основании какого разрешения, против какого авторизованного target и что получили в ответ. Проба, ответ, транскрипт команд, снимок экрана и подтверждающий артефакт сохраняются вместе с находкой. В отчёте работа цитируется напрямую, а не пересказывается по последнему абзацу модели.

Затем находки можно передавать в отслеживание исправлений, анализ вариантов, работу с цепочками атак и отчёт, который рецензент может проверить построчно.

Есть и эгоистичная выгода: отладка перестаёт быть мистикой. Когда агент что-то упускает, злоупотребляет инструментами, выдумывает вывод или не сохраняет артефакт, сбой виден в записи. Мы исправляем продукт, а не спорим со скриншотом пузырька чата.

Восемь моделей, один target

Поскольку каждый запуск оставляет запись, сравнение моделей перестаёт быть упражнением в ощущениях.

Я дал восьми маршрутам моделей одну и ту же сложную задачу на Juice Shop и прогнал их через реальный путь выполнения приложения ExploitHunter. Один target. Одни и те же инструменты. Один и тот же контракт доказательств. Если запуск не позволял доказать, какая модель выполнялась, или сохранить её вывод, в таблицу он не попадал. Бенчмарки могут любить неоднозначность. Счета — редко.

Матрица сравнения оценки судьи, стоимости модели, времени выполнения и числа вызовов инструментов для Kimi K3, Claude Opus 4.8, DeepSeek V4 Flash, GPT-5.6 Luna, GPT-5.6 Terra, GPT-5.6 Sol, Qwen 3.6 Flash и GPT OSS 120B на одной и той же сложной задаче Juice Shop.
Одна и та же задача даёт нескольких победителей: Kimi — по соотношению максимальной оценки и стоимости, Opus — по скорости при максимальной оценке, Luna — по эффективности, а DeepSeek — по самой высокой оценке среди маршрутов, не набравших максимум.

| Маршрут модели | Судья | Стоимость | Время выполнения | Вызовы инструментов | Вывод | |---|---:|---:|---:|---:|---| | Kimi K3 | 10.0/10 | $0.220184 | 223.4 с | 8.0 | Максимальное качество при меньшей цене из двух маршрутов с идеальной оценкой | | Claude Opus 4.8 | 10.0/10 | $1.633301 | 115.9 с | 8.0 | То же качество, что у Kimi, почти вдвое быстрее, но в 7,4 раза дороже | | DeepSeek V4 Flash | 9.33/10 | $0.058695 | 395.5 с | 32.0 | Лучшая оценка среди двух маршрутов, не набравших максимум | | GPT-5.6 Luna | 8.67/10 | $0.016304 | 52.2 с | 3.3 | Лучший результат по стоимости и скорости | | GPT-5.6 Terra | 8.0/10 | $0.124046 | 107.5 с | 6.0 | При той же оценке превосходит Sol по цене и скорости | | GPT-5.6 Sol | 8.0/10 | $0.368514 | 229.6 с | 10.0 | Способна на многое, но в этом срезе Terra её обходит | | Qwen 3.6 Flash | 5.5/10 | $0.085678 | 96.9 с | 16.5 | Более дешёвая конфигурация повысила эффективность, но качество всё ещё отстаёт | | GPT OSS 120B | 5.0/10 | $0.062529 | 36.6 с | 4.3 | Быстрая и недорогая, но слишком нестабильная для маршрута по умолчанию |

Читайте это как политику маршрутизации, а не как пьедестал.

Luna — эффективная точка старта. DeepSeek покупает ещё две трети балла судьи примерно за 3,6-кратную стоимость, 7,6-кратное время выполнения и 9,6-кратное число вызовов инструментов. Kimi достигает 10/10 без счёта от Opus. Opus получает ту же оценку примерно на 108 секунд быстрее, но требует ещё $1.41. GPT OSS остаётся экспериментом под наблюдением, а Terra в этой задаче выглядит убедительнее Sol.

Диаграмма рассеяния оценки судьи относительно стоимости модели для восьми маршрутов ExploitHunter с прямыми подписями каждой оценки, стоимости и времени выполнения; Luna, DeepSeek и Kimi выделены как граница стоимости и качества.
Luna, DeepSeek и Kimi образуют строгую границу стоимости и качества. Движение вправо должно покупать качество. Большинство маршрутов в этом сравнении просто покупают больший счёт.

Только Luna, DeepSeek и Kimi находятся на этой границе. Остальные маршруты не бесполезны. Им нужна причина, выходящая за пределы голых оценки и стоимости: Opus покупает скорость, Terra соблюдает ограничение на семейство моделей без счёта Sol, а GPT OSS достаточно дёшев, чтобы исследовать его под наблюдением.

Ранжированные горизонтальные полосы сравнивают оценки судьи для восьми маршрутов моделей ExploitHunter; рядом с каждой оценкой указаны стоимость модели и время выполнения.
Низкая цена и высокая скорость не спасают слабое расследование. GPT OSS здесь выполняется быстрее всех, но DeepSeek, Luna, Terra и два маршрута с идеальной оценкой выдают существенно более качественную работу.
Прямое сравнение Kimi K3 и Claude Opus 4.8: обе модели получили десять из десяти и сделали по восемь вызовов инструментов; Kimi стоит 0.220184 доллара и выполняется 223.4 секунды, Opus стоит 1.633301 доллара и выполняется 115.9 секунды.
Выбор среди лидеров по оценке необычно прост: Kimi в 7,4 раза дешевле, Opus в 1,9 раза быстрее. Выбирайте ограничение, которое у вас действительно есть.

Полная версия с методикой, бюджетами инструментов, отрицательными контролями и тем, как модели позорятся, когда ответ уже есть в транскрипте команд, находится в Агентам безопасности нужны маршрутизаторы моделей, а не рейтинги моделей.

Бенчмарк проверил сам себя

Самым важным результатом стала не победа модели, а ошибка оценщика.

В первом отчёте о восстановлении архива Kimi получила 5/10, а GLM — 9/10. Сама задача была выполнена успешно. Оба агента восстановили harbor-lantern-47, а независимая проверка unzip -t -P на стороне хоста доказала, что этот пароль работает, а альтернативные — нет.

Оценщик применил сырой аудит запрещённых инструментов Cybench к нативной задаче ExploitHunter, где требовалось записывать доказательства. Он наказал ровно за то поведение, которого требовал тестовый стенд. Тот же вывод модели. Тот же сохранённый трейс. Неправильная рубрика.

После удаления нерелевантного аудита Kimi поднимается с 5/10 до 10/10. GLM остаётся на уровне 9/10. Исправленные оценки записали обратно в исходные трейсы Langfuse под именем browser-e2e-llm-judge-corrected, а проверка API только для чтения 17 июля подтвердила оба значения по сохранённым идентификаторам трейсов.

Именно поэтому ExploitHunter сохраняет трейсы, доказательства, версии оценщиков, стоимость, количество токенов, бюджеты инструментов и сбои тестового стенда, вместо того чтобы сводить оценку к одному героическому числу. Если бенчмарк не может показать ход работы, это всего лишь очередная уверенная декларация модели.

Маршрутизируйте модели по задачам

ExploitHunter не просто поддерживает длинный список провайдеров моделей. Он относится к ним как к набору инструментов на рабочем столе.

Разведка, проверка эксплуатации, браузерный сценарий, синтез доказательств и предложение по исправлению — всё это задачи безопасности. Но это не одна и та же задача для модели.

Capital One’s VulnHunter делает последовательную ставку на рабочий процесс анализа исходного кода, оптимизированный под Claude/Claude Code. ExploitHunter делает другую ставку: сохранять неизменными область проекта, согласования, инструменты и доказательства, меняя маршрут модели в зависимости от задачи.

Широкая веб-разведка может выиграть от дешёвой быстрой модели с жёстким бюджетом инструментов. Ограниченная локальная лаборатория может предпочесть приватность и офлайн-инференс. Сложная валидация или финальный отчёт могут оправдать более медленный маршрут к передовой модели. ExploitHunter перемещает работу между этими полосами, пока цель, история, согласования, инструменты и артефакты остаются на месте.

Правильная модель — это решение о маршруте, а не логотип на экране настроек.

ExploitHunter поддерживает как облачных провайдеров, так и Ollama с LM Studio. Запускайте его как локальный сервис Node или как настольное приложение Electron. Оставьте ключи облачных API пустыми — и совместимая локальная модель будет держать предварительную работу за пределами платных провайдеров. Используйте облачный маршрут, когда этого требуют скорость или более сложная задача. Оставляйте чувствительную работу локальной, если эта граница важнее, чем выигрыш нескольких секунд за запуск.

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

Где здесь deepsec, VulnHunter и остальные

ExploitHunter намеренно шире, чем обвязка вокруг сканера кода. Он берёт потенциальную проблему в работающем целевом приложении, исследует её с помощью браузера и терминальных инструментов, сохраняет доказательства, а затем передаёт подтверждённую находку системе, которая должна её исправить.

Сейчас несколько проектов закрывают разные части этого процесса. И хорошо. Командам безопасности нужны инструменты, которые передают работу друг другу, а не очередная категория с единственным победителем.

| Инструмент | В чём его сила | Чем отличается ExploitHunter | |---|---|---| | Vercel deepsec | Ориентированная на кодовую базу обвязка: статическое обнаружение кандидатов, исследование агентом-программистом, повторная проверка, обогащение и необязательное широкомасштабное распределение по песочницам. | Deepsec подходит для анализа репозиториев и последующих действий, связанных с PR. ExploitHunter строится вокруг авторизованного исследовательского проекта, который может включать работающее приложение, браузер, сетевую лабораторию, терминал, постоянные доказательства и явные согласования оператора. | | Capital One VulnHunter | Анализ исходного кода с позиции атакующего, структурированная фальсификация находок и целевые предложения по исправлению кода. | Пересечение есть: доказательства и снижение числа ложных срабатываний должны быть базовыми требованиями. ExploitHunter меньше привязан к программному тестовому стенду или одному пути модели и больше сосредоточен на координации исследования до предложения изменения кода. | | GitHub Security Lab Taskflow Agent | Декларативные taskflow-процессы с поддержкой MCP, особенно сортировка алертов CodeQL и анализ вариантов. GitHub сообщает, что с его помощью удалось найти примерно 30 уязвимостей в реальных системах. | Это правильная основа, когда на входе имеется повторяемый процесс сканирования кода. ExploitHunter — рабочая среда для исследовательской работы с инструментами, где область действия, согласования и доказательства должны пережить более длительное расследование. | | OpenHands Vulnerability Fixer | Превращает результаты Trivy и других инструментов в приоритизированные исправления, тесты и pull request’ы. | Фабрика исправлений. ExploitHunter находится раньше в цикле: установить, что находка реальна, записать почему и передать системе исправления хорошо обоснованную проблему. | | Assay | Офлайн-применение политик, детерминированное воспроизведение и криптографические пакеты доказательств для вызовов инструментов агентом. | Дополняет, а не конкурирует. Это именно тот runtime-контроль с принципом deny-by-default, который агентные исследовательские рабочие среды должны уметь использовать под собственным слоем согласований. |

Полезный стек, вероятно, будет включать несколько таких инструментов: сканер исходного кода поднимает кандидатов, taskflow сортирует повторяющиеся шаблоны, исследовательская среда проверяет опасные случаи, а агент исправлений превращает подтверждённую работу в патч, готовый к ревью. Передача работы важнее, чем коронация талисмана безопасности.

Запускайте локально. Используйте ответственно.

ExploitHunter распространяется по лицензии MIT, имеет открытый исходный код и предназначен для работы, на которую у вас есть разрешение. В репозитории есть локальная защищённая цель Juice Shop и сетевые лаборатории с несколькими сервисами, поэтому можно пройти весь процесс, не направляя агента на то, чем вы не владеете.

git clone https://github.com/justsml/ExploitHunter.app.git
cd ExploitHunter.app
pnpm install
cp .env.example .env
pnpm dev

Затем откройте http://localhost:3210.

Выберите маршрут модели, укажите цель, которой вы владеете или которую вам явно разрешено тестировать, и поставьте агенту задачу. Позвольте ему составить карту работы, одобрите только те действия, которые действительно собираетесь выполнять, и наблюдайте, как накапливаются свидетельства, а не исчезают в истории чата.

Это скучная версия агентной безопасности.

Именно такую версию я хочу иметь на своей стороне, когда начинается самое интересное.

Что дальше

Следующая задача — не заявлять о ещё более впечатляющих возможностях автономного взлома. Нужно сделать исследовательский цикл надёжнее: улучшить отчёты о повторных запусках, ужесточить проверку свидетельств, расширить поддержку локальных моделей, сделать процесс согласований прозрачнее и сократить путь от подтверждённой находки до патча, который человек действительно захочет принять.

Агентам безопасности не нужно безграничное пространство для импровизации. Им нужен достаточный радиус действия, чтобы нас удивлять, жёсткие границы этого радиуса и доказательства, когда они заявляют об успехе.

Вот что такое ExploitHunter: единое место, где модели, инструменты, лаборатории, согласования, свидетельства и дальнейшие действия направлены на решение одной и той же задачи.

А теперь направьте его на то, что вам разрешено сломать.