Skip to content

youichi-uda/sbomhub

Repository files navigation

SBOMHub

日本語 English

License Go Version Next.js Docker Pulls GitHub Stars

SBOMHub ダッシュボード

SBOMHubとは?

SBOMHubは、日本市場向けに設計されたオープンソースのSBOM(ソフトウェア部品表)管理ダッシュボードです。

  • Syft、cdxgen、Trivyなどで生成したSBOMをインポート(CycloneDX/SPDX対応)
  • NVD・JVNと連携して脆弱性を追跡
  • EPSSスコアで対応優先度を判断
  • VEXステートメントで脆弱性トリアージを管理
  • 経産省ガイドライン・EU CRAへの対応を支援
  • ライセンスポリシーでプロジェクト全体を管理
  • Slack/Discord/Emailでチームに通知

機能一覧

機能 説明
マルチフォーマットSBOM CycloneDX・SPDX JSONに対応
脆弱性トラッキング NVD + JVN連携で網羅的にカバー
EPSSスコアリング 悪用可能性に基づく優先度付け
SSVC意思決定 CISA SSVCフレームワークによる脆弱性優先度付け
KEV連携 CISA Known Exploited Vulnerabilities カタログ連携
VEXサポート 脆弱性の適用可否を記録
ライセンスポリシー 許可/拒否ライセンスの管理
コンプライアンス対応支援 経産省ガイドライン自己評価チェック
CI/CD連携 GitHub Actions対応(APIキー認証)
日本語UI 完全日本語対応

クイックスタート

SaaS版(おすすめ)

インストール不要ですぐに試せます: https://sbomhub.app

  • セットアップ不要
  • 無料プランあり
  • 自動アップデート付きマネージドインフラ

Docker Compose(セルフホスト)

# ダウンロードして起動(クローン不要)
curl -fsSL https://raw.githubusercontent.com/youichi-uda/sbomhub/main/docker-compose.yml -o docker-compose.yml
docker compose up -d

または、クローンして起動:

git clone https://github.com/youichi-uda/sbomhub.git
cd sbomhub
docker compose up -d

http://localhost:3000 を開く

ソースからビルド

前提条件:

  • Go 1.22+
  • Node.js 20+ / pnpm
  • PostgreSQL 15+
  • Redis 7+
# データベースを起動
docker compose -f docker/docker-compose.yml up -d postgres redis

# バックエンド
cd apps/api
go run ./cmd/server

# フロントエンド(別ターミナル)
cd apps/web
pnpm install
pnpm dev

スクリーンショット

ダッシュボード
脆弱性一覧
コンプライアンススコア

アーキテクチャ

┌─────────────────┐     ┌─────────────────┐
│   Next.js Web   │────▶│    Go API       │
│   (Port 3000)   │     │   (Port 8080)   │
└─────────────────┘     └────────┬────────┘
                                 │
                    ┌────────────┼────────────┐
                    ▼            ▼            ▼
             ┌───────────┐ ┌───────────┐ ┌───────────┐
             │ PostgreSQL│ │   Redis   │ │ NVD / JVN │
             │  (Data)   │ │  (Cache)  │ │  (APIs)   │
             └───────────┘ └───────────┘ └───────────┘

APIリファレンス

詳細はAPIドキュメントを参照

主要エンドポイント

POST   /api/v1/projects              # プロジェクト作成
GET    /api/v1/projects              # プロジェクト一覧
GET    /api/v1/projects/:id          # プロジェクト詳細
DELETE /api/v1/projects/:id          # プロジェクト削除

POST   /api/v1/projects/:id/sbom     # SBOMアップロード
GET    /api/v1/projects/:id/components
GET    /api/v1/projects/:id/vulnerabilities
GET    /api/v1/projects/:id/vex      # VEXステートメント

# SSVC (Stakeholder-Specific Vulnerability Categorization)
GET    /api/v1/projects/:id/ssvc/defaults    # プロジェクトSSVCデフォルト設定
PUT    /api/v1/projects/:id/ssvc/defaults    # SSVCデフォルト設定更新
POST   /api/v1/projects/:id/vulnerabilities/:vuln_id/ssvc  # SSVC評価作成
GET    /api/v1/projects/:id/ssvc/summary     # SSVC評価サマリー
POST   /api/v1/ssvc/calculate                # SSVC決定計算(保存なし)

