Datadog における Application Security Management の仕組み

概要

Datadog Application Security Management (ASM) は、コードレベルの脆弱性の悪用やアプリケーションのビジネスロジックの不正使用を目的としたアプリケーションレベルの攻撃や、システムを狙う悪質な行為に対する観測可能性を提供します。

さらに、ASM は、アプリケーションが実行時に使用する脆弱なライブラリや依存関係などを通じて、アプリケーションに組み込まれたリスクを検出します。

Datadog APM は、トレースと呼ばれる各アプリケーションリクエストに関する情報を記録します。Datadog ASM は、APM と同じトレーシングライブラリを使用してトラフィックを監視します。ASM は、既知の攻撃パターンに一致する疑わしいリクエストに基づいて攻撃の試みにフラグを立てるか、またはビジネスロジック情報をタグ付けします。Datadog がサービスに影響を与えるアプリケーション攻撃やビジネスロジックの不正使用を検出すると、セキュリティシグナルが自動的に作成されます。このシグナルは、個々の攻撃の試みを評価する代わりに、レビューのために重要な脅威を特定します。セキュリティシグナルの設定に応じて、Slack、メール、または PagerDuty から通知を受け取ることができます。

従来の Web アプリケーションファイアウォール (WAF) は、通常、境界にデプロイされ、アプリケーションの動作に関するコンテキストを持ちません。ASM はアプリケーションに組み込まれているため、トレースデータにアクセスすることができ、脅威をピンポイントで分類するのに有効です。Datadog ASM は、Web アプリケーションファイアウォール (WAF) と同様に既知の攻撃パターンを活用しますが、アプリケーションのコンテキストを追加することで S/N 比を高め、誤検知を低減させます。

アプリケーション攻撃にさらされるサービスを特定する

Datadog ASM Threat Monitoring and Protection は、APM が既に収集している情報を使用し、攻撃の試みを含むトレースにフラグを付けます。アプリケーションの攻撃にさらされたサービスは、APM に組み込まれたセキュリティビュー (サービスカタログサービス詳細画面トレース) で直接ハイライト表示されます。

APM はアプリケーションのトラフィックのサンプルを収集するため、サービスを効果的に監視し保護するためには、トレーシングライブラリで ASM を有効にすることが必要です。

Datadog Threat Monitoring and Detection は、すべてのリクエストでクライアントの IP アドレスと手動で追加したユーザータグを収集することで、悪質な行為者を特定します。

ベータ版: 1 クリック有効化
サービスがリモート構成を有効にした Agent とそれをサポートするトレーシングライブラリのバージョンで実行されている場合、Agent やトレーシングライブラリの追加構成なしで Datadog UI から ASM を有効にすることができます。

脆弱なサービスの特定

Datadog Application Vulnerability Management は、オープンソースのソフトウェアライブラリに関連する様々な既知の脆弱性データソースと、Datadog のセキュリティリサーチチームから提供される情報を利用して、アプリケーションがランタイムに依存するライブラリとその潜在的脆弱性を照合し、改善策を提言します。

互換性

Datadog ASM を Datadog の構成と互換性を持たせるためには、APM を有効にし、Datadog にトレースを送信する必要があります。ASM は APM が使用する同じライブラリを使用するため、別のライブラリをデプロイして維持する必要はありません。Datadog ASM を有効にするための手順は、ランタイム言語によって異なります。ASM の前提条件で、お使いの言語がサポートされているかどうかを確認してください。

サーバーレスモニタリング

AWS Lambda の ASM サポートはベータ版です。脅威の検出は Datadog の Lambda 拡張機能を利用して行われます。

Datadog の AWS Lambda 向け ASM は、関数を標的としている攻撃者を詳細に可視化します。攻撃に関する豊富な情報を提供する分散型トレーシングにより、影響を評価し、脅威を効果的に修正できます。

セットアップに関する情報については、サーバーレスのための ASM の有効化をお読みください。

パフォーマンス

Datadog ASM は、Agent と APM にすでに含まれているプロセスを使用するため、使用する際のパフォーマンスへの影響はほとんどありません。APM が有効な場合、Datadog ライブラリは分散型トレースを生成します。Datadog ASM は、既知の攻撃パターンを使用して、トレース内のセキュリティアクティビティにフラグを立てます。攻撃パターンと分散型トレースで提供される実行コンテキストを相関させることで、検出ルールに基づいてセキュリティシグナルをトリガーします。

Datadog トレーサーライブラリは、アプリケーションサービスレベルで動作し、Datadog バックエンドにトレースを送信することを図解しています。Datadog バックエンドは、実用的なセキュリティシグナルにフラグを立て、PagerDuty、Jira、Slack などの関連アプリケーションに通知を送信します。

データのサンプリングと保持

トレーシングライブラリでは、Datadog ASM は、セキュリティデータを含むすべてのトレースを収集します。デフォルトの保持フィルターは、Datadog プラットフォームにおける全てのセキュリティ関連トレースの保持を保証するものです。

