<p align="center">
<a href="https://safedep.io">
<picture>
<source srcset="docs/assets/vet-banner-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="docs/assets/vet-banner-light.svg" media="(prefers-color-scheme: light)">
<img src="https://raw.githubusercontent.com/safedep/vet/HEAD/docs/assets/vet-banner-light.svg" alt="SafeDep VET - リアルタイム悪意パッケージ検出とソフトウェアサプライチェーンセキュリティ" width="100%">
</picture>
</a>
</p>
<div align="center">
<p>
<a href="#quick-start"><strong>クイックスタート</strong></a> •
<a href="https://docs.safedep.io/"><strong>ドキュメント</strong></a> •
<a href="#community--support"><strong>コミュニティ</strong></a>
</p>
</div>
<div align="center">
[](https://goreportcard.com/report/github.com/safedep/vet)
[](https://github.com/safedep/vet/blob/main/LICENSE)
[](https://github.com/safedep/vet/releases)
[](https://api.securityscorecards.dev/projects/github.com/safedep/vet)
[](https://slsa.dev)
[](https://github.com/safedep/vet/actions/workflows/codeql.yml)
[](https://deepwiki.com/safedep/vet)
</div>
---
> [!NOTE]
> `vet` はエージェントスキルの特別モードをサポートしています。
> GitHub リポジトリでホストされているエージェントスキルをスキャンするには、`vet scan --agent-skill <owner/repo>` を実行してください。
## vet を選ぶ理由
> **現代のソフトウェアの70~90%はオープンソースコードです** — それが安全であるとどうやって確認しますか?
従来のSCAツールはCVEのノイズで埋もれてしまいます。**vet** は異なるアプローチをとります:
- **シャドウ AI 発見** — さまざまなツールや設定からAIツール使用のシグナルを発見
- **マルウェアが出荷される前にキャッチ** — 静的および動的動作分析によるゼロデイ検出(SafeDep Cloud へのアクセスが必要)
- **脆弱性ノイズを削減** — 実際のコード使用状況を分析し、重要なリスクのみを抽出
- **ポリシーをコードとして適用** — セキュリティ、ライセンス、品質要件を [CEL](https://cel.dev/) 式で表現
- **CI/CD 統合** — CI/CD におけるゼロコンフィグのセキュリティガードレール
オープンソースでは無料。ホスト型SaaSは [SafeDep](https://safedep.io) で利用可能。
## クイックスタート
**数秒でインストール:**
```bash
# macOS & Linux
brew install safedep/tap/vet
# npm を使用
npm install -g @safedep/vet
```
または [事前ビルドバイナリ](https://github.com/safedep/vet/releases) をダウンロード
**すぐに使い始める:**
```bash
# 依存関係のマルウェアをスキャン
vet scan -D . --malware-query
# CIで重要な脆弱性で失敗させる
vet scan -D . --filter 'vulns.critical.exists(p, true)' --filter-fail
```
## アーキテクチャ
`vet` はパイプラインアーキテクチャに従います:**リーダー** が多様なソース(ディレクトリ、リポジトリ、コンテナイメージ、SBOM)からパッケージマニフェストを取り込み、**エンリッチャー** が SafeDep Cloud から脆弱性、マルウェア、スコアカードデータで各パッケージを拡張し、**CEL ポリシーエンジン** が拡張データに対してセキュリティポリシーを評価し、**レポーター** が SARIF、JSON、Markdown などの形式で実用的な出力を生成します。
<details>
<summary>アーキテクチャ図を表示</summary>
```mermaid
graph TB
subgraph "OSS エコシステム"
R1[npm Registry]
R2[PyPI Registry]
R3[Maven Central]
R4[その他のレジストリ]
end
subgraph "SafeDep Cloud"
M[継続的監視]
A[リアルタイムコード分析<br/>マルウェア検出]
T[脅威インテリジェンスDB<br/>脆弱性 • マルウェア • スコアカード]
end
subgraph "vet CLI"
S[ソースリポジトリ<br/>スキャナー]
P[CEL ポリシーエンジン]
O[レポートとアクション<br/>SARIF/JSON/CSV]
end
R1 -->|新しいパッケージ| M
R2 -->|新しいパッケージ| M
R3 -->|新しいパッケージ| M
R4 -->|新しいパッケージ| M
M -->|動作分析| A
A -->|マルウェアシグナル| T
S -->|パッケージ情報照会| T
T -->|セキュリティインテリジェンス| S
S -->|分析結果| P
P -->|ポリシー決定| O
style M fill:#7CB9E8,stroke:#5A8DB8,color:#1a1a1a
style A fill:#E8A87C,stroke:#B88A5A,color:#1a1a1a
style T fill:#7CB9E8,stroke:#5A8DB8,color:#1a1a1a
style S fill:#90C695,stroke:#6B9870,color:#1a1a1a
style P fill:#E8C47C,stroke:#B89B5A,color:#1a1a1a
style O fill:#B8A3D4,stroke:#9478AA,color:#1a1a1a
```
</details>
## 主な機能
### **悪意のあるパッケージ検出**
[SafeDep Cloud](https://docs.safedep.io/cloud/malware-analysis) によるリアルタイムの悪意パッケージ対策。
オープンソースプロジェクトでは無料。アクティブなコード分析によりゼロデイマルウェアを検出します。
### **脆弱性分析**
ノイズであふれかえる依存関係スキャナーとは異なり、`vet` は **実際のコード使用状況** を分析して真のリスクを優先順位付けします。
詳細は[依存関係使用エビデンス](https://docs.safedep.io/vet/guides/dependency-usage-identification)を参照。
### **ポリシーとしてのコード**
CEL 式を使用してセキュリティポリシーを定義し、コンテキストに応じた要件を強制します:
```bash
# 重大なCVEがあるパッケージをブロック
vet scan --filter 'vulns.critical.exists(p, true)' --filter-fail
# ライセンス準拠を強制
vet scan --filter 'licenses.contains_license("GPL-3.0")' --filter-fail
# 最低限の OpenSSF Scorecard スコアを要求
vet scan --filter 'scorecard.scores.Maintained < 5' --filter-fail
```
### **マルチエコシステム対応**
パッケージマネージャー: **npm**, **PyPI**, **Maven**, **Go**, **Ruby**, **Rust**, **PHP**
コンテナイメージ: **Docker**, **OCI**
SBOM 形式: **CycloneDX**, **SPDX**
ソースリポジトリ: **GitHub**, **GitLab**
## 悪意のあるパッケージ検出
**SafeDep の脅威インテリジェンスデータベースに問い合わせることで、悪意パッケージに対するリアルタイム防御** を実現します。このデータベースは静的・動的行動分析によって継続的に更新されています。
### クイックセットアップ
```bash
# 既知の悪意パッケージを照会(APIキー不要)
vet scan -D . --malware-query
```
> [!NOTE]
> `--malware` フラグは非推奨です。アクティブ(オンデマンド)スキャンは SafeDep の脅威インテリジェンスデータベースへの照会に置き換えられました。`--malware` は現在 `--malware-query` と同じ動作をし、後方互換性のために維持されています。
**検出例:**
- [MAL-2025-3541: express-cookie-parser](https://safedep.io/malicious-npm-package-express-cookie-parser/)
- [MAL-2025-4339: eslint-config-airbnb-compat](https://safedep.io/digging-into-dynamic-malware-analysis-signals/)
- [MAL-2025-4029: ts-runtime-compat-check](https://safedep.io/digging-into-dynamic-malware-analysis-signals/)
**主なセキュリティ機能:**
- SafeDep の既知の悪意パッケージデータベースへのリアルタイム照会
- 静的および動的分析による行動分析(SafeDep Cloud で継続的に実行)
- 影響の大きい発見に対するヒューマン・イン・ザ・ループのトリアージ
- 透明性のための公開 [分析ログ](https://vetpkg.dev/mal)
### 高度な使い方
```bash
# 特化したスキャン
vet scan --vsx --malware-query # VS Code 拡張機能
vet scan -D .github/workflows --malware-query # GitHub Actions
vet scan --image nats:2.10 --malware-query # コンテナイメージ
```
> [!NOTE]
> `vet inspect malware` コマンド(単一パッケージのオンデマンド分析)は非推奨であり、将来のリリースで削除される予定です。SafeDep の既知の悪意パッケージデータベースに対してパッケージをチェックするには、`vet scan --malware-query` を使用してください。
## プロダクション対応の統合
### GitHub Actions
CI/CD におけるゼロコンフィグのセキュリティガードレール:
```yaml
- uses: safedep/vet-action@v1
with:
policy: ".github/vet/policy.yml"
```
[vet-action](https://github.com/safedep/vet-action) のドキュメントを参照。
### GitLab CI
[vet CI コンポーネント](https://docs.safedep.io/vet/guides/gitlab-dependency-scanning) を使ったエンタープライズスキャン:
```yaml
include:
- component: gitlab.com/safedep/ci-components/vet/scan@main
```
### コンテナ統合
コンテナイメージを使ってどこでも `vet` を実行:
```bash
docker run --rm -v $(pwd):/app ghcr.io/safedep/vet:latest scan -D /app --malware-query
```
## インストール
### Homebrew (推奨)
```bash
brew install safedep/tap/vet
```
### npm
```bash
npm install @safedep/vet
```
### 直接ダウンロード
事前ビルドバイナリについては [releases](https://github.com/safedep/vet/releases) を参照。
### Go インストール
```bash
go install github.com/safedep/vet@latest
```
### コンテナイメージ
```bash
# クイックテスト
docker run --rm ghcr.io/safedep/vet:latest version
# ローカルディレクトリをスキャン
docker run --rm -v $(pwd):/workspace ghcr.io/safedep/vet:latest scan -D /workspace
```
### インストールの確認
```bash
vet version
# バージョンとビルド情報が表示されるはずです
```
## 高度な機能
**詳細なドキュメントでさらに学ぶ:**
- **[AI 使用状況検出](https://github.com/safedep/vet/blob/main/docs/ai-discovery.md)** - さまざまなツールや設定からAIツール使用のシグナルを発見
- **[AI エージェントモード](https://github.com/safedep/vet/blob/main/docs/agent.md)** - vet を AI エージェントとして実行
- **[MCP サーバー](https://github.com/safedep/vet/blob/main/docs/mcp.md)** - AI 支援コード分析のための MCP サーバーとして vet を実行
- **[レポート](https://github.com/safedep/vet/blob/main/docs/reporting.md)** - SARIF、JSON、CSV、HTML、Markdown 形式
- **[SBOM サポート](https://docs.safedep.io/vet/guides/cyclonedx-sbom)** - CycloneDX、SPDX のインポート/エクスポート
- **[クエリモード](https://docs.safedep.io/cloud/quickstart#query-your-data)** - 一度スキャンして複数回分析
- **[GitHub 統合](https://docs.safedep.io/)** - リポジトリおよび組織のスキャン
- **[GitHub Actions ピン留め](https://github.com/safedep/vet/blob/main/docs/github-actions-pinning.md)** - GitHub Actions をコミットSHAにピン留めしてサプライチェーン攻撃を防止
## プライバシー
`vet` は製品改善のために匿名の使用テレメトリーを収集します。**お客様のコードやパッケージ情報が送信されることは決してありません。**
```bash
# テレメトリーを無効にする(オプション)
export VET_DISABLE_TELEMETRY=true
```
## コミュニティとサポート
<div align="center">
### コミュニティに参加
[](https://rebrand.ly/safedep-community)
[](https://github.com/safedep/vet/discussions)
[](https://twitter.com/safedepio)
</div>
### ヘルプとアイデアの共有
- **[インタラクティブチュートリアル](https://killercoda.com/safedep/scenario/101-intro)** - vet をハンズオンで学ぶ
- **[完全なドキュメント](https://docs.safedep.io/)** - 包括的なガイド
- **[Discord コミュニティ](https://rebrand.ly/safedep-community)** - リアルタイムサポート
- **[イシュートラッカー](https://github.com/safedep/vet/issues)** - バグ報告と機能リクエスト
- **[コントリビューションガイド](https://github.com/safedep/vet/blob/main/CONTRIBUTING.md)** - 開発に参加
---
<div align="center">
### スター履歴
[](https://star-history.com/#safedep/vet&Date)
### オープンソースで構築
vet は巨人の肩の上に立っています:
[OSV](https://osv.dev) • [OpenSSF Scorecard](https://securityscorecards.dev/) • [SLSA](https://slsa.dev/) • [OSV-SCALIBR](https://github.com/google/osv-scalibr) • [Syft](https://github.com/anchore/syft)
### コントリビューター
すべてのコントリビューターに感謝します ❤️
<a href="https://github.com/safedep/vet/graphs/contributors">
<img src="https://contrib.rocks/image?repo=safedep/vet" alt="vet へのコントリビューター" />
</a>
---
<p><strong>今日からサプライチェーンを保護しましょう。リポジトリにスターを付けて始めましょう!</strong></p>
[SafeDep](https://safedep.io) とオープンソースコミュニティによる愛情を込めて作成
</div>
<img referrerpolicy="no-referrer-when-downgrade" src="https://assets.kitploit.com/production/public/readmes/9305/93ae7d494fad0fb30cbf3ae746a39c4bc7a0f8bbf87fbb587a3f3c01f3c5ce20.png" />