アプリケーションセキュリティ
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 サービスのパストラバーサルをマージ前に検出する。
関連用語
DAST(動的アプリケーションセキュリティテスト)
稼働中のアプリケーションにネットワーク経由でアクセスして行うブラックボックス型のセキュリティテストで、ランタイムでのみ現れる脆弱性を検出する。
IAST(対話型アプリケーションセキュリティテスト)
稼働中のアプリケーション内部に計装を仕込み、トラフィックやテストで動作している間にコード実行を観察するセキュリティテスト手法。
SCA(ソフトウェアコンポジション解析)
アプリケーションが利用するオープンソース・サードパーティコンポーネントを自動解析し、既知の脆弱性、ライセンス問題、古い・危険な依存関係を洗い出す手法。
Secure Coding
Secure Coding — definition coming soon.
DevSecOps
セキュリティの責任を DevOps のワークフローに組み込み、安全なソフトウェアを継続的かつ高速に提供するための文化とプラクティス群。
OWASP Top 10
OWASP Top 10 — definition coming soon.