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

動的アプリケーション セキュリティ テスト (DAST) とは、アプリケーションの実行中にそのセキュリティをテストする方法です。DAST ツールはウェブ アプリケーションが動作している状態のときに、SQL インジェクション、クロスサイト スクリプティング、安全でないサーバ構成などの疑似攻撃を使用してテストを実施し、セキュリティの脆弱性を見つけます。このタイプのアプリケーション セキュリティ (AppSec) テストでは、悪意のあるハッカーを模倣して実行中のアプリケーションのセキュリティ問題を見つけることで、アプリケーションが一般公開される前に開発者がこれらの問題を修正できるようにします。

アプリケーション セキュリティにとって DAST が重要なのはなぜですか。

アプリケーション セキュリティのツールには数 10 億ドルが投資されてきたものの、GitHub のソフトウエア セキュリティ ガイドによると、依然として 85% のアプリケーションには既知の脆弱性が含まれ、ほとんどのセキュリティ侵害はアプリケーション レイヤーで発生しています。

DAST ツールはアプリケーション セキュリティ プログラムの一部として使用できるセキュリティ ツールです。DAST はソフトウェア開発ライフ サイクル (SDLC) において、開発者が悪意のある攻撃によって利用される可能性のある脆弱性を検出できるよう支援します。脆弱性は単純なコーディング エラーから、安全でない設定や環境の構成エラーといったより複雑なものまで多岐にわたります。脆弱性を早い段階で特定することは、ビジネスをデータ侵害、ブランドの評判の失墜、顧客の信頼の喪失から保護するのに役立ちます。

DAST ツールのしくみ

DAST ツールを利用すると、開発チームは攻撃者の思考と非常に近いブラックボックス セキュリティの観点からアプリケーションを見ることができます。DAST はアプリケーションのインフラストラクチャ、アーキテクチャ、コードを知らない悪意のある攻撃者が使用するのと同じ手法を模倣して、アプリケーションの脆弱性を見つけます。DAST ツールは次のように機能します。

  • クロールを実行し、リンク、Cookie、URL パラメーターなどの、アプリケーション レイヤーの攻撃ポイントを発見します。

  • ウェブ アプリケーションのページや問題のマップを作成します。

  • 発見した攻撃ポイントを監査し、さまざまな種類の悪意のある攻撃を模倣してセキュリティの脆弱性を明らかにします。

  • アプリケーション内に脆弱性が見つかった場合は、開発チームにアラートを送信します。

DAST の種類

動的アプリケーション セキュリティ テストには 2 つの種類があります。前述の箇条書きで説明した自動 DAST ではソフトウエアを使用し、アプリケーションをスキャンして脆弱性を見つけ、攻撃を再現します。より複雑な状況では、セキュリティ エキスパートは手動の DAST 手順を使用してテストを実施し、自動 DAST では見落とされる可能性のある脆弱性を見つけます。巧妙なハッカーに対抗するため、開発チームは自動 DAST と手動 DAST の両方を組み合わせて使用する場合もあります。

一般的に自動 DAST はより高速で効率的ですが、ウェブ アプリケーション内の全ての脆弱性を特定できない場合や、偽陽性が発生する場合があります。手動 DAST はウェブ アプリケーションにカスタマイズできることから、より正確な傾向がありますが、時間がかかり、大量のリソースが必要になります。

あらゆる段階でのセキュリティ

GitHub Advanced Security を使用して脆弱性をすばやく発見して修正し、高い修復速度とワークフローへのシームレスな統合を保証します。
コードを保護する

DAST のメリット

ウェブ アプリケーションの脆弱性スキャナーとしても知られる DAST のスキャン機能は、アプリケーション開発チームが、クレジット カード情報や顧客情報などの極秘データへのアクセスをハッカーに与えてしまうような、最も深刻な損害をもたらす攻撃からウェブ アプリケーションを保護するのに役立ちます。

