Supabaseプロジェクトとの連携
Supabaseの組織をAikidoに連携すると、pentestエージェントがお使いの環境についてより深いコンテキストを把握できるようになり、見逃されがちなセキュリティ問題の発見に役立ちます。
Supabaseのpentestで何がカバーされるか
Section titled “Supabaseのpentestで何がカバーされるか”Supabase連携により、AikidoはSupabaseプロジェクトの設定をレビューし、pentestエージェントが隠れたセキュリティ問題をより多く発見できるようコンテキストを提供します。
以下の領域がテスト対象です。
- RLSポリシー: 誰がデータを閲覧・変更できるかを決定するものです。設定を誤ると、顧客情報やビジネスデータが意図しないユーザーにアクセス可能になる場合があります。
- ストレージバケット: アップロードされた機密ファイル、ドキュメント、画像、エクスポートデータなどが含まれることが多い領域です。ちょっとした設定ミスで、気づかないうちに機密ファイルが公開状態になることがあります。
- Edge Functions: 決済、アカウント操作、外部連携など、重要なバックエンドロジックを扱うことが多い領域です。適切に保護されていないと、攻撃者にそのロジックを悪用されたり、背後のデータにアクセスされたりする可能性があります。
- PostgRESTの公開範囲: SupabaseはデータベースのデータをAPI経由で公開できます。意図したデータと操作のみにアクセス可能な状態になっているか確認が必要です。
- Auth設定: ログインおよびサインアップの設定はユーザーアカウントを守る要です。設定が甘いと、アカウントの悪用、偽の新規登録、不正アクセスにつながる可能性があります。
- Realtime: Realtime機能はユーザーにリアルタイムで更新情報を送信します。アクセス範囲が広すぎると、誤ったユーザーへの更新配信を通じて機密データが漏洩する可能性があります。
- サービスキーとanonキーの露出: キーはアプリからSupabaseへの接続に使われます。誤った場所で露出すると、攻撃者にプロジェクトを悪用される可能性があります。
- データベース設定: パブリックスキーマの露出や危険な拡張機能により、データベースの機密部分が意図せず開放されることがあります。これをテストすることで、攻撃者がデータにアクセスする前に危険な設定を見つけられます。
Supabaseを連携してpentestを実行する
Section titled “Supabaseを連携してpentestを実行する”Supabaseの連携にはOAuth認可フローが使われます。フロー中に選択したSupabaseの組織へのアクセスがAikidoに許可され、そのアクセス権はSupabase側からいつでも取り消せます。
1. アプリケーションの種類としてSupabaseを選択する
Section titled “1. アプリケーションの種類としてSupabaseを選択する”Aikidoでpentestプロジェクトを開き、Create Assessmentをクリックします。Applicationステップで、pentestの対象とするアプリケーションの種類としてSupabaseを選択します。

2. スコープを定義しSupabaseとの接続を開始する
Section titled “2. スコープを定義しSupabaseとの接続を開始する”Supabaseプロジェクト上に構築されたアプリケーションのエントリーポイントを追加します。これはSupabaseのURLではなく、お使いのアプリケーションのURLである必要があります。
Aikidoはアプリケーションのエントリーポイントを使い、実際の攻撃者と同じ方法でSupabaseの設定をテストします。これにより、エージェントはアプリケーションやビジネスフローのコンテキストを把握でき、特定の設定が意図的なものか、潜在的にリスクがあるものかを判断しやすくなります。
本番環境に近いテスト環境に対してpentestを実行することを推奨します。
Supabase ProjectセクションでConnect Supabaseをクリックし、OAuthフローを開始します。

3. Supabase上でAikidoを認可する
Section titled “3. Supabase上でAikidoを認可する”Supabaseにリダイレクトされ、そこでリクエストされた権限を確認し、アクセスを許可する組織を選択できます。
認可を承認します。Aikidoは短期間有効な認可コードを受け取り、それをリフレッシュトークンと交換してプロジェクト一覧の取得に使用します。Personal Access Tokenを作成・保存する必要はありません。

4. クラウド設定に名前を付ける
Section titled “4. クラウド設定に名前を付ける”Aikidoに戻り、接続したSupabase組織に名前を付け、それが表す環境(本番、ステージングなど)を選択します。これにより、Aikidoが深刻度やビジネスへの影響度に基づいて検出結果の優先順位を付けやすくなります。

5. Supabaseプロジェクトを選択する
Section titled “5. Supabaseプロジェクトを選択する”AikidoはScopeステップに戻ります。Add Projectドロップダウンからテスト対象のプロジェクトを選択します。AikidoはそのプロジェクトのSupabaseドメイン(カスタムドメインが設定されている場合はそのドメイン)を自動的にpentestのスコープに追加します。


6. 残りの設定を完了する
Section titled “6. 残りの設定を完了する”Aikidoでアセスメントフローの残りのステップを進めます。最も重要なのは、テストユーザーを追加すること(Aikidoがアプリの認証済みエリアにアクセスできるようにするため)と、検出されたドメインを確認することです。
各セクションについては以下を参照してください。
- How to Setup a Pentest - 設定フロー全体の概要
- Setting Up Test Users - より深いカバレッジのためのテストユーザーとロールの追加
- Scope of Assessment - ドメインを攻撃可能またはアクセス可能としてマークする
- Leveraging Code and Documentation - エージェントがRLSポリシーやEdge Functionsを推論できるようリポジトリをリンクする
- Safety Measures - 実行前に安全性チェックを確認する
このpentestプロジェクトでSupabaseドメインの所有権をまだ確認していない場合は、Supabase domain verificationの手順に従ってください。
7. pentestを選択する
Section titled “7. pentestを選択する”Pricingステップで、ニーズに合ったpentestの種類を選択します。
- Supabase Test - Supabaseプロジェクトの脆弱性発見に特化したpentestです。
- Standard - Supabase Testも含む、アプリケーションの標準的なpentestです。
- Rightsized - アプリケーションの規模に応じてスケールする、アプリケーションのフルpentestです。こちらもSupabase Testを含みます。
8. pentestを開始する
Section titled “8. pentestを開始する”これで設定は完了です。Launch Pentestをクリックしてアセスメントを開始します。