0Pricing
Security+ Academy · Урок

Безопасный SDLC, инструменты SAST и DAST

Интегрируйте безопасность в жизненный цикл разработки программного обеспечения с помощью статического анализа (SAST), динамического анализа (DAST) и моделирования угроз на ранних этапах разработки.

«Безопасный SDLC, инструменты SAST и DAST» — бесплатный урок Security+ Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Security+ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Security+ Academy содержит 4 уроков всего.

Что такое безопасный SDLC

Безопасный жизненный цикл разработки программного обеспечения (SSDLC) включает мероприятия по обеспечению Security на каждом этапе разработки программного обеспечения — от формирования требований до проектирования, написания кода, тестирования, развёртывания и сопровождения. Традиционный SDLC рассматривает Security как контрольный барьер на последнем этапе, что дорого и неэффективно. Философия безопасного SDLC заключается в поиске и устранении уязвимостей как можно раньше, поскольку исправление дефектов, обнаруженных на этапе проектирования, обходится значительно дешевле, чем исправление дефектов, найденных в рабочей среде.

Перенос Security на ранние этапы разработки

Сдвиг влево означает перенос Security на более ранние этапы (влево на временной шкале разработки), а не добавление Security в самом конце. На практике это означает включение требований Security в пользовательские истории, проведение моделирования угроз на этапе проектирования, выполнение проверки кода и SAST во время разработки, а также запуск DAST перед выпуском. Team, использующие сдвиг влево, обнаруживают уязвимости тогда, когда их дешевле всего исправить, — во время разработки, а не в рабочей среде.

Моделирование угроз: STRIDE и PASTA

Моделирование угроз систематически выявляет и документирует угрозы Security на этапе проектирования. Модель STRIDE распределяет угрозы по следующим категориям: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service и Elevation of Privilege. PASTA (Process for Attack Simulation and Threat Analysis) — методология, ориентированная на риски и моделирующая цели Attacker. Модели угроз позволяют определить приоритетные меры защиты ещё до написания первой строки кода.

# STRIDE threat categories (mnemonic)
# S - Spoofing identity
# T - Tampering with data
# R - Repudiation of actions
# I - Information disclosure
# D - Denial of service
# E - Elevation of privilege

Статическое тестирование Security приложений (SAST)

SAST (тестирование методом белого ящика) анализирует исходный код, байт-код или двоичные файлы без запуска приложения и ищет шаблоны кода, связанные с известными уязвимостями. Инструменты SAST могут быстро просканировать всю кодовую базу и сообщить о таких проблемах, как зашитые в код учётные данные, точки внедрения SQL и небезопасная десериализация. Они запускаются внутри IDE или конвейера CI и указывают обнаруженные проблемы с номерами файлов и строк, что упрощает их устранение.

# Example: running Semgrep SAST in CI
semgrep --config=auto --error src/

# Common SAST tools:
# - Checkmarx, Veracode, Fortify (commercial)
# - Semgrep, SonarQube, Bandit (open source)
# - GitHub CodeQL (integrated with GitHub Actions)

Ограничения SAST: ложные срабатывания

Ключевое ограничение SAST — склонность выдавать ложные срабатывания, то есть помечать безопасный код как уязвимый. Такая усталость от оповещений приводит к тому, что разработчики отклоняют результаты без проверки. Инструменты SAST также не могут обнаруживать проблемы конфигурации во время выполнения, недостатки Authentication, зависящие от поведения во время выполнения, или уязвимости в вызовах сторонних API. SAST наиболее эффективен в сочетании с обучением разработчиков, чтобы результаты правильно сортировались по приоритету.

Динамическое тестирование Security приложений (DAST)

DAST (тестирование методом чёрного ящика) проверяет работающее приложение, отправляя атакующие полезные нагрузки на его HTTP-конечные точки и анализируя ответы на наличие признаков уязвимостей. DAST не требует доступа к исходному коду — он проверяет приложение так, как это делал бы Attacker. Этот метод особенно хорошо выявляет проблемы во время выполнения, такие как обход Authentication, XSS, отражённый в ответах, и неправильную Configuration Server. К инструментам DAST относятся OWASP ZAP, Burp Suite и Netsparker.

# Running OWASP ZAP baseline scan against a URL
docker run -t owasp/zap2docker-stable zap-baseline.py \
  -t https://staging.example.com \
  -r zap-report.html

# ZAP sends probe requests and analyzes responses
# without requiring source code access

SAST и DAST: взаимодополняющие подходы

