# GraphQL APIスキャン

{% hint style="warning" %}
**GraphQL API のテストには、Agentic Scan が推奨オプションです。** GraphQL スキャナーでは見つけられない、ファジング形式のチェックに加えて、ビジネスロジックの不具合、IDOR、テナント間データ漏えいをカバーします。詳細は [Aikido Pentest](https://help.aikido.dev/docs/docs-ja/pentests/aikido-pentest).
{% endhint %}

Aikido は、GraphQL に特有のエンドポイント脆弱性を見つけるために、GraphQL API エンドポイントをスキャンできます。私たちが使用する方法の 1 つは API ファジングで、これは基本的に API 内の各フィールドに危険なペイロードを大量に送信することを含みます。

{% hint style="danger" %}
本番環境では絶対に実行せず、停止の可能性を避けるため常にステージング環境で実行してください
{% endhint %}

### 主なユースケース <a href="#main-use-cases" id="main-use-cases"></a>

すべてのチェックは次で確認できます： [Aikido アプリはこちら](https://app.aikido.dev/domains/checks?scanner=graphql).

### GraphQL API スキャンの設定 <a href="#setting-up-graphql-api-scanning" id="setting-up-graphql-api-scanning"></a>

**ステップ 1:** クリックします **ドメインを追加** を [ドメイン概要](https://app.aikido.dev/domains)、展開 **Advanced** スキャンタイプ選択画面で **GraphQL**

![詳細セクションが展開され、REST API と GraphQL のオプションが表示されているスキャンタイプ選択モーダル。](https://help.aikido.dev/_assets/7bcef72c2b99/Screenshot-2026-06-26-at-11.20.03.png)

**手順 2.** 次のドメイン名を入力してください： **ステージング環境**。これは GraphQL API のベース URL であることを確認してください（例： `https://example.io/graphql`)

![GraphQL エンドポイントのドメイン名を入力する入力欄。](https://help.aikido.dev/_assets/eef60791f21a/ucarecdn-7d9ed9dd-97d3-4063-8a12-d15534fa4430.png)

**ステップ 3:** 保存をクリックすると、Aikido が GraphQL API のスキャンを開始します。

**ステップ 4. 認証：** API と通信するために必要であれば、認証情報も追加できることに注意してください。これを行うには、ドメインの三点メニューをクリックし、その後「**ドメインを認証**'

![スキャン、設定、認証、削除の各オプションを提供するドメイン操作メニュー。](https://help.aikido.dev/_assets/e5ee7225452f/ucarecdn-93e28303-bdd8-43f4-ad11-ed62a73d5cc7.png)

これにより、認証情報を入力できるモーダルが表示されます。対応している認証方法の一覧は、次を参照してください： [REST/GraphQL向け認証済みAPIスキャン](https://help.aikido.dev/docs/docs-ja/dast-surface-monitoring/api-scanning/authenticated-api-scanning-for-rest-graphql).

![フォームベースのログイン認証情報を有効にするためのドメイン認証設定フォーム。](https://help.aikido.dev/_assets/3c5ab0eba214/ucarecdn-42a1f3d3-08d5-4a6b-a142-aeaaeda72705.png)

### Aikido のトラフィックを識別する

Aikido の REST および GraphQL スキャンから送信されるすべてのリクエストには、次が含まれます：

* その `User-Agent` が `aikido-scan-agent/1.0`
* 次のヘッダー `aikido-api-test` に設定された値 `1` リクエスト内で
* [は、ここに記載されている IP から送信されます](https://help.aikido.dev/docs/docs-ja/dast-surface-monitoring/miscellaneous/allowing-ip-addresses-for-dast-surface-monitoring)