# KEV (Known Exploited Vulnerabilities)
POST   /api/v1/kev/sync              # KEVカタログ同期
GET    /api/v1/kev/stats             # KEV統計情報
GET    /api/v1/kev/:cve_id           # CVEのKEV確認
GET    /api/v1/projects/:id/kev      # プロジェクトのKEV脆弱性一覧

CLI

SBOMHub CLIを使うと、SBOM生成からアップロードまでを1コマンドで実行できます。

インストール

# Homebrew (macOS/Linux)
brew install sbomhub/tap/sbomhub

# Shell script (macOS/Linux)
curl -fsSL https://sbomhub.app/install.sh | sh

# Windows (Scoop)
scoop bucket add sbomhub https://github.com/sbomhub/scoop-bucket
scoop install sbomhub

# Go install
go install github.com/youichi-uda/sbomhub-cli/cmd/sbomhub@latest

基本的な使い方

# ログイン(API Key設定)
sbomhub login

# カレントディレクトリをスキャン&アップロード
sbomhub scan .

# プロジェクト指定でスキャン
sbomhub scan . --project my-app

# 脆弱性チェックのみ(アップロードなし)
sbomhub check .

# CI/CD向け(Critical検出でexit 1)
sbomhub scan . --project my-app --fail-on critical --quiet

必要な外部ツール

以下のいずれかがインストールされている必要があります:

詳細はsbomhub-cliを参照。

MCP Server

SBOMHub MCPサーバーを使用すると、Claude Desktop、Cursor、その他のMCP対応AIツールからSBOMHubのデータに直接アクセスできます。

インストール

cd packages/mcp-server
pnpm install
pnpm build

設定(Claude Desktop)

claude_desktop_config.jsonに以下を追加:

{
  "mcpServers": {
    "sbomhub": {
      "command": "node",
      "args": ["/path/to/sbomhub/packages/mcp-server/dist/index.js"],
      "env": {
        "SBOMHUB_API_KEY": "your-api-key",
        "SBOMHUB_API_URL": "https://api.sbomhub.app"
      }
    }
  }
}

利用可能なツール

ツール 説明
sbomhub_list_projects プロジェクト一覧取得
sbomhub_get_dashboard ダッシュボード情報
sbomhub_search_cve CVE横断検索
sbomhub_search_component コンポーネント検索
sbomhub_diff SBOM差分比較
sbomhub_get_vulnerabilities 脆弱性一覧
sbomhub_get_compliance コンプライアンススコア

詳細はpackages/mcp-server/README.mdを参照。

CI/CD連携

GitHub Actions

name: Upload SBOM

on:
  push:
    branches: [main]

jobs:
  sbom:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Generate SBOM
        run: syft . -o cyclonedx-json > sbom.json

      - name: Upload to SBOMHub
        run: |
          curl -X POST \
            -H "Authorization: Bearer ${{ secrets.SBOMHUB_API_KEY }}" \
            -F "sbom=@sbom.json" \
            ${{ secrets.SBOMHUB_URL }}/api/v1/projects/${{ secrets.PROJECT_ID }}/sbom

ドキュメント

ロードマップ

  • SBOMインポート(CycloneDX/SPDX)
  • NVD/JVN脆弱性マッチング
  • EPSSスコアリング
  • VEXサポート
  • ライセンスポリシー
  • コンプライアンス対応支援(経産省ガイドライン自己評価)
  • CI/CD連携(GitHub Actions)
  • 通知機能(Slack/Discord)
  • マルチテナント対応(Row-Level Security)
  • Clerk認証連携
  • Lemon Squeezy課金連携
  • SBOMHub Cloud(マネージドSaaS)
  • SSVC意思決定フレームワーク - CISA SSVCによる脆弱性優先度付け
  • KEV連携 - Known Exploited Vulnerabilities カタログ自動同期
  • リスクプロファイル - プロジェクト固有のリスク設定
  • トリアージダッシュボード - KEV/SSVCを統合した優先度表示
  • AI優先度推定 - MCP拡張によるAI自動判定
  • LDAP/OIDC認証(セルフホスト向け)

