> 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自体はスキャナーではありません。スキャンの後段に位置し、 ***悪用可能性*** に設定し、 ***severity*** をコードとその文脈に基づいて判断します。

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.
