Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
database-sentinel — プロジェクトのRLS設定ミス、露出したキー、認証バイパス、ストレージの脆弱性を監査するClaude Skill。CVE-2025-48757と10件のセキュリティ研究に由来する27のアンチパターン。本番環境でも安全に使用できます。 | Kitploit
ツール/GitHubGitHub/farenhytee/database-sentinel
認証と認可脆弱性スキャナーコード分析構成監査クラウドセキュリティDevSecOpsシークレット検出設定ミス学習と教育AIセキュリティデータベースセキュリティ
GitHub
41554ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
farenhytee/database-sentinel

database-sentinel

プロジェクトのRLS設定ミス、露出したキー、認証バイパス、ストレージの脆弱性を監査するClaude Skill。CVE-2025-48757と10件のセキュリティ研究に由来する27のアンチパターン。本番環境でも安全に使用できます。

リポジトリを見る

🛡️ Database Sentinel

データベースバックエンドのセキュリティ脆弱性を監査するClaudeスキル。

Claude Code、Cursor、またはClaudeを搭載したあらゆる環境にドロップするだけです。「audit my database」と伝えると、正確な修正コード付きの包括的なセキュリティレポートを、数日ではなく数分で入手できます。

170以上のLovableアプリが侵害された。 YCスタートアップ全体で2,010万件のレコードが露出。約87,000のMongoDBインスタンスがMongoBleed (CVE-2025-14847、CISA KEV) に対して脆弱なまま残された。2025年の単一インシデントで180万件のFirebaseパスワードが漏洩。AI生成コードの45%がOWASP Top 10の脆弱性を生み出している。Database Sentinelは、セキュリティ設定が実際に機能するかをテストします — 存在するかどうかだけではありません。


機能

Database Sentinelは、プロジェクトが使用するバックエンドに対して7段階のセキュリティ監査を実行します:

  1. 検出 — 使用中のバックエンドを特定します (Supabase、Firebase、MongoDB、セルフホストPostgres / MySQL)
  2. コードベースをスキャン — 露出した認証情報、ハードコードされたキー、git内のシークレットを検出します
  3. 各バックエンドをイントロスペクト — スキーマ、ポリシー、ルール、ユーザー、ロール、構成
  4. 検出結果をバックエンド固有のアンチパターンカタログと照合 — CVE、侵害レポート、CISベンチマーク、2025〜2026年のvibe-coding調査に基づく
  5. 安全なプリミティブで動的プローブ (tx=rollback、カナリアコレクション、オプトインのMongoBleed検出器)
  6. スコア付きセキュリティレポートを生成 — 平易な英語の説明と具体的な攻撃シナリオ付き
  7. 正確な修正コードを出力 — SQL DDL、ルールファイル、設定diff、Terraform — コピー&ペーストで完了

クロスバックエンド推論により、単一バックエンドのスキャナが見逃す問題を検出します (例: JWT検証なしでPostgres APIに信頼されるFirebase Auth UID)。


ステータス

フェーズバックエンドステータス
1Supabase✅ リリース済み
2MongoDB (セルフホスト + Atlas)✅ リリース済み
3Firebase (Firestore / RTDB / Storage / Functions / Remote Config)🚧 予定
4PostgreSQL (セルフホスト、pgBouncerを含む)🚧 予定
5MySQL (セルフホスト)🚧 予定
6クロスバックエンド相互作用分析🚧 予定
7配布 + 仕上げ🚧 予定

Database Sentinelは、以前はSupabase Sentinel (単一バックエンド) でした。名称変更はマルチバックエンド拡張のフェーズ1中に行われました。compat/supabase-sentinel/にある後方互換シムにより、少なくとも次のマイナーリリースまでは旧スキル名が維持されます — 既存ユーザーは後退を経験しません。


クイックスタート

オプション1: Claude Code / Cursor

スキルをプロジェクトのスキルディレクトリ、または中央のディレクトリにクローンします:

root@kitploit:~
git clone https://github.com/Farenhytee/database-sentinel.git ~/claude-skills/database-sentinel

