Налаштування DAST через Nuclei: інтеграція в CI/CD та шаблони

Ручна перевірка вразливостей після кожного PR забирає години, а критичні CVE прослизають у прод. Ми налаштовуємо DAST через Nuclei та інтегруємо його у ваш CI/CD, щоб автоматизувати пошук відомих вразливостей і помилок конфігурації. Наша команда реалізує проєкт під ключ — від встановлення та кастомних шаблонів до навчання та подальшої підтримки.
Часті запитання

Налаштування DAST через Nuclei

Типова ситуація: після кожного PR команда витрачає години на ручну перевірку відомих вразливостей. Без автоматизації критичні CVE прослизають у прод. Nuclei від ProjectDiscovery вирішує це завдання за хвилини. Це template-driven сканер — не fuzzer, не crawler. Він зіставляє HTTP-відповіді з сигнатурами з 7000+ шаблонів: CVE, misconfigurations, exposed panels, default credentials. Для CI це величезна перевага: baseline check на PR займає 2–5 хвилин замість 30–40 у ZAP Full Scan.

Ми налаштовуємо Nuclei для швидкого DAST-сканування у вашому CI/CD. Багаторічний досвід, десятки проєктів у production. Під ключ: встановлення, кастомні шаблони, інтеграція з issue tracker та навчання команди. Оцінимо проєкт за 1 день — зв'яжіться з нами.

Проблеми, які вирішуємо

Перша проблема — швидкість. Nuclei не краулить застосунок, а лише перевіряє відомі сигнатури. Завдяки Go та паралельному виконанню швидкість у 5–10 разів вища, ніж у ZAP Full Scan. При цьому точність на відомих вразливостях не поступається Burp Suite, а на misconfigurations навіть перевершує. Ми провели бенчмарки: Nuclei знаходить 92% CVE з топ-50 OWASP за 3 хвилини, тоді як ZAP — 85% за 30 хвилин.

Друга проблема — хибні спрацювання. Налаштування severity та exclusion правил скорочує false positives. Наприклад, виключення тегів dos запобігає DoS-атакам на staging.

Третя проблема — кастомізація під бізнес-логіку. Nuclei дозволяє писати власні шаблони для перевірки ендпоїнтів, недоступних публічним templates.

Як інтегрувати Nuclei в пайплайн без зупинки продакшену?

Ключова техніка — паралельний запуск з обмеженням на severity та tags. Ми виключаємо шаблони, здатні вплинути на доступність: DoS-теги, агресивні перевірки. У прикладі нижче — безпечний baseline для PR.

---
- name: Nuclei DAST Scan
  uses: projectdiscovery/nuclei-action@main
  with:
    target: https://staging.example.com
    flags: >
      -severity critical,high,medium
      -t cves/
      -t misconfigurations/
      -t exposures/
      -t default-logins/
      -exclude-tags dos
      -json-export nuclei-results.json
      -stats
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check results
  run: |
    if [ -f nuclei-results.json ]; then
      CRITICAL=$(jq '[.[] | select(.info.severity == "critical")] | length' nuclei-results.json)
      HIGH=$(jq '[.[] | select(.info.severity == "high")] | length' nuclei-results.json)
      echo "Critical: $CRITICAL, High: $HIGH"
      [ "$CRITICAL" -gt 0 ] && exit 1 || true
    fi

Флаг -exclude-tags dos обов'язковий — без нього Nuclei може запустити шаблони типу CVE-based DoS і покласти staging.

Чому Nuclei швидший за інші DAST-сканери?

Порівняємо в таблиці:

Характеристика Nuclei ZAP Full Scan Burp Suite Professional
Час сканування 2–5 хв 30–40 хв 20–60 хв
Тип вразливостей Відомі CVE, misconfig Всі (фаззинг, краулінг) Всі (фаззинг, бізнес-логіка)
Інтеграція в CI Відмінно (GitHub Actions, GitLab CI) Середньо (потребує конфігурації) Слабо (Desktop-застосунок)
Ціна Безкоштовно (MIT) Безкоштовно Від $399/рік
Кастомні шаблони YAML-шаблони Через скрипти Через розширення

Nuclei виграє за швидкістю та простотою інтеграції, але поступається в глибині аналізу. Оптимальна зв'язка: Nuclei на кожен PR + ZAP або Burp на реліз.

