mcpField
B
Betterleaks Cloud - GitHub, Git, S3, Dir Secret Scanner

Betterleaks Cloud - GitHub, Git, S3, Dir Secret Scanner

リモート
apify.comセキュリティ05 週間前に更新
リポジトリ公式サイト

Betterleaks Cloud - GitHub, Git, S3, Dir Secret Scanner について

Betterleaks Cloudは、Apify上で動作するセキュリティチームや研究者向けのシークレットスキャナーです。GitHub、Gitリポジトリ、S3互換ストレージなどを調べ、検出したシークレットが有効かどうかも任意で確認できます。

主な機能

  1. 01GitHub、Git、S3、R2、MinIOのスキャン
  2. 02キーワードによるGitHub検索
  3. 03アーカイブと生テキストのスキャン
  4. 04検出シークレットの任意検証
  5. 05カスタムTOMLルールの利用
  6. 06構造化された検出結果の出力

活用シーン

  1. 01組織のGitHubリポジトリの監査
  2. 02報告前の漏えい認証情報の確認
  3. 03スケジュールに沿った継続スキャン
  4. 04公開S3互換ストレージの調査

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.apify.com/?tools=anshumanatrey/betterleaks-cloud
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.apify.com/?tools=anshumanatrey/betterleaks-cloud認証が必要

ツール

詳細

Betterleaks Cloud - GitHub & S3 シークレットスキャナー

漏えいした API キー、ウォレットの秘密鍵、認証情報を GitHub、クローンした Git リポジトリ、S3/R2/MinIO バケットから探すための、クラウドホスト型 Betterleaks v1.3.1 です。オプションのライブ検証では、検出された各シークレットをベンダーの API に照会し、現在も有効なものにフラグを付けます。

Apify Actor として利用できます。開始時に $0.05、スキャンしたリポジトリごとに $0.05、ライブ検証したキーごとに $0.30 です。インストールも CLI も不要で、フラットな JSON 形式で出力します。


何ができますか?

GitHub の組織、ユーザー、リポジトリ、プルリクエスト、Issue、gist、アクションのワークフロー、または S3 バケットをスキャンして、漏えいした認証情報を探します。Betterleaks(Gitleaks の後継。元の Gitleaks 作者 Zachary Rice と、Red Hat、Amazon、RBC の共同メンテナーが保守)をベースにしています。Betterleaks CLI のすべてのフラグが入力フィールドとして利用できます。検証を有効にすると、検出結果ごとにベンダーの API にライブで照会し、valid、invalid、revoked、unknown、error のいずれかのタグを付けます。

Betterleaks をローカルで実行する場合とどう違いますか?

ローカルの Betterleaks CLIこの Actor
セットアップGo のバイナリをインストールし、GitHub トークンを設定して、シェルを構成JSON 入力を貼り付けるだけ
対象範囲一度に 1 つの対象github/git/s3 モードと、リポジトリを選択する Code Search を使った global_github モード
検証コストお使いのマシンの HTTP 通信量Apify が管理する並列ワーカー
出力の扱いstdout の JSON を自分で解析データセットのレコード、フィルター可能なビュー
スケジュールcron + 手動での設定Apify Schedules を内蔵
コストお使いのノート PC の電気代Actor の開始時に $0.05 + スキャンしたリポジトリごとに $0.05

gitleaks-github-secret-scanner Actor との違いは何ですか?

gitleaks-cloudbetterleaks-cloud(本 Actor)
エンジンGitleaks 8.xBetterleaks 1.3.1(Gitleaks の後継)
ライブ検証非対応対応(オプトイン)
ソースの種類github + git のみgithub、git、s3、dir、stdin、global_github
料金$0.01 + リポジトリごとに $0.02$0.05 + リポジトリごとに $0.05 + ライブ検証したキーごとに $0.30
最適な用途大量スキャン、スキャンごとの低コスト「シークレットはまだ有効か」が重要な高精度スキャン

どのような場合に使うべきですか?

  • コミットに紛れ込んだシークレットがないか、自分の GitHub 組織を監査する
  • 報告する前にキーをライブ検証したいバグバウンティハンティング
  • 買収前に、対象企業の GitHub の公開範囲をセキュリティチェックする
  • 定期的に継続監視し、新たにライブ検証された検出結果があればアラートを受け取る
  • フォレンジック調査:どの PR の ref にあるどの dangling commit から認証情報が漏えいしたかを追跡する
  • 誰かが公開共有した Cloudflare R2/AWS S3 バケットをスキャンする

料金はいくらですか?

イベントごとの従量課金です:

  • Actor の開始ごとに $0.05
  • スキャンしたリポジトリごとに $0.05(github/git/global_github モード)
  • データセットに追加した検出結果ごとに $0.01
  • ライブ検証したシークレットごとに $0.30(検証が有効で、ステータスが valid の場合のみ)
  • Code Search のクエリごとに $0.005(global_github モードのみ)

スキャンの一般的な料金:

