Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dep-scan — CI/CD統合のためのリーチャビリティ分析、SBOM生成、ライセンス監査、コンテナイメージスキャンを備えた次世代依存関係脆弱性スキャナ。 | Kitploit
ツール/GitHubGitHub/owasp-dep-scan/dep-scan
脆弱性スキャナーコンテナセキュリティDevSecOpsサプライチェーンセキュリティ
GitHubowasp-dep-scan/dep-scan

dep-scan

CI/CD統合のためのリーチャビリティ分析、SBOM生成、ライセンス監査、コンテナイメージスキャンを備えた次世代依存関係脆弱性スキャナ。

リポジトリを見る
1.3k1374414日前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 マニフェスト、OS) をスキャンして既知の CVE を特定し、優先順位付けを行う
- 複数の言語に対して高度な到達可能性解析を実行する (下記の[到達可能性マトリックス](#reachability-matrix)を参照)
- パッケージの脆弱性スキャンはローカルで実行され、非常に高速です。サーバーは使用しません
- 脆弱性開示レポート (VDR) 情報を含むソフトウェア部品表 (SBOM) を生成する
- Common Security Advisory Framework (CSAF) 2.0/2.1 VEX ドキュメントを生成する ([CSAF Readme](https://github.com/owasp-dep-scan/dep-scan/blob/master/contrib/CSAF_README.md) を参照)
- 依存関係混同攻撃やメンテナンスリスクに対する詳細なパッケージリスク監査を実行する ([リスク監査ドキュメント](https://depscan.readthedocs.io/adv-usage#package-risk-audit) を参照)

### 正確な到達可能データフロー

完全なコンテキストに基づいて、アプリケーション内の到達可能なパスと到達不可能なパスの両方を特定するための詳細なデータフローです。

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

### 到達可能性マトリックス

dep-scan は、4 つのスライサーを通じて 7 つの言語エコシステムの到達可能性を計算します。コードが実際に実行パス上にある脆弱なパッケージは **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 はそれを共有パイプラインに変換するため、実際に呼び出されているクレート(たとえば RUSTSEC-2020-0071 に対する `time::now()`)は Reachable となり、単に存在するだけのクレートはそうなりません。詳細は [Rust 到達可能性ガイド](https://depscan.readthedocs.io/languages/rust-reachability)を参照してください。

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

**Go (golem)。** dep-scan は Go プロジェクトに対して [golem](https://github.com/cdxgen/cdxgen-plugins-bin) を直接呼び出し(`go` が `PATH` 上にある必要があります)、モジュールの関数がトレースされたパス上にある場合にそのモジュールを Reachable とマークします。モジュールキャッシュが温まっている信頼できないリポジトリには `--go-analyzer-network offline` を使用してください。詳細は [Go reachability guide](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) を実行し、パッケージごとの明示的な到達可能性判定(`ReachabilityKind` と `Confidence` を伴う `PackageReachability`)を出力します。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)。** これら4つのエコシステムは [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 の `--bom-dir` とともに指定します。詳しくは[セマンティック到達可能性ガイド](https://depscan.readthedocs.io/analyzers/semantic-reachability)を参照してください。

### CVE に関する明確な洞察

説明を読み通すことなく、CVE を明確に理解できます。

![インサイト付き依存関係ツリー](https://assets.kitploit.com/production/public/readmes/6282/34125c2b04cb176c6772f998114d2b6a17e62ead3c45243e0c93fb496e9aa530.png)

### 自動優先順位付け

注意を払う必要がある CVE にのみ集中できます。

![優先順位付け](https://assets.kitploit.com/production/public/readmes/6282/a15d5535abe0f1af9842e2889de77740ac86e97486027a477316b52ac4722cb4.png)

### プロアクティブな姿勢を維持

高度な脆弱性およびエクスプロイト予測により、常に一歩先を行けます。

![プロアクティブな対策](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` という2つのコマンドがインストールされます。

さまざまなオプションを指定して、scan コマンドを直接呼び出すことができます。

```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 は [OWASP dep-scan tap](https://github.com/owasp-dep-scan/homebrew-tap) から [スタンドアロンバイナリ](#standalone-binaries-no-python-or-nodejs-required) を `depscan` としてインストールします。cdxgen が同梱されており、Python や Node.js は不要です。`brew trust` は tap を信頼します。これは `HOMEBREW_REQUIRE_TAP_TRUST` が設定されている場合に、Homebrew がサードパーティ tap から formula を読み込む前に要求するものです:

```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) に添付されています。これらには対応する [cdxgen](https://github.com/cdxgen/cdxgen) SEA バイナリが同梱されているため、Python、Node.js、cdxgen をインストールしなくても BOM 生成がそのまま動作します。

| プラットフォーム      | アーキテクチャ | アセット                    |
| --------------------- | ------------- | --------------------------- |
| 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 のみで、脆弱性 DB は含まれていません。特定のデータベースバリアントを選択するには `depscan-vdb` コマンドを使用します。例えば、より小さなアプリ専用データベースには `depscan-vdb download --scope app` を使用します。完全なイメージマトリックスについては[脆弱性データベースガイド](https://depscan.readthedocs.io/vulnerability-database)を参照してください。

すべてのスタンドアロンバイナリには `blint` がバンドルされていますが、オプションの `nyxstone` 逆アセンブリバックエンドは含まれていません(ホイールがなく、Windows もサポートしていないため)。そのため、スタンドアロンバイナリでは逆アセンブリベースの詳細なバイナリ解析は利用できません。必要な場合は Python パッケージ(`pip install owasp-depscan[all]`)を使用してください。

### コンテナをローカルでスキャンする(Python 版)

Java プロジェクトをスキャンします。

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

コンテナ `shiftleft/scan-slim` の `latest` タグをスキャンします

```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
```

このリポジトリの GitHub action ワークフローにある docker テストを参照して、さらに多くの例を確認してください。

### プロジェクトをローカルでスキャンする (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 ファイルは、dep-scan サービスが `0.0.0.0` にバインドできるよう、デフォルトで `DEPSCAN_SERVER_API_KEY` を開発用のプレースホルダーに設定します。サービスをローカルラボの外部に公開する前に、この値を上書きしてください。

```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
```

## ローカル開発

公式[ドキュメント](https://docs.astral.sh/uv/)に従って uv をセットアップしてください。

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

型チェックには [pyrefly](https://pyrefly.org) を使用します(設定は `pyproject.toml` の `[tool.pyrefly]` にあります)。チェックはエラーゼロを報告することが期待されます。

### ローカル 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)
    - アナライザー: [フレームワーク到達可能性](https://depscan.readthedocs.io/analyzers/framework-reachability)、[セマンティック到達可能性](https://depscan.readthedocs.io/analyzers/semantic-reachability)
- 出力とコンプライアンス: [VDR ガイド](https://depscan.readthedocs.io/output/vdr-guide)、[CSAF VEX ガイド](https://depscan.readthedocs.io/output/vex-csaf-guide)
- [環境変数によるカスタマイズ](https://depscan.readthedocs.io/env-var#customization-through-environment-variables)
- 高度な使用方法: [GitHub Security Advisory](https://depscan.readthedocs.io/adv-usage#github-security-advisory)、[サジェストモード](https://depscan.readthedocs.io/adv-usage#suggest-mode)、[パッケージリスク監査](https://depscan.readthedocs.io/adv-usage#package-risk-audit)、[ライブ OS スキャン](https://depscan.readthedocs.io/adv-usage#live-os-scan)、[ライセンススキャン](https://depscan.readthedocs.io/adv-usage#license-scan)、[カスタムレポート](https://depscan.readthedocs.io/adv-usage#custom-reports)

## ライセンス

MIT License

このプロジェクトは、2023年8月に AppThreat Ltd. によって OWASP Foundation に寄贈されました。

## 資金提供

このプロジェクトは、[NLnet](https://nlnet.nl) が設立し、欧州委員会の [Next Generation Internet](https://ngi.eu) プログラムからの財政支援を受けた基金である [NGI Zero Core](https://nlnet.nl/core) を通じて資金提供されています。詳細は [NLnet プロジェクトページ](https://nlnet.nl/project/OWASP-dep-scan) をご覧ください。

[<img src="https://assets.kitploit.com/production/public/readmes/6282/0a90ce2437c2c6d5609888b393ff1dd7f449dfc396d9a15484ddb51d849646a9.png" alt="NLnet foundation logo" width="20%" />](https://nlnet.nl)
[<img src="https://nlnet.nl/image/logos/NGI0_tag.svg" alt="NGI Zero Logo" width="20%" />](https://nlnet.nl/core)
ツールをダウンロード