DAST

DASTとは

動的アプリケーション・セキュリティ・テスト(DAST)は、アプリケーション内部の相互作用や設計をシステム・レベルで認識せず、ソース・プログラムにアクセスしたり、ソース・プログラムを可視化することなく、アプリケーションの実行中にアプリケーションを検査するAppSecテスト手法です。この「ブラックボックス」テストでは、外部からアプリケーションを調べて、その実行状態を精査し、ツールによる攻撃シミュレーションに対する反応を観察します。攻撃シミュレーションに対するアプリケーションの反応は、アプリケーションが脆弱であるかどうか、実際の悪意のある攻撃の影響を受けやすいかどうかの判断に役立ちます。

DASTの仕組み

DASTは、アプリケーションに対する自動化された攻撃をシミュレーションし、悪意のある攻撃者の振る舞いを模倣します。これは想定外の結果を発見し、それが攻撃者によってアプリケーション侵害に利用されることを未然に防止することを目的としています。DASTツールにはアプリケーションやソースコードに関する内部情報が存在しないため、外部のハッカーと同じように、アプリケーションに関する知識や情報が制限された状態で攻撃を行います。

DASTソリューションにはさまざまな種類があります。それは、実行時にWebアプリケーションの動的スキャン・解析を行う従来のDASTツールから、WebとAPIのスキャン、ペネトレーション・テストファジングテストを組み合わせた最新のDASTソリューションまで多岐にわたります。Interactive Application Security Testing(IAST:インタラクティブ・アプリケーション・セキュリティ・テスト)などの次世代型テクノロジー・ツールもあります。

DASTとSASTの違い

静的アプリケーション・セキュリティ・テスト(SAST)はDASTとは逆のアプローチを取り、内部の仕組み(ソースコード、バイナリなど)を完全に把握して、内部からアプリケーションを探ります。この「ホワイトボックス」テストの目的は、コードの問題を発見することです。SASTは実行時の動作ではなく、アプリケーションのソースコードを精査するテストであるため、テストの実行時にアプリケーションを実行しません。SASTでは、アプリケーションのデータと制御パスを再調査してセキュリティ上の弱点を確認します。

DASTはアプリケーションの実行中に行われるテストであり、攻撃者の観点から解析を行い、潜在的な脆弱性を特定します。DASTでは、実行中のアプリケーションの悪用可能な欠陥を発見します。

SASTは、最新のDevOpsモデルを用いてソフトウェア開発ライフサイクル(SDLC)の初期段階から取り入れられ、結果を反復的に提供します。一方、開発者は継続的インテグレーション/継続的デプロイ(CI/CD)手法の一部としてアプリケーションのコード・セグメントを作成します。SASTの解析結果で脆弱なコードの具体的な行を特定できるため、コーディング中にソフトウェアの問題を簡単に修正できます。

DASTはSDLCのビルド統合フェーズの初期段階でも利用できますが、通常は後工程のテストおよび実稼働フェーズで用いられます。こうした後工程では、アプリケーションが既に構築されているので、実行時の解析が可能です。DASTでは潜在的な脆弱性を特定できますが、SASTのように脆弱なコードの行を特定することはできません。

DASTとIASTの違い

インタラクティブ・アプリケーション・セキュリティ・テスト(IAST)は、開発者が自動または手動でテストを実行している間に、実行中のアプリケーションのコードの脆弱性を精査するAppSec手法です。IASTは、DASTやSASTとは異なり、アプリケーションの内部から動作します。これに対し、DASTは外部から動作し、外部からアプリケーションの内部を探ります。SASTはソースコードを解析してアプリケーションの内部を調べます。IASTは実際にはアプリケーションの内部で機能します。

IASTでは、コードベースやアプリケーション全体へのアクセスは不要で、必要とするのは、機能テスト中に使用されるアプリケーションの要素のみです。リアルタイムでレポートを生成するIASTは、通常は機能テストを実行できるQ&A環境内に実装されます。

SDLCにおけるSeeker IAST、Tinfoil DAST、Defensicsファジングテストの役割。| シノプシス

RASPとは

ランタイム・アプリケーション自己保護(RASP)は、アプリケーションの実行時にサーバー上で実行されるAppSecソリューションの一種であり、アプリケーションに対する攻撃をリアルタイムで検出して保護します。RASPはアプリケーションの動作を解析して攻撃を特定し、攻撃からの迅速な回復を支援します。アプリケーションでセキュリティ・アクティビティが発生すると、RASPツールはアプリケーションのコマンドを制御し、問題を緩和します。

DASTとペネトレーション・テストの違い

