DevSecOps

DAST

動的アプリケーションセキュリティテスト

Category: DevSecOps / Updated: 2026-05-26

📖

Overview

DAST(Dynamic Application Security Testing:動的アプリケーションセキュリティテスト)とは、実行中のアプリケーションに対して外部からセキュリティテストを行い、脆弱性を検出する手法です。「ブラックボックステスト」とも呼ばれ、ソースコードにアクセスすることなく、攻撃者の視点からアプリケーションの挙動を解析します。

DASTはHTTPリクエストを送信し、レスポンスを解析することで脆弱性を検出します。まずクローリングによりアプリケーションの構造を探索し、検出されたエンドポイントに対してファジング(異常な入力値の送信)や既知の攻撃パターンを実行します。SQLインジェクション、クロスサイトスクリプティング、認証・セッション管理の不備、セキュリティヘッダーの欠如など、実行時にのみ顕在化する脆弱性を検出できます。

DASTの大きな利点は、プログラミング言語やフレームワークに依存しない点です。Webアプリケーションとして稼働しているものであれば、技術スタックに関わらずテスト可能です。一方で、実行環境が必要であるためCI/CDパイプラインへの統合にはSASTよりも工夫が必要であり、スキャン時間も比較的長くなる傾向があります。

🔬

Details

ブラックボックステストの原理

ブラックボックステストとは、テスト対象の内部構造(ソースコード、アーキテクチャ)を参照せずに、外部からの入力と出力のみに基づいてテストを行うアプローチです。DASTは攻撃者の立場をシミュレーションし、実際の攻撃者と同じ手法でアプリケーションの脆弱性を探索します。

このアプローチにより、SASTでは検出困難な実行時の脆弱性を発見できます。サーバーの設定ミス、デプロイ環境固有の問題、コンポーネント間の統合時に発生する脆弱性、ランタイムの挙動に依存するセキュリティ問題などは、DASTの得意分野です。

クローリング(Crawling)

クローリングは、DASTスキャンの最初のフェーズです。Webスパイダーがアプリケーションのリンク、フォーム、JavaScriptイベントなどを自動的に辿り、テスト対象のエンドポイントを網羅的に発見します。従来のDASTツールはHTMLのリンクのみを辿っていましたが、現代のアプリケーションではSPA(Single Page Application)やAPI駆動の設計が主流であるため、JavaScriptレンダリングやAPI仕様書(OpenAPI/Swagger)の読み込みにも対応しています。

クローリングの品質がDASTスキャン全体の精度を大きく左右します。クローラーが到達できなかったエンドポイントはテストされないため、認証後のページ、複雑なJavaScript操作を要するページ、マルチステップのフォームなどが見落とされるリスクがあります。これを補うために、手動での探索結果をインポートする機能や、OpenAPI定義ファイルからエンドポイントを取得する機能が重要です。

ファジング(Fuzzing)

ファジングは、アプリケーションに対して異常な入力値や予期しないデータを大量に送信し、エラーや予期しない挙動を誘発するテスト手法です。DASTにおけるファジングでは、SQLインジェクション、XSS、コマンドインジェクション、パストラバーサルなどの攻撃ペイロードをパラメータに挿入し、レスポンスの変化を観察します。

最新のDASTツールでは、インテリジェントファジングが採用されています。アプリケーションのレスポンスに基づいて次に送信するペイロードを動的に調整し、効率的に脆弱性を探索します。また、同時リクエストによるレースコンディションの検出や、タイミングベースのブラインドSQLインジェクションの検出など、高度なファジング手法も実装されています。

OWASP ZAP

OWASP ZAP(Zed Attack Proxy)は、世界で最も広く使用されているオープンソースのDASTツールです。OWASP(Open Worldwide Application Security Project)が開発・保守しており、プロキシ機能、自動スキャナー、ファジング機能、スクリプティング機能など、包括的なセキュリティテスト機能を無償で提供しています。

ZAPはCI/CDパイプラインとの統合が容易で、Docker イメージとして提供されているため、Jenkins、GitLab CI、GitHub Actionsなどから簡単に呼び出せます。ZAP Automation Framework(AF)を使用することで、スキャンの設定をYAMLファイルで管理し、再現性のある自動スキャンを実現できます。コミュニティによる豊富なアドオンやスクリプトも大きな利点です。

Burp Suite

Burp Suiteは、PortSwigger社が開発する商用のWebアプリケーションセキュリティテストプラットフォームです。Professional版とEnterprise版が提供されており、ペネトレーションテスターから企業のセキュリティチームまで幅広く利用されています。高度なクローリングエンジン、インテリジェントなスキャンロジック、低い偽陽性率が特徴です。

Burp Suite Enterpriseは、組織全体のWebアプリケーションに対する定期的なDASTスキャンを自動化するプラットフォームです。スキャンのスケジューリング、検出結果のダッシュボード管理、Jira等のチケットシステムとの連携、CI/CDパイプラインからのAPI呼び出しなど、エンタープライズ運用に必要な機能が充実しています。

