Назад к обновлениям
New releaseJul 24, 2026

dep-scan v6.3.0

Сканер уязвимостей зависимостей следующего поколения с анализом достижимости, генерацией SBOM, аудитом лицензий и сканированием образов контейнеров для интеграции в CI/CD.

Поделиться

Введение

OWASP dep-scan — это инструмент аудита безопасности и рисков нового поколения, основанный на известных уязвимостях, рекомендациях и лицензионных ограничениях для зависимостей проекта. В качестве входных данных поддерживаются как локальные репозитории, так и образы контейнеров, а инструмент идеально подходит для интеграции с платформами ASPM/VM и в средах CI.

SBOM release

Содержание

Возможности

  • Сканирование большей части кода приложений (локальные репозитории, образы контейнеров Linux, манифесты Kubernetes и ОС) для выявления известных CVE с приоритизацией
  • Выполнение расширенного анализа достижимости для нескольких языков (см. матрицу достижимости ниже)
  • Сканирование уязвимостей пакетов выполняется локально и довольно быстро. Сервер не используется
  • Генерация спецификации программного обеспечения (SBOM) с информацией из отчёта о раскрытии уязвимостей (VDR)
  • Генерация документа VEX в формате Common Security Advisory Framework (CSAF) 2.0/2.1 (см. CSAF Readme)
  • Выполнение глубокого аудита рисков пакетов для атак типа dependency confusion и рисков сопровождения (см. документацию по аудиту рисков)

Точные достижимые потоки данных

Подробные потоки данных для выявления как достижимых, так и недостижимых путей в вашем приложении на основе полного контекста.

Reachable Flows

Матрица достижимости

dep-scan вычисляет достижимость для семи языковых экосистем с помощью четырёх слайсеров. Уязвимый пакет, код которого фактически находится на исполняемом пути, помечается как Reachable (достижимый), тогда как пакет, который лишь объявлен в BOM, но никогда не вызывается, таковым не является. Каждый слайсер передаёт данные в общий движок достижимости с ключами purl, поэтому поведение единообразно для всех языков. Достижимость включена по умолчанию (--reachability-analyzer FrameworkReachability); SemanticReachability дополнительно атрибутирует достигнутые сервисы, конечные точки и достижимость после сборки (бинарные файлы/контейнеры).

Язык / экосистемаДвижок достижимостиАнализатор по умолчанию
Java / JVM (Groovy, Kotlin, Scala)atomFrameworkReachability
JavaScript / TypeScriptatomFrameworkReachability
PythonatomFrameworkReachability
PHPatomFrameworkReachability
RustrusiFrameworkReachability
GogolemFrameworkReachability
.NET (C#, VB, F#, R)dosaiFrameworkReachability

Чтобы понять концепции, лежащие в основе достижимости и приоритизации, прочитайте главы модель достижимости и приоритизация. Практические примеры для каждого языка см. в руководствах по языкам. О соответствии требованиям (VDR и CSAF VEX) см. руководство по VDR и руководство по CSAF VEX.

Достижимость включена по умолчанию в --profile research, который dep-scan использует, когда достижимость включена. Приведённых ниже команд достаточно для начала работы; руководства по языкам охватывают разрешение бинарных файлов, безопасность бэкенда и сети, требования к восстановлению и практические примеры на фикстурах в репозитории.

Rust (rusi). cdxgen запускает rusi и сохраняет его отчёт, который dep-scan преобразует в общий конвейер, поэтому крейт, который действительно вызывается (например, time::now() для RUSTSEC-2020-0071), является достижимым, а тот, который просто присутствует, — нет. См. руководство по достижимости для Rust.

depscan -i ./my-rust-app -o ./reports --profile research

Go (golem). dep-scan напрямую вызывает golem для проектов на Go (требуется go в PATH), помечая модуль как Reachable, когда его функции находятся на трассируемом пути. Используйте --go-analyzer-network offline для недоверенных репозиториев с прогретым кэшем модулей. См. руководство по достижимости в Go.

depscan -i ./my-go-app -o ./reports -t go

.NET (dosai). cdxgen запускает dosai, который выдаёт явный вердикт о достижимости для каждого пакета (PackageReachability с ReachabilityKind и Confidence), который dep-scan считает авторитетным, поэтому пакет NuGet, который действительно вызывается (например, JsonConvert.DeserializeObject на контролируемом входе), является Reachable. Сканируйте восстановленное дерево на наличие версионированных purl. См. руководство по достижимости .NET.

depscan -i ./my-dotnet-app -o ./reports -t dotnet

Категории