> 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/kdosukyan/scanning-practices/sast-autotriage.md).

# SAST AutoTriageによるノイズ除去

AutoTriageは静的解析のノイズを減らし、エンジニアが実際のセキュリティ脅威となる問題に集中できるようにします。まず悪用可能性を排除できるかを試し、必要な場合にのみ、残った検出結果を(1)悪用可能性、(2)悪用された場合の深刻度で順位付けします。Aikidoでは、AutoTriageは主に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固有の区切り文字やパス解決の意味論などのエッジケースを評価します

## Aikidoに質問する

クリック **Aikidoに質問する** を **推奨事項** 脆弱性について質問するためのパネル。たとえば、なぜフラグされたのか、どのように脆弱なコードに到達するのか、その他知りたいことなら何でも。

<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/kdosukyan/scanning-practices/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.
