Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1086

SAST (Static Application Security Testing)

ПроверилCybersecurity entrepreneur & security researcher

Что такое SAST (Static Application Security Testing)?

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


SAST разбирает код в промежуточные представления — абстрактное синтаксическое дерево (AST), граф потока управления (CFG) и граф потока данных (DFG) — а затем применяет правила по шаблонам или taint-анализ для обнаружения небезопасных конструкций, сопоставленных с идентификаторами CWE. Taint-анализ — это основной движок: он помечает недоверенные источники (HTTP-параметр, чтение файла), отслеживает, как эти данные распространяются через переменные и вызовы функций, и формирует находку, когда они достигают опасного стока (SQL-запрос, exec, HTML-ответ), не пройдя через распознанный санитайзер. Поскольку ничего не выполняется, SAST работает в IDE, pre-commit-хуках и CI и может анализировать код задолго до его выпуска.

Его слабые места хорошо задокументированы. SAST силён на детерминированных ошибках (SQL-инъекции, XSS-стоки, захардкоженные секреты, слабая криптография), но выдаёт ложные срабатывания на путях, недостижимых во время выполнения, и пропускает проблемы конфигурации, логики аутентификации и исключительно рантайм-уязвимости — поэтому зрелые программы дополняют его SCA и DAST. Настройка наборов правил и разбор шума — вот реальные операционные затраты. Такие стандарты, как OWASP ASVS и NIST SSDF, ссылаются на статический анализ как на контроль верификации. Среди распространённых движков — Semgrep, GitHub CodeQL (который запрашивает код как базу данных), SonarQube, Checkmarx, Fortify и Snyk Code.

flowchart LR
  SRC[Исходный код / байт-код] --> P[Разбор в AST + CFG + DFG]
  P --> T[Taint-анализ + правила]
  SO[Недоверенный источник] -. отслеживаемый поток .-> T
  T --> SK{Достигает стока<br/>без санитайзера?}
  SK -->|Да| F[Находка, сопоставленная с CWE]
  SK -->|Нет| OK[Нет оповещения]
  F --> TR[Разбор: исправить или пометить ложным срабатыванием]

Примеры

  1. 01

    Запуск Semgrep с набором правил OWASP Top 10 для каждого pull request.

  2. 02

    Использование GitHub CodeQL для обнаружения обхода каталогов (path traversal) в Java-сервисе до мерджа.

Частые вопросы

Что такое SAST (Static Application Security Testing)?

Автоматический анализ исходного кода, байт-кода или бинарных файлов без их выполнения для поиска уязвимостей вроде инъекций, небезопасных API или слабой криптографии. Относится к категории Безопасность приложений в кибербезопасности.

Что означает SAST (Static Application Security Testing)?

Автоматический анализ исходного кода, байт-кода или бинарных файлов без их выполнения для поиска уязвимостей вроде инъекций, небезопасных API или слабой криптографии.

Как защититься от SAST (Static Application Security Testing)?

Защита от SAST (Static Application Security Testing) обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия SAST (Static Application Security Testing)?

Распространённые альтернативные названия: Статический анализ, Тестирование белого ящика.

Связанные термины

См. также