SAST и DAST дополняют друг друга, а не конкурируют. SAST рано обнаруживает проблемы на уровне кода и интегрируется с IDE, но не видит поведение во время выполнения. DAST выявляет уязвимости во время выполнения и не требует исходного кода, но не может просканировать участки кода, которые не вызываются его автоматизированными проверками. Совместное использование обоих подходов — SAST в конвейере CI и DAST в тестовой среде — позволяет максимально охватить уязвимости во всём SDLC.

Интерактивное тестирование Security приложений (IAST)

IAST объединяет особенности SAST и DAST, внедряя средства наблюдения в приложение во время выполнения. Агент IAST работает внутри приложения (на Server) и отслеживает выполнение кода по мере прохождения через него тестового трафика. Он может проследить путь загрязнённых пользовательских данных через участки кода до чувствительных точек назначения, выявляя уязвимости с меньшим числом ложных срабатываний, чем обычный SAST. IAST особенно эффективен в приложениях на Java и .NET и естественным образом интегрируется в запуски функциональных тестов.

Анализ состава программного обеспечения (SCA)

Анализ состава программного обеспечения (SCA) выявляет библиотеки с открытым исходным кодом и сторонние зависимости в приложении и сверяет их с базами данных уязвимостей (NVD, OSV). Современные приложения могут подключать сотни зависимостей, в том числе транзитивных, поэтому инструменты SCA, такие как OWASP Dependency-Check, Snyk и Renovate, необходимы для обнаружения известных CVEs до того, как Attacker воспользуются ими в Вашей цепочке поставок.

# OWASP Dependency-Check (scans project dependencies)
dependency-check --project myapp --scan ./target --format HTML

# Snyk CLI
snyk test  # finds vulnerabilities in package.json / requirements.txt
snyk monitor  # continuously monitors for new CVEs

Security в конвейерах CI/CD

Интеграция инструментов Security в конвейеры CI/CD гарантирует, что в рабочую среду не попадёт код, не прошедший контроль Security. Типичный конвейер DevSecOps выполняет следующие действия: SAST при каждом коммите, SCA при изменении зависимостей, сканирование образов Container перед отправкой в реестр, сканирование IaC для Terraform/CloudFormation и DAST в тестовом развёртывании. Непройденные проверки Security блокируют сборку, формируя культуру Security по умолчанию.

# GitHub Actions example — security gate in CI
jobs:
  security:
    steps:
      - uses: actions/checkout@v4
      - name: Run SAST
        run: semgrep --config=auto --error .
      - name: SCA check
        run: snyk test --severity-threshold=high
      - name: Container scan
        run: trivy image myapp:latest --exit-code 1

Практики безопасной проверки кода

Автоматизированные инструменты не могут заменить проводимую людьми проверку кода, сосредоточенную на логике Security. Проверка коллегами должна подтверждать, что проверки Authentication и авторизации находятся в правильных местах, обработка ошибок не раскрывает конфиденциальную Information, криптографические функции используют одобренные алгоритмы и параметры, а бизнес-логику нельзя обойти. Ответственные за Security внутри команд разработки — разработчики, прошедшие обучение по Security, — связывают Team Security и инженеров.

Быстрая проверка

Проверьте своё понимание концепций CompTIA Security+ (SY0-701) из этого урока.

Итоги урока

В этом уроке Вы узнали, что безопасный SDLC включает Security на всех этапах разработки, а не добавляет её в самом конце, SAST анализирует код без выполнения, а DAST проверяет работающие приложения, а SCA выявляет уязвимые зависимости с открытым исходным кодом, а контроль Security в CI/CD автоматически обеспечивает соблюдение требований. Далее мы рассмотрим службы каталогов с LDAP и Active Directory.

Часто задаваемые вопросы

Урок «Безопасный SDLC, инструменты SAST и DAST» бесплатный?

Да — полный текст урока «Безопасный SDLC, инструменты SAST и DAST» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Security+ Academy, подпишись на CoddyKit PRO. Курс Security+ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Безопасный SDLC, инструменты SAST и DAST»?

Интегрируйте безопасность в жизненный цикл разработки программного обеспечения с помощью статического анализа (SAST), динамического анализа (DAST) и моделирования угроз на ранних этапах разработки. Ты практикуешь Security+ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Security+ Academy?

Предыдущий опыт не требуется. Security+ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Безопасный SDLC, инструменты SAST и DAST»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Security+ Academy?

Да. Каждый урок Security+ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. SQL-инъекции и командные инъекции
  2. Межсайтовый скриптинг (XSS) и CSRF
  3. Нарушенная аутентификация и небезопасная десериализация
  4. Безопасный SDLC, инструменты SAST и DAST
← Назад к Security+ Academy