CyberGlossary

アプリケーションセキュリティ

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

別称: 静的解析, ホワイトボックステスト

定義

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

SAST ツールはコードを抽象構文木や制御フロー・データフローグラフなど中間表現に変換し、ルールや汚染解析(taint analysis)を用いて CWE に紐づく安全でないパターンを検出します。実行を伴わないため、IDE、pre-commit フック、CI/CD パイプラインに自然に組み込め、まだ稼働していないコードも解析できます。SAST は SQL インジェクション、XSS のシンク、ハードコードされた秘密情報、弱い暗号など決定論的な欠陥に強い一方、誤検知が多くランタイム特有の問題は検知しにくいため、SCA や DAST と併用するのが一般的です。代表的なツールには Semgrep、GitHub CodeQL、SonarQube、Checkmarx、Fortify があります。

  • OWASP Top 10 ルールセットを使い、Pull Request ごとに Semgrep を実行する。
  • GitHub CodeQL を用いて、Java サービスのパストラバーサルをマージ前に検出する。

関連用語