SAST и DAST в конвейерах CI/CD
Интегрируйте SonarQube, Semgrep или Bandit для статического анализа, а также OWASP ZAP для динамического сканирования в конвейеры.
«SAST и DAST в конвейерах CI/CD» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Что такое тестирование безопасности приложений
Тестирование безопасности приложений выявляет уязвимости до того, как код попадёт в рабочую среду. Существуют два взаимодополняющих подхода: SAST (статический анализ без выполнения кода) и DAST (динамическое тестирование работающего приложения). Оба подхода можно интегрировать в конвейеры CI/CD для переноса обеспечения безопасности на ранние этапы.
SAST: статическое тестирование безопасности приложений
SAST анализирует исходный код, байт-код или двоичный код на наличие уязвимостей безопасности без выполнения кода. Его можно запускать при каждом коммите, получая быструю обратную связь.
Преимущества: раннее обнаружение ошибок, полный охват кода, работающая среда не требуется.
Недостатки: высокая доля ложных срабатываний, зависимость от языка, невозможность обнаружить проблемы конфигурации во время выполнения.
Популярные инструменты SAST
Инструменты SAST с открытым исходным кодом:
# Semgrep (multi-language, rule-based):
semgrep --config auto ./src
# Bandit (Python):
bandit -r ./src
# ESLint security plugin (JavaScript):
npx eslint --plugin security ./src
# SpotBugs + FindSecBugs (Java):
mvn spotbugs:checkИнтеграция SAST в CI/CD
Пример шага SAST в GitHub Actions:
# .github/workflows/security.yml
- name: Run Semgrep
uses: returntocorp/semgrep-action@v1
with:
config: p/owasp-top-ten
auditOn: push
# Fail build if HIGH severity findings presentDAST: динамическое тестирование безопасности приложений
DAST тестирует работающее приложение извне, имитируя действия злоумышленника. Он обнаруживает уязвимости, видимые только во время выполнения: проблемы аутентификации, недостатки управления сеансами и ошибки проверки входных данных.
Преимущества: мало ложных срабатываний, не зависит от языка, выявляет проблемы конфигурации во время выполнения.
Недостатки: требуется работающая среда, некоторые пути выполнения кода могут остаться непроверенными.
Популярные инструменты DAST
Инструменты DAST для CI/CD:
# OWASP ZAP (free, scriptable):
docker run -t owasp/zap2docker-stable zap-baseline.py -t https://staging.app.com
# Nikto:
nikto -h https://staging.app.com
# Nuclei (template-based):
nuclei -u https://staging.app.com -t cves/IAST: интерактивное тестирование безопасности приложений
IAST встраивает средства анализа в приложение во время выполнения с помощью агентов, которые отслеживают выполнение кода во время функционального тестирования. Он сочетает точность SAST с охватом DAST. Примеры: Contrast Security, Seeker. Требуются агенты для конкретного языка и запущенные тесты.
Перенос обеспечения безопасности на ранние этапы
Перенос влево означает перемещение тестирования безопасности на более ранний этап жизненного цикла разработки — в идеале в IDE разработчика и на этап фиксации изменений, а не на отдельный контрольный этап перед выпуском. Чем раньше обнаружена проблема, тем дешевле её исправить.
Множитель стоимости: ошибка на этапе разработки стоит 1×, на этапе подготовки — 10×, в рабочей среде — 100×.
Обработка ложных срабатываний
Инструменты SAST создают ложные срабатывания. Для управления ими:
- Используйте
nosec(Bandit) или встроенные комментарии подавления для подтверждённых несущественных проблем - Настраивайте наборы правил с учётом контекста приложения
- Фиксируйте обоснование подавления в комментариях к коду
- Периодически пересматривайте подавления
Архитектура конвейера безопасности CI/CD
Полный конвейер безопасности:
- Перехватчики перед фиксацией: сканирование секретов (gitleaks), SAST (semgrep)
- Проверки PR: результаты SAST, сканирование зависимостей (Dependabot)
- Развёртывание в тестовой среде: сканирование DAST (базовая проверка ZAP)
- Рабочая среда: мониторинг во время выполнения (RASP, WAF)
Оценка эффективности AppSec
Ключевые показатели AppSec в CI/CD:
- Среднее время устранения выявленных проблем безопасности
- Частота выявления проблем на 1000 строк кода
- Доля ложных срабатываний (влияет на доверие разработчиков)
- Доля уязвимостей, не обнаруженных до выпуска (найденных в тестовой среде по сравнению с рабочей)
Быстрая проверка: SAST и DAST
Какой вид тестирования безопасности анализирует исходный код без его выполнения и предоставляет обратную связь непосредственно в конвейере CI при каждом коммите?
Итоги урока
SAST анализирует код статически (ранняя обратная связь, много ложных срабатываний), а DAST динамически тестирует работающие приложения (точность во время выполнения, требуется среда). Оба подхода должны входить в конвейеры CI/CD. Перенос тестирования на ранние этапы позволяет обнаруживать уязвимости, когда их исправление обходится дешевле всего. Популярные инструменты: Semgrep, Bandit (SAST); OWASP ZAP, Nuclei (DAST). Настраивайте наборы правил и отслеживайте подавления, чтобы управлять ложными срабатываниями.
Часто задаваемые вопросы
Урок «SAST и DAST в конвейерах CI/CD» бесплатный?
Да — полный текст урока «SAST и DAST в конвейерах CI/CD» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «SAST и DAST в конвейерах CI/CD»?
Интегрируйте SonarQube, Semgrep или Bandit для статического анализа, а также OWASP ZAP для динамического сканирования в конвейеры. Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «SAST и DAST в конвейерах CI/CD»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- SAST и DAST в конвейерах CI/CD
- Анализ состава программного обеспечения (SCA)
- Сканирование секретов и зашитые учётные данные
- Чемпионы по безопасности и моделирование угроз