> 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/aikido-agent/sast-autotriage.md).

# SAST の自動トリアージ

SAST AutoTriage は次のように [Aikido Agent](/docs/docs-ja/aikido-agent/aikido-agent.md) 静的解析のノイズを減らし、実際のセキュリティ脅威である問題に集中できるようにします。まず悪用可能性を排除しようとし、その後（必要な場合のみ）残った検出結果を (1) 悪用可能性、(2) 悪用された場合の重大度 に基づいて順位付けします。主に SAST の検出結果に対して動作し、ローカル IDE、PR チェック、定期的な再スキャンなど、使い慣れたワークフローに組み込まれます。

{% hint style="info" %}
AutoTriage は主に SAST を対象としています。少数のクラウドおよびコンテナのチェックも、コンテキスト上、同様の昇格/降格の判断が可能な場合にサポートされます。
{% endhint %}

## AutoTriage とは何か（そして何ではないか）

AutoTriage 自体はスキャナーではありません。スキャンの下流に位置し、 ***悪用可能性*** と ***深刻度*** について、コードとそのコンテキストに基づいて判断します。

SAST の問題の大半について、Aikido は Aikido 定義のルールに基づいてトリアージを行います。より複雑なケースでは、Aikido は推論モデルを使って、より微妙な制御フローとデータフローを解釈します。これには、呼び出しツリーを計算して関連するコードスニペットを構築し、脆弱性のシンクに渡される変数を参照する呼び出し先関数を組み込むことが含まれます。

Aikido の内部評価では、このアプローチは推論しない手法と比べて、そうした複雑なケースにおける偽陽性をおよそ 2 倍検出します。

## AutoTriage の仕組み

#### トリアージ前の誤検知フィルタリング

**AutoTriage が LLM を使ってコードを確認する前に**、Aikido の [到達可能性](/docs/docs-ja/hajimeni/reachability-analysis/reachability-engine-to-remove-false-positives.md) エンジンが、脆弱なコードパスがアプリケーション内で実際に到達可能かどうかを確認して偽陽性を除外します。これには次が含まれる場合があります。

* 影響を受ける関数を実際に呼び出しているかを確認する
* 脆弱な依存関係がツール内でのみ使用され、プロダクションでは使われていないかを追跡する
* ソースとシンクの間にサニタイズがあるかを確認する
* 古い、または未使用のコードパスを削除する

これらの手順だけでも、多くの従来型スキャナーと比べて、アラートのかなりの部分を抑制できます。

> 信頼されていない入力から危険なシンクへの経路が存在しない、またはその使用がプロダクションのフロー外にあると到達可能性分析で判断されたため、多くの潜在的な問題が自動的に無視としてマークされることに気づくでしょう。

<figure><img src="/files/e1a164ae36acc4bdb84970fda2b5183fd4717839" alt=""><figcaption></figcaption></figure>

悪用可能性を排除できない場合、AutoTriage は優先順位付けに進みます。

### 優先度スコアリング

問題が依然として悪用可能である可能性がある場合、AutoTriage は発生可能性と影響を評価して優先度を設定します。Aikido の重大度スコア（0〜100）を起点に、前段のステップで収集したコードコンテキストを使って上下に調整します。

> **例：**
>
> * SQL インジェクションのレポートは安全に ***降格*** できます。もし入力変数が、すでに上流で検証済みのデータベースのような信頼できるソースに由来している場合です。
> * NoSQL インジェクションのリスクがあるログインエンドポイントは ***昇格*** され、「非常に高い修正優先度」となることがあります。これは攻撃が単純で、以下に示すように認証へ直接影響するためです。

<figure><img src="/files/4013de2cb46279802c3e025071d2ea8f2ecc2bf7" alt=""><figcaption></figcaption></figure>

#### 真の陽性であれば、AutoFix は

トリアージされた真の陽性について、Aikido はを通じて推奨パッチを生成し [AutoFix](/docs/docs-ja/autofix-to/overview-aikido-autofix.md) 、レビュー用のプルリクエストを開くことができます。AutoFix は報告された脆弱性のみを対象とし、GitHub、GitLab、Bitbucket、Azure DevOps の PR チェックに加えて、ローカル IDE でも利用できます。

### AutoTriage が考慮するシグナル

AutoTriage は **コンテキストを強く必要とする** という設計です。実際には、次のような点を考慮します。

* ユーザー入力が機密性の高いシンクに到達可能かどうか、およびサニタイズ/検証の有無と有効性
* 入力が信頼できるストアに由来するかどうか、また脆弱なコードが本番で使われているか、それともビルド時やテスト時に使われているか
* データの機密性などのビジネス影響シグナル
* 複雑なルールでは、推論モデルが OS 固有の区切り文字やパス解決の意味論などの境界ケースを評価します

## Ask Aikido

クリック **Ask Aikido** の **推奨事項** パネルでチャットできる [Aikido Agent](/docs/docs-ja/aikido-agent/ask-aikido.md) 脆弱性について、たとえばなぜフラグが付いたのか、脆弱なコードにどう到達するのか、または知りたいことなら何でも。

<figure><img src="/files/d51cf3c3e83dc61d23275e5ffe0d945a29819af6" 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/aikido-agent/sast-autotriage.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.
