> 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/to/overview-aikido-autofix.md).

# AutoFixの概要

多くのセキュリティプログラムが修正ではなく脆弱性の発見に最適化されている一方で、 **AutoFix** Aikidoプラットフォームでは、リメディエーションを中核ワークフローとして扱います。AutoFixは、オープンソース依存関係、アプリケーションコード、Infrastructure as Code、コンテナ、さらにはペンテストの検出結果に対しても、具体的でレビュー可能なパッチを生成し、PR、CIゲート、IDEといった、エンジニアがすでに使っている同じチャネルを通じて提供します。

AutoFixは以下のユースケースで利用できます

* [オープンソース依存関係](/docs/docs-ja/to/scope/autofix-for-open-source-dependencies.md) （ [Aikido Libraries](/docs/docs-ja/to/aikido-libraries-overview.md) そのまま置き換え可能な代替版を含む）
* [SASTおよびIaCの問題](/docs/docs-ja/to/scope/ai-autofix-for-sast-and-iac-issues.md)
* [コンテナ](/docs/docs-ja/to/scope/ai-autofix-for-containers.md) （ [Aikido Images](/docs/docs-ja/to/scope/autofix-for-containers-using-aikido-images.md) CVEゼロのベースイメージ）
* ペンテストの問題
* AIコード監査の問題

***

### AutoFixがワークフローにどう組み込まれるか

AutoFixは、あなたがすでに作業している場所に表示されるよう設計されています。

* **IDE連携。** AikidoのIDEプラグインは、SAST、IaC、依存関係の問題をエディタ内に直接表示します。問題が検出されると、AutoFixは作業中のコピーに適用できるインライン差分を提示し、脆弱性が共有ブランチに到達するのを防ぎます。
* **CIおよびPRのゲーティング。** PRおよびリリースのゲーティングが有効な場合、Aikidoはパイプラインのブランチとプルリクエストをスキャンして、新しいSASTおよびIaCの問題を検出します。新たな問題が導入されている場合、AutoFixはクリック一つで適用できる修正提案を提示します。
* **手動および自動のPR作成。** AutoFixのPRはAikidoのUIから手動で作成することも、選択したリポジトリと問題タイプ向けに毎日生成されるよう設定することもできます。AikidoではPRのメタデータを細かく調整できるため、AutoFix PRを既存のコントリビューションガイドラインやタスク管理の慣行に合わせられます。

***

### AutoFixがカバーする範囲

#### オープンソース依存関係

オープンソース依存関係については、AutoFixはパッケージのアップグレードやその他の互換性のある変更によって脆弱性を取り除く変更を提案します。多くの場合、AutoFixを1回実行するだけで、個別に対処するのではなく脆弱性のクラス全体を除去できます。

既定では、AutoFixは脆弱性を修正するのに必要な最小バージョンを提案します。大きなアップグレードよりも、マイナーおよびパッチの更新を優先します。大きなアップグレードが提案されるのは、より低いバージョンでは問題を解決できない場合です。

内部的には、AutoFixは依存関係ツリーを解析して、変更を適用する最適な箇所を見つけます。これはしばしば、直接依存関係をアップグレードすることで、複数の脆弱な推移的依存関係が一度に更新される形になります。

**Aikido Libraries**

脆弱な依存関係は、上流の修正が互換性を壊すメジャーバージョン変更を必要とする場合や、メンテナーがまだ修正を出していない場合には、修正が難しいことがあります。Aikidoはこれに **Aikido Libraries**を用いて対処します。これは、同じパッケージ名とベースバージョンを維持しつつ、セキュリティパッチをバックポートした、脆弱なオープンソースパッケージのそのまま置き換え可能な代替版です。

Aikido Librariesのバリアントは、CVEを除去しながら元のバージョンと100%互換になるよう設計されており、完全なメジャーアップグレードが可能になるまでの長期的な解決策としても、一時的なつなぎとしても利用できます。AutoFixは、利用可能な場合、Aikido Librariesのアップグレードを依存関係AutoFixの概要に直接表示します。Aikido Librariesのバリアントは、JavaScript、Java、Python、PHP、.NETで利用できます。

#### SASTおよびIaCの問題

