- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
リモート構成を有効にした Agent とそれをサポートするトレーシングライブラリのバージョンを実行しているサービスであれば、Agent やトレーシングライブラリの追加構成なしに、Datadog UI から攻撃やアタッカーをブロックすることができます。
Application Security Management (ASM) Protect は、攻撃や攻撃者を_ブロック_することでその速度を落とすことを可能にします。不審リクエストは、Datadog のトレーシングライブラリによってリアルタイムでブロックされます。ブロックは Datadog プラットフォームに保存され、Datadog Agent によって自動的かつ安全にフェッチされ、インフラストラクチャーにデプロイされ、サービスに適用されます。
サービスに保護機能を活用するには
ASM セキュリティシグナルでフラグが立てられた攻撃者を一時的または恒久的にブロックすることができます。シグナルエクスプローラでシグナルをクリックすると、そのシグナルを生成しているユーザーと IP アドレスが表示され、オプションでそれらをブロックすることができます。
そこから、ASM によって保護されているすべてのサービスは、指定された期間、ブロックされた IP またはユーザーによって実行される着信リクエストをブロックします。ブロックされたすべてのトレースには security_response.block_ip
または security_response.block_user
というタグが付けられ、トレースエクスプローラーに表示されます。ASM が無効になっているサービスは保護されません。
攻撃者を手動でブロックするだけでなく、自動化ルールを構成して、ASM がセキュリティシグナルでフラグを立てた攻撃者を自動的にブロックするようにすることも可能です。
開始するには、Security > Application Security > Configuration > Detection Rules に移動します。新しいルールを作成したり、Application security のタイプで既存のルールを編集したりすることができます。たとえば、Credential Stuffing 攻撃が検出されたときに重大度シグナル Critical
をトリガーし、関連する攻撃者の IP アドレスを 30 分間自動的にブロックするルールを作成することができます。
注: 認証された攻撃者をブロックできるようにするには、サービスをインスツルメンテーションする必要があります。詳しくは、ユーザーの監視と保護をご覧ください。
Datadog ASM は、Security Signal から直接、攻撃者を境界でブロックすることができます。ASM はワークフローとインテグレーションし、攻撃者の IP アドレスを境界の Web アプリケーションファイアウォール (AWS WAF、Cloudflare、Fastly) にプッシュし、これらの攻撃者からのリクエストが顧客の環境に入る前にエッジでブロックされるようにします。 利用可能なブループリントからワークフローを作成し、ASM のシグナルサイドパネルから直接実行します。
永久的または一時的にブロックされた攻撃者の IP アドレスや認証ユーザーは、Denylist に追加されます。Denylist ページでリストを管理します。Denylist は、個別 IP だけではなく IP 範囲 (CIDR ブロック) のブロックもサポートしています。
Passlist を使用すると、特定の IP アドレスに対して、アプリケーションへのアクセスを恒久的に許可することができます。例えば、内部 IP アドレスや、アプリケーションのセキュリティ監査を定期的に実行する IP アドレスを Passlist に追加することができます。また、特定のパスを追加して、中断のないアクセスを確保することもできます。Passlist ページからリストを管理します。
ASM アプリ内 WAF (Web アプリケーションファイアウォール) は、境界ベースの WAF の検出技術と Datadog が提供する豊富なコンテキストを組み合わせ、チームが自信を持ってシステムを保護できるようにします。
ASM はアプリケーションのルートを認識しているため、保護は特定のサービスに対してきめ細かく適用でき、必ずしもすべてのアプリケーションとトラフィックに適用する必要はありません。このコンテキストに基づく効率化により、検査の労力が軽減され、境界型 WAF と比較して誤検出率が低下します。ほとんどの Web フレームワークが構造化された経路のマップを提供するため、学習期間はありません。ASM は、脆弱性が公開された後すぐにゼロデイ脆弱性に対する保護を自動的に展開し、脆弱なアプリケーションをターゲットにして、誤検出のリスクを抑えることができるようにします。
130 以上のアプリ内 WAF ルールのそれぞれに提供される monitoring
および disabled
モードに加え、ルールには blocking
モードもあります。各ルールは、ライブラリが疑わしいと判断する条件を受信リクエストに指定します。与えられたルールパターンが進行中の HTTP リクエストにマッチすると、そのリクエストはライブラリによってブロックされます。
マネージドポリシーは、アプリ内 WAF ルールの各々がマッチング時に動作するモードを定義します。monitoring
、blocking
、disabled
のいずれかです。ASM はアプリケーションの完全なコンテキストを把握しているため、どのルールを適用すれば誤検知の数を抑えながらアプリケーションを保護できるかを把握しています。
きめ細かい制御を行うには、Datadog が管理するポリシーを複製するか、カスタムポリシーを作成し、ニーズに合わせてモードを設定することができます。ポリシーを auto-updating
に設定すると、Datadog が展開する最新の検出によってアプリケーションが保護されます。また、ポリシーをルールセットの特定のバージョンに固定するオプションもあります。
アプリ内 WAF ルールがモード間で切り替わるため、リモート構成が有効のサービスでは、ほぼリアルタイムで変更が反映されます。それ以外のサービスでは、アプリ内 WAF ページでポリシーを更新し、アプリ内 WAF ルールの定義を行うことで、動作の変更が適用されます。
Security –> Application Security –> Configuration –> In-App WAF と進み、アプリ内 WAF を管理します。
トレースエクスプローラーで、ファセット Blocked:true
でフィルターをかけて、ブロックされた不審リクエストを表示します。
リモート構成を有効にすると、ASM が有効なサービスがアプリ内 WAF の下に表示されるようになります。これは、Datadog バックエンドからインフラストラクチャー内のトレーシングライブラリにアプリ内 WAF の構成を安全にプッシュするために必要です。
ASM/リモート構成が有効なサービスをポリシーと関連付けます。リモート構成が有効なサービスは、デフォルトで Datadog Recommended ポリシーの下に表示されます。Datadog Recommended は管理されたポリシーで、読み取り専用です。つまり、個々のルールのステータス (監視、ブロック、または無効) を変更することはできません。
詳細な制御が必要な場合は、Datadog Recommended ポリシーを複製して、ルールステータスを変更できるカスタムポリシーを作成します。このカスタムポリシーに、1 つまたは複数のサービスを関連付けます。
各サービスのブロッキングを構成します。デフォルトでは、特定のアプリ内 WAF ルールのステータスがブロッキングであっても、リクエストはブロックされません。Security > Configuration > Application > In-App WAF に移動して、サービスのブロッキングモードをオンにします。
The blocked requests feature JSON or HTML content. If the Accept
HTTP header is pointing to HTML, like text/html
, the HTML content is used. Otherwise, the JSON one is used.
Both sets of content are embedded in the Datadog Tracer library package and loaded locally. See examples of the templates for HTML and JSON in the Datadog Java tracer source code on GitHub.
The HTML and JSON content can both be changed using the DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML
and DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON
environment variables within your application deployment file.
Example:
DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML=<path_to_file.html>
Alternatively, you can use the configuration entry.
For Java, add the following:
dd.appsec.http.blocked.template.html = '<path_to_file.html>'
dd.appsec.http.blocked.template.json = '<path_to_file.json>'
For Ruby, add the following:
# config/initializers/datadog.rb
Datadog.configure do |c|
# To configure the text/html blocking page
c.appsec.block.templates.html = '<path_to_file.html>'
# To configure the application/json blocking page
c.appsec.block.templates.json = '<path_to_file.json>'
end
For PHP, add the following:
; 98-ddtrace.ini
; Customises the HTML output provided on a blocked request
datadog.appsec.http_blocked_template_html = <path_to_file.html>
; Customises the JSON output provided on a blocked request
datadog.appsec.http_blocked_template_json = <path_to_file.json>
For Node.js, add the following:
require('dd-trace').init({
appsec: {
blockedTemplateHtml: '<path_to_file.html>',
blockedTemplateJson: '<path_to_file.json>'
}
})
By default, the page shown in response to a blocked action looks like this:
攻撃者に拒否ページを提供する際のデフォルトの HTTP レスポンスステータスコードは、403 FORBIDDEN
です。このレスポンスをカスタマイズするには、Security > Application Security > Configuration > Protection に移動してください。
拒否ページが提供されるときにレスポンスコードを 200 OK
または 404 NOT FOUND
にオーバーライドすることで、攻撃者が検出されブロックされた事実をオプションで隠すことができます。
また、オプションで攻撃者をカスタム拒否ページにリダイレクトさせ、重要なサービスやインフラストラクチャーから遠ざけることができます。リダイレクト URL とリダイレクトの種類 (例: 永久 (301
レスポンスコード) または一時 (302
レスポンスコード)) を指定します。
保護モードはデフォルトでオンであり、これはすべてのサービスにわたってブロックを素早く無効にするために利用できるトグルです。リクエストは Datadog の 2 つのセクションからブロックすることができます。つまり、セキュリティシグナルからのすべての攻撃者リクエストと、アプリ内 WAF からの疑わしいリクエストです。後者は、アプリ内 WAF でサービスごとにブロッキングを構成する必要があります。
保護機能をきめ細かく適用し、正規のユーザーがブロックされる可能性を減らすことは重要ですが、すべてのサービスにわたるすべてのブロックをすばやく停止するためのシンプルなオフスイッチが必要な場合があります。保護をオフにするには、Security > Application Security > Configuration > Protection に移動して、Protection mode をオフに切り替えます。
お役に立つドキュメント、リンクや記事: