SAST (Static Application Security Testing)

SAST (Static Application Security Testing) - это метод статического анализа безопасности приложений, который заключается в автоматизированном сканировании исходного кода, байт-кода или бинарных файлов на предмет уязвимостей и нарушений правил безопасности до запуска программы (на этапе разработки).

Ключевые характеристики SAST

  • "Белый ящик" (White Box): Анализирует внутреннюю структуру приложения (исходный код, зависимости, конфигурации), не требуя его запуска.
  • Раннее обнаружение: Интегрируется в IDE разработчика или CI/CD-пайплайн, выявляя проблемы на этапах написания кода, коммита или сборки.
  • Анализ "изнутри": Ищет шаблоны уязвимостей, опасные функции, нарушения лучших практик (OWASP Top 10, CWE, SANS 25).

Преимущества

  • Скорость: Позволяет исправлять ошибки до коммита.
  • Точность локализации: Указывает на проблемную строку кода.
  • Проактивность: Предотвращает уязвимости на ранних этапах (Shift Left).
  • Покрытие: Анализирует 100% кода, включая неисполняемые ветви.

Недостатки и ограничения

  • Ложные срабатывания: Требует ручной верификации результатов.
  • Не видит runtime-контекст: Не обнаруживает уязвимости, проявляющиеся только при работе (логика, аутентификация).
  • Языковая зависимость: Требует поддержки конкретных языков/фреймворков инструментом.
  • Сложность настройки: Качественный анализ требует тонкой настройки правил.

Как работает SAST?

  1. Сканирование: Инструмент парсит код, строит абстрактное синтаксическое дерево (AST) и/или граф потока данных.
  2. Проверка: Сравнивает код с базой правил (например: SQL-инъекции, XSS, небезопасное использование криптографии, hardcoded-пароли).
  3. Отчет: Формирует список уязвимостей с указанием:
    1. Точного места в коде (файл, строка),
    2. Уровня риска (Critical/High/Medium/Low),
    3. Описания угрозы и рекомендаций по исправлению.

Примеры обнаруживаемых уязвимостей

Категория Конкретные примеры
Инъекции SQLi, NoSQLi, OS Command Injection
XSS Отраженный, хранимый, DOM-based XSS
Управление доступом Непроверенные привилегии, IDOR
Криптография Слабые алгоритмы, hardcoded ключи, SSL-ошибки
Конфиденциальные данные Утечки паролей, токенов, ключей API

SAST - это метод автоматизированного тестирования безопасности приложений путем анализа исходного кода без его выполнения, направленный на раннее выявление уязвимостей в процессе разработки.