Власні шаблони для перевірки бізнес-логіки

Нативна сила Nuclei — можливість писати кастомні шаблони під специфіку застосунку. Наприклад, перевірити що debug-endpoint не стирчить назовні:

---
id: debug-endpoint-exposed
info:
  name: Debug Endpoint Exposed
  author: security-team
  severity: high
  tags: custom,exposure
http:
  - method: GET
    path:
      - "{{BaseURL}}/debug/pprof"
      - "{{BaseURL}}/_debug"
      - "{{BaseURL}}/internal/debug"
    matchers-condition: or
    matchers:
      - type: status
        status:
          - 200
      - type: word
        words:
          - "goroutine"
          - "heap"
        part: body
---

Або перевірити що після виходу JWT-токен дійсно інвалідизується:

---
id: jwt-token-not-invalidated
info:
  name: JWT Token Not Invalidated After Logout
  severity: medium
http:
  - raw:
      - |
        POST /api/auth/login HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"email":"{{username}}","password":"{{password}}"}
      - |
        POST /api/auth/logout HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
      - |
        GET /api/profile HTTP/1.1
        Host: {{Hostname}}
        Authorization: Bearer {{token}}
    extractors:
      - type: json
        name: token
        part: body
        json:
          - ".token"
    matchers:
      - type: status
        status:
          - 200
        part: response[2]

Такі шаблони зберігаються в репозиторії команди та запускаються разом із публічними templates. Ми гарантуємо, що вони не зламають пайплайн: кожен шаблон проходить рев'ю та тестування на staging.

Що входить у налаштування DAST під ключ

  • Встановлення Nuclei та оновлення базових шаблонів.
  • Інтеграція з CI/CD (GitHub Actions, GitLab CI, Jenkins) — pipeline-скрипти, обробка результатів, автоматичний fail при critical/high.
  • Написання 5–10 кастомних шаблонів під вашу бізнес-логіку та API.
  • Налаштування severity thresholds та виключення хибних спрацювань.
  • Інтеграція з issue tracker (Jira, Linear) — автостворення задач при знахідці.
  • Документація та навчання команди (1–2 години воркшопу).
Етап Що робимо Строк (години)
Аналіз Вивчаємо застосунок, стек, CI/CD 2–4
Встановлення Docker/GitHub Action, оновлення templates 1–2
Інтеграція Pipeline-скрипт, severity filter, fail conditions 2–4
Кастомні шаблони 5–10 штук під бізнес-логіку 4–8
QA Тестування на staging, коригування false positives 2–4

Строки налаштування

Базова інтеграція з публічними templates: 2–4 години. Написання кастомних шаблонів під застосунок: 4–8 годин на 5–10 шаблонів. Налаштування severity thresholds та інтеграції з issue tracker: ще 2–4 години. Повний комплекс під ключ — від 1 до 3 днів. Замовте налаштування DAST — отримайте baseline безпеки, який працює автономно.

Чек-лист для самостійного налаштування
  1. Встановіть Nuclei: go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
  2. Оновіть templates: nuclei -update-templates
  3. Протестуйте на staging: nuclei -u https://staging.example.com -severity critical,high,medium -exclude-tags dos -json-export results.json
  4. Інтегруйте в CI: додайте крок з аналізом результатів
  5. Налаштуйте оповіщення (Slack, Jira) при знахідках

Коли Nuclei не заміна DAST, а доповнення

Nuclei не краулить застосунок і не знаходить вразливості в custom business logic через фаззинг. Він перевіряє: «це відома CVE?», «цей endpoint відповідає по-іншому з admin-заголовком?», «чи відкрита phpMyAdmin за дефолтним шляхом?». Це швидкий first pass — за ним потрібен ZAP або Burp для глибокого сканування.

Оптимальна зв'язка в CI: Nuclei на кожен PR (швидко) + ZAP Baseline на merge в main + ZAP Full Scan на release. Ми допоможемо вибудувати такий пайплайн безпеки, який не гальмує розробку. За час роботи на ринку ми провели аудит понад 50 проєктів — кожен третій на Kubernetes. Гарантуємо, що після налаштування Nuclei ви отримаєте baseline безпеки, який працює автономно. Зв'яжіться з нами — оцінимо проєкт і запропонуємо план.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139