> 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-torirsugto/aikido-ci-gating-functionality.md)。実行中のアプリは不要です。

SASTでは、既知のパターンのように見えないロジックや認可のバグは検出できません。プルリクエストの影響には、 [ディープレビュー](/docs/docs-ja/reby/how-deep-review-works.md)を使用してください。既存のソースには、 [AI コード分析](/docs/docs-ja/aikdo/ai-code-analysis.md)を使用してください。SASTに対応する品質面のものは [コード品質](/docs/docs-ja/kdo/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.
