SAST анализирует код без запуска, DAST проверяет работающее приложение, SCA исследует сторонние компоненты и известные уязвимости зависимостей. Они покрывают разные источники риска и дополняют друг друга. Ограничения включают ложные срабатывания, неполное покрытие и зависимость от настроек; отсутствие находок не доказывает безопасность.
Каковы ключевые преимущества и недостатки SAST, DAST и SCA?
Что проверяют статический, динамический и компонентный анализ, какие у каждого ограничения и почему результаты требуют проверки и приоритизации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
SAST — статический анализ безопасности. Он исследует исходный код или другие представления программы без запуска приложения. Преимущества — раннее обнаружение проблем и привязка находки к месту в коде. Ограничения — зависимость от языка, фреймворков и точности модели анализа; возможны ложные срабатывания и пропуски сложной бизнес-логики. Эти особенности рассматривает OWASP.
DAST — динамический анализ безопасности. Он взаимодействует с работающим приложением через его интерфейсы. Это позволяет оценивать фактическое поведение развернутой системы, включая часть проблем конфигурации. Но нужен доступный стенд, а покрытие зависит от обнаруженных маршрутов, ролей и пройденных состояний. Причину в коде обычно локализовать сложнее. Проверки должны выполняться в разрешенной среде с контролем побочных эффектов. Назначение метода описано в обзоре OWASP DAST.
SCA — анализ состава программного обеспечения. Он помогает выявлять зависимости и сопоставлять их с известными уязвимостями. Например, такую задачу решает OWASP Dependency-Check. Польза — видимость риска сторонних компонентов, включая транзитивные зависимости. Ограничения — полнота инвентаризации, качество сопоставления версий и актуальность сведений. Находка в библиотеке еще требует оценки применимости к конкретному приложению.
На практике методы сочетают: SAST и SCA удобно включать в разработку и сборку, DAST — в проверку развернутой версии. Для результатов нужны владельцы, подтверждение, приоритет и контроль исправления. Ни один сканер не заменяет проектирование безопасной архитектуры и проверки прав доступа. Успешный запуск трех инструментов не означает отсутствия уязвимостей.