認証スキャン(Authenticated Scanning)

認証スキャンは、ログイン後の領域を対象にDASTスキャンを実行する手法です。多くのWebアプリケーションでは、最もセキュリティ上重要な機能(個人情報の表示・編集、金融取引、管理画面など)が認証後にのみアクセス可能であるため、非認証スキャンだけでは検出カバレッジが大幅に不足します。

認証スキャンの設定には、ログインフォームの指定、認証トークンの管理、セッション維持の設定などが必要です。MFA(多要素認証)を使用している環境では、テスト用アカウントの作成やMFAの一時的な無効化が必要になる場合があります。また、スキャン中に意図せずログアウトしてしまう問題を防ぐために、セッション検証メカニズムの設定も重要です。

🛡️

Security Measures

  • 01
    ステージング環境での定期的なDASTスキャンの実施:本番環境への影響を避けるため、ステージング環境で定期的(少なくとも週次)にDASTスキャンを実施してください。ステージング環境は本番環境と同一の構成にし、検出結果の本番環境への適用可能性を確保しましょう。
  • 02
    認証スキャンの設定と最適化:ログイン後の領域をカバーするために、認証スキャンを必ず設定してください。テスト用アカウントを用意し、セッション維持の設定を適切に行うことで、認証後のページに存在する脆弱性を漏れなく検出できます。管理者権限と一般ユーザー権限の両方でスキャンすることを推奨します。
  • 03
    API仕様書を活用したAPIセキュリティスキャン:OpenAPI/Swagger定義ファイルをDASTツールにインポートし、APIエンドポイントに対する包括的なスキャンを実施してください。SPAやマイクロサービスアーキテクチャでは、従来のクローリングだけではエンドポイントの検出が不十分になるため、API仕様書の活用が不可欠です。
  • 04
    CI/CDパイプラインへのDASTの統合:OWASP ZAPやBurp Suite EnterpriseをCI/CDパイプラインに組み込み、デプロイ前に自動DASTスキャンを実行してください。フルスキャンは時間がかかるため、パイプラインではベースラインスキャン(高速スキャン)を実行し、フルスキャンは定期的に別途実施する運用が効果的です。
  • 05
    スキャン結果のトリアージとSASTとの相関分析:DASTの検出結果をSASTの結果と相関させ、両方のツールで検出された脆弱性を優先的に対応してください。DASTとSASTの結果が一致する脆弱性は偽陽性の可能性が低く、真の脆弱性である確度が高まります。
  • 06
    スキャン対象の除外設定と安全性の確保:DASTスキャンがデータの削除や変更を引き起こす可能性のある機能(退会処理、一括削除、決済処理など)は、スキャン対象から除外してください。また、本番データへの影響を防ぐため、テストデータのみが存在する環境でスキャンを実施することを徹底しましょう。
⚠️

Incidents

📋 大手航空会社Webサイトのセキュリティヘッダー欠如による情報漏洩

ある大手航空会社のWebサイトにおいて、セキュリティヘッダー(Content-Security-Policy、X-Frame-Options、Strict-Transport-Security等)が適切に設定されていなかったため、クリックジャッキングやMITM攻撃のリスクが報告されました。攻撃者はiframeを使用してログインページを偽装し、一部のユーザーの認証情報を窃取しました。

これらのセキュリティヘッダーの欠如はDASTツールによる自動スキャンで容易に検出可能であり、定期的なDASTスキャンを実施していれば早期に発見・対処できた事例です。SASTでは検出困難なサーバー設定レベルの問題であり、DASTの実行時テストの重要性を示しています。

📋 ECサイトにおける認証バイパス脆弱性の発見(2022年)

2022年、ある大手ECサイトにおいて、認証後の管理画面に対するDASTスキャンにより、パラメータ改ざんによる認証バイパス脆弱性が発見されました。通常のユーザーがURL内のユーザーIDを変更するだけで、他のユーザーの注文履歴や個人情報にアクセスできるIDOR(Insecure Direct Object Reference)脆弱性でした。

この脆弱性は非認証スキャンでは検出できず、認証スキャン(ログイン後の領域をテスト)を実施したことで初めて検出されました。認証スキャンの設定は追加の工数を要しますが、多くの重大な脆弱性が認証後の領域に存在するため、認証スキャンはDASTの運用において必須の設定です。

📋 DASTスキャンによる本番環境データの意図しない削除

ある企業が誤って本番環境に対してDASTスキャンを実行し、ファジングによって送信されたリクエストがデータ削除APIを呼び出してしまい、数百件の顧客レコードが削除される事故が発生しました。特に、管理者権限を持つアカウントで認証スキャンを実施していたため、破壊的な操作が実行されてしまいました。

この事故は、DASTスキャンは必ずステージング環境またはテスト環境で実施し、本番環境では絶対に実行しないという原則の重要性を示しています。また、破壊的な操作(DELETE、PUT等)を行うエンドポイントはスキャン対象から除外する設定や、テスト専用のデータセットを使用するなどの安全策が不可欠です。

🔗

Related Terms