SAST(静的アプリケーションセキュリティテスト)
Static Application Security Testing
さすと
ソースコードやバイナリを実行せずに解析し、セキュリティ上の脆弱性を検出するテスト手法。開発の早い段階で脆弱性を発見でき、CI/CDパイプラインに組み込んで自動実行される。SQLインジェクションやバッファオーバーフローなどのコーディング上の問題を検出する。
Related
他の資格での定義
プログラムを実行せずに、ソースコードやバイナリを解析して、脆弱性につながる記述(入力の検証の漏れ、危険な関数の使用など)を検出する検査の手法。開発の早い段階から実施でき、問題の箇所をコードの行の単位で特定できるが、誤検知が多く、実行時の設定や環境に起因する問題は見つけにくい。実行中のアプリケーションを外から検査するDASTと組み合わせる。
プログラムを実行せずに、ソースコードやバイナリを解析して脆弱性を検出する検査手法。SQLインジェクションやバッファオーバーフローにつながる危険な関数の使用や、入力値が無害化されずに出力に渡る経路などを見つける。開発の早い段階から自動で実行できる一方、誤検知が多く、実行時の設定や環境に起因する問題は見つけにくい。
Related
関連キーワードの用語
システムやアプリケーションに存在する既知の脆弱性を検出するテスト。ネットワーク脆弱性診断とWebアプリケーション脆弱性診断に大別され、ツール(スキャナー)による自動診断と、専門家による手動診断がある。定期的な実施が推奨される。
攻撃者の視点でシステムに対して実際に攻撃を試み、セキュリティ上の弱点を発見するテスト手法。ネットワーク、Webアプリケーション、IoT機器などを対象に、脆弱性の悪用可能性や侵入の影響範囲を検証する。脆弱性診断より実践的な評価が得られる。
プログラムの入力に大量の予期しないデータ(ファズ)を自動的に生成・投入し、異常動作やクラッシュを引き起こすことで未知の脆弱性を発見するテスト手法。バッファオーバーフローやフォーマットストリング脆弱性などの検出に有効。
実行中のアプリケーションに対して外部から疑似的な攻撃リクエストを送信し、脆弱性を検出するテスト手法。ソースコードを必要とせず、ブラックボックス的に検査する。XSS、SQLインジェクション、認証の不備などを実際の動作環境で発見できる。
アプリケーション内部にエージェントを組み込み、実行時の入出力データや内部処理の流れを監視して脆弱性を検出するテスト手法。SASTとDASTの利点を組み合わせ、誤検知を低減しつつ、脆弱性の発生箇所をソースコードレベルで特定できる。
アプリケーションが使用するオープンソースライブラリやサードパーティコンポーネントの脆弱性やライセンス違反を検出する分析手法。SBOMと連携し、既知の脆弱性データベース(NVDなど)と照合して、使用しているコンポーネントのリスクを評価する。