次にClaudeに依頼します:

root@kitploit:~
Audit my database

Database Sentinelは、プロジェクトが使用するバックエンドを検出し、関連する監査を実行して、統合レポートを生成します。複数のバックエンドが存在する場合 (Firebase Auth + Postgresデータなど)、フェーズ6の実装後にはレポートにクロスバックエンド相互作用セクションが含まれます。

オプション2: 単一バックエンドの呼び出し

特定のバックエンドのみを監査したい場合は、明示的に依頼します:

root@kitploit:~
Audit my Supabase project
Audit my MongoDB instance

ディスパッチャーがスコープを絞り込みます。

オプション3: 手動 (任意のAIアシスタント)

SKILL.mdの内容と関連するbackends/<name>/workflow.mdをシステムプロンプトにコピーします。認証情報を使って7つのステップを実行します。


検出できる問題

Supabase (フェーズ1) — 27パターン

MongoDB (フェーズ2) — 20パターン

MongoBleedネットワークプローブ (backends/mongodb/mongobleed-probe.md) には、実行時に悪用可能性を確認する単一パケット検出器が同梱されています — mongo:7.0.20 (脆弱) とmongo:7.0.28 (パッチ適用済み) で検証済み。読み取り専用で、2つのオプトイン確認の背後にゲートされており、コンテンツを抽出することはありません。


出力例

root@kitploit:~
╔════════════════════════════════════════════════════════╗
║                  SENTINEL SECURITY AUDIT               ║
╠════════════════════════════════════════════════════════╣
║  Backends:   supabase, mongodb                         ║
║  Scanned:    2026-04-30 14:30 UTC                      ║
║  Score:      0/100 🔴                                  ║
║  Summary:    2 backends, 8 findings (3C / 4H / 1M)     ║
╚════════════════════════════════════════════════════════╝

─────────────────────────────────────────────────────────
  Supabase                                       35/100 🔴
─────────────────────────────────────────────────────────

🔴 CRITICAL — public.users: RLS Disabled                  [SB-001]

  Risk:     Anyone on the internet can read your entire users table.
  Attack:   Open browser DevTools → copy anon key → curl the API → dump
            all emails, names, and metadata.
  Proof:    curl returns [{"id":"...","email":"[email protected]",...}]
  Source:   CVE-2025-48757 / Splinter 0013_rls_disabled_in_public

  Fix:
  ALTER TABLE public.users ENABLE ROW LEVEL SECURITY;

  CREATE POLICY "users_select_own"
    ON public.users FOR SELECT TO authenticated
    USING ((SELECT auth.uid()) = id);

─────────────────────────────────────────────────────────
  MongoDB                                         0/100 🔴
─────────────────────────────────────────────────────────

🔴 CRITICAL — mongod 7.0.20: MongoBleed (CVE-2025-14847)  [MG-SH-001]

  Risk:     A single TCP packet leaks fragments of MongoDB's memory —
            including credentials, queries, and document data — without
            requiring any login.
  Attack:   Public PoC available since Dec 26 2025; CISA KEV. Repeated
            requests progressively dump more of the working set.
  Proof:    buildInfo.version = "7.0.20" (vulnerable; patched in 7.0.28)
            zlib compression enabled (default): true
            Active probe returned: vulnerable (opCode=2012, 163 bytes)
  Source:   CVE-2025-14847 / CISA KEV / MongoDB Server Security Update Dec 2025

  Fix:
  Upgrade to 7.0.28+. Same-day mitigation if upgrade is blocked:
  net.compression.compressors = "snappy,zstd"  in mongod.conf

✅ PASSING — Supabase: orders, payments, invoices, subscriptions

ファイル構成

