Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/owasp-dep-scan/dep-scan
Сканеры уязвимостейБезопасность контейнеровDevSecOpsБезопасность Цепочки Поставок
GitHubowasp-dep-scan/dep-scan

dep-scan

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

РепозиторийСайт
1.3k1374413 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
# Введение

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

<img src="https://assets.kitploit.com/production/public/readmes/6282/1f4ac5f4ee45d7e9ba8026acc4ae2458bdf23f5e9119eb9f85536cf101d0e56f.png" width="200" height="auto" />

[![SBOM](https://img.shields.io/badge/SBOM-with_%E2%9D%A4%EF%B8%8F_by_cdxgen-FF753D)](https://github.com/cdxgen/cdxgen) [![release](https://github.com/owasp-dep-scan/dep-scan/actions/workflows/pythonpublish.yml/badge.svg)](https://github.com/owasp-dep-scan/dep-scan/actions/workflows/pythonpublish.yml)

## Содержание

- [Возможности](#features)
    - [Точные достижимые потоки данных](#precise-reachable-data-flows)
    - [Матрица достижимости](#reachability-matrix)
    - [Достижимость Rust (через rusi)](#rust-reachability-via-rusi)
    - [Достижимость Go (через golem)](#go-reachability-via-golem)
    - [Достижимость .NET (через dosai)](#net-reachability-via-dosai)
    - [Достижимость JVM, JavaScript, Python и PHP (через atom)](#jvm-javascript-python-and-php-reachability-via-atom)
    - [Источники данных об уязвимостях](#vulnerability-data-sources)
    - [Дистрибутивы Linux](#linux-distros)
- [Быстрый старт](#quick-start)
    - [Сканирование проектов локально (версия на Python)](#scanning-projects-locally-python-version)
    - [Homebrew (macOS и Linux)](#homebrew-macos-and-linux)
    - [Автономные бинарные файлы (без Python или Node.js)](#standalone-binaries-no-python-or-nodejs-required)
    - [Сканирование контейнеров локально (версия на Python)](#scanning-containers-locally-python-version)
    - [Сканирование проектов локально (контейнер Docker)](#scanning-projects-locally-docker-container)
    - [Серверный режим](#server-mode)
- [Локальная разработка](#local-development)
- [Документация (depscan.readthedocs.io)](https://depscan.readthedocs.io)
- [Лицензия](#license)

## Возможности

- Сканирование большей части кода приложений (локальные репозитории, образы контейнеров Linux, манифесты Kubernetes и ОС) для выявления известных CVE с приоритизацией
- Выполнение расширенного анализа достижимости для нескольких языков (см. [матрицу достижимости](#reachability-matrix) ниже)
- Сканирование уязвимостей пакетов выполняется локально и довольно быстро. Сервер не используется
- Генерация спецификации программного обеспечения (SBOM) с информацией из отчёта о раскрытии уязвимостей (VDR)
- Генерация документа VEX в формате Common Security Advisory Framework (CSAF) 2.0/2.1 (см. [CSAF Readme](https://github.com/owasp-dep-scan/dep-scan/blob/master/contrib/CSAF_README.md))
- Выполнение глубокого аудита рисков пакетов для атак типа dependency confusion и рисков сопровождения (см. [документацию по аудиту рисков](https://depscan.readthedocs.io/adv-usage#package-risk-audit))

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

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

![Reachable Flows](https://assets.kitploit.com/production/public/readmes/6282/2119dbdc4e7df4627c7e772ddbcf87fbe70c72f1b4472b71f4c8e0ffe53b6fe1.png)

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

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

| Язык / экосистема                 | Движок достижимости                                   | Анализатор по умолчанию |
| ---------------------------------- | ----------------------------------------------------- | ----------------------- |
| Java / JVM (Groovy, Kotlin, Scala) | [atom](https://github.com/AppThreat/atom)             | `FrameworkReachability` |
| JavaScript / TypeScript            | atom                                                  | `FrameworkReachability` |
| Python                             | atom                                                  | `FrameworkReachability` |
| PHP                                | atom                                                  | `FrameworkReachability` |
| Rust                               | [rusi](https://github.com/cdxgen/cdxgen-plugins-bin)  | `FrameworkReachability` |
| Go                                 | [golem](https://github.com/cdxgen/cdxgen-plugins-bin) | `FrameworkReachability` |
| .NET (C#, VB, F#, R)               | [dosai](https://github.com/owasp-dep-scan/dosai)      | `FrameworkReachability` |

Чтобы понять концепции, лежащие в основе достижимости и приоритизации, прочитайте главы [модель достижимости](https://depscan.readthedocs.io/concepts/reachability-model) и [приоритизация](https://depscan.readthedocs.io/concepts/prioritization). Практические примеры для каждого языка см. в [руководствах по языкам](https://depscan.readthedocs.io/languages/rust-reachability). О соответствии требованиям (VDR и CSAF VEX) см. [руководство по VDR](https://depscan.readthedocs.io/output/vdr-guide) и [руководство по CSAF VEX](https://depscan.readthedocs.io/output/vex-csaf-guide).

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

**Rust (rusi).** cdxgen запускает [rusi](https://github.com/cdxgen/cdxgen-plugins-bin) и сохраняет его отчёт, который dep-scan преобразует в общий конвейер, поэтому крейт, который действительно вызывается (например, `time::now()` для RUSTSEC-2020-0071), является достижимым, а тот, который просто присутствует, — нет. См. [руководство по достижимости для Rust](https://depscan.readthedocs.io/languages/rust-reachability).

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

**Go (golem).** dep-scan напрямую вызывает [golem](https://github.com/cdxgen/cdxgen-plugins-bin) для проектов на Go (требуется `go` в `PATH`), помечая модуль как Reachable, когда его функции находятся на трассируемом пути. Используйте `--go-analyzer-network offline` для недоверенных репозиториев с прогретым кэшем модулей. См. [руководство по достижимости в Go](https://depscan.readthedocs.io/languages/go-reachability).

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

**.NET (dosai).** cdxgen запускает [dosai](https://github.com/owasp-dep-scan/dosai), который выдаёт явный вердикт о достижимости для каждого пакета (`PackageReachability` с `ReachabilityKind` и `Confidence`), который dep-scan считает авторитетным, поэтому пакет NuGet, который действительно вызывается (например, `JsonConvert.DeserializeObject` на контролируемом входе), является Reachable. Сканируйте восстановленное дерево на наличие версионированных purl. См. [руководство по достижимости .NET](https://depscan.readthedocs.io/languages/dotnet-reachability).

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

**JVM, JavaScript/TypeScript, Python и PHP (atom).** Эти четыре экосистемы используют общий слайсер [atom](https://github.com/AppThreat/atom), который строит независимое от языка промежуточное представление и выполняет статическое слайсинг. См. [руководство по достижимости для JVM, JS, Python и PHP](https://depscan.readthedocs.io/languages/jvm-js-python-php-reachability).

```bash
depscan --profile research -t java -i ./my-java-app -o ./reports --explain
```

Чтобы выйти за пределы достижимости на уровне фреймворка к уровням эндпоинтов, сервисов и пост-сборочных артефактов, передайте `--reachability-analyzer SemanticReachability` вместе с `--bom-dir`, указывающим на lifecycle BOM-файлы. См. [руководство по семантической достижимости](https://depscan.readthedocs.io/analyzers/semantic-reachability).

### Понятная информация о CVE

Разбирайтесь в CVE без необходимости читать длинные описания.

![Dependency Tree with Insights](https://assets.kitploit.com/production/public/readmes/6282/34125c2b04cb176c6772f998114d2b6a17e62ead3c45243e0c93fb496e9aa530.png)

### Автоматическая приоритизация

Сосредоточьтесь только на тех CVE, которые требуют вашего внимания.

![Prioritization](https://assets.kitploit.com/production/public/readmes/6282/a15d5535abe0f1af9842e2889de77740ac86e97486027a477316b52ac4722cb4.png)

### Будьте проактивны

Всегда оставайтесь на шаг впереди благодаря продвинутому прогнозированию уязвимостей и эксплойтов.

![Proactive Measures](https://assets.kitploit.com/production/public/readmes/6282/e5e9ba507172bec28c66e6c623ca929481ccb76d61d2d84d9f7ceba2b5f10596.png)

### Источники данных об уязвимостях

- OSV
- NVD
- GitHub
- NPM
- Linux [vuln-list](https://github.com/appthreat/vuln-list)

### Дистрибутивы Linux

- AlmaLinux
- Debian
- Alpine
- Amazon Linux
- Arch Linux
- RHEL/CentOS
- Rocky Linux
- Ubuntu
- OpenSUSE/SLES
- Photon
- Chainguard
- Wolfi OS

## Быстрый старт

dep-scan идеально подходит для использования в процессе непрерывной интеграции (CI) и в качестве локального инструмента разработки.

### Локальное сканирование проектов (версия на Python)

```bash
sudo npm install -g @cyclonedx/cdxgen
# Normal version recommended for most users (MIT)
pip install owasp-depscan

# For a full version with all extensions and server mode (Multiple Licenses)
pip install owasp-depscan[all]
```

Это установит две команды: `cdxgen` и `depscan`.

Вы можете вызвать команду сканирования напрямую с различными параметрами.

```bash
cd <project to scan>
depscan --src $PWD --reports-dir $PWD/reports
```

Полный список опций приведён ниже:

```text
usage: depscan [-h] [--config CONFIG] [--no-banner] [-i SRC_DIR_IMAGE] [-o REPORTS_DIR] [--csaf]
               [--profile {appsec,research,operational,threat-modeling,license-compliance,generic,machine-learning,ml,deep-learning,ml-deep,ml-tiny}]
               [--lifecycle {pre-build,build,post-build} [{pre-build,build,post-build} ...]]
               [--technique {auto,source-code-analysis,binary-analysis,manifest-analysis,hash-comparison,instrumentation,filename} [{auto,source-code-analysis,binary-analysis,manifest-analysis,hash-comparison,instrumentation,filename} ...]]
               [--bom-engine {auto,CdxgenGenerator,CdxgenServerGenerator,CdxgenImageBasedGenerator,BlintGenerator} |
               --vulnerability-analyzer {auto,VDRAnalyzer,LifecycleAnalyzer}] [--reachability-analyzer {off,FrameworkReachability,SemanticReachability}] [--no-suggest]
               [--risk-audit] [--cdxgen-args CDXGEN_ARGS] [--private-ns PRIVATE_NS] [-t PROJECT_TYPE [PROJECT_TYPE ...]] [--bom BOM | --bom-dir BOM_DIR | --purl SEARCH_PURL]
               [--report-template REPORT_TEMPLATE] [--report-name REPORT_NAME] [--deep] [--fuzzy-search] [--search-order {purl,pcu,cpe,cpu,url}] [--no-universal]
               [--no-vuln-table] [--server] [--server-host SERVER_HOST] [--server-port SERVER_PORT] [--cdxgen-server CDXGEN_SERVER] [--debug] [-q | --explain] [-v]

Fully open-source security and license audit for application dependencies and container images based on known vulnerabilities and advisories.

options:
  -h, --help            show this help message and exit
  --config CONFIG       Path to the configuration file. Default: $PWD/.config/depscan.toml
  --no-banner           Do not display the logo and donation banner. Please make a donation to OWASP before using this argument.
  -i, --src SRC_DIR_IMAGE
                        Source directory or container image or binary file
  -o, --reports-dir REPORTS_DIR
                        Reports directory
  --csaf                Generate a OASIS CSAF VEX document
  --profile {appsec,research,operational,threat-modeling,license-compliance,generic,machine-learning,ml,deep-learning,ml-deep,ml-tiny}
                        Profile to use while generating the BOM. For granular control, use the arguments --bom-engine, --vulnerability-analyzer, or --reachability-analyzer.
  --lifecycle {pre-build,build,post-build} [{pre-build,build,post-build} ...]
                        Product lifecycle for the generated BOM. Multiple values allowed.
  --technique {auto,source-code-analysis,binary-analysis,manifest-analysis,hash-comparison,instrumentation,filename} [{auto,source-code-analysis,binary-analysis,manifest-analysis,hash-comparison,instrumentation,filename} ...]
                        Analysis technique to use for BOM generation. Multiple values allowed.
  --bom-engine {auto,CdxgenGenerator,CdxgenServerGenerator,CdxgenImageBasedGenerator,BlintGenerator}
                        BOM generation engine to use. Defaults to automatic selection based on project type and lifecycle.
  --vulnerability-analyzer {auto,VDRAnalyzer,LifecycleAnalyzer}
                        Vulnerability analyzer to use. Defaults to automatic selection based on bom_dir argument.
  --reachability-analyzer {off,FrameworkReachability,SemanticReachability}
                        Reachability analyzer to use. Default FrameworkReachability.
  --no-suggest          Disable suggest mode
  --risk-audit          Perform package risk audit (slow operation). Npm only.
  --cdxgen-args CDXGEN_ARGS
                        Additional arguments to pass to cdxgen
  --private-ns PRIVATE_NS
                        Private namespace to use while performing oss risk audit. Private packages should not be available in public registries by default. Comma separated
                        values accepted.
  -t, --type PROJECT_TYPE [PROJECT_TYPE ...]
                        Override project types if auto-detection is incorrect. Multiple values supported.
  --bom BOM             Examine using the given Software Bill-of-Materials (SBOM) file in CycloneDX format. Use cdxgen command to produce one.
  --bom-dir BOM_DIR     Examine all the Bill-of-Materials (BOM) files in the given directory.
  --purl SEARCH_PURL    Scan a single package url.
  --custom-data CUSTOM_DATA
                        Path to directory containing custom vulnerability data (JSON/YAML/TOML) to override/augment results.
  --report-template REPORT_TEMPLATE
                        Jinja template file used for rendering a custom report
  --report-name REPORT_NAME
                        Filename of the custom report written to the --reports-dir
  --deep                Perform deep scan by passing this --deep argument to cdxgen. Useful while scanning docker images and OS packages.
  --fuzzy-search        Perform fuzzy search by creating variations of package names. Use this when the input SBOM lacks a PURL.
  --search-order {purl,pcu,cpe,cpu,url}
                        Attributes to use while searching for vulnerabilities. Default: PURL, CPE, URL (pcu).
  --no-universal        Depscan would attempt to perform a single universal scan instead of individual scans per language type.
  --no-vuln-table       Do not print the table with the full list of vulnerabilities. This can help reduce console output.
  --server              Run depscan as a server
  --server-host SERVER_HOST
                        depscan server host
  --server-port SERVER_PORT
                        depscan server port
  --server-allowed-hosts [SERVER_ALLOWED_HOSTS ...]
                        List of allowed hostnames or IPs that can access the server (e.g., 'localhost 192.168.1.10'). If unspecified, no host allowlist is
                        enforced.
  --server-allowed-paths [SERVER_ALLOWED_PATHS ...]
                        List of allowed filesystem paths that can be scanned by the server. Restricts `path` parameter in /scan requests.
  --cdxgen-server CDXGEN_SERVER
                        cdxgen server url. Eg: http://cdxgen:9090
  --debug               Run depscan in debug mode.
  -q, --quiet           Makes depscan quiet.
  --explain             Makes depscan to explain the various analysis. Useful for creating detailed reports.
  --explanation-mode {Endpoints,EndpointsAndReachables,NonReachables,LLMPrompts}
                        Style of explanation needed. Defaults to Endpoints and Reachables.
  --annotate            Include the generated text VDR report as an annotation. Defaults to true when explain is enabled; false otherwise.
  -v, --version         Display the version
```

### Homebrew (macOS и Linux)

Homebrew устанавливает [автономный бинарный файл](#standalone-binaries-no-python-or-nodejs-required) как `depscan` из [tap OWASP dep-scan](https://github.com/owasp-dep-scan/homebrew-tap), с включённым cdxgen и без необходимости в Python или Node.js. `brew trust` принимает tap, что Homebrew требует перед загрузкой формул из стороннего tap, когда задан `HOMEBREW_REQUIRE_TAP_TRUST`:

```bash
brew tap owasp-dep-scan/tap
brew trust --tap owasp-dep-scan/tap
brew install dep-scan
depscan --src $PWD --reports-dir $PWD/reports
```

### Автономные бинарные файлы (Python или Node.js не требуются)

К каждому [релизу на GitHub](https://github.com/owasp-dep-scan/dep-scan/releases) прилагаются готовые однофайловые исполняемые файлы. Они включают в себя соответствующий SEA-бинарник [cdxgen](https://github.com/cdxgen/cdxgen), поэтому генерация BOM работает из коробки без установки Python, Node.js или cdxgen.

| Платформа             | Архитектура   | Файл                        |
| --------------------- | ------------- | --------------------------- |
| Linux (glibc)         | x86_64        | `depscan-linux-amd64`       |
| Linux (glibc)         | arm64         | `depscan-linux-arm64`       |
| Linux (musl / Alpine) | x86_64        | `depscan-linux-amd64-musl`  |
| Linux (musl / Alpine) | arm64         | `depscan-linux-arm64-musl`  |
| macOS                 | Apple silicon | `depscan-darwin-arm64`      |
| macOS                 | Intel         | `depscan-darwin-amd64`      |
| Windows               | x86_64        | `depscan-windows-amd64.exe` |

К каждому файлу прилагается соответствующий файл `.sha256` для проверки.

```bash
# Example: Linux x86_64
curl -LO https://github.com/owasp-dep-scan/dep-scan/releases/latest/download/depscan-linux-amd64
curl -LO https://github.com/owasp-dep-scan/dep-scan/releases/latest/download/depscan-linux-amd64.sha256
sha256sum -c depscan-linux-amd64.sha256
chmod +x depscan-linux-amd64
./depscan-linux-amd64 --src $PWD --reports-dir $PWD/reports
```

> [!NOTE]
> Бинарные файлы macOS в настоящее время не подписаны. При первом запуске macOS Gatekeeper может их заблокировать; снимите атрибут карантина командой `xattr -d com.apple.quarantine ./depscan-darwin-arm64` (или разрешите бинарный файл в разделе «Системные настройки» → «Конфиденциальность и безопасность»).

> [!NOTE]
> База данных уязвимостей по-прежнему загружается при первом запуске. В комплект входит только cdxgen, но не база данных уязвимостей. Используйте команду `depscan-vdb`, чтобы выбрать конкретный вариант базы данных, например `depscan-vdb download --scope app` для уменьшенной базы данных только для приложений. Полную матрицу образов см. в [руководстве по базе данных уязвимостей](https://depscan.readthedocs.io/vulnerability-database).

Все автономные бинарные файлы включают в себя `blint`, но не его необязательный бэкенд дизассемблирования `nyxstone` (для которого нет wheel-пакетов и нет поддержки Windows). Поэтому глубокий анализ бинарных файлов на основе дизассемблирования недоступен в автономных бинарных файлах; используйте пакет Python (`pip install owasp-depscan[all]`), если он вам нужен.

### Локальное сканирование контейнеров (версия для Python)

Сканирование проекта на Java.

```bash
depscan --src <path> -o containertests -t java
```

Сканирование тега `latest` контейнера `shiftleft/scan-slim`

```bash
depscan --src shiftleft/scan-slim -o containertests -t docker
```

Включите `license` в тип, чтобы выполнить аудит лицензий.

```bash
depscan --src shiftleft/scan-slim -o containertests -t docker license
```

Вы также можете указать образ с помощью дайджеста sha256

```bash
depscan --src redmine@sha256:a5c5f8a64a0d9a436a0a6941bc3fb156be0c89996add834fe33b66ebeed2439e -o containertests -t docker
```

Вы также можете сохранить образы контейнеров с помощью команды docker или podman save и передать архив в depscan для сканирования.

```bash
docker save -o /tmp/scanslim.tar shiftleft/scan-slim:latest
# podman save --format oci-archive -o /tmp/scanslim.tar shiftleft/scan-slim:latest
depscan --src /tmp/scanslim.tar -o reports -t docker
```

Дополнительные примеры см. в docker-тестах в рабочем процессе GitHub Actions для этого репозитория.

### Локальное сканирование проектов (Docker-контейнер)

Для выполнения сканирования можно использовать образ контейнера `ghcr.io/owasp-dep-scan/dep-scan`.

Для сканирования с настройками по умолчанию

```bash
docker run --rm -v $PWD:/app ghcr.io/owasp-dep-scan/dep-scan depscan --src /app --reports-dir /app/reports
```

Для сканирования с конфигурацией на основе пользовательских переменных окружения

```bash
docker run --rm \
    -e VDB_HOME=/db \
    -e GITHUB_TOKEN=<token> \
    -v /tmp:/db \
    -v $PWD:/app ghcr.io/owasp-dep-scan/dep-scan depscan --src /app --reports-dir /app/reports
```

В приведённом выше примере `/tmp` монтируется как `/db` в контейнер. Затем этот каталог указывается как `VDB_HOME` для кэширования информации об уязвимостях. Таким образом база данных может кэшироваться и повторно использоваться для повышения производительности.

### Режим сервера

dep-scan и cdxgen могут работать в режиме сервера. Для начала работы используйте прилагаемый файл docker-compose.

```bash
git clone https://github.com/owasp-dep-scan/dep-scan
docker compose up
```

Входящий в комплект compose-файл по умолчанию задаёт для `DEPSCAN_SERVER_API_KEY` значение-заглушку для разработки, чтобы служба dep-scan могла привязаться к `0.0.0.0`. Переопределите это значение, прежде чем открывать службу за пределами локальной лаборатории.

```bash
depscan --server --server-host 127.0.0.1 --server-port 7070
```

Если вам нужно привязать dep-scan к нелокальному адресу, сначала задайте API-ключ:

```bash
export DEPSCAN_SERVER_API_KEY="change-this-before-production"
depscan --server --server-host 0.0.0.0 --server-port 7070
```

> [!IMPORTANT]
> dep-scan отказывается привязываться к нелокальному адресу без `DEPSCAN_SERVER_API_KEY` или явного согласия через `DEPSCAN_SERVER_ALLOW_UNAUTHENTICATED_BIND=true`.

Используйте эндпоинт `/scan` для выполнения сканирований.

> [!NOTE]
> Параметр `type` обязателен в серверном режиме. Если включена аутентификация по API-ключу, передавайте ключ через `X-API-Key` или `Authorization: Bearer <key>`.

- Сканирование локального каталога.
  Сканирование файла SBOM (расположенного локально).

```bash
curl \
  -H 'X-API-Key: dev-only-change-me' \
  --json '{"path": "/tmp/vulnerable-aws-koa-app/sbom_file.json", "type": "js"}' \
  http://127.0.0.1:7070/scan
```

- Сканирование репозитория GitHub.

```bash
curl \
  -H 'Authorization: Bearer dev-only-change-me' \
  --json '{"url": "https://github.com/HooliCorp/vulnerable-aws-koa-app", "type": "js"}' \
  http://127.0.0.1:7070/scan \
  -o app.vdr.json
```

- Загрузка файла SBOM и генерация результатов на его основе.

```bash
curl -X POST \
  -H 'X-API-Key: dev-only-change-me' \
  -H 'Content-Type: multipart/form-data' \
  -F 'file=@/tmp/app/sbom_file.json' \
  http://127.0.0.1:7070/scan?type=js
```

## Локальная разработка

Установите uv, следуя официальной [документации](https://docs.astral.sh/uv/).

```shell
uv sync --all-extras --all-packages
uv run depscan --help
uv run pytest
uv run pyrefly check
```

Проверка типов использует [pyrefly](https://pyrefly.org) (конфигурация находится в
`[tool.pyrefly]` в `pyproject.toml`); ожидается, что проверка сообщит о нулевом
количестве ошибок.

### Локальная настройка VDB

```shell
vdb --clean
vdb --download-image
# To scan containers and OS images
# vdb --download-full-image
```

### Сканирование локальных зависимостей с помощью depscan

```shell
uv run depscan --config .config/depscan-dev.toml
```

При этом автоматически будет использована конфигурация, указанная в локальном конфигурационном [файле](https://github.com/owasp-dep-scan/dep-scan/blob/master/.config/depscan.toml).

## Документация

Полная документация доступна на [depscan.readthedocs.io](https://depscan.readthedocs.io). Ключевые страницы:

- [Поддерживаемые языки и матрица достижимости](https://depscan.readthedocs.io/supported-languages)
- [Анализ достижимости](https://depscan.readthedocs.io/reachability-analysis) (хаб)
    - [Модель достижимости](https://depscan.readthedocs.io/concepts/reachability-model)
    - [Как dep-scan расставляет приоритеты](https://depscan.readthedocs.io/concepts/prioritization)
    - [SBOM и доказательства](https://depscan.readthedocs.io/concepts/sbom-and-evidence)
    - Руководства по языкам: [Rust](https://depscan.readthedocs.io/languages/rust-reachability), [Go](https://depscan.readthedocs.io/languages/go-reachability), [.NET](https://depscan.readthedocs.io/languages/dotnet-reachability), [JVM/JS/Python/PHP](https://depscan.readthedocs.io/languages/jvm-js-python-php-reachability)

---

[Read more](https://github.com/owasp-dep-scan/dep-scan)
Скачать инструмент