# Nuclei: как собрать свой сканер уязвимостей из YAML-шаблонов

> Разбираем open-source сканер Nuclei от ProjectDiscovery: как работают YAML-шаблоны, где брать готовые проверки и как встроить security-тесты в CI/CD.

Источник: https://blog.uspeshnyy.ru/blog/nuclei-kak-sobrat-svoy-skaner-uyazvimostey-iz-yaml-shablonov/
Автор: Александр Успешный · blog.uspeshnyy.ru
Опубликовано: 2026-06-24
Теги: инструменты

---

## 1. Проблема классических сканеров

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

В итоге безопасность зависит от того, насколько вендор успевает за реальными угрозами. А ваша инфраструктура — уникальна: внутренние API, самописные панели, специфичные конфигурации. Готовые правила их не видят.

## 2. Что такое Nuclei и почему он другой

**Nuclei** — быстрый open-source движок от ProjectDiscovery. Логика проверок описывается человекочитаемыми YAML-шаблонами. Вы не просто запускаете сканер — вы собираете собственную систему обнаружения под конкретную инфраструктуру, которая, [как и локальные AI-модели, оставляет данные внутри периметра](/blog/lokalnye-ai-modeli-kogda-eto-zaschita-dannyh-a-kogda-dorogay/).

Движок умеет:

- проверять сайты, API, IP-адреса, подсети и сетевые сервисы;
- работать с HTTP, DNS, TCP, SSL и другими протоколами;
- принимать Swagger, OpenAPI и экспортированные данные Burp Suite;
- искать известные CVE, неправильные конфигурации, открытые панели и утечки;
- объединять проверки в последовательные **workflows**;
- встраиваться в CI/CD и автоматически проверять каждую сборку.

## 3. Экосистема шаблонов

Главная сила проекта — публичный репозиторий **nuclei-templates**. Сообщество поддерживает тысячи готовых сценариев: от проверки свежих CVE до детекции открытых `.git`-папок.

Каждый шаблон содержит:

- **запросы** — что отправить цели;
- **matchers** — условия, когда считать проверку успешной;
- **severity** — уровень критичности;
- **метаданные** — описание, ссылки, remediation.

Официальные шаблоны подписываются цифровой подписью и верифицируются при загрузке — это снижает риск подмены.

### Быстрый старт

```bash
# Проверить один сайт
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 можно условно выполнять запросы и выстраивать цепочки.

Пример сценария:

1. Определить технологию (fingerprint).
2. Получить токен авторизации.
3. Проверить конкретный endpoint.
4. Подтвердить уязвимость.

Это превращает Nuclei из «пачки независимых проверок» в полноценный автоматизированный пентест-фреймворк.

> **Осторожно с Code Protocol.** Выполнение произвольного кода в шаблонах по умолчанию отключено и активируется флагом `-code`. Не запускайте неизвестные пользовательские шаблоны без ревью.

## 5. Где это пригодится

| Сценарий | Польза |
|----------|--------|
| Регулярный аудит внешнего периметра | Находит забытые сервисы и открытые панели |
| Проверка новых доменов | Быстрый baseline до запуска в прод |
| Bug bounty и разрешённый пентест | Автоматизация рутинных проверок |
| Контроль типовых ошибок конфигурации | Единый стандарт для всей команды |
| Security-gate в CI/CD | Блокировка релиза при критических находках |
| Проверка свежих CVE на инфраструктуре | Шаблон появляется в репозитории — сразу тестируете |

## 6. С чего начать

1. **Установите Nuclei.** Бинарник доступен для Linux, macOS и Windows. Можно через `go install` или скачать релиз.
2. **Обновите шаблоны:** `nuclei -update-templates`.
3. **Запустите базовую проверку** на тестовом домене, чтобы понять формат отчёта.
4. **Выберите severity.** Для первого прогона ограничьтесь `critical,high` — иначе утонете в информационных срабатываниях.
5. **Напишите первый собственный шаблон.** Возьмите за основу существующий, измените запрос и matcher под внутренний сервис.
6. **Встройте в CI/CD.** Добавьте шаг `nuclei` после деплоя в staging — пусть каждая сборка проходит security-gate.
7. **Версионируйте шаблоны.** Храните их в репозитории проекта: так знания одного специалиста превращаются в повторяемый процесс для всей команды.

Сканер проверяет то, что вы ему указали. Но у периметра есть и другая половина — то, что о компании видно снаружи без всякого сканирования: почты сотрудников, забытые файлы в открытых каталогах, устройства с проброшенными портами. Это разбираю в статье про [открытую разведку и пять её инструментов](/blog/chto-o-vashey-kompanii-uznayut-za-pyat-minut/) — начинать аудит логичнее именно оттуда.

Nuclei — не волшебная кнопка «найти всё». Это конструктор автоматизированных проверок: быстрый движок, понятный DSL, огромная база шаблонов и возможность масштабировать экспертизу. Как и в случае с [собственным AI-видеонаблюдением без облака](/blog/svoy-ai-videonablyudenie-frigate-codeproject-tensorflow/), весь стек остаётся у вас — от движка до данных.

**Следующий шаг:** хотите интегрировать security-сканирование в ваш CI/CD или настроить регулярный аудит периметра — [напишите мне в Telegram](https://t.me/uspeshnyy).