Dynamic Application Security Testing

Dynamic Application Security Testing（略称:DAST、別名:動的アプリケーションセキュリティテスト）は、アプリケーションのセキュリティ上の弱点や脆弱性を特定するための非機能テストプロセスである。このテストプロセスは、手動または自動ツールを使用して実施することができる。アプリケーションの手動評価には、自動ツールが見逃す可能性のあるセキュリティ上の欠陥を特定するための人間の介入が伴う。通常、ビジネスロジックのエラー、競合状態のチェック、および特定のゼロデイ脆弱性は、手動評価を使用しなければ特定できない。

一方で、DASTツールは、Webアプリケーションやアーキテクチャの潜在的なセキュリティ脆弱性を特定するために、Webフロントエンドを通じてWebアプリケーションと通信するプログラムであるWeb Application Security Scanner Evaluation Criteria version 1.0, WASC, 2009。これはブラックボックステストを実行する。Static Application Security Testing（SAST）ツールとは異なり、DASTツールはソースコードにアクセスできないため、実際に攻撃を実行することで脆弱性を検出する。

DASTツールは、ホスト名、クロールパラメータ、認証情報を設定すれば、最小限のユーザー操作で高度なスキャンを行い、脆弱性を検出することができる。これらのツールは、クエリ文字列、ヘッダー、フラグメント、動詞（GET/POST/PUT）、DOMインジェクションにおける脆弱性の検出を試みる。

 概要 
DASTツールは、セキュリティ脆弱性を発見するという明確な目的を持ってWebアプリケーションの自動レビューを容易にするものであり、様々な規制要件への準拠に必要とされる。Webアプリケーションスキャナは、入出力バリデーション（例：クロスサイトスクリプティングやSQLインジェクション）、特定のアプリケーションの問題、サーバー設定ミスなど、多種多様な脆弱性を探すことができる。

 商用スキャナとオープンソーススキャナ 
商用スキャナは、購入が必要なWeb評価ツールのカテゴリである。一部のスキャナには無料機能が含まれているものもあるが、ツールの全機能にアクセスするには購入が必要なものがほとんどである。

オープンソーススキャナは、ユーザーにとって無料であることが多い。

 利点 
これらのツールは、出荷前の最終的なリリース候補版の脆弱性を検出できる。スキャナは悪意のあるユーザーをシミュレートして攻撃や探索を行い、期待される結果セットに含まれない結果を特定することで、現実的な攻撃シミュレーションを可能にする。この種のツールの大きな利点は、一年中スキャンを行い、常に脆弱性を探索できることである。新しい脆弱性は定期的に発見されるため、企業はそれらが悪用される前に脆弱性を発見し修正することができる。

動的テストツールとして、Webスキャナは言語に依存しない。Webアプリケーションスキャナは、エンジン駆動のWebアプリケーションもスキャン可能である。攻撃者も同じツールを使用するため、ツールが脆弱性を発見できれば、攻撃者も発見できることになる。

 欠点 
DASTツールによるスキャン中、データが上書きされたり、対象サイトに悪意のあるペイロードが注入されたりする可能性がある。正確な結果を保証しつつ本番環境のデータを保護するため、サイトは本番に近い非本番環境でスキャンされるべきである。

ツールは動的テスト手法を実装しているため、アプリケーションのソースコードを100%カバーすることはできず、したがってアプリケーション自体も完全にはカバーできない。ペネトレーションテスターは、ツールが正しく設定されているか、あるいはWebアプリケーションを理解できているかを知るために、Webアプリケーションのカバレッジや攻撃対象領域（アタックサーフェス）を確認する必要がある。

ツールは、特定の脆弱性に対するあらゆる攻撃バリエーションを実装できるわけではない。そのため、ツールは一般的に事前に定義された攻撃リストを持っており、テスト対象のWebアプリケーションに応じて攻撃ペイロードを生成するわけではない。一部のツールは、JavaScriptやFlashなどの動的コンテンツを持つアプリケーションの動作を理解する能力がかなり制限されている。

 関連項目 

 Static Application Security Testing（SAST）
 Interactive Application Security Testing（IAST）
 動的プログラム解析

 脚注 

 外部リンク 
Web Application Security Scanner Evaluation Criteria from the Web Application Security Consortium (WASC)
Web Application Scanners, operated by the NIST
Challenges faced by automated web application security assessment from Robert Auger
The WASC security scanner list

Category:ソフトウェア開発ツール
Category:ソフトウェアテストツール
Category:セキュリティ技術