疑わしいリクエストのデータは、90 日間保存されます。基礎となるトレースデータは 15 日間保存されます。

データプライバシー

デフォルトでは、ASM は疑わしいリクエストから情報を収集し、そのリクエストが疑わしいと判定された理由を理解するのに役立ちます。データを送信する前に、ASM はデータが機密であることを示すパターンとキーワードをスキャンします。データが機密であると判断された場合、それは <redacted> フラグに置き換えられます。これは、リクエストは疑わしいが、データセキュリティの懸念からリクエストデータを収集できなかったことを示します。

ここでは、デフォルトで機密とフラグが立っているデータの例を紹介します。

  • pwdpasswordipasswordpass_phrase
  • secret
  • keyapi_keyprivate_keypublic_key
  • token
  • consumer_idconsumer_keyconsumer_secret
  • signsignedsignature
  • bearer
  • authorization
  • BEGIN PRIVATE KEY
  • ssh-rsa

ASM で再集された情報の構成は、データセキュリティ構成を参照してください。

脅威の検出方法

Datadog は、OWASP ModSecurity Core Rule Set を含む複数のパターンソースを使用して、HTTP リクエストにおける既知の脅威と脆弱性を検出します。HTTP リクエストが OOTB 検出ルールのいずれかにマッチすると、Datadog にセキュリティシグナルが生成されます。

脅威パターンの自動更新: サービスがリモート構成を有効にした Agent とそれをサポートするトレーシングライブラリのバージョンで実行されている場合、サービスを監視するために使用されている脅威パターンは、Datadog がアップデートを公開するたびに自動的に更新されます。

セキュリティシグナルは、Datadog が本番サービスを標的とした意味のある攻撃を検出すると、自動的に作成されます。これにより、攻撃者と標的となったサービスに関する可視性を得ることができます。しきい値付きのカスタム検出ルールを設定して、通知を受けたい攻撃を決定することができます。

内蔵保護機能

If your service is running an Agent with Remote Configuration enabled and a tracing library version that supports it, you can block attacks and attackers from the Datadog UI without additional configuration of the Agent or tracing libraries.

ASM Protect goes beyond Threat Detection and enables you to take blocking action to slow down attacks and attackers. Unlike perimeter WAFs that apply a broad range of rules to inspect traffic, ASM uses the full context of your application—its databases, frameworks, and programming language—to narrowly apply the most efficient set of inspection rules.

ASM leverages the same tracing libraries as Application Performance Monitoring (APM) to protect your applications against:

  • Attacks: ASM’s In-App WAF inspects all incoming traffic and uses pattern-matching to detect and block malicious traffic (suspicious requests).
  • Attackers: IP addresses and authenticated users that are launching attacks against your applications are detected from the insights collected by the libraries and flagged in Security Signals.

Suspicious requests are blocked in real time by the Datadog tracing libraries. Blocks are saved in Datadog, automatically and securely fetched by the Datadog Agent, deployed in your infrastructure, and applied to your services. For details, read How Remote Configuration Works.

To start leveraging Protection capabilities—In-App WAF, IP blocking, User blocking and more—read Protection.

攻撃試行の分類

分散型トレーシング情報を活用し、攻撃試行を安全、不明、有害のいずれかに分類します。

  • 例えば、Java で書かれたサービスを狙った PHP インジェクション攻撃では、安全と分類された攻撃はアプリケーションに侵入できません。
  • 未知の分類とは、攻撃の成功確率について確定的な判断を下すのに十分な情報がない場合に決定されます。
  • コードレベルの脆弱性が攻撃者によって発見された証拠がある場合、有害の分類が強調されます。

脅威の監視範囲

Datadog ASM には、以下のカテゴリーを含むがこれに限定されない、多くの異なる種類の攻撃から保護するのに役立つ 100 以上の攻撃シグネチャーが含まれています。

  • SQL インジェクション
  • コードインジェクション
  • シェルインジェクション
  • NoSQL インジェクション
  • クロスサイトスクリプティング (XSS)
  • サーバーサイドリクエストフォージェリー (SSRF)

内蔵の脆弱性検出

Datadog ASM には、オープンソース依存部分で検出された脆弱性について警告する検出機能が組み込まれています。その情報の詳細は、Vulnerability Explorer に表示され、重大度、影響を受けるサービス、潜在的に脆弱なインフラストラクチャー、および表面化したリスクを解決するための改善手順が特定されます。

詳しくは、Application Vulnerability Management をお読みください。

Datadog ASM による Log4Shell の保護方法

Datadog ASM は、Log4j Log4Shell 攻撃ペイロードを識別し、悪意のあるコードをリモートでロードしようとする脆弱なアプリを視覚化します。Datadog の Cloud SIEM の他の機能と組み合わせて使用すると、一般的なエクスプロイト後のアクティビティを特定して調査し、攻撃ベクトルとして機能する潜在的に脆弱な Java Web サービスをプロアクティブに修正することができます。

その他の参考資料