не осуществляется Риски Использование не описанных в документации фичей — на свой страх и риск Разработка Фичи, не представленные в текущем релизе, могут быть изменены Дисклеймер Актуальность информации: 24.05.2025
время Что может SAST-анализатор Несмотря на теоретическую неразрешимость, задача статического анализа кода может быть решена в частных случаях, для: Все существующие анализаторы используют подходы, основанные на аппроксимации модели исследуемого кода.
и какие ограничения и требования при этом накладывает Все существующие анализаторы используют подходы, основанные на аппроксимации модели исследуемого кода. Синтаксические Множество символов или поток токенов Семантические Поток токенов или AST, размеченные отдельными семантическими свойствами Символьные Модель памяти, описывающая побочные эффекты в результате упрощенной интерпретации кода
скоростью анализа, затратами памяти и процентов ложных и истинных результатов. • Множество состояний любого нетривиального приложения сравнимо с бесконечным. • Задача анализатора — найти такие состояния, в которых возможна реализация какой-либо угрозы. • Невозможно перечислить бесконечное множество состояний за конечное время. • Какие-то состояния будут теряться из-за аппроксимации и приводить к FP и FN.
сложных участках кода интерпретатор переключается в аналог taint-анализа Вывод условий и эксплоитов Построение для каждой уязвимости условий достижимости и способов эксплуатации Концепции JSA
--logs-dir Путь к каталогу с логами (в т.ч. vulnerabilities.log и stats.log) --log-level Уровень логирования --separate-log-files Логирование каждого потока анализа в отдельный файл --disable-packages-restoring Отключение восстановления зависимостей --disable-pm Отключение режима public-функций --disable-mt Отключение многопоточного режима сканирования --disable-memory-limit Отключение контроля расхода памяти
детектирования --use-same-pool Использование общего пула потоков для сканирования и детектирования --free-memory-percent-limit Порог выделения памяти --global-timeout Таймаут времени анализа проекта
режим анализа с учетом условий достижимости --full-complexity Порог сложности для переключения в упрощенный режим анализа без учета условий достижимости --max-expression-complexity Ограничение на количество узлов в деревьях выражений --max-expression-complexity- strategy Стратегия подсчета кол-ва узлов в дереве выражений
внешних скриптов --script-extension Файловые расширения внешних скриптов Внешние скрипты — механизм расширения базы знаний провайдеров через определение обработчиков внешних зависимостей и работы с моделью памяти на языке C#. Примеры реализованных скриптов — в каталогах CoreScripts соответствующих провайдеров: /python/CoreScripts, /jvm/CoreScripts и т.п • Внутренняя фича • Не реализована в Ruby и NET • Не поддерживается!
влияет на память) --enable-vc Включение полного резолва виртуальных методов (увеличивает покрытие, но влияет на время и память) --enable-kotlin --enable-scala Включение поддержки соответствующих языков --jvm-args Параметры JDK, с которыми будет запускаться пречекер --user-package-prefix Префиксы пакетов, которые необходимо дополнительно распаковать из jar для анализа