Статический анализ кода – анализ исходного кода (или байт-кода) программы без её выполнения. Анализатор находит потенциальные ошибки, уязвимости, нарушения стиля и стандартов, сложные и дублирующиеся фрагменты. Для поиска уязвимостей используют класс SAST (Static Application Security Testing).
Что находит
- Ошибки: разыменование null, утечки ресурсов, недостижимый код.
- Уязвимости: инъекции, небезопасная работа с данными, жёстко заданные секреты.
- Нарушения стандартов кодирования и стиля.
- Сложность и дублирование кода.
Как встраивается
- Проверки в редакторе разработчика.
- Шаг в конвейере CI/CD с блокировкой при критичных находках.
- Проверка запросов на слияние.
Требования в России
Статический анализ – обязательная мера в стандарте безопасной разработки ГОСТ Р 56939 и требованиях ФСТЭК к сертификации средств защиты. Существуют российские статические анализаторы, включённые в реестр.
Ограничения
Ложные срабатывания требуют разбора, а часть уязвимостей проявляется только при выполнении – для них нужен динамический анализ.