アプリケーションコードについては、AutoFixはJavaScript、Java、.NET、PHP、Python、Ruby、Go、Elixir、Rust、C、Kotlin、Scala、Swiftといった幅広い言語にわたり、ルール固有のパッチを生成します。各SASTのAutoFixは、特定のルールと修正パターンに紐づいています。そのルールの指示は、変更を最小限に抑え、動作を維持し、目先の症状だけでなく根本原因に対処するよう調整されています。

AutoFixはこれらのパッチに対してエージェント的なアプローチを採用します。関連するコードコンテキストを収集し、修正計画を立て、そのうえで読みやすくレビューしやすいよう設計された最小限の修正を適用します。すべてのSAST AutoFixについて、Aikidoは信頼度（高・中・低）を割り当て、生成された変更が脆弱性を修正し、かつ正しい動作を維持することをどれだけ強くベンチマークで示唆しているかを反映します。

Infrastructure as Code（IaC）のAutoFixも同じパターンに従いますが、アプリケーションロジックではなく設定を対象にします。これらは、AWS、GCP、Azure、Kubernetes全体で、公開されているリソース、弱いTLS終端、暗号化の欠如などの安全でないインフラ定義を対象とします。

#### コンテナとベースイメージ

コンテナAutoFixは、イメージスキャンとDockerfileの情報を組み合わせて、具体的なベースイメージの更新とOSレベルの修正を提案します。

主なワークフローはベースイメージのアップグレードに重点を置いています。コンテナのベースイメージで脆弱性が見つかると、Aikidoはパッチ、マイナー、メジャーの複数の更新 विकल्पを提案します。各 विकल्पについて、AutoFixはどの脆弱性が修正されるか、また新たにどの脆弱性が導入されるかを表示します。自動選択されたタグが特定のスタックに最適でない場合でも、設定の手間を抑えたまま、ユーザーは評価対象に追加のタグを加えることができます。

関連するすべてのタグをスキャンし、その脆弱性プロファイルを評価するのは簡単ではないため、コンテナAutoFixは提案を算出するためによりコストの高い解析を実行しますが、修正内容と残留リスクの両方を含む結果を返します。Aikidoでスキャンされている限り、公開ベースイメージとプライベートレジストリの両方をサポートします。

**Aikido Images**

より新しいベースイメージへの移行が混乱を招く場合、AutoFixは **Aikido Images**を統合します。これは、メンテナンス中およびサポート終了のベースイメージの両方にわたるCRITICALおよびHIGHの脆弱性を修正した、CVEゼロのベースイメージのレジストリです。Aikidoは新しいCVEが出るたびに、これらのイメージを継続的に再ビルドします。AutoFixは利用可能であればそれらを提案し、Dockerfileのベースイメージを `docker.aikido.io`.

#### ペンテストの検出結果

AutoFixはAikidoのAIペンテストにも組み込まれています。ペンテストで問題が特定されると、Aikidoはコード、コンテナ、クラウド設定にまたがる詳細な根本原因分析を生成します。その後AutoFixはこの分析を使って、観測された症状だけでなく、根本にある欠陥に対処するコード修正を合成できます。

***

### セキュリティとプライバシーに関する考慮事項

#### SAST、IaC、コンテナのAutoFix

SAST、IaC、またはコンテナの問題に対する修正を生成する際、Aikidoは暗号化されたチャネルを通じて、必要最小限のコードスニペットのみをAWS Bedrock上のAIモデルへ送信します。AikidoもAWS Bedrockも、このコードをモデルの学習やファインチューニングには使用しません。

#### 依存関係のAutoFix

サプライチェーン面では、AutoFixは次のようないくつかの構造的な強化作業を支援します。

* GitHub Actionsを特定のコミットに固定する
* ベースイメージをダイジェストに固定する
* 不足しているセキュリティライブラリをインストールする

AutoFixの最終的な目的は、依存関係のアップグレード、小さなコード修正、ベースイメージの更新といった大量の「機械的な」セキュリティ作業を引き受け、人間の労力をアーキテクチャや曖昧なトレードオフに集中できるようにすることです。既定値は、変更を安全で理解しやすいものに保ちながら、リスクを確実に低減するよう設計されています。


---

# 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/to/overview-aikido-autofix.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.
