読み方 : サスト
SAST【Static Application Security Testing】静的アプリケーションセキュリティテスト
概要

プログラムを実行せずにコードの内容を解析して欠陥を発見する「静的解析」(static code analysis)のうち、セキュリティ上の脆弱性に繋がる問題点を洗い出すことを目的とする手法をこのように呼ぶ。解析対象にはソースコードのほか、コンパイル済みのオブジェクトコードや中間コードなどが含まれる場合もある。
SASTツールという自動化ソフトウェアを用いて機械的に点検する手法が一般的である。検出の対象となるのは、SQLインジェクションやクロスサイトスクリプティング、バッファオーバーフローといった典型的な脆弱性の原因となる不適切な入力処理、認証や認可の不備、暗号化処理の誤りなどである。
解析過程では、制御フロー解析やデータフロー解析、既知の脆弱なコードの特徴と照合するパターンマッチングなどの手法を用いてコードの構造や変数の受け渡しを追跡する。実際にプログラムを実行してみる前に、潜在的な欠陥や設計上の問題を検出できる。
一方、SASTは実際にプログラムを実行しないため、外部との通信や実行時の環境に起因する脆弱性は検出しにくいという制約がある。また、ツールが安全なコードを誤って脆弱であると判定する偽陽性(誤検知)が発生することもあり、開発者が診断結果を鵜呑みにせず精査する必要がある。実際の挙動を検査する「DAST」(動的アプリケーションセキュリティテスト)と組み合わせて運用することで、より包括的なセキュリティ対策が可能となる。