シナリオ料金
小規模なリポジトリを 1 つスキャン、検出結果 1 件、検証なし$0.11
大規模なリポジトリを 1 つスキャン、検出結果 30 件、検証なし$0.40
25 個のリポジトリを含む組織をスキャン、検出結果 50 件、検証なし$1.80
rzp_live_ を対象に 25 個のリポジトリをグローバル検索$1.93
100 個のリポジトリをスキャン、検出結果 200 件、ライブ検証 10 件$10.05

定額で年間約 $5000 の GitGuardian Enterprise と比較してください。この Actor を使った包括的なスキャン 1 回あたりの費用は、300~500 分の 1 です。

どのモードでスキャンできますか?

モードスキャン対象必須の入力
github特定の GitHub 組織/ユーザー/リポジトリ/PR/issue/gist(選択可能)target_url、github_token を推奨
global_githubキーワードで GitHub 全体を対象にします。このレイヤーは Code Search を通じて追加しますglobal_search_query、github_token が必須
git履歴全体を含む単一の git クローン URLtarget_url
s3AWS S3、Cloudflare R2、MinIO、または S3 互換の任意のバケットtarget_url、S3 認証情報(公開の場合は s3_anonymous)
dirtarball/zip の URL。ダウンロードして展開し、ファイルシステムをスキャンしますdir_source_url
stdin貼り付けたプレーンテキストの内容stdin_content

github モードでは、どの GitHub リソースをスキャンできますか?

betterleaks がサポートする 12 種類すべての対象を、include/exclude で選択できます。

  • repos(デフォルト)、forks
  • prs、pr-comments
  • issues、issue-comments
  • actions、action-artifacts
  • discussions
  • releases、release-assets
  • gists

since/until の日付で絞り込んだり、glob パターンでリポジトリを除外したり、特定の GitHub Actions ワークフローファイルを対象にしたりすることもできます。

現在のファイルから削除された漏えいも検出できますか?

はい。Betterleaks は git の履歴全体をスキャンします。コミット後に後続のコミットで削除されたシークレットも履歴に残るため、検出されます。各検出結果の Commit フィールドで、漏えいを含むコミットを確認できます。

高度な --log-opts の受け渡しを有効にすると、git pickaxe(-S secret_string)を使った対象限定の履歴検索もできます。

シークレットはベンダーのライブ API で検証されますか?

任意です。スキャンを高速に保つため、デフォルトでは無効です。validation: true を設定すると、Betterleaks は各検出結果について、ルールに組み込まれた CEL バリデーターを使ってベンダー API に HTTP リクエストを送信します。

出力フィールド:

  • ValidationStatus:valid(引き続き有効)、invalid(拒否)、revoked(明示的に無効化)、unknown(判定不能)、または error
  • ValidationReason:人が読める形式の理由
  • ValidationMeta:ベンダー固有のメタデータ。GitHub PAT の場合は、username、name、付与された scopes が含まれます。Stripe の場合は、テスト/ライブモードとアカウント情報が含まれます。

注:検証が実行されるのは、TOML に validate CEL 句が含まれているルールのみです。検出対象となるシークレットの種類すべてに検証ルールがあるわけではありません(上流のルールセットは随時拡充されています)。

検証の動作は、次の設定でも調整できます。

  • validation_timeout(リクエストごとの HTTP タイムアウト)
  • validation_workers(並列 HTTP ワーカー数)
  • validation_status(特定のステータスのみに出力を絞り込み)
  • validation_debug(ValidationMeta に生の HTTP レスポンスを含める)
  • validation_extract_empty(空の場合もバリデーターの出力を含める)
  • validation_env_vars(CEL バリデーターに追加の環境変数を公開)

カスタム検出ルールを使用できますか?

はい。betterleaks の TOML 設定全体を custom_config_toml に貼り付けてください。TOML の記述方法に応じて、組み込みルールを置き換えることも、追加することもできます。

enable_rule を使って、独自の設定を書かずに、組み込みルールセットからルール ID の許可リスト(例:["github-fine-grained-pat", "stripe-secret-key"])だけを実行することもできます。

形式のリファレンス:https://github.com/betterleaks/betterleaks/blob/main/.betterleaks.toml

出力はどのような形式ですか?

各データセットレコードは betterleaks の生の Finding 構造体で、変換やフィールド名の変更は行いません。

{
  "RuleID": "github-fine-grained-pat",
  "Description": "GitHub Fine-Grained Personal Access Token, risking unauthorized repo access.",
  "Match": "github_pat_11AABBCC...",
  "Secret": "github_pat_11AABBCC...",
  "StartLine": 12,
  "EndLine": 12,
  "StartColumn": 18,
  "EndColumn": 105,
  "MatchContext": "...optional surrounding lines if match_context is set...",
  "CaptureGroups": {},
  "Fragment": {
    "FilePath": "config/secrets.env",
    "Url": "https://github.com/owner/repo/blob/<sha>/config/secrets.env#L12"
  },
  "Attributes": {
    "path": "config/secrets.env",
    "resource": "git.patch_content",
    "url": "https://github.com/owner/repo/blob/<sha>/config/secrets.env#L12",
    "git.author_name": "alice",
    "git.author_email": "[email protected]",
    "git.commit": "abcd1234",
    "git.date": "2025-06-12T10:23:14Z",
    "git.message": "Add config",
    "github.owner": "owner",
    "github.repo": "repo",
    "github.visibility": "public"
  },
  "Tags": [],
  "Fingerprint": "abcd1234:config/secrets.env:github-fine-grained-pat:12",
  "ValidationStatus": "valid",
  "ValidationReason": "",
  "ValidationMeta": {
    "username": "alice",
    "name": "Alice Doe",
    "scopes": "repo, workflow"
  }
}

