Достижимость зависимостей
Четыре фильтра, которые сокращают отчёт по зависимостям до уязвимостей, реально достижимых из вашего кода.
Сканирование зависимостей сообщает обо всех уязвимостях, затрагивающих ваши 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:

К каждой достижимой уязвимости также прилагается диаграмма Mermaid, прослеживающая путь от точки входа через место импорта до уязвимого API компонента, — она отображается прямо в HTML-отчёте. Отчёты формируются как depcheck-report.html, .xlsx и .json, а достижимые уязвимости сохраняются в управление уязвимостями с типом сканирования dependency.
Стоимость
Каждая уязвимость, прошедшая первые два фильтра, стоит как минимум одного вызова модели, а каждая прошедшая до конца — полного цикла работы агента. Сканирование наборов пакетов ОС может выдавать сотни CVE — именно поэтому фильтры расположены в таком порядке.
Если сканирование сообщает о множестве CVE высокой критичности в пакетах ОС, а вам важны только зависимости собственного приложения, сузить область сканирования дешевле, чем расширять фильтры. О том, как отслеживается расход токенов, см. AI-провайдеры и стоимость.
Проверено: 2026-08-16