$ sudo teach IT

Что это: Метод анализа исходного кода, байт-кода или бинарного кода приложения без его выполнения ("белый ящик"). Анализатор ищет шаблоны, соответствующие известным уязвимостям (CWE).

Как работает: Сканирует файлы проекта, строит абстрактное синтаксическое дерево (AST), анализирует потоки данных (data flow) и управляющие потоки (control flow) для выявления таких проблем, как SQL-инъекции, XSS, использование небезопасных функций, ошибки работы с памятью (в C/C++).

Плюсы: Находит проблемы на ранних этапах (Shift Left), проверяет 100% кода, не требует работающего приложения.

Минусы: Высокий уровень ложноположительных срабатываний (false positives), может пропускать логические уязвимости, сложность анализа в динамически типизированных языках.

Примеры инструментов: SonarQube (также для качества кода), Checkmarx, Fortify, Semgrep (легковесный, на основе шаблонов).

Когда использовать: На этапе коммита (pre-commit hooks) и в CI-пайплайне после сборки (build stage).