動的アプリケーション セキュリティ テストは、ハッカーによる次のようなウェブ アプリケーション攻撃を可能にする、外部から見えるセキュリティ問題やランタイムの問題を特定する効果的なツールです。

  • SQL インジェクションは、攻撃者がウェブ アプリケーションのデータベースを乗っ取る、最も一般的な Web ベース攻撃の 1 つです。

  • ユーザー権限の問題による攻撃により、悪意のある従業員が極秘情報へのアクセスを取得します。

  • メモリー破損により、攻撃者が極秘情報を漏洩させたり、コードを実行したりできるようになります。

  • クロスサイト スクリプティングにより、攻撃者が極秘情報を盗むために独自のコードを挿入します。

  • 安全でないサーバー設定への攻撃により、重要なデータや極秘データが公開されます。

DAST がスキャンによってセキュリティの脆弱性を特定したことを開発チームに警告すると、チームは問題の修復に取り組み、サイバー攻撃やデータ侵害によって引き起こされる悪影響から、会社のブランドや顧客を保護します。

DAST の長所\t

  • 現実世界の悪意のあるハッカーを模倣して、実行中のアプリケーションでのみ発生するセキュリティの脆弱性を特定します。通常、他の AppSec ツールでは、これらの問題を見つけることはできません。\t

  • 他の方法と比較して、ほとんど偽陽性 (存在しない脆弱性のレポート) が発生しません。

  • ソース コードへのアクセスが不要なため、あらゆるアプリケーションで実行できます。そのため、1 つの DAST ツールで開発チームの全てのアプリケーションに対応できます。\t

DASTの短所

  • テストを実行してレポートを解釈するために、セキュリティ エキスパートが必要になる場合があります。

  • スキャンが完了するまでに時間がかかる場合があります。

  • アプリケーションのソース コードでは機能しないため、問題のあるコードの具体的な場所は特定できません。 |

DAST と SAST

Dynamic application security testing (動的アプリケーション セキュリティ テスト、DAST)は static application security testing (静的アプリケーション セキュリティ テスト、SAST)とは異なります。

  • DAST ツールはプログラムを実行中にスキャンを行い、実行中のアプリケーション内のセキュリティ問題を見つけます。

  • SAST ツールはアプリケーションを実行していないときにアプリケーション ソース コードやバイナリ コードをスキャンして、設計やインプリメンテーションに基づく潜在的な脆弱性を特定します。

一部の SAST ツールはコードが作成されると同時にスキャンします。例えば、SAST のコード スキャン製品は GitHub Advanced Security (GHAS) にネイティブに組み込まれており、コードが記述されると同時に検査し、修正を開発者ワークフローにネイティブに統合します。これにより、開発者はコード内のセキュリティ問題を早期に発見して修正し、アプリケーション セキュリティを自動化および拡張することができます。

アプリケーション セキュリティを最大限に高めようとする開発者チームは、DAST ツールと SAST ツールを組み合わせてウェブ アプリケーションをテストします。このベストプラクティスにより、開発者は DAST による「外部から」のハッカーの視点と SAST による「内部から」の開発者の視点の両方から包括的にアプリケーションの脆弱性を把握できるようになるため、セキュリティが強化されます。

DAST ツールの使用方法

DAST テストは、アプリケーションがリリースされる前に開発者がセキュリティ問題を特定して修正できるよう、リアルタイムで実行されます。最も効果的な戦略は、脆弱性の修復にかかる負担と時間が少なくて済む、ソフトウェア開発ライフ サイクルの早い段階で DAST テストを実行することです。ウェブ アプリケーションが本番環境にリリースされると、DAST は継続的に脆弱性を検索し、修復が必要な場合は適切な人にアラートを送信します。

DAST を利用してセキュアなアプリケーションを開発する