データセットには、事前設定済みのビューが 2 つあります。

  • 検出結果:すべてのレコード
  • 有効なシークレットのみ:ValidationStatus == valid で絞り込んだ、優先度の高いトリアージリスト

精度はどの程度ですか?

基盤となる Betterleaks 1.3.1 のルールセット(200 以上の検出器)に加え、上流版の BPE トークン化に基づく誤検出フィルターと、CEL ベースのコンテキストフィルターを使用しています。実際のテスト実行で確認された計算リソースの使用量は次のとおりです。

  • 小規模なリポジトリを 1 件スキャン:約 7 秒、計算ユニット 0.0084
  • anshumanatrey/* をスキャン(約 30 件のリポジトリ):約 134 秒、計算ユニット 0.1491、検出結果 735 件
  • クエリ rzp_live_ を使用した 3 件のリポジトリの global_github スキャン:約 8.5 秒、計算ユニット 0.0095、検出結果 14 件

よくある質問

Q: プライベートリポジトリをスキャンできますか? はい。repo スコープを持つ github_token を指定してください。

Q: PR のブランチや参照されていないコミットもスキャンしますか? --include prs を指定すれば PR の参照をスキャンします。参照されていないコミットは現在公開されていませんが、基盤となるツールは対応しています。

Q: レート制限にはどのように対処していますか? github_token がない場合、GitHub の制限は共有で約 60 リクエスト/時です。トークンがある場合は、アカウントあたり 5000 リクエスト/時です。実際のスキャンでは必ずトークンを指定してください。

Q: スケジュールを設定して実行できますか? はい。Apify Schedules で実行できます。継続的な監視の用途におすすめです。

Q: 独自の betterleaks ルール TOML を使用できますか? はい。custom_config_toml で指定できます。または、enable_rule で組み込みルールを個別にホワイトリストへ追加できます。

Q: global_github モードとは何ですか? 上流の betterleaks に独自機能を追加したものです。検索クエリを指定すると、GitHub Code Search で重複のない候補リポジトリを見つけ、それぞれに対して betterleaks git を並列で実行します。GitHub 全体から特定のシークレットパターンを探すのに便利です。

Q: 代わりに、より安価な gitleaks-github-secret-scanner actor を使わないのはなぜですか? 大量のスキャンを低コストで行いたい場合は、そちらを使用してください。実際の検証が重要な場合(バグ報奨金プログラムでのトリアージ、インシデント対応、実際にローテーションすべきシークレットの把握など)は、この actor を使用してください。

Q: 検出されたシークレットはどうなりますか? 実行時のデータセットに書き込まれ、actor を実行したユーザーだけがアクセスできます。サーバー側に保存することはありません。

Q: 所有していない S3 バケットをスキャンできますか? 公開されている(匿名モード)か、認証情報を持っている場合に限り可能です。

Q: スキャンできる最大サイズはどのくらいですか? リポジトリ数に固定の上限はありません。max_target_megabytes(デフォルトは 100)を超えるサイズのファイルはスキップされます。

制限事項

  • CEL ルールごとの検証:validate 条項があるルールのみ、実環境に対するプローブを実行します。まだすべてのシークレットタイプに対応しているわけではありません。
  • global_github モードには GitHub PAT が必要です(Code Search は認証が必須です)。
  • dir モードでは、ソースとしてローカルファイルではなく、ダウンロード可能な tarball の URL が必要です。
  • Apify の実行タイムアウトにより、サブプロセスごとのスキャンは 30 分に制限されます。200 件を超えるリポジトリを含む組織をスキャンする場合は、複数回の実行に分割してください。
  • stdin モードは、Apify の入力サイズ上限(約 5 MB)の制約を受けます。

倫理的な利用

許可を得たセキュリティテストにのみ使用してください。この actor がスキャンするのは、公開されている GitHub コンテンツ(GitHub にログインしたユーザーなら誰でも見られる同じコンテンツ)、または PAT によって明示的にアクセスが許可されたプライベートリポジトリです。

検出結果は、責任ある情報開示の窓口を通じて報告してください。

  • 情報を漏えいさせた開発者(コミット作成者のメールアドレス)
  • ベンダーの security@ アドレス
  • ベンダーにバグ報奨金プログラムがある場合は、そのプログラム

所有者の許可なく漏えいした認証情報を使用することは、ほとんどの法域で違法です。

ポートフォリオ内のその他のツール

ライセンス

MIT。アップストリームの Betterleaks バイナリも MIT ライセンスで、betterleaks/betterleaks(Zachary Rice および Red Hat、Amazon、RBC の共同メンテナー)がメンテナンスしています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。