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(静的アプリケーションセキュリティテスト) の別名は何ですか?

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

関連用語

関連項目