> 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-by-aikido-supported-languages-and-security-focus.md).

# SAST/IaC: 対応言語とセキュリティの重点

SAST（静的解析）は、信頼できない入力がデータベースクエリに到達する、といった既知の危険なパターンがソースコードにないかをチェックします。接続されたリポジトリとプルリクエストに対して継続的に実行され、 [PR ゲーティング](/docs/docs-ja/pr-torirsunogtingu/aikido-ci-gating-functionality.md)。実行中のアプリは必要ありません。

SAST では、既知のパターンに見えないロジック上のバグや認可バグは検出できません。プルリクエストの影響については、 [Deep Review](/docs/docs-ja/dpureby/how-deep-review-works.md)。既存のソースについては、 [AI Code Analysis](/docs/docs-ja/aikdo/ai-code-analysis.md)。SAST に対応する品質面に相当するのは [Code Quality](/docs/docs-ja/code-quality/code-quality-overview.md).

参照 [どの Aikido 製品を使えばよいですか？](/docs/docs-ja/hajimeni/which-aikido-product-should-i-use.md).

### Aikido の SAST が現在どのように動作するか <a href="#how-aikido-sast-currently-works" id="how-aikido-sast-currently-works"></a>

Aikido の SAST エンジンは、コード内のセキュリティ問題を見つけて優先順位付けするように作られています。ノイズはなく、修正すべき脆弱性だけを提示します。

Aikido の SAST エンジンは、当社の **独自のリスク分類モデル**に基づいています。これらの分類の一部：-

* Aikido は、セキュリティに関係しない検出結果（例：独自のコードスタイル規則）を除外します。
* ユーザーが機密と分類したリポジトリにある検出結果は、より高い重要度に引き上げられます。
* 本番用ではないファイル（例：単体テストや本番で使われない関数）内の検出結果は、重要度が下げられる場合があります。

当社の SAST エンジンは、世の中の優れたオープンソースエンジンも活用しており、長年にわたって大幅にカスタマイズ・微調整することで、より鋭く関連性の高い結果を提供しています。

言語ごとに有効な個別ルールをすべて確認するには、当社の [SAST チェック](https://app.aikido.dev/repositories/sast) または [Infrastructure as Code](https://app.aikido.dev/repositories/iac) チェックで、言語ごとのルールを確認してください。

### 言語サポート <a href="#language-support" id="language-support"></a>

Aikido は言語のバージョンに依存しません。デフォルトでは、すべてのバージョンをサポートしています。\
Aikido は、対応言語を拡大しながら、トップレベルのコントローラーから危険な関数が使われている他のファイルまで、汚染されたユーザー入力の追跡をサポートしています。

| **言語**                                                                  | **ベースエンジン**                                    | **汚染分析**     |
| ----------------------------------------------------------------------- | ---------------------------------------------- | ------------ |
| JavaScript                                                              | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| TypeScript                                                              | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| PHP                                                                     | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| .NET/C#                                                                 | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Java                                                                    | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Rust                                                                    | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Go                                                                      | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Ruby                                                                    | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Python                                                                  | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Scala                                                                   | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| C/C++                                                                   | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Visual Basic                                                            | Aikido エンジン + Opengrep                         | 複数ファイルにまたがって |
| Swift                                                                   | Aikido エンジン + Opengrep                         | ファイル内で       |
| Android                                                                 | Aikido エンジン + Opengrep                         | ファイル内で       |
| Kotlin                                                                  | Aikido エンジン + Opengrep                         | ファイル内で       |
| Dart                                                                    | Aikido エンジン + Opengrep                         | ファイル内で       |
| Elixir                                                                  | Aikido エンジン + Opengrep                         | ファイル内で       |
| Apex                                                                    | Aikido エンジン + Opengrep                         | ファイル内で       |
| Clojure                                                                 | Aikido エンジン + Opengrep                         | ファイル内で       |
| Infrastructure as Code ファイル（Terraform、CloudFormation、Docker、Pulumi、...） | Aikido エンジン + Checkov                          | 該当なし         |
| Git 履歴内のすべてのファイルにおける露出したシークレットの検出                                       | Liveness Checks + Gitleaks を備えた Aikido ベースエンジン | 該当なし         |


---

# 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-by-aikido-supported-languages-and-security-focus.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.
