> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/pentesuto/configure-a-pentest/leveraging-code-and-documentation.md).

# コードとドキュメントの活用

## 要約

ブラックボックステストは盲目的です。ホワイトボックステストは精密です。リポジトリを接続してシステムに完全な可視性を与え、あとはコンテキストボックスとファイルアップロードで不足部分を補ってください。

<figure><img src="/files/3ad4f80b9c38eaf49a89a624a3a5f6057ebc68e5" alt=""><figcaption></figcaption></figure>

## リポジトリ

{% hint style="warning" %}
**ホワイトボックステストを有効化**\
ソースコードがなければ、システムは盲目的にスキャンするだけです。リポジトリを接続すると、テストは外部からの推測ではなく内部検証へと格上げされます。
{% endhint %}

リポジトリを接続することは、最も大きな効果をもたらす単一のステップです。外側からエンドポイントをつつくだけでなく、システムは実際のソースコードを解析して、アプリケーションがどのようにデータを処理するかを理解します。

* **重要な理由：** 外部スキャンでは到底見えない、深部ロジックの脆弱性を見つけます。
* **選択するもの：** スコープに含まれるすべてのリポジトリ（フロントエンド、バックエンド、IaC）を含めてください。
  * 1回のペンテストにつき接続できるリポジトリは最大6件です。この上限により、ペンテストは単一のアプリケーション向けに最適に構成されます。無関係なサービスでスコープを過剰に詰め込むと、分析の深さが薄れる可能性があります。
  * **さらに必要ですか？** アプリケーションが6件を超えるリポジトリに依存している場合は、サポートチームまでご連絡ください。お客様の具体的なユースケースに合わせて上限を引き上げることができます。
* **結果：** システムはソースから直接、ルートとロジックを把握します。APIの構造を推測する必要はなく、読み取るのです。

<figure><img src="/files/828e8de17ca02fa59d99f6e642d99dfd8aa8592e" alt=""><figcaption></figcaption></figure>

### リポジトリからパスを除外

モノレポの場合は、 **除外パス** 選択したリポジトリの横で、特定のディレクトリを除外して、ペンテストをスコープ内のサービスに集中させます。除外されたパスは、 **適正化** クレジット見積もりから除外されるため、推奨量はテスト対象のコードのみを反映します。

{% hint style="info" %}
攻撃対象領域に実質的に影響するファイルだけが見積もりの対象になります。画像、ドキュメント、README、その他の非コード資産を除外してもクレジット見積もりは下がらず、推奨しません。Aikido はこれらをコンテキストとしてアプリケーションをより深く理解するために使用し、それによってペンテストの品質が向上します。代わりに、無関係なサービスやアプリケーションを除外してください。
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/94ca6d6367b28a30de1f995cb013e013fbc09240" alt="Exclude Paths button next to a selected repository"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/740076bfdabedf95ee1f07835a4a4a913dd8fca1" alt=""><figcaption></figcaption></figure></div>

#### パスマッチングの仕組み

パスは、 **先頭一致の** ルールで、リポジトリのルートから判定されます。ディレクトリのパスを入力すると、そのディレクトリと、その下のすべて（すべてのファイルとフォルダを含む）が除外されます。

{% hint style="warning" %}
**ワイルドカードはサポートされていません。** 次のような文字は `*` パス内ではパターンではなくリテラル文字として扱われます。たとえば、 `/path/*` という名前のファイルまたはフォルダを文字通り除外します `*`。以下のすべてのファイルではありません: `/path`。ディレクトリ全体を除外するには、ディレクトリのパスそのものを入力してください（例： `/path`).
{% endhint %}

| 入力したパス             | 除外されるもの                                          |
| ------------------ | ------------------------------------------------ |
| `/services/legacy` | 次の `services/legacy` ディレクトリと、その下のすべてのファイルおよびフォルダ |
| `/apps/admin`      | 次の `apps/admin` ディレクトリと、その中にネストされたすべて            |
| `/README.md`       | ファイルのみ `README.md` リポジトリのルートにある                  |

## データをアップロード

ファイルは、コードだけでは明らかにならない構造的要素を補います。

* **OpenAPI仕様（JSON / YAML）：** システムにAPIサーフェスの完全な地図を与えます。これにより、クロールできるものだけでなく、すべてのエンドポイントに対して操作や攻撃を行えるようになります。
* **オフラインドキュメント（README.md / 仕様）：** 対象とその脅威モデルについての深いコンテキストをシステムに提供し、意図された設計と実際の脆弱性を見分けるのに役立ちます。
* **ユーザーロール定義：** サポートされるロールの一覧（例：Admin と Viewer）と、それぞれの制約です。システムはこれを使って、特定のユーザーが *してはならない* アクセスできる。
* **ワークフローと高レベル構造：** 「Checkout」や「Onboarding」のような複雑なフローや、アプリ全体の構造の説明。
* **過去のペンテストレポート（PDF）：** システムに履歴データを与えます。これを使って過去の修正を検証（回帰テスト）し、コード内の他の場所にある同種のバグの派生を探します。

{% hint style="info" %}
**データの永続化**

お客様のデータを暗号化して保持するのには、実務的に2つの理由があります：

1\. 継続的なペンテストと再現性 セキュリティは一度きりではありません。再スキャンや継続テストを実行したとき、これらの攻撃リソースを使ってテストの一貫性を確保します。スキャンが起動されるたびにスコープを再設定したくはないはずです。

2\. 監査と法的防御 SOC2 や ISO 27001 では、証明する必要があります *どのように* テストしたかを。私たちは、このデータを防御可能な監査証跡の作成のために保持しています。これにより、スコープに何が含まれていたのかを正確に説明でき、単なる表面的なスキャンではなく、完全なホワイトボックス可視性のもとでテストが行われたことを証明できます。
{% endhint %}

<figure><img src="/files/488b5d6095fc23dd9838f8f4450d86ee248e6692" alt=""><figcaption></figcaption></figure>

## 追加メモ

コードは構文を示しますが、意図までは常に示しません。リポジトリやドキュメントに明示されていない、価値のある情報はこのテキストボックスに入力してください。

* **ビジネスロジック：** バグのように見えてもバグではないルールを説明してください（例：「管理者はすべてのユーザーデータを閲覧できます」）。
* **アーキテクチャ上の癖：** 「OAuth の独自実装を使っています」や「このサービスではデータベースは読み取り専用です。」
* **既知の抜け漏れ：** 「リポジトリ内のAPIドキュメントは、支払いサービスについて少し古くなっています。」

<figure><img src="/files/9ed6717b517a4bee7841a09fc75e78a9823f033a" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2cd3760e06155c74e0c0c1d204bc9ea238a898b4" alt=""><figcaption></figcaption></figure>

## ドキュメントリンクを追加

ドキュメントがオンラインで公開されている場合は、URLを直接追加できます。

<figure><img src="/files/5fb9486d7a18841643622d84f57647ff14b26ab4" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/0db545f0a0589519e9bd0a95bcac3e1c6c400109" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/docs/docs-ja/pentesuto/configure-a-pentest/leveraging-code-and-documentation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
