Проблема: уязвимости, которые не видит SAST
Вы используете статический анализ кода, но production всё равно взламывают через неправильную конфигурацию Nginx или IDOR в API, который не покрыт тестами. SAST анализирует код, а работает приложение в окружении — с сервером, middleware, сторонними сервисами. Именно здесь возникают runtime-уязвимости. DAST (Dynamic Application Security Testing) решает эту проблему: он атакует приложение как внешний злоумышленник и находит то, что скрыто от статики.
Мы настраиваем DAST для сайтов и API уже 10+ лет. За это время провели более 50 проектов по безопасности, от интернет-магазинов до финтех-платформ. Один из кейсов: клиент потерял $18k–26k из-за SQL-инъекции, которую не видел SAST. После внедрения ZAP в CI/CD такие уязвимости перестали попадать в production. В среднем экономия на ручном аудите достигает 70% — автоматизация окупается за пару месяцев. По данным OWASP Top 10, около 40% критических уязвимостей относятся к runtime-категории, а средняя стоимость утечки данных для中小 бизнеса — $27k–39k.
Почему DAST не заменить SAST?
DAST проверяет работающее приложение в реальном окружении. Он видит:
- Неправильную конфигурацию сервера (открытые CORS, слабые заголовки)
- Runtime-уязвимости (RCE, SSRF, IDOR)
- Проблемы с аутентификацией (невалидные сессии, слабые токены)
SAST анализирует код, но не знает, как он исполняется. DAST же действует с точки зрения хакера. Например, X-Frame-Options настраивается на сервере, и SAST его не проверит. DAST отправит запрос и увидит, что заголовок отсутствует. Без DAST вы рискуете пропустить до 95% runtime-уязвимостей, которые составляют 40% всех критических проблем.
Как интегрировать DAST в CI/CD?
Мы интегрируем DAST в пайплайн, чтобы автоматически находить уязвимости до деплоя. Вот типовой процесс:
- Выбор инструмента: для веб-сайтов — OWASP ZAP (open source, гибкий), для API — ZAP API scan или Nuclei.
- Настройка правил: определяем, какие уязвимости критичны (SQLi, XSS), а какие — предупреждения.
- Интеграция с CI/CD: запуск при каждом пуше или по расписанию, генерация отчёта, фейл пайплайна при критических находках.
- Кастомизация: добавляем authentication, настраиваем scope, исключаем чувствительные эндпоинты.
Пример OWASP ZAP в GitHub Actions
# .github/workflows/dast.yml name: DAST on: push: branches: [main] schedule: - cron: '0 2 * * 1' jobs: zap-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Start application run: | docker compose -f docker-compose.test.yml up -d sleep 30 - name: Run ZAP Baseline Scan uses: zaproxy/[email protected] with: target: http://localhost:3000 rules_file_name: .zap/rules.tsv cmd_options: '-a' - name: Upload ZAP report uses: actions/upload-artifact@v4 if: always() with: name: zap-report path: report_html.html - name: Stop application if: always() run: docker compose -f docker-compose.test.yml down # .zap/rules.tsv # rule_id action reason 10017 WARN # X-Frame-Options header 10038 WARN # Content Security Policy 40012 FAIL # Cross Site Scripting 40018 FAIL # SQL Injection 90011 IGNORE # Charset mismatch Сравнение инструментов DAST
| Критерий | OWASP ZAP | Nuclei | Burp Suite |
|---|---|---|---|
| Тип сканирования | Активное/пассивное | По шаблонам CVE | Ручное + активное |
| Скорость | Средняя (30-60 мин) | Высокая (5-15 мин) | Низкая (часы) |
| Глубина | Средняя | Поверхностная | Высокая (ручная) |
| Лицензия | Бесплатно | Бесплатно | Платная |
| API-сканирование | Да (OpenAPI) | Да (через шаблоны) | Да (через расширения) |
ZAP лучше для автоматизации в CI/CD: быстрый baseline scan (5-10 мин) и детальный full scan. Nuclei эффективен для проверки конкретных CVE — вы запускаете его за 5 минут и получаете список известных уязвимостей. Burp Suite используется для ручного пентеста, когда нужно глубоко протестировать бизнес-логику.
Таблица этапов настройки DAST
| Этап | Длительность | Результат |
|---|---|---|
| Анализ архитектуры и выбор инструментов | 0.5 дня | План сканирования |
| Интеграция ZAP в CI/CD | 1-2 дня | Рабочий пайплайн с baseline scan |
| Настройка правил и фильтрация ложных срабатываний | 1 день | Правила для критических уязвимостей |
| Подключение Nuclei и Burp Suite (опционально) | 2-3 дня | Расширенное покрытие |
| Тестирование и обучение команды | 0.5 дня | Документация и стабильный процесс |
Что входит в настройку DAST
В рамках услуги мы:
- Анализируем архитектуру приложения и выбираем инструменты.
- Настраиваем OWASP ZAP (или Nuclei) в вашем CI/CD (GitHub Actions, GitLab CI, Jenkins).
- Пишем кастомные правила для фильтрации ложных срабатываний.
- Настраиваем автоматический регресс: если в новой версии появилась критическая уязвимость — пайплайн падает.
- Подключаем сканирование по расписанию (еженедельно).
- Обучаем команду работе с отчётами и интерпретации результатов.
- Предоставляем документацию: конфигурации, правила, инструкцию по добавлению нового проекта.
- Сопровождаем 2 недели после внедрения: корректируем правила, добавляем исключения.
Типичные ошибки при внедрении DAST
- Сканирование production-окружения. Активное сканирование может сломать данные. Всегда используйте staging.
- Игнорирование аутентификации. DAST должен ходить как авторизованный пользователь, иначе он не увидит защищённые эндпоинты.
- Отсутствие фильтрации ложных срабатываний. Без кастомных правил ZAP выдаёт сотни предупреждений, которые никто не смотрит.
- Запуск только ручного сканирования. Автоматизация в CI/CD — единственный способ не пропускать уязвимости.
Сроки и стоимость
Сроки зависят от сложности:
- Базовая настройка ZAP в CI/CD: 1-2 дня.
-
- Nuclei и Burp Suite: 3-5 дней.
Стоимость рассчитывается индивидуально. Вы получаете стабильный DAST-пайплайн, который защищает от критических уязвимостей. Получите консультацию — мы обсудим ваш проект и подберём оптимальное решение. Мы гарантируем, что настройка не сломает staging, и предоставляем поддержку после внедрения.
Пример конфигурации правил для ZAP
# rule_id action reason 90001 IGNORE # Application error disclosure 90011 IGNORE # Charset mismatch 10017 WARN # X-Frame-Options header 10038 WARN # Content Security Policy 40012 FAIL # Cross Site Scripting 40018 FAIL # SQL InjectionСвяжитесь с нами, чтобы начать настройку DAST уже сегодня. Закажите консультацию — мы поможем защитить ваш проект от runtime-уязвимостей.