コントリビューション

コントリビューションを歓迎します!詳細はCONTRIBUTING.mdをご覧ください。

ライセンス

本プロジェクトはAGPL-3.0ライセンスの下で公開されています。

技術スタック

レイヤー 技術 バージョン
バックエンド Go (Echo v4) 1.22+
フロントエンド Next.js (App Router) 16
UIフレームワーク React 19
言語 TypeScript 5.7
UIコンポーネント shadcn/ui 最新
スタイリング Tailwind CSS 3.4
データベース PostgreSQL 15+
キャッシュ Redis 7+
国際化 next-intl 最新
フォームバリデーション react-hook-form + zod 最新

開発

必要環境

  • Go 1.22+
  • Node.js 20+ と pnpm
  • PostgreSQL 15+
  • Redis 7+
  • Docker & Docker Compose(オプション)

プロジェクト構造

sbomhub/
├── apps/
│   ├── web/          # Next.js フロントエンド
│   └── api/          # Go バックエンド
├── packages/
│   ├── db/           # DBスキーマとマイグレーション
│   ├── mcp-server/   # MCP Server(Claude/Cursor連携)
│   └── types/        # 共有TypeScript型定義
├── docker/           # Docker設定
├── docs/             # ドキュメント
└── .github/workflows/  # CI/CDパイプライン

よく使うコマンド

# 開発サーバー起動
cd apps/web && pnpm dev      # フロントエンド (http://localhost:3000)
cd apps/api && go run ./cmd/server  # バックエンド (http://localhost:8080)

# データベース
docker compose up -d postgres redis  # DB起動
cd apps/api && go run ./cmd/migrate up  # マイグレーション実行

# テスト
cd apps/api && go test ./...   # バックエンドテスト
cd apps/web && pnpm test       # フロントエンドテスト

# Lint
cd apps/api && golangci-lint run   # Go lint
cd apps/web && pnpm lint           # TypeScript lint

# ビルド
docker compose build           # 全コンテナビルド

コードスタイル

Claude Code連携

本プロジェクトには、AI支援開発のためのClaude Codeスキルが導入されています。

導入済みスキル

カテゴリ ソース 説明
セキュリティ Trail of Bits セキュリティ監査、脆弱性検出、静的解析
Go開発 Gopher AI Goベストプラクティス、テストパターン
React/Next.js Vercel Agent Skills パフォーマンス最適化(57以上のルール)
ワークフロー Claude Code SDK CI/CD、テスト、コードレビューパターン

このプロジェクト向けの主要スキル

  • differential-review - セキュリティ重視のPRレビュー
  • go-best-practices - 慣用的なGoパターン
  • react-best-practices - React/Next.js最適化
  • ci-cd-integration - パイプライン自動化
  • monorepo-patterns - モノレポワークフロー

スキルは .claude/skills/ に配置され、Claude Codeによって自動検出されます。

セキュリティ

脆弱性の報告

セキュリティ脆弱性を発見した場合は、以下の方法で報告してください:

  1. GitHub Security Advisories: 脆弱性を報告
  2. メール: abyo.software@gmail.com(機密性の高い問題の場合)

公開のGitHub Issueでセキュリティ脆弱性を報告しないでください。

セキュリティ機能

  • マルチテナント向けRow-Level Security (RLS)
  • CI/CD連携用APIキー認証
  • 本番環境でのHTTPS強制
  • zodスキーマによる入力バリデーション
  • パラメータ化クエリによるSQLインジェクション防止

謝辞

  • CycloneDX - SBOM仕様
  • SPDX - SBOM仕様
  • NVD - National Vulnerability Database
  • JVN - Japan Vulnerability Notes
  • FIRST EPSS - Exploit Prediction Scoring System
  • CISA KEV - Known Exploited Vulnerabilities Catalog
  • CISA SSVC - Stakeholder-Specific Vulnerability Categorization
  • Trail of Bits - Claude Code向けセキュリティスキル
  • Vercel - Reactベストプラクティス

About

日本市場向けオープンソースSBOM管理ダッシュボード / Open-source SBOM management dashboard with NVD/JVN vulnerability correlation, Japanese UI, and METI guidelines compliance

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Languages