2021年06月07日
動的アプリケーションセキュリティテスト -DASTの基礎知識-奥村 和彦 Kazuhiko Okumura
このブログは アプリケーション・セキュリティ・テストツール の 市場分類を紹介する、WhiteSoure社のブログ翻訳シリーズの第5回です。
今回は 動的アプリケーション・セキュリティ・テスト(Dynamic Application Security Testing : DAST)について紹介します。
これまでのブログで紹介してきた、SCAやSASTはいわゆる静的解析として、ソースコードリポジトリ等で管理しているソースコードやオープンソースコンポーネントをスキャンすることで脆弱性を検出でき、CI/CDパイプラインにも統合しやすいため、比較的導入しやすいツールでした。
また、ビルド前やビルド実行時といった比較的早い段階で検出できることもメリットの一つです。
ですが、本番環境あるいは本番と同等環境で 動作させたアプリケーションでテストしないと発見できない、不具合やバグがあり、中には致命的なものもあります。
これはセキュリティテストにおいてももちろん同様です。
今回と次回で紹介するDASTとIASTはどちらもアプリケーションを動作した状態でチェックするセキュリティテストになります。
そのため、SASTやSCAと比較すると 導入が難しく、普及率も高くありません。
本ブログでは DASTの特徴やメリット・デメリットを紹介していますので、DASTの理解と重要性を理解して頂ければと思います。
セキュリティ脆弱性をテストし、分析し、レポーティングすることを自動化するツールであるアプリケーション・セキュリティ・テスト(AST)は、ソフトウェア開発に欠かせないものです。
セキュリティをシフトレフトする最近のDevOpsのフレームワークにおいて、ASTは必須と考えるべきです。
また、Forrester社の報告によると、外部からの攻撃方法として最も一般的なのは、引き続きアプリケーションの弱点やソフトウェアの脆弱性を突くことであることを考えると、これほど重要なことはありません。
ASTの市場は、大きく4つのカテゴリーに分けられます。
ASTのそれぞれのタイプは、アプリケーション・セキュリティの少しずつ異なる側面に焦点を当てています。
このブログでは、動的アプリケーション・セキュリティ・テスト(DAST)を取り上げます。
DASTとは何か、どのように機能するのか、そしてその長所と短所を定義します。
DASTは、Webアプリケーション脆弱性スキャナと呼ばれることもある、ブラックボックス・セキュリティ・テストの一種です。
アプリケーションの実行中に、外部からの攻撃をシミュレートすることで、セキュリティの脆弱性を探します。
公開されているインターフェースに脆弱性や欠陥がないかをチェックするために、外部からアプリケーションへの侵入を試みます。
DASTの名前のダイナミックは、テストが動的な環境で実行されることに由来します。
SASTがアプリケーションが静止している状態でコードを1行ずつスキャンするのとは異なり、DASはアプリケーションが動作しているときに実行します。
これは、本番環境で起動中のアプリケーションに対してテストを実行するというわけではありません。
DASTは、本番環境でも実施できますが、通常はQA環境で実施されます。
DASTは、外部から見える問題や脆弱性を発見することに非常に優れています。
この問題や脆弱性には、クロスサイトスクリプティング、SQLインジェクションやコマンドインジェクションのようなインジェクションエラー、パストラバーサル、安全でないサーバー構成など、OWASPのトップ10にある数多くのセキュリティリスクが含まれます。
DASTの利点の1つは、実行時に発生する問題が特定できることで、これは静止状態でテストするSASTでは発見できません。
DASTは、サーバー構成や認証の問題のほか、ユーザーがログインしている状態の時だけ発生する欠陥を見つけることなどに優れています。
DASTは、アプリケーションに対して、悪意のある外部攻撃をシミュレートした操作を自動で実行し、期待した結果と一致しない箇所を特定します。
例えば、悪意のあるデータを注入することで、一般的なインジェクションの欠陥を明らかにすることなどです。
DASTは、すべてのHTTPとHTMLへのアクセスポイントをテストし、さらにランダムなアクションとユーザーの行動を模倣することで脆弱性を発見します。
DASTは、アプリケーションのソースコードにはアクセスせず、外部からアプリケーションを攻撃することでセキュリティの脆弱性を検出します。
コードを検査しないので、脆弱性を発見しても原因となるコードを特定し提示することはできません。
DASTソリューションの実装には、セキュリティの専門家がとても頼りになります。
DASTを有効的に活用するには、セキュリティの専門家がテストを書いたり、ツールを微調整したりする必要があります。
そのためには、テスト対象のアプリケーションがどのように動作し、どのように利用されているのかをしっかりと理解する必要があります。
また、セキュリティの専門家は、DASTを効果的に使いこなすために、ウェブサーバ、アプリケーションサーバ、データベース、アクセス管理、トラフィックの流れなどの知識が必要です。
DASTはペネトレーションテスト(またはペンテスト)と似ているように思うかもしれませんが、DASTはいくつかの重要な点でペネトレーションテストと異なります。
DASTは、実行中のアプリケーションに焦点を当てた体系的なテストを提供します。
一方、ペンテストは、管理者権限を利用した一般的なハッキング技術を使用し、ファイアウォール、ポート、ルーター、サーバーなど、アプリケーション以外の脆弱性を発見しようとします。
DASTは、他のツールでは発見できないセキュリティの脆弱性を発見できる価値あるテストツールです。
DASTは特定の分野では優れていますが、それは限定的でもあります。DASTの長所と短所を見てみましょう。
DASTはソースコードを検査しないので、言語やプラットフォームに依存しません。
特定の言語や技術に限定されないため、1つのDASTツールをすべてのアプリケーションで利用することができます。
OWASPのBenchmark Projectによると、DASTは他のアプリケーションセキュリティテストツールよりも偽陽性の割合が低いとされています。
テスト担当者は、ノイズを減らしながら、真の脆弱性をゼロにすることができます。
DASTは、アプリケーションが動作しているときにのみ発生するセキュリティ脆弱性の発見に優れています。
さらに、DASTはアプリケーションを外側から攻撃するため、他のASTツールでは見逃される設定ミスを発見するのにも最適です。
DASTの主な欠点の1つは、効果的なテストを書くために、セキュリティの専門家に大きく依存していることであり、そのためスケールアップが非常に困難です。
DASTには、アプリケーションのコードベースに対する可視性がありません。
つまり、問題のあるコードを開発者に指摘して修正させたり、包括的なセキュリティ・カバレッジの情報を提供することができません。
DASTはそのスピードについてはあまり知られておらず、多くのユーザーがスキャンに時間がかかりすぎると報告しています。
Forrester社は、DASTのスキャンは 少なくとも 5~7日もかかると推定しています。
さらに、DASTのスキャンは、一般的にソフトウェア開発ライフサイクル(SDLC)の後半になって脆弱性を発見することが多く、その場合、修正にはより多くのコストと時間がかかります。
最近の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」と統合し、継続的デリバリーを実現させます
本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。
リックソフトのサポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。