Nuclei: как собрать свой сканер уязвимостей из YAML-шаблонов
Разбираем open-source сканер Nuclei от ProjectDiscovery: как работают YAML-шаблоны, где брать готовые проверки и как встроить security-тесты в CI/CD.
1. Проблема классических сканеров
Запускаете проверку, ждёте отчёт, надеетесь, что встроенные правила знают о нужной уязвимости. Если не знают — добавить свою логику нельзя: движок закрыт, шаблоны зашиты внутри, а лицензия стоит как отдельная статья бюджета.
В итоге безопасность зависит от того, насколько вендор успевает за реальными угрозами. А ваша инфраструктура — уникальна: внутренние API, самописные панели, специфичные конфигурации. Готовые правила их не видят.
2. Что такое Nuclei и почему он другой
Nuclei — быстрый open-source движок от ProjectDiscovery. Логика проверок описывается человекочитаемыми YAML-шаблонами. Вы не просто запускаете сканер — вы собираете собственную систему обнаружения под конкретную инфраструктуру, которая, как и локальные AI-модели, оставляет данные внутри периметра.
flowchart LR
A["Цели (URL, IP, Swagger)"] --> B["Nuclei-движок"]
B --> C["YAML-шаблоны"]
C --> D["Отчёт / алерт"]
Движок умеет:
- проверять сайты, API, IP-адреса, подсети и сетевые сервисы;
- работать с HTTP, DNS, TCP, SSL и другими протоколами;
- принимать Swagger, OpenAPI и экспортированные данные Burp Suite;
- искать известные CVE, неправильные конфигурации, открытые панели и утечки;
- объединять проверки в последовательные workflows;
- встраиваться в CI/CD и автоматически проверять каждую сборку.
3. Экосистема шаблонов
Главная сила проекта — публичный репозиторий nuclei-templates. Сообщество поддерживает тысячи готовых сценариев: от проверки свежих CVE до детекции открытых .git-папок.
Каждый шаблон содержит:
- запросы — что отправить цели;
- matchers — условия, когда считать проверку успешной;
- severity — уровень критичности;
- метаданные — описание, ссылки, remediation.
Официальные шаблоны подписываются цифровой подписью и верифицируются при загрузке — это снижает риск подмены.
Быстрый старт
# Проверить один сайт
nuclei -u https://example.com
# Проверить список целей
nuclei -l targets.txt
# Только критические и высокие уровни
nuclei -l targets.txt -severity critical,high
# Обновить шаблоны
nuclei -update-templates
Нужна собственная проверка внутреннего сервиса? Пишете YAML-шаблон, задаёте запросы и признаки успешного обнаружения — получаете воспроизводимый security-тест, который живёт рядом с кодом.
4. Flow и многошаговая логика
В Nuclei v3 появился механизм Flow: через JavaScript можно условно выполнять запросы и выстраивать цепочки.
Пример сценария:
- Определить технологию (fingerprint).
- Получить токен авторизации.
- Проверить конкретный endpoint.
- Подтвердить уязвимость.
Это превращает Nuclei из «пачки независимых проверок» в полноценный автоматизированный пентест-фреймворк.
Осторожно с Code Protocol. Выполнение произвольного кода в шаблонах по умолчанию отключено и активируется флагом
-code. Не запускайте неизвестные пользовательские шаблоны без ревью.
5. Где это пригодится
| Сценарий | Польза |
|---|---|
| Регулярный аудит внешнего периметра | Находит забытые сервисы и открытые панели |
| Проверка новых доменов | Быстрый baseline до запуска в прод |
| Bug bounty и разрешённый пентест | Автоматизация рутинных проверок |
| Контроль типовых ошибок конфигурации | Единый стандарт для всей команды |
| Security-gate в CI/CD | Блокировка релиза при критических находках |
| Проверка свежих CVE на инфраструктуре | Шаблон появляется в репозитории — сразу тестируете |
6. С чего начать
- Установите Nuclei. Бинарник доступен для Linux, macOS и Windows. Можно через
go installили скачать релиз. - Обновите шаблоны:
nuclei -update-templates. - Запустите базовую проверку на тестовом домене, чтобы понять формат отчёта.
- Выберите severity. Для первого прогона ограничьтесь
critical,high— иначе утонете в информационных срабатываниях. - Напишите первый собственный шаблон. Возьмите за основу существующий, измените запрос и matcher под внутренний сервис.
- Встройте в CI/CD. Добавьте шаг
nucleiпосле деплоя в staging — пусть каждая сборка проходит security-gate. - Версионируйте шаблоны. Храните их в репозитории проекта: так знания одного специалиста превращаются в повторяемый процесс для всей команды.
Сканер проверяет то, что вы ему указали. Но у периметра есть и другая половина — то, что о компании видно снаружи без всякого сканирования: почты сотрудников, забытые файлы в открытых каталогах, устройства с проброшенными портами. Это разбираю в статье про открытую разведку и пять её инструментов — начинать аудит логичнее именно оттуда.
Nuclei — не волшебная кнопка «найти всё». Это конструктор автоматизированных проверок: быстрый движок, понятный DSL, огромная база шаблонов и возможность масштабировать экспертизу. Как и в случае с собственным AI-видеонаблюдением без облака, весь стек остаётся у вас — от движка до данных.
Следующий шаг: хотите интегрировать security-сканирование в ваш CI/CD или настроить регулярный аудит периметра — напишите мне в Telegram.








Комментарии
Войдите через Telegram, чтобы оставить комментарий:
Пока нет комментариев. Будьте первым.