> 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-xiu-zheng/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.
