アップデート一覧に戻る
UpdatedJul 20, 2026

bbscope — Updated!

HackerOne、Bugcrowd、Intigriti、YesWeHack、Immunefi向けのスコープ集約ツール!

共有

bbscope.com

WebインターフェースおよびAPI。HackerOne、Bugcrowd、Intigriti、YesWeHackのバグバウンティプログラムスコープを集約します。

クイックスタート(Docker)

cd website
cp .env.example .env
# Edit .env — at minimum set POSTGRES_PASSWORD and your platform credentials
docker compose up -d --build

サイトは https://yourdomain.com で利用可能になります(CaddyがLet's Encrypt経由でHTTPSを自動処理します)。

Cloudflare DNSチャレンジ

サーバーがCloudflare(プロキシDNS)の背後にある場合、標準のHTTP ACMEチャレンジは機能しません。代わりにCloudflareのcomposeファイルを使用してください。これにより、Cloudflare DNSプラグインを組み込んだカスタムCaddyがビルドされます。

docker compose -f docker-compose.cloudflare.yml up -d --build

.envCF_API_TOKEN を設定します。トークンは https://dash.cloudflare.com/profile/api-tokens で作成し、ドメインに対して Zone:DNS:Edit 権限を付与してください。

ローカル開発

要件: Go 1.24+、稼働中のPostgreSQLインスタンス。

DB_URL="postgres://postgres:yourpassword@localhost:5432/bbscope?sslmode=disable" \
  go run *.go serve --dev --poll-interval 0 --listen localhost:7001

--dev フラグはHTTPのみのモード(TLSなし)を有効にします。--poll-interval 0 はバックグラウンドポーリングを無効にするため、プラットフォームの認証情報は不要です。

Serveコマンドフラグ

フラグデフォルト説明
--dev, -dfalse開発モード(HTTP、TLSなし)
--poll-interval6ポーリングサイクル間の時間(0で無効)
--listen:8080HTTPリッスンアドレス
--domainbbscope.comサイトマップ/robots.txt用のドメイン

データベース接続は環境変数 DB_URL または ~/.bbscope.yamldb_url から読み取られます。

設定

プラットフォーム認証情報

すべてのプラットフォーム認証情報はオプションです。設定されていないプラットフォームはポーリング時に単にスキップされます。

プラットフォーム環境変数備考
HackerOneH1_USERNAME, H1_TOKENAPIトークン
BugcrowdBC_EMAIL, BC_PASSWORD, BC_OTPまたはパブリックプログラムのみの場合は BC_PUBLIC_ONLY=1 を設定
IntigritiIT_TOKENベアラートークン
YesWeHackYWH_EMAIL, YWH_PASSWORD, YWH_OTPメール + パスワード + OTP

AI正規化(オプション)

OPENAI_API_KEY とオプションで OPENAI_MODEL(デフォルトは gpt-4.1-mini)を設定すると、AIベースのスコープターゲット正規化が有効になります。ターゲットごとにキャッシュされ、API呼び出しを最小限に抑えます。

Basic認証(オプション)

HTTP Basic認証でサイトを保護するには:

  1. パスワードハッシュを生成:

    docker run --rm caddy:2-alpine caddy hash-password --plaintext 'yourpassword'
    
  2. サンプル設定を conf.d/ にコピー:

    cp basicauth.caddy.example conf.d/basicauth.caddy
    
  3. conf.d/basicauth.caddy を編集し、ユーザー名とハッシュを追加:

    basic_auth {
        myuser $2a$14$hashgoeshere...
    }
    
  4. Caddyを再起動: docker compose restart caddy

無効にするには、conf.d/basicauth.caddy を削除して再起動します。

アーキテクチャ

caddy (ports 80/443) → bbscope-web (:8080) → postgres
  • Caddy はTLS終端とリバースプロキシを処理します。conf.d/*.caddy 内の追加設定フラグメントは自動インポートされます。
  • bbscope-web はサイトを提供し、バックグラウンドポーラーを実行します。
  • PostgreSQL はプログラム、ターゲット、スコープ変更履歴を保存します。スキーマは起動時に自動マイグレーションされます。

API

サイトは公開APIを公開しています:

エンドポイント説明
GET /api/v1/programsすべてのプログラムを一覧表示
GET /api/v1/programs/{platform}/{handle}単一プログラムの詳細
GET /api/v1/targets/{type}タイプ別ターゲット: wildcards, domains, urls, ips, cidrs

クエリパラメータ: scope (in/out/both), platform, type, raw (AIスキップ), format (json/text)。

デフォルトの出力は改行区切りのテキストです。JSONの場合は format=json を追加してください。レスポンスは5分間キャッシュされます。

カテゴリ