Assisted rule creator を使用してカスタムルールを作成

Assisted rule creator オプションを使用すると、Agent ルールと依存する検出ルールを同時に作成でき、Agent ルールが検出ルールで適切に参照されます。このツールを使うと、Agent ルールと検出ルールを個別に作成する高度な方法よりも作業が迅速に完了します。

詳細については、カスタム検出ルールの作成を参照してください。

Agent 式の構文

Cloud Security Management Threats (CSM Threats) はまず、Datadog Agent 内のアクティビティをエージェント式に基づいて評価し、どのアクティビティを収集するかを判断します。CSM Threats ルールのこの部分は「エージェント式」と呼ばれます。エージェント式は Datadog のセキュリティ言語 (SECL) を使用します。SECL 式の標準形式は次のとおりです。

<event-type>.<event-attribute> <operator> <value> [<operator> <event-type>.<event-attribute>] ...

この形式を用いた Linux システム向けの例となるルールは、次のようになります。

open.file.path == "/etc/shadow" && process.file.path not in ["/usr/sbin/vipw"]

演算子

SECL 演算子は、イベント属性を組み合わせて完全な式を作成するために使用されます。以下の演算子が利用可能です。

SECL 演算子種類定義Agent バージョン
==プロセス等しい7.27
!=ファイル等しくない7.27
>ファイル大なり7.27
>=ファイル以上7.27
<ファイル小なり7.27
<=ファイル以下7.27
!ファイル異なる7.27
^ファイル異なるバイナリ7.27
in [elem1, ...]ファイル要素がリストに含まれている7.27
not in [elem1, ...]ファイル要素がリストに含まれていない7.27
=~ファイル一致する文字列7.27
!~ファイル一致しない文字列7.27
&ファイルバイナリおよび7.27
|ファイルバイナリまたは7.27
&&ファイルロジカルおよび7.27
||ファイルロジカルまたは7.27
in CIDRネットワーク要素が IP 範囲にある7.37
not in CIDRネットワーク要素が IP 範囲にない7.37
allin CIDRネットワークすべての要素が IP 範囲にある7.37
in [CIDR1, ...]ネットワーク要素が IP 範囲にある7.37
not in [CIDR1, ...]ネットワーク要素が IP 範囲にない7.37
allin [CIDR1, ...]ネットワークすべての要素が IP 範囲にある7.37

パターンと正規表現

SECL 式では、パターンや正規表現を使用することができます。これらは innot in=~!~ 演算子とともに使用することができます。

形式対応フィールドAgent バージョン
~"pattern"~"httpd.*"All7.27
r"regexp"r"rc[0-9]+".path を除くすべて7.27

.path フィールドのパターンは Glob として使用されます。* は同じレベルのファイルやフォルダにマッチします。7.34 で導入された ** は、すべてのファイルとサブフォルダにマッチさせるためにパスの末尾に使用することができます。

Duration

SECL を使用すると、特定の期間に発生したイベントをトリガーとする継続時間ベースのルールを記述することができます。例えば、プロセスが作成された後、一定時間以上秘密ファイルにアクセスした場合にトリガーします。 このようなルールは、次のように書くことができます。

open.file.path == "/etc/secret" && process.file.name == "java" && process.created_at > 5s

期間は、数値に単位の接尾辞をつけたものです。対応するサフィックスは “s”、“m”、“h” です。

プラットフォーム固有の構文

SECL 式は複数のプラットフォームをサポートしています。以下のドキュメントを参照して、各プラットフォームで使用可能な属性とヘルパーを確認できます。