root@kitploit:~
database-sentinel/
├── SKILL.md                                # Dispatcher — detects backends, routes audits (~2K tokens)
├── DECISIONS.md                            # Locked architecture decisions (D1-D4 + supersessions)
├── core/
│   ├── workflow.md                         # Universal 7-step audit workflow
│   ├── detection.md                        # Backend detection + JSON manifest
│   ├── scoring.md                          # Per-backend weights, min-aggregation
│   ├── reporting.md                        # Unified report format (text + JSON)
│   └── credentials.md                      # Public-vs-privileged key handling
├── backends/
│   ├── supabase/                           # Phase 1 — implemented
│   │   ├── workflow.md                     # 7-step audit specialized for Supabase
│   │   ├── audit-queries.md                # 20 SQL queries for schema introspection
│   │   ├── anti-patterns.md                # 27 patterns (SB-001..SB-027)
│   │   └── fix-templates.md                # SQL fix templates (7 RLS patterns + more)
│   └── mongodb/                            # Phase 2 — implemented
│       ├── workflow.md                     # 7-step audit specialized for MongoDB
│       ├── introspection.md                # mongosh + Atlas Admin API + IaC scan
│       ├── anti-patterns.md                # 20 patterns (MG-SH-001..014, MG-AT-001..006)
│       ├── mongobleed-probe.md             # Safe CVE-2025-14847 single-packet detector
│       ├── fix-templates.md                # Version matrix + mongod.conf + validators + Atlas TF
│       └── test-recipe.md                  # Document-only end-to-end test recipe
├── compat/
│   └── supabase-sentinel/                  # Backwards-compat shim (forces backend=supabase)
│       └── SKILL.md
├── references/
│   ├── vibe-coding-context.md              # CVE-2025-48757, breach studies — cross-backend
│   └── cve-feed.md                         # Cross-backend CVE list (MongoBleed seeded)
├── assets/
│   └── ci/
│       ├── github-action-supabase.yml      # 1 job — security audit
│       └── github-action-mongodb.yml       # 3 jobs — static IaC, live audit, MongoBleed probe
├── README.md                               # this file
├── LICENSE                                 # MIT
├── DECISIONS.md
└── sentinel-implementation-plan.md         # Multi-backend expansion roadmap