ウェブ アプリケーションに対するサイバー攻撃は、ビジネスにとって重大な脅威です。DAST のスキャン機能は、アプリケーションに侵入してデータを盗もうとする悪意のある攻撃者を模倣することで、最も深刻な損害をもたらすセキュリティの脆弱性を明らかにし、アプリケーションが本番環境にリリースされる前に開発チームがこれらの脆弱性を修正できるようにします。

DAST のようなツールを使用してセキュリティ問題に先手を打つことは、GitHub Security の重要な要素です。GitHub Security は開発者が事前対応型セキュリティのアプローチをとれるように設計されており、次のようなセキュリティ ツールが DevOps ワークフローに直接組み込まれています。

  • コード スキャン コードが記述されると同時にコードのセキュリティ問題をスキャンし、修正を開発者ワークフローにネイティブに統合します。

  • シークレット スキャン 意図せずコードにプッシュされた可能性のある漏洩したシークレットの悪用を防止します。

  • サプライ チェーン セキュリティ ソフトウェア構成分析 (SCA) を使用して、コードベースに導入される前に脆弱な依存関係を検出します。

  • セキュリティ概要 企業全体にわたるセキュリティ リスクを単一の画面で一元的に表示します。

さらに、GitHub Actions を通じてサードパーティのセキュリティ機能を利用でき、開発者はコーディングを行うのと同じ場所でソフトウェアのワークフローを自動化、カスタマイズ、実行できる自由と拡張性を得ることができます。この機能により、開発者はサードパーティの SAST エンジン、DAST、Infrastructure as Code (IaC) スキャン、コンテナ スキャンなどを利用できます。

GitHub Security、DAST、サードパーティ ツールを組み合わせることで、開発者チームはソフトウェア ライフサイクル全体にわたりソフトウェアとカスタム コードを保護できます。

FAQ

DAST は何の略ですか。

DAST は「動的アプリケーション セキュリティ テスト」の略です。DAST ツールはウェブ アプリケーションが動作している状態のときにテストを実施し、疑似攻撃を使用してセキュリティの脆弱性を見つけます。

動的アプリケーション セキュリティ テスト (DAST) の目的は何ですか。

動的アプリケーション セキュリティ テスト (DAST) の目的は、開発者チームが、クレジット カード情報や顧客情報などの極秘データへのアクセスをハッカーに与えてしまうような、最も深刻な損害をもたらすサイバー攻撃からウェブ アプリケーションを保護できるようにすることです。

DAST と SAST の違いは何ですか。

アプリケーション セキュリティを最大限に高めようとする開発者チームは、DAST ツールと SAST ツールを組み合わせてウェブ アプリケーションをテストします。動的アプリケーション セキュリティ テスト (DAST) ツールは悪意のあるハッカーを模倣し、実行中のアプリケーションをスキャンしてセキュリティの脆弱性を見つけます。静的アプリケーション セキュリティ テスト (SAST) ツールはアプリケーションが実行されていないときにアプリケーション ソース コードやバイナリ コードをスキャンして、設計やインプリメンテーションに基づく脆弱性を見つけます。

DAST スキャンを実行する方法を教えてください。

DAST スキャンを実行するには、動的アプリケーション セキュリティ テスト (DAST) ツールを使用します。スキャンするウェブ アプリケーションの URL を入力すると、ツールがクロールを実行して潜在的な攻撃ポイントを検出し、ウェブ アプリケーション ページのマップを作成し、さまざまな種類の悪意のある攻撃を模倣してセキュリティ問題を明らかにし、脆弱性が見つかった場合は開発者チームにアラートを送信します。

DAST はブラックボックス テストですか。

はい。動的アプリケーション セキュリティ テスト (DAST) は、ウェブ アプリケーション セキュリティのブラックボックス テストです。DAST はアプリケーションのインフラストラクチャ、アーキテクチャ、コードを知らない攻撃者と同じ手法を模倣し、実行中のアプリケーションの脆弱性を見つけます。