ペネトレーション・テスト(ペンテスト)では、アプリケーションに対するサイバー攻撃をシミュレーションして脆弱性を発見します。ペネトレーション・テストは、潜在的な脆弱性を発見するアクティビティを実行するという点ではDASTと同様ですが、両者はテストの目的と機能が異なります。DASTでは、指摘された脆弱性の特定と報告を自動化しますが、ペネトレーション・テストでは、テスト担当者が(ペネトレーション・テスト・ツールやDASTツールを使用して)発見された脆弱性の悪用を試み、それが本当に実現可能な脅威であるかどうかを判断するという人手の介在が含まれます。

各アプリケーション・セキュリティ・テスト・ツールの利点

DASTの主な強みは、ランタイムの問題(アプリケーションの実行時でなければ検出できない弱点)を特定できることです。さらに、DASTでは、アプリケーションが実際に攻撃に対してどのように反応しているかを調べ、その脆弱性が操られる可能性がどの程度あるかについての有益な情報を提供します。

SASTは、コードの作成中に脆弱性を特定する場合に最適です。SASTがなければ、開発チームはSDLCの後工程になるまで問題を発見できない可能性があります。SASTは問題のあるコーディングの正確な場所を見つける場合にも役立ち、脆弱性の特定および修正が容易になります。

IASTは、DevSecOpsを可能にし、継続的なテスト、監視、評価、検証をリアルタイムにサポートします。IASTでは、ビジネス目標やアプリケーション・セキュリティのニーズに基づいて定義された重要リスクに優先順位を付けてアラートを作成することができます。また、テスト・フェーズで行われた既存のテストを活用し、特定された脆弱性が悪用可能かどうかを積極的に検証することで、誤検知を減らすことができます。また、IASTソリューションは、脆弱なコード行を特定して修正に役立つアドバイスを提供し、コード内のセキュリティ上の問題を簡単に修正できるようにします。

SAST、DAST、IAST、ペネトレーション・テストのすべてを組み合わせることはできるか

複数のAppSecソリューションを用いることは、アプリケーション・セキュリティのベストプラクティスです。アクティビティとSDLCのフェーズが異なるさまざまな方法を採用することで、AppSecのエキスパートはセキュリティ体制を総括的に把握できます。複数のテスト手法の組み合わせによって各ソリューションが代替方法を用いて潜在的な脆弱性を巧みに特定するため、総括的なアプリケーション・セキュリティが実現します。この最新アプローチの詳細については、シノプシスのブログ記事「Which application security tools should you choose?(アプリケーション・セキュリティ・ツールの選択)」をご覧ください。

SDLC全体を通じたシノプシスの製品/サービス | シノプシス

シノプシスの製品/サービス

マネージドDASTサービス

シノプシスのマネージドDASTは、複雑なアプリケーション、幅広いポートフォリオ、社内のリソース/スキルの課題に対応するための高度な動的セキュリティ・テストを必要とするチーム向けのコスト効率の高いマネージド・セキュリティ・テスト・ソリューションです。

Tinfoil API ScannerとTinfoil Web Scanner

シノプシスのTinfoil™は、DAST機能を提供し、APIセキュリティ・テスト機能を開発ワークフローとDevOpsワークフローに統合します。

Tinfoil Web Scannerの業界をリードする機能をDevOpsワークフローに統合することで、アプリケーション・セキュリティの強化が可能になります。

Tinfoil API Scannerは、通常のAppSecツールでは実現できないAPIテストの複雑な固有ニーズに対応することを意識して設計されています。APIがどのように使用され、どのように攻撃されるかを意識して設計された比類のないスキャナです。API認証と見つけやすさがもたらすセキュリティ・テストの課題に取り組む新しいスキャン・エンジンは、API固有の課題を解決することを目的とする、他とは一線を画する製品です。

Seekerインタラクティブ・アプリケーション・セキュリティ・テスト

Seeker®は、アクティブ検証と重要データのトラッキング機能を備えた、業界初のWebベース・アプリケーション向けIASTソリューションです。特許取得済みのアクティブ検証テクノロジー:

  • 特定された脆弱性の再テストを自動的に行い、特定された脆弱性が実在するものであるか、またエクスプロイトに利用される可能性があるものであるかどうかを高精度に自動検出します
  • 従来の動的テストよりも高精度な結果を提供します
  • 重要なセキュリティ脆弱性に関するビューをリアルタイムで提供します

Defensicsファジングテスト

Defensics®を使用すると、ソフトウェアの堅牢性が向上し、システムの相互運用性が確保されるとともに、業務運用に向けてソフトウェアを調達する場合でも、ソフトウェアを構築する場合でも、脆弱性を特定できます。

Coverity静的アプリケーション・セキュリティ・テスト

開発の促進と、セキュリティおよび品質の向上。Coverity®は、開発チームとセキュリティ・チームがSDLCの早い段階でセキュリティと品質の不具合に対処すること、アプリケーション・ポートフォリオ全体のリスクを追跡および管理すること、セキュリティおよびコーディング規約へのコンプライアンスを確保することを支援する、迅速かつ正確で拡張性の高いSASTソリューションです。