プログレッシブ開示の仕組み: Claudeは、最初にSKILL.md (約2Kトークン) とcore/*のみを読み込みます。検出によってバックエンドが特定されると、対応するbackends/<name>/workflow.mdとオンデマンドのリファレンスファイルが読み込まれます。Supabaseのみの監査ではMongoDBコンテンツのコストを負担しません。将来のFirebase / Postgres / MySQL拡張も同じパターンに従います。


継続的モニタリング (GitHub Actions)

実装済みの各バックエンドにはCIワークフローテンプレートが同梱されています:

バックエンドワークフロージョブモード
Supabaseassets/ci/github-action-supabase.yml単一ジョブ — セキュリティ監査 (イントロスペクション + 動的プローブ)
MongoDB

ワークフローは、関連ファイルの変更 (マイグレーション、ルールファイル、IaC、依存関係マニフェスト)、毎週のcron (月曜06:00 UTC)、および手動実行でトリガーされます。PRコメントを投稿し、レポートの成果物をアップロードし、重大な検出結果があるとビルドを失敗させます。

あとは、「Set up continuous security monitoring for this project.」と依頼するだけです。


研究の裏付け

Database Sentinelのアンチパターンデータベースは以下から収集されています:

Supabase / Firebase / vibe-codingエコシステム

  • CVE-2025-48757 — 170以上のLovableアプリが露出、CVSS 9.3 (Matt Palmer、2025年5月)
  • Escape.tech — 5,600以上のvibe-codedアプリで2,000以上の脆弱性 (2025年10月)
  • Veracode — AI生成コードの45%がOWASP Top 10の脆弱性を生み出す (2025年7月)
  • Carnegie Mellon SusVibes — 機能的に正しいAIコードの82.8%が安全でなかった (2025年12月)
  • SupaExplorer — インディーアプリの11%がSupabase認証情報を露出 (2026年1月)
  • ModernPentest — 107のYCスタートアップで2,010万件のレコードが露出 (2026年3月)
  • OpenFirebase / Icex0 (2025年9月) — 認証なしの読み書きが可能な約150のFirebaseアプリ
  • Zendata (2025年5月) — 900以上のアプリで180万件の平文Firebaseパスワードが漏洩
  • GitGuardian — 公開GitHubで1,980万件のFirebaseシークレットが漏洩
  • Supabase Splinter — 公式セキュリティlint全16種をマッピングし拡張
  • Wiz Research — Base44 vibe-codingプラットフォームの重大な認証バイパス (2025年7月)

MongoDB / Atlas

  • CVE-2025-14847 "MongoBleed" (CVSS 8.7、CISA KEV) — 認証前のヒープ開示、約87Kの露出インスタンス
  • CVE-2024-53900 / CVE-2025-23061 — Mongoose populate-match $whereインジェクション
  • CVE-2025-30706 — MongoDB Connector/Jの重大な脆弱性 (Oracle CPU 2025年4月)
  • MongoDB Atlas Data APIの非推奨化 (2025年9月30日)
  • Shadowserver / Meowランサムウェアの追跡 (2024〜2025年のスイープを継続中)
  • CIS MongoDB 7 Benchmark v1.2

完全な引用セットについては、references/vibe-coding-context.mdとreferences/cve-feed.mdを参照してください。


Database Sentinelが検出し、組み込みツールが見逃す問題


安全性

Database Sentinelは、本番環境での使用に安全なように設計されています:

  • デフォルトで読み取り専用。 イントロスペクションクエリは、システムカタログ (pg_tables、pg_policies、getCmdLineOpts など) のみを読み取ります。デフォルトではDDLもDMLも実行されません。
  • 書き込みプローブはオプトイン。 バックエンドごとの戦略:
    • Supabase — Prefer: tx=rollback (PostgRESTネイティブ; 変更されるデータはゼロ)
    • Postgres self-hosted — BEGIN…ROLLBACK (トランザクションDDL)
    • MongoDB replica/sharded — セッション + abortTransaction()
    • MongoDB standalone — カナリアコレクションのinsert+delete (ベストエフォートのクリーンアップ、オプトインとして位置づけ)
    • Firebase — /_sentinel_probe/{random} のカナリアコレクション
    • MySQL self-hosted — _sentinel_probeスキーマ + DROP DATABASE (オプトイン、破壊的 — 明示的な警告)
  • ネットワークプローブ (MongoBleed) は二重オプトイン。 監査ポリシーでネットワークプローブを有効化し、かつユーザーがホストの所有権を別途確認する必要があります。単一の42バイトの読み取り専用テストであっても、一部の監視ツールはプローブパケットに対してアラートを発します。
  • 認証プローブは.invalid TLDを使用。 テストメールには、メールを受信できないRFC 6761予約ドメインを使用します。

コントリビューション

コントリビューションを歓迎します。最も価値の高い貢献:

  1. 新しいアンチパターン — データベースにないセキュリティ問題を発見しましたか? 重大度、検出クエリ、修正コード、実世界のエビデンス (CVE / 侵害 / Splinter / CIS) を添えて、関連するbackends/<name>/anti-patterns.mdに追加してください。
  2. 修正テンプレートの改善 — backends/<name>/fix-templates.mdにおける、より良いポリシーパターン、エッジケース、パフォーマンス最適化。
  3. ライブテスト — 自身のバックエンドに対してDatabase Sentinelを実行し、誤検知 / 見逃しを報告してください。ライブテストによって、フェーズ2で実際の3つのバグが発見されました (backends/mongodb/mongobleed-probe.mdの「経験的に検証済み」注釈を参照)。
  4. 新しいバックエンド拡張 — フェーズ3〜5は空いています。backends/mongodb/とbackends/supabase/の構造に従ってください。実装計画 (sentinel-implementation-plan.md) に各フェーズの契約が記載されています。
  5. Vibe-codingパターンの帰属 — Cursor / Bolt / Lovable / Claude CodeによってAI生成された可能性が高いパターンを見つけたら、それを文書化してください。これがこのプロジェクトの切り口です。

コントリビューション方法

  1. リポジトリをフォークする
  2. ブランチを作成する (git checkout -b add-new-pattern)
  3. 明確なドキュメントと引用を添えて変更を追加する
  4. パターンとエビデンスの説明を添えてPRを作成する

ロードマップ

次にリリース予定

  • フェーズ3 — Firebase (Firestore + RTDB + Storage + Cloud Functions + Remote Config + App Check)。最大の拡張です。トークン予算を管理するため、Firebase製品ごとにサブモジュールを用意します。
  • フェーズ4 — PostgreSQLセルフホスト、pgBouncerを含む (CVE-2025-12819検出)
  • フェーズ5 — MySQLセルフホスト (Oracle CPU CVEのカバレッジ; 8.4+向けのmysql_native_password非推奨化対応)
  • フェーズ6 — クロスバックエンド相互作用分析 (Firebase Auth → Postgresの信頼パスなど)
  • フェーズ7 — READMEの仕上げ (本ファイル)、BACKENDS.mdクイックリファレンス、supabase-sentinelシムの非推奨化タイムライン

将来の予定

  • CLIツール — Claude以外の環境向けのnpx database-sentinel audit
  • MCPサーバー — CI/CDおよびダッシュボード向けのプログラムによるアクセス
  • VS Code拡張機能 — エディタ内のインラインセキュリティ警告
  • プレミアムダッシュボード — 履歴トレンド、マルチプロジェクトビュー、Slackアラート

名称の歴史

  • Supabase Sentinel (v1) — 単一バックエンドのSupabase監査ツール。最初のリリース。
  • Sentinel (フェーズ1のアーキテクチャリファクタリング中の作業名)
  • DB Sentinel (v2、マルチバックエンド展開中の暫定作業名)
  • Database Sentinel (v3、現在) — マルチバックエンド。スキル発見を明確にするフレーミングとGitHubリポジトリ名に合わせるため、完全な単語「database」を使用

supabase-sentinelスキル名は、compat/supabase-sentinel/の互換シムを介して引き続き機能します。監査をSupabaseのみに限定し、v1と区別できない出力を生成します。廃止予定日: 未定 (TBD)。少なくとも次のマイナーリリースまでは維持されます。


ライセンス

MIT — 商用かどうかにかかわらず、好きなように使用できます。


vibe-coding時代のために作られました。
「動くこと」と「安全であること」は、まったく別のものだからです。

ツールをダウンロード
重大度パターン内容
🔴 重大SB-001 RLS_DISABLED行レベルセキュリティ (RLS) がないテーブル — インターネットに完全に露出
🔴 重大SB-002 SERVICE_ROLE_EXPOSEDフロントエンドコード内のservice_roleキー — すべてのセキュリティをバイパス
🔴 重大SB-003 POLICIES_BUT_NO_RLSポリシーは作成済みだがRLSが有効化されていない — 偽りのセキュリティ
🔴 重大SB-005 WRITE_USING_TRUEUSING(true)を使用したINSERT/UPDATE/DELETE — 誰でも変更可能
🟠 高SB-006 USING_TRUE_SELECT機密テーブルの全行が匿名ユーザーに読み取り可能
🟠 高SB-007 VIEW_NO_SECURITY_INVOKERビューがRLSをバイパスし、スーパーユーザーとして実行
🟠 高SB-008 SECURITY_DEFINER_EXPOSEDpublicスキーマ内の関数がRLSをバイパスし、API経由で呼び出し可能
🟠 高SB-009 USER_METADATA_IN_POLICYポリシーがユーザー変更可能なメタデータを参照 — 権限昇格
🟠 高SB-010 UPDATE_NO_WITHCHECKWITH CHECKのないUPDATEポリシー — マスアサインメントのリスク
🟠 高SB-011 GHOST_AUTH未確認メールでの登録が認証済みセッションを付与
🟠 高SB-012 STORAGE_NO_RLSアクセス制御ポリシーのないストレージバケット
🟠 高SB-013 JWT_SECRET_EXPOSEDJWT署名シークレットの漏洩 — 任意のユーザーのトークンを偽造可能
🟡 中+ さらに15パターンbackends/supabase/anti-patterns.mdを参照
重大度パターン内容
🔴 重大MG-SH-001 MongoBleed (CVE-2025-14847、CISA KEV)巧妙に細工された圧縮パケットによる認証前のヒープメモリ開示。開示時点で約87Kインスタンスが露出。
🔴 重大MG-SH-002 認証無効認証なしで実行されているmongod — Meowランサムウェアの攻撃対象
🔴 重大MG-SH-003 インターネット公開mongod--bind_ip_all + 27017に到達可能 — MG-SH-002と組み合わせると完全に侵害
🔴 重大MG-AT-001 Atlas許可リスト 0.0.0.0/0インターネット上のどこからでも到達可能なAtlasクラスター
🟠 高MG-SH-004 localhost認証バイパス + コンテナ実行enableLocalhostAuthBypassがtrue + docker execアクセス
🟠 高MG-SH-005 サーバーサイドJS有効$where / $function / mapReduceに到達可能 — NoSQL-RCEの攻撃面
🟠 高MG-SH-006 TLS不要ネットワーク上の平文トラフィック
🟠 高MG-SH-007 アプリユーザーへの特権ロールアプリがroot / dbAdminAnyDatabase などで接続
🟠 高MG-SH-008 自己変更可能なロールドキュメントfindByIdAndUpdate(id, req.body) + バリデータなし + roleフィールド
🟠 高MG-AT-002 Atlas FunctionのDBパススルーHTTPS経由のNoSQLインジェクション — Data API廃止後に拡散
🟠 高MG-AT-003 コード内に残るAtlas Data API2025年9月30日に非推奨化。壊れている上、監査が甘いFunctionsに移行されている可能性が高い
🟡 中MG-SH-009 Mongoose < 8.9.5CVE-2024-53900 / CVE-2025-23061 — populate-match $whereインジェクション
🟡 中+ さらに8パターンbackends/mongodb/anti-patterns.mdを参照
assets/ci/github-action-mongodb.yml
3つのジョブ — 静的IaCスキャン (常に実行、シークレット不要)、ライブ監査 (vars.AUDIT_LIVE == 'true'でゲート)、MongoBleedプローブ (vars.MONGOBLEED_PROBE == 'true' + 所有権の確認でゲート)
バックエンド組み込みツール見逃す内容Database Sentinelの対応
SupabaseSplinter (16 lint)ポリシーが実際に不正アクセスを防いでいるかどうか全テーブルに対する全CRUDパスのライブtx=rollbackテスト
SupabaseSplinterゴースト認証 (メール確認バイパス).invalid TLDを使用したサインアッププローブ
SupabaseSplinterWITH CHECKのないUPDATEによるマスアサインメント + 機密列列名とポリシーの形状を相互参照
SupabaseSplinterコードベースのスキャンフロントエンドコード内のservice_roleキー、ハードコードされたJWT、コミットされた.envファイルを検出
MongoDBAtlas AdvisorMongoBleedの実行時確認単一パケットのプロトコルレベル検出器 (7.0.20 + 7.0.28で検証済み)
MongoDBAtlas Advisor自己変更可能なロールドキュメントソースパターン + コレクションバリデータのクロスチェック
MongoDBTrivy / AikidoAtlas固有の設定 (許可リスト、IAM、CMK)Atlas Admin APIの直接監査
MongoDBmongoaudit (2018年に開発停止)2025年以降もアクティブ2025〜2026年のCVEを含む保守されたパターンカタログ
  • 認証情報は保存されません。 監査中はメモリ上に保持され、終了時に破棄されます。レポートは認証情報の値を秘匿化します。
  • オープンソース。 監査人を監査 — すべてのクエリ、プローブ、パターンはこのリポジトリにあります。