Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1086

SAST(静的アプリケーションセキュリティテスト)

監修Cybersecurity entrepreneur & security researcher

SAST(静的アプリケーションセキュリティテスト) とは何ですか?

SAST(静的アプリケーションセキュリティテスト)ソースコード・バイトコード・バイナリを実行せずに自動解析し、インジェクションや安全でない API、弱い暗号などのセキュリティ欠陥を検出する手法。


SAST はコードを中間表現(抽象構文木、制御フローグラフ、データフローグラフ)に解析したうえで、パターンルールや汚染解析(taint analysis)を適用し、CWE 識別子に対応付けられた安全でない構造を検出します。汚染解析はその中核エンジンです。信頼できないソース(HTTP パラメーターやファイルの読み取り)を印付けし、そのデータが変数や関数呼び出しを通じてどのように伝播するかを追跡し、認識されたサニタイザーを経由せずに危険なシンク(SQL クエリ、exec、HTML レスポンス)に到達したときに検出を報告します。何も実行しないため、SAST は IDE、pre-commit フック、CI で動作し、コードがリリースされるはるか前に解析できます。

その盲点はよく知られています。SAST は決定論的なバグ(SQL インジェクション、XSS のシンク、ハードコードされた秘密情報、弱い暗号)に強い一方で、実行時には到達不能なパスに対して誤検知を生み、設定・認証ロジック・ランタイム限定の欠陥を見逃します。そのため成熟したプログラムでは SCA や DAST と併用します。ルールセットのチューニングとノイズのトリアージが、実際の運用コストです。OWASP ASVS や NIST SSDF といった標準は、静的解析を検証コントロールとして参照しています。代表的なエンジンには Semgrep、GitHub CodeQL(コードをデータベースとしてクエリする)、SonarQube、Checkmarx、Fortify、Snyk Code があります。

flowchart LR
  SRC[ソースコード / バイトコード] --> P[AST + CFG + DFG に解析]
  P --> T[汚染解析 + ルール]
  SO[信頼できないソース] -. 追跡されるフロー .-> T
  T --> SK{"サニタイザーを経ずに<br/>シンクへ到達?"}
  SK -->|Yes| F[CWE に対応付けた検出]
  SK -->|No| OK[アラートなし]
  F --> TR[トリアージ: 修正 または 誤検知として印付け]

● 例

  1. 01

    OWASP Top 10 ルールセットを使い、プルリクエストごとに Semgrep を実行する。

  2. 02

    GitHub CodeQL を用いて、Java サービスのパストラバーサルをマージ前に検出する。

● よくある質問

SAST(静的アプリケーションセキュリティテスト) とは何ですか?

ソースコード・バイトコード・バイナリを実行せずに自動解析し、インジェクションや安全でない API、弱い暗号などのセキュリティ欠陥を検出する手法。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。

SAST(静的アプリケーションセキュリティテスト) とはどういう意味ですか?

ソースコード・バイトコード・バイナリを実行せずに自動解析し、インジェクションや安全でない API、弱い暗号などのセキュリティ欠陥を検出する手法。

SAST(静的アプリケーションセキュリティテスト) からどのように防御しますか?

SAST(静的アプリケーションセキュリティテスト) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

SAST(静的アプリケーションセキュリティテスト) の別名は何ですか?

一般的な別名: 静的解析, ホワイトボックステスト。

● 関連用語

● 関連項目