0Pricing
Cyber Security Academy · Урок

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 present

DAST: динамическое тестирование безопасности приложений

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

Полный конвейер безопасности:

  1. Перехватчики перед фиксацией: сканирование секретов (gitleaks), SAST (semgrep)
  2. Проверки PR: результаты SAST, сканирование зависимостей (Dependabot)
  3. Развёртывание в тестовой среде: сканирование DAST (базовая проверка ZAP)
  4. Рабочая среда: мониторинг во время выполнения (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 — локальная установка не требуется.

Все уроки этого курса

  1. SAST и DAST в конвейерах CI/CD
  2. Анализ состава программного обеспечения (SCA)
  3. Сканирование секретов и зашитые учётные данные
  4. Чемпионы по безопасности и моделирование угроз
← Назад к Cyber Security Academy