動的アプリケーションセキュリティテスト -DASTの基礎知識-
2021年06月07日(2025年10月21日 更新)
このブログは アプリケーション・セキュリティ・テストツール の 市場分類を紹介する、WhiteSoure社のブログ翻訳シリーズの第5回です。
今回は 動的アプリケーション・セキュリティ・テスト(Dynamic Application Security Testing : DAST)について紹介します。
これまでのブログで紹介してきた、SCAやSASTはいわゆる静的解析として、ソースコードリポジトリ等で管理しているソースコードやオープンソースコンポーネントをスキャンすることで脆弱性を検出でき、CI/CDパイプラインにも統合しやすいため、比較的導入しやすいツールでした。
また、ビルド前やビルド実行時といった比較的早い段階で検出できることもメリットの一つです。
ですが、本番環境あるいは本番と同等環境で 動作させたアプリケーションでテストしないと発見できない、不具合やバグがあり、中には致命的なものもあります。
これはセキュリティテストにおいてももちろん同様です。
今回と次回で紹介するDASTとIASTはどちらもアプリケーションを動作した状態でチェックするセキュリティテストになります。
そのため、SASTやSCAと比較すると 導入が難しく、普及率も高くありません。
本ブログでは DASTの特徴やメリット・デメリットを紹介していますので、DASTの理解と重要性を理解して頂ければと思います。
■ASTとは
セキュリティ脆弱性をテストし、分析し、レポーティングすることを自動化するツールであるアプリケーション・セキュリティ・テスト(AST)は、ソフトウェア開発に欠かせないものです。
セキュリティをシフトレフトする最近のDevOpsのフレームワークにおいて、ASTは必須と考えるべきです。
また、Forrester社の報告によると、外部からの攻撃方法として最も一般的なのは、引き続きアプリケーションの弱点やソフトウェアの脆弱性を突くことであることを考えると、これほど重要なことはありません。
ASTの市場は、大きく4つのカテゴリーに分けられます。
- 静的アプリケーション・セキュリティ・テスト(SAST)は、コンポーネントが停止している状態で、内部からソースコードを解析するホワイトボックス・テストです。
- 動的アプリケーション・セキュリティ・テスト(DAST)は、ブラックボックス・セキュリティ・テストの一種で、外部からアプリケーションを攻撃することでテストを実施します。
- インタラクティブ・アプリケーション・セキュリティ・テスト(IAST)は、実行中のアプリケーションから問題を検出して報告するために、コードに追加したインスツルメンテーションを通じて、アプリケーションの内部で動作します。
- ソフトウェア構成分析(SCA)は、コードベースをスキャンして、ライセンスの遵守やセキュリティの脆弱性など、オープンソースソフトウェア・コンポーネントの情報を可視化します。
ASTのそれぞれのタイプは、アプリケーション・セキュリティの少しずつ異なる側面に焦点を当てています。
このブログでは、動的アプリケーション・セキュリティ・テスト(DAST)を取り上げます。
DASTとは何か、どのように機能するのか、そしてその長所と短所を定義します。
■DASTとは何か?
DASTは、Webアプリケーション脆弱性スキャナと呼ばれることもある、ブラックボックス・セキュリティ・テストの一種です。
アプリケーションの実行中に、外部からの攻撃をシミュレートすることで、セキュリティの脆弱性を探します。
公開されているインターフェースに脆弱性や欠陥がないかをチェックするために、外部からアプリケーションへの侵入を試みます。
DASTの名前のダイナミックは、テストが動的な環境で実行されることに由来します。
SASTがアプリケーションが静止している状態でコードを1行ずつスキャンするのとは異なり、DASはアプリケーションが動作しているときに実行します。
これは、本番環境で起動中のアプリケーションに対してテストを実行するというわけではありません。
DASTは、本番環境でも実施できますが、通常はQA環境で実施されます。
DASTは、外部から見える問題や脆弱性を発見することに非常に優れています。
この問題や脆弱性には、クロスサイトスクリプティング、SQLインジェクションやコマンドインジェクションのようなインジェクションエラー、パストラバーサル、安全でないサーバー構成など、OWASPのトップ10にある数多くのセキュリティリスクが含まれます。
DASTの利点の1つは、実行時に発生する問題が特定できることで、これは静止状態でテストするSASTでは発見できません。
DASTは、サーバー構成や認証の問題のほか、ユーザーがログインしている状態の時だけ発生する欠陥を見つけることなどに優れています。
■DASTはどのように機能するか?
DASTは、アプリケーションに対して、悪意のある外部攻撃をシミュレートした操作を自動で実行し、期待した結果と一致しない箇所を特定します。
例えば、悪意のあるデータを注入することで、一般的なインジェクションの欠陥を明らかにすることなどです。
DASTは、すべてのHTTPとHTMLへのアクセスポイントをテストし、さらにランダムなアクションとユーザーの行動を模倣することで脆弱性を発見します。
DASTは、アプリケーションのソースコードにはアクセスせず、外部からアプリケーションを攻撃することでセキュリティの脆弱性を検出します。
コードを検査しないので、脆弱性を発見しても原因となるコードを特定し提示することはできません。
DASTソリューションの実装には、セキュリティの専門家がとても頼りになります。
DASTを有効的に活用するには、セキュリティの専門家がテストを書いたり、ツールを微調整したりする必要があります。
そのためには、テスト対象のアプリケーションがどのように動作し、どのように利用されているのかをしっかりと理解する必要があります。
また、セキュリティの専門家は、DASTを効果的に使いこなすために、ウェブサーバ、アプリケーションサーバ、データベース、アクセス管理、トラフィックの流れなどの知識が必要です。
DASTはペネトレーションテスト(またはペンテスト)と似ているように思うかもしれませんが、DASTはいくつかの重要な点でペネトレーションテストと異なります。
DASTは、実行中のアプリケーションに焦点を当てた体系的なテストを提供します。
一方、ペンテストは、管理者権限を利用した一般的なハッキング技術を使用し、ファイアウォール、ポート、ルーター、サーバーなど、アプリケーション以外の脆弱性を発見しようとします。
■DASTの長所と短所
DASTは、他のツールでは発見できないセキュリティの脆弱性を発見できる価値あるテストツールです。
DASTは特定の分野では優れていますが、それは限定的でもあります。DASTの長所と短所を見てみましょう。
【長所】
#1 特定の言語やフレームワークに依存しない
DASTはソースコードを検査しないので、言語やプラットフォームに依存しません。
特定の言語や技術に限定されないため、1つのDASTツールをすべてのアプリケーションで利用することができます。
#2 偽陽性が少ない
OWASPのBenchmark Projectによると、DASTは他のアプリケーションセキュリティテストツールよりも偽陽性の割合が低いとされています。
テスト担当者は、ノイズを減らしながら、真の脆弱性をゼロにすることができます。
#3 設定内容の問題が特定できる
DASTは、アプリケーションが動作しているときにのみ発生するセキュリティ脆弱性の発見に優れています。
さらに、DASTはアプリケーションを外側から攻撃するため、他のASTツールでは見逃される設定ミスを発見するのにも最適です。
【短所】
#1 拡張性が低い
DASTの主な欠点の1つは、効果的なテストを書くために、セキュリティの専門家に大きく依存していることであり、そのためスケールアップが非常に困難です。
#2 脆弱性があるコードを特定できない
DASTには、アプリケーションのコードベースに対する可視性がありません。
つまり、問題のあるコードを開発者に指摘して修正させたり、包括的なセキュリティ・カバレッジの情報を提供することができません。
#3 スキャンに時間が掛かる
DASTはそのスピードについてはあまり知られておらず、多くのユーザーがスキャンに時間がかかりすぎると報告しています。
Forrester社は、DASTのスキャンは 少なくとも 5~7日もかかると推定しています。
さらに、DASTのスキャンは、一般的にソフトウェア開発ライフサイクル(SDLC)の後半になって脆弱性を発見することが多く、その場合、修正にはより多くのコストと時間がかかります。
■DASTは、アプリケーション・セキュリティ・パズルの1つのピース
最近のDevOpsでは、セキュリティチームと開発者チームは、開発を遅らせることなくアプリケーションのセキュリティを確保するためのテストソリューションを必要としています。
この意味で、DASTは強力なツールです。
実際、AST市場では、SASTに次いで、DASTが2番目に大きな分野となっています。
Forrester社の調査によると、調査対象の組織の35%がすでにDASTを使用しており、さらに多くの組織がDASTの採用を計画しているという。
しかし、アプリケーション・セキュリティに関しては、すべてを可能にする唯一のツールというものはありません。
DASTは動的な環境で潜在的な実行時エラーを発見するという重要な機能を果たしますが、アプリケーションコード上のエラーを発見することはできません。
DASTだけでは包括的なカバレッジを提供しません。
このため、ほとんどの組織では、セキュリティリスクを減らすための効果的な手段として、複数のASTツールを連携させる必要があります。
DASTは、外部からの攻撃を検査することに優れています。
SASTはコードベース全体をスキャンしてコーディングエラーを発見します。
オープンソース・ソフトウェアを扱うSCAソリューションと合わせて、組織が必要とする包括的なテスト戦略を提供しましょう。
■まとめ
DASTはOWASPが公開している、Webアプリケーションのセキュリティ脆弱性に対する動的テストを支援します。
Webアプリケーション(HTTP/HTTPS)に対する攻撃の検証と限定的ではあるものの、プログラム言語やフレームワークへの依存度が少なく、多くのDASTツールでは OWASP Top Tenを始めとしたテストテンプレートが備わっており、テストすること自体は思っているほどハードルは高くないかもしれません。
まずはOWASP ZAPを導入して、手動でテストを実行することから初めてみるのも良いかもしれません。
このブログはWhiteSource社の許可の下、
https://resources.whitesourcesoftware.com/blog-whitesource/dast-dynamic-application-security-testingを翻訳したものです。
世界10万社が使うプロジェクト管理ツール
\アジャイル開発チームの利用実績 No.1/
アジャイルプロジェクト管理ツールです。
ソースコード管理Gitツールの「BitBucket」と統合し、継続的デリバリーを実現させます。
この記事を読んだ⼈におすすめのページ
本情報はブログを公開した時点の情報となります。
Software Collection
Jira Service Management
Customer Service Management
Assets
Rovo
Focus
Jira Align
Talent






【Team '26】マツダ株式会社が登壇!Teamwork Graphで実現する「ツールではなく仕事に焦点を当てる」AXの姿
【Atlassian 年次イベント】Team '26 Anaheim に参加しています!
2026年春、ベトナムで感じた「AI熱」とBiplusの本気度 ――ベトナムITイベントレポ
5,000名以上のエンタープライズで Jira / Confluenceを選ぶ理由 ― 情報ガバナンスとセキュリティを両立する Atlassian Guard活用術