Работа со ScanSuite

Достижимость зависимостей

Четыре фильтра, которые сокращают отчёт по зависимостям до уязвимостей, реально достижимых из вашего кода.

Сканирование зависимостей сообщает обо всех уязвимостях, затрагивающих ваши lock-файлы. Большинство из них не стоят рабочего дня: уязвимая функция никогда не вызывается или уязвимость неприменима к вашей установленной версии. Анализ достижимости зависимостей решает, какие из них действительно важны.

Включите его переключателем Dependency Check (SCA) → Verify findings reachability на странице Static Analysis. Он выполняется после сканирования Trivy; классическая таблица Trivy формируется в любом случае и не изменяется.

Четыре фильтра, от самого дешёвого

ФильтрСтоимость до него
1. КритичностьДальше проходят только уязвимости уровня critical и high. Фильтр по уже готовым данным — бесплатно.
2. Зафиксированная эксплуатацияCVE должна присутствовать в локальной базе эксплуатируемых уязвимостей. Один запрос к базе на сканирование.
3. ПрименимостьДействительно ли уязвимость относится к этому компоненту в этой установленной версии? Один вызов модели на уязвимость. Низкие оценки отбрасываются до дорогого этапа.
4. ДостижимостьДействительно ли ваш код вызывает уязвимый API? Полный цикл работы агента на каждую оставшуюся уязвимость.

Всё, что отбрасывает каждый фильтр, подсчитывается в журнале сканирования и остаётся в классической таблице Trivy — ничто не отбрасывается молча.

CVE с готовым эксплойтом в пакете, который ваш код никогда не вызывает, всё равно недостижима. Доказательства эксплуатации подсказывают, какую функциональность компонента искать, но никогда не определяют вердикт.

Фильтр по эксплуатации

Фильтр 2 обращается к той же таблице Vuln, на которой построены база эксплуатируемых уязвимостей и столбец «Exploit» классического отчёта Trivy. Сигналом служит само присутствие в этой таблице: каждая строка в ней — это CVE с зафиксированной эксплуатацией.

Совпавшие уязвимости получают столбец Known Exploit со ссылками на источники, которые переносятся в HTML-отчёт как кликабельные ссылки, а в выгрузку XLSX — как текст с разделением по строкам.

Если обратиться к базе не удаётся, этап останавливается, а не переходит к проверке всех уязвимостей уровня high и critical — это израсходовало бы неограниченную часть бюджета AI на сканирование. Причина сбоя указывается в журнале сканирования.

Что делает агент достижимости

Агент выполняет цикл работы с инструментами по репозиторию. Помимо общих инструментов навигации по коду, у него есть два специфичных для зависимостей:

ИнструментНазначение
find_manifestsНаходит файлы манифестов и lock-файлы, чтобы агент мог отличить прямую зависимость от транзитивной.
find_package_usageИщет в вашем собственном коде импорты пакета во всех написаниях, в которых он может встречаться: имя в реестре, scoped-спецификатор npm, артефакт Maven, форма с подчёркиванием и известные расхождения, например PyYAML, импортируемый как yaml. Каталоги встроенных зависимостей и сборки исключаются.

Вердикт принимается, только если агент прочитал конкретные файлы исходного кода, а его обоснование называет компонент, уязвимую функциональность, путь вызовов или точное место разрыва цепочки, а также доказательства вида файл:строка.

Что вы получаете

Отчёт содержит только те уязвимости, которые прошли все четыре фильтра, каждая — с критичностью, затронутым компонентом и версией с исправлением, ссылками из столбца Known Exploit и вердиктом Reachable:

Отчёт ScanSuite об AI-анализе зависимостей
Отчёт AI по зависимостям: прошедшие фильтры уязвимости со столбцом Known Exploit и вердиктом о достижимости

К каждой достижимой уязвимости также прилагается диаграмма Mermaid, прослеживающая путь от точки входа через место импорта до уязвимого API компонента, — она отображается прямо в HTML-отчёте. Отчёты формируются как depcheck-report.html, .xlsx и .json, а достижимые уязвимости сохраняются в управление уязвимостями с типом сканирования dependency.

Стоимость

Каждая уязвимость, прошедшая первые два фильтра, стоит как минимум одного вызова модели, а каждая прошедшая до конца — полного цикла работы агента. Сканирование наборов пакетов ОС может выдавать сотни CVE — именно поэтому фильтры расположены в таком порядке.

Если сканирование сообщает о множестве CVE высокой критичности в пакетах ОС, а вам важны только зависимости собственного приложения, сузить область сканирования дешевле, чем расширять фильтры. О том, как отслеживается расход токенов, см. AI-провайдеры и стоимость.

Проверено: 2026-08-16