SAST
Static Application Security Testing
SAST(静的アプリケーションセキュリティテスト)とは
ひとことで
ソースコードを実行せずに解析し、脆弱なコードパターンを検出するテスト。開発の早い段階で実施できる。
たとえると
建物を建てる前に「設計図」をチェックして、強度不足の箇所を見つけるようなものです。完成した建物に実際に入って叩いて確かめる(DAST)のとは違い、まだ動いていない段階で問題を見つけられます。
現場ではこう使う
開発者がコードをリポジトリに登録すると、CI/CDの仕組みでSASTツールが自動的に動き、ソースコードを解析しました。利用者の入力をそのまま連結してSQL文を作っている箇所がSQLインジェクションの危険ありと指摘されたため、開発者はリリース前にパラメータ化クエリへ書き直しました。
試験のポイント
EXAM POINT「ソースコードを実行せずに解析」「開発の早い段階(シフトレフト)」と出てきたらSASTです。弱点は、誤検知(問題がないのに指摘すること)が多いことと、実行時にしか現れない問題や設定ミスは見つけにくいこと。「稼働中のアプリに外から攻撃を試す」ならDASTを選びましょう。
混同しやすい用語との違い
- DAST稼働中のアプリに外部からリクエストを送って脆弱性を探す。ソースコードは見ない
- ファジング実行中のプログラムに大量のランダムな入力や異常な入力を与えて不具合を探す