DAST(動的アプリケーションセキュリティテスト)
DAST(動的アプリケーションセキュリティテスト) とは何ですか?
DAST(動的アプリケーションセキュリティテスト)稼働中のアプリケーションにネットワーク経由でアクセスして行うブラックボックス型のセキュリティテストで、ランタイムでのみ現れる脆弱性を検出する。
DAST ツールは、ソースコードを必要とせず、HTTP などを通じてデプロイ済みのアプリケーションと対話します。エンドポイントをクロールし、悪意あるリクエストを送り、レスポンスを観察することで、SQL インジェクション、XSS、SSRF、認証不備、誤った CORS 設定、安全でない Cookie などを検出します。攻撃者と同じ視点から検査するため、SAST と組み合わせることで、設定・インフラ・サードパーティサービスに起因するランタイム特有の問題も捕捉できます。通常はステージングや QA 環境で実行し、CI/CD のリリースゲートとして組み込みます。代表ツールは OWASP ZAP、Burp Suite、Invicti、Acunetix、StackHawk です。
仕組み
DAST スキャンは 2 つのフェーズで実行されます。まず、クローラー(スパイダー) がリンクをたどり、JavaScript を解析し、記録済みトラフィックを再生することで、フォーム・パラメータ・API ルートを発見し、アプリケーションの攻撃対象領域をマッピングします。次に、アクティブスキャナーが各入力を攻撃ペイロードで変異させ、レスポンスコード・応答時間・反射されたコンテンツ・エラーの特徴から脆弱性を推定します。たとえば時間ベースのブラインド SQL インジェクションは、SLEEP() ペイロードによって応答が計測可能なほど遅延したときに確認されます。
現代の DAST は API ファーストかつ認証済みスキャンへとシフトしています。シングルページアプリや REST/GraphQL バックエンドは素朴なクローラーにはほとんど情報を見せないため、スキャナーは OpenAPI/Swagger 仕様を取り込み、スクリプト化したログインシーケンスを使って保護された機能に到達します。カバレッジは一般に OWASP Web Security Testing Guide(WSTG)に対してマッピングされます。DAST の限界も同じくらい重要です。コード行の位置を示せず、到達不能なコードパスを見ることができず、複雑なクライアント側の状態では偽陰性のリスクがあります。だからこそチームは DAST 単独に頼らず、SAST や IAST と組み合わせます。本番環境をスキャンして実際の副作用(メール送信や注文実行など)を引き起こさないよう、スキャンは非本番のターゲットに限定し、定められたスコープと除外リストを設定します。
flowchart LR
A[稼働中アプリ<br/>ステージング/QA] --> B[クローラー/スパイダー<br/>エンドポイントを地図化]
B --> C[アクティブスキャナー<br/>ペイロードを注入]
C --> D{レスポンスに<br/>異常あり?}
D -->|Yes| E[検出を報告<br/>SQLi / XSS / SSRF]
D -->|No| F[エンドポイントを正常と判定]
E --> G[CI/CD ゲート<br/>ビルド失敗/トリアージ]● 例
- 01
CI ジョブとして、ステージング API に対し OWASP ZAP の自動スキャンを実行する。
- 02
認証済みセッションを使い、Burp Suite で SPA にスキャンを実施する。
● よくある質問
DAST(動的アプリケーションセキュリティテスト) とは何ですか?
稼働中のアプリケーションにネットワーク経由でアクセスして行うブラックボックス型のセキュリティテストで、ランタイムでのみ現れる脆弱性を検出する。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
DAST(動的アプリケーションセキュリティテスト) とはどういう意味ですか?
稼働中のアプリケーションにネットワーク経由でアクセスして行うブラックボックス型のセキュリティテストで、ランタイムでのみ現れる脆弱性を検出する。
DAST(動的アプリケーションセキュリティテスト) からどのように防御しますか?
DAST(動的アプリケーションセキュリティテスト) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
DAST(動的アプリケーションセキュリティテスト) の別名は何ですか?
一般的な別名: 動的解析, ブラックボックステスト。