SAST/DAST

掲載:2024年01月23日

用語集

SAST/DASTとは、アプリケーションのセキュリティ脆弱性を検査するためのテスト手法です。コードレベルの問題を早期に特定するSASTに対して、DASTはアプリケーションが動作する実行環境で攻撃をシミュレートして脆弱性を検出します。どちらもセキュリティ確保のための重要なアプローチであり、組み合わせて実施すると効果的です。

         

SASTとは:ソースコードを解析してバグを検出

SASTは「Static Application Security Testing(静的アプリケーション・セキュリティ・テスト)」の略称です。SASTでは、アプリケーションのソースコードを解析してセキュリティの脆弱性を検出します。アプリケーションがまだ動作しない開発初期の段階でもテストが可能なため、脆弱性を早期に発見することができ、開発時間を短縮し、品質向上にもつなげることができます。

SASTの主な特徴は、以下のとおりです。

項目 特徴
検査対象 ソースコード
検査のタイミング 開発プロセスの初期段階(コードが実行される前)
検査方法 コーディング規約違反や脆弱性パターンの検出
検出できる脆弱性 設計上やコード上の脆弱性
例)バッファオーバーフロー、SQLインジェクションなど
メリット
  • 開発初期に問題を発見できるため修正コストが少ない
  • 自動化しやすい
デメリット
  • プログラミング言語やフレームワークに依存する
  • 誤検知が多い
代表的なSASTツール
  • SonarQube
  • Veracode

DASTとは:攻撃をシミュレートしてバグを検出

DASTは「Dynamic Application Security Testing(動的アプリケーション・セキュリティ・テスト)」の略称です。DASTでは、実行中のアプリケーションに対して、実際のサイバー攻撃をシミュレーションしてテストします。対象の内部構造や実装を意識しないブラックボックステストとして実施され、外部の攻撃者の視点から検査ができ、実行時にしか発見できない脆弱性も検出可能です。

DASTの主な特徴は、以下のとおりです。

項目 特徴
検査対象 実行中のアプリケーション
検査のタイミング アプリケーションの実行環境へのデプロイ後
検査方法 攻撃シミュレーションや実行時の動作分析
検出できる脆弱性 実行時の脆弱性
例)認証の問題、セッション管理の欠陥など
メリット
  • 実行時にしか発見できない脆弱性を検知できる
  • プログラミング言語やフレームワークに依存しない
デメリット
  • 開発後期の問題検出で修正コストが高くなる
  • ケース設定やテスト実行に時間がかかる
代表的なDASTツール
  • OWASP ZAP
  • Burp Suite

このように、SASTとDASTはそれぞれ異なるアプローチで脆弱性を検出します。両方を開発ライフサイクルに組み込むことで、アプリケーションのセキュリティをより高めることが可能です。