Вопрос проверяет понимание различий между статическим и динамическим анализом безопасности приложений, что важно для выбора инструментов тестирования.
SAST и DAST — это два ключевых подхода к тестированию безопасности приложений, которые используются на разных этапах жизненного цикла разработки. SAST (Static Application Security Testing) анализирует исходный код, байт-код или бинарные файлы без запуска приложения. DAST (Dynamic Application Security Testing) тестирует работающее приложение, отправляя запросы и анализируя ответы.
SAST сканирует код на наличие известных уязвимостей, таких как SQL-инъекции, XSS или переполнение буфера. Он работает на этапе разработки, позволяя исправлять ошибки до компиляции. Пример инструмента: SonarQube, Checkmarx.
// Пример уязвимости, которую найдет SAST
const query = "SELECT * FROM users WHERE id = " + userId; // SQL-инъекцияDAST тестирует приложение в реальном времени, имитируя атаки хакеров. Он не требует доступа к исходному коду и выявляет уязвимости, связанные с конфигурацией, аутентификацией или обработкой данных. Пример инструмента: OWASP ZAP, Burp Suite.
// Пример запроса DAST
GET /api/users?id=1 OR 1=1 HTTP/1.1
Host: example.comSAST и DAST не заменяют, а дополняют друг друга. Используйте SAST для раннего выявления проблем в коде, а DAST — для проверки безопасности готового приложения в среде, близкой к production. Комбинация обоих подходов обеспечивает более полное покрытие безопасности.