VulnClaw: когда AI Agent берет на себя пентест

#ai coding#security#agentic workflow#mcp

Вот вам кейс: нужно провести black-box пентест, но времени на ручное тестирование нет, а отчет завтра. VulnClaw предлагает радикальное решение — отдать весь процесс AI Agent. Просто описываешь цель на естественном языке, а система сама проводит reconnaissance, ищет уязвимости и даже генерирует отчет. Звучит как магия, но под капотом — комбинация MCP (Model-Control-Process) цепочки и LLM.

Как устроен пайплайн

VulnClaw — это не монолит, а набор скоординированных агентов. Вот что происходит после ввода запроса вроде “проверить уязвимости в example.com”:

  1. Recon Agent собирает данные через subdomain enumeration, порт-сканирование и краудсорсинговые базы вроде Censys. Использует классические инструменты (Amass, Nmap), но с важным отличием — агент сам решает, какие методы применять, основываясь на первоначальных находках.

  2. Vulnerability Assessment Agent анализирует собранные данные через цепочку предикторов. Например, обнаруженный WordPress сразу проверяется на популярные CVE через связку WPScan + Nuclei templates. Здесь работает MCP-логика: модель (LLM) контролирует процесс выбора векторов атаки.

  3. Exploitation Agent (опционально) пытается использовать найденные уязвимости. Важный момент — по умолчанию этот этап отключен, чтобы избежать нелегальных действий. Когда включен, агент применяет только эксплойты с гарантированно обратимым воздействием.

На практике пайплайн выглядит так:

# Упрощенная схема работы VulnClaw
target = "example.com"
scanner = VulnClaw(
    recon_agents=[SubdomainScanner(), PortScanner()],
    assessment_agents=[WPScanner(), NucleiRunner()],
    exploitation_mode=False
)

report = scanner.run(
    f"Провести поверхностный аудит безопасности {target}",
    format="markdown"
)

Где LLM реально помогает, а где мешает

Главный плюс VulnClaw — автоматизация рутинных решений. Когда сканер находит 50 поддоменов, LLM-агент сам решает, какие из них стоит проверять глубже (например, игнорирует dev- и stage-окружения, если не указано иное). Это экономит часы ручной фильтрации.

Но есть и ложка дегтя:

Интересно, что создатели добавили механизм “уверенности” (confidence score). Агент помечает каждый вывод числом от 0 до 1, и это помогает фильтровать мусор:

[+] Найден WordPress 5.4.2 (confidence: 0.92)
[!] Возможен XXE через загрузчик тем (confidence: 0.67) → требует ручной проверки

Для кого это вообще работает

После недели экспериментов я выделил три сценария, где VulnClaw реально полезен:

  1. Предварительный аудит перед ручным тестированием — быстро дает общую картину безопасности.
  2. Мониторинг своих активов — можно настроить периодические проверки без участия человека.
  3. Обучение пентесту — наглядная демонстрация того, как цепочки инструментов взаимодействуют в реальном аудите.

Но для серьезных заказов я бы не стал полагаться только на VulnClaw. Проблема не в технологиях, а в том, что безопасность — это всегда про контекст. Ни один AI Agent пока не понимает разницы между “уязвимостью в демо-окружении” и “дырой в продакшене”.

Что попробовать, если заинтересовались:

  1. Запустить в demo-режиме против своего тестового стенда
  2. Поэкспериментировать с кастомными шаблонами для Nuclei
  3. Подключить свой LLM (поддерживается Claude и GPT-4)

Главный вывод: инструменты вроде VulnClaw — это не замена пентестеру, а его “форсированная” версия. Они берут на себя рутину, но интерпретацию результатов и работу с нюансами все равно приходится делать вручную. Что, впрочем, уже огромный шаг вперед.


Источник: https://github.com/Unclecheng-li/VulnClaw