Windows Agent の属性とヘルパー

このドキュメントでは、Datadog の Security Language (SECL) における Windows 属性とヘルパーについて説明します。

Windows 属性とヘルパーを使用するルールでは、以下のように OS のルールフィルターを含める必要があります。

id: [...]
expression: [...]
filters:
  - os == "windows"

トリガー

トリガーは、システムで見られるアクティビティの種類に対応するイベントです。現在サポートされているトリガーは以下のとおりです。

SECL イベントタイプ定義Agent バージョン
change_permissionレジストリ権限の変更が行われました7.55
createファイルファイルが作成されました7.52
create_keyレジストリレジストリキーが作成されました7.52
deleteファイルファイルが削除された7.54
delete_keyレジストリレジストリキーが削除されました7.52
execプロセスプロセスが実行またはフォークされた7.27
exitプロセスプロセスが終了した7.38
open_keyレジストリレジストリキーが開かれました7.52
renameファイルファイル名が変更されました7.54
set_key_valueレジストリレジストリキーの値が設定されました7.52
writeファイルファイルに書き込みが行われました7.54

変数

SECL 変数は、値として、または値の一部として使用することができる定義済みの変数です。

例えば、process.pid という変数を使ったルールは以下のようになります。

open.file.path == "/proc/${process.pid}/maps"

利用可能な変数の一覧です。

SECL 変数定義Agent バージョン
process.pidプロセス PID7.33

イベント属性

すべてのイベントタイプに共通

プロパティ定義
container.created_atコンテナ作成時のタイムスタンプ
container.idコンテナの ID
container.runtimeRuntime managing the container
container.tagsコンテナのタグ
event.hostnameHostname associated with the event
event.originOrigin of the event
event.osOperating system of the event
event.serviceService associated with the event
event.timestampイベントのタイムスタンプ
process.ancestors.cmdlineプロセスのコマンドライン
process.ancestors.container.idコンテナ ID
process.ancestors.created_atプロセス作成時のタイムスタンプ
process.ancestors.envpプロセスの環境変数
process.ancestors.envsプロセスの環境変数名
process.ancestors.file.nameファイルのベース名
process.ancestors.file.name.length対応する要素の長さ
process.ancestors.file.pathファイルのパス
process.ancestors.file.path.length対応する要素の長さ
process.ancestors.length対応する要素の長さ
process.ancestors.pidプロセスのプロセス ID (スレッドグループ ID とも呼ばれる)
process.ancestors.ppid親プロセス ID
process.ancestors.userユーザー名
process.ancestors.user_sidプロセスのユーザー SID
process.cmdlineプロセスのコマンドライン
process.container.idコンテナ ID
process.created_atプロセス作成時のタイムスタンプ
process.envpプロセスの環境変数
process.envsプロセスの環境変数名
process.file.nameファイルのベース名
process.file.name.length対応する要素の長さ
process.file.pathファイルのパス
process.file.path.length対応する要素の長さ
process.parent.cmdlineプロセスのコマンドライン
process.parent.container.idコンテナ ID
process.parent.created_atプロセス作成時のタイムスタンプ
process.parent.envpプロセスの環境変数
process.parent.envsプロセスの環境変数名
process.parent.file.nameファイルのベース名
process.parent.file.name.length対応する要素の長さ
process.parent.file.pathファイルのパス
process.parent.file.path.length対応する要素の長さ
process.parent.pidプロセスのプロセス ID (スレッドグループ ID とも呼ばれる)
process.parent.ppid親プロセス ID
process.parent.userユーザー名
process.parent.user_sidプロセスのユーザー SID
process.pidプロセスのプロセス ID (スレッドグループ ID とも呼ばれる)
process.ppid親プロセス ID
process.userユーザー名
process.user_sidプロセスのユーザー SID

イベント change_permission

権限の変更が行われました

プロパティ定義
change_permission.new_sd変更後のオブジェクトの新しいセキュリティ記述子
change_permission.old_sd変更前のオブジェクトの元のセキュリティ記述子
change_permission.path権限が変更されたオブジェクトの名前
change_permission.type権限が変更されたオブジェクトの種類
change_permission.user_domain権限を変更したユーザーのドメイン名
change_permission.username権限変更を実行したユーザー名

イベント create

ファイルが作成されました

プロパティ定義
create.file.device_pathファイルのパス
create.file.device_path.length対応する要素の長さ
create.file.nameファイルのベース名
create.file.name.length対応する要素の長さ
create.file.pathファイルのパス
create.file.path.length対応する要素の長さ

イベント create_key

レジストリキーが作成されました

プロパティ定義
create.registry.key_nameレジストリ名
create.registry.key_name.length対応する要素の長さ
create.registry.key_pathレジストリパス
create.registry.key_path.length対応する要素の長さ
create_key.registry.key_nameレジストリ名
create_key.registry.key_name.length対応する要素の長さ
create_key.registry.key_pathレジストリパス
create_key.registry.key_path.length対応する要素の長さ

イベント delete

ファイルが削除された

プロパティ定義
delete.file.device_pathファイルのパス
delete.file.device_path.length対応する要素の長さ
delete.file.nameファイルのベース名
delete.file.name.length対応する要素の長さ
delete.file.pathファイルのパス
delete.file.path.length対応する要素の長さ

イベント delete_key

レジストリキーが削除されました

プロパティ定義
delete.registry.key_nameレジストリ名
delete.registry.key_name.length対応する要素の長さ
delete.registry.key_pathレジストリパス
delete.registry.key_path.length対応する要素の長さ
delete_key.registry.key_nameレジストリ名
delete_key.registry.key_name.length対応する要素の長さ
delete_key.registry.key_pathレジストリパス
delete_key.registry.key_path.length対応する要素の長さ

イベント exec

プロセスが実行またはフォークされた

プロパティ定義
exec.cmdlineプロセスのコマンドライン
exec.container.idコンテナ ID
exec.created_atプロセス作成時のタイムスタンプ
exec.envpプロセスの環境変数
exec.envsプロセスの環境変数名
exec.file.nameファイルのベース名
exec.file.name.length対応する要素の長さ
exec.file.pathファイルのパス
exec.file.path.length対応する要素の長さ
exec.pidプロセスのプロセス ID (スレッドグループ ID とも呼ばれる)
exec.ppid親プロセス ID
exec.userユーザー名
exec.user_sidプロセスのユーザー SID

イベント exit

プロセスが終了した

プロパティ定義
exit.causeプロセス終了の原因 (EXITED、SIGNALED、COREDUMPED のいずれか 1 つ)
exit.cmdlineプロセスのコマンドライン
exit.codeプロセスの終了コード、またはプロセスを終了させたシグナルの番号
exit.container.idコンテナ ID
exit.created_atプロセス作成時のタイムスタンプ
exit.envpプロセスの環境変数
exit.envsプロセスの環境変数名
exit.file.nameファイルのベース名
exit.file.name.length対応する要素の長さ
exit.file.pathファイルのパス
exit.file.path.length対応する要素の長さ
exit.pidプロセスのプロセス ID (スレッドグループ ID とも呼ばれる)
exit.ppid親プロセス ID
exit.userユーザー名
exit.user_sidプロセスのユーザー SID

イベント open_key

レジストリキーが開かれました

プロパティ定義
open.registry.key_nameレジストリ名
open.registry.key_name.length対応する要素の長さ
open.registry.key_pathレジストリパス
open.registry.key_path.length対応する要素の長さ
open_key.registry.key_nameレジストリ名
open_key.registry.key_name.length対応する要素の長さ
open_key.registry.key_pathレジストリパス
open_key.registry.key_path.length対応する要素の長さ

イベント rename

ファイル名が変更されました

プロパティ定義
rename.file.destination.device_pathファイルのパス
rename.file.destination.device_path.length対応する要素の長さ
rename.file.destination.nameファイルのベース名
rename.file.destination.name.length対応する要素の長さ
rename.file.destination.pathファイルのパス
rename.file.destination.path.length対応する要素の長さ
rename.file.device_pathファイルのパス
rename.file.device_path.length対応する要素の長さ
rename.file.nameファイルのベース名
rename.file.name.length対応する要素の長さ
rename.file.pathファイルのパス
rename.file.path.length対応する要素の長さ

イベント set_key_value

レジストリキーの値が設定されました

プロパティ定義
set.registry.key_nameレジストリ名
set.registry.key_name.length対応する要素の長さ
set.registry.key_pathレジストリパス
set.registry.key_path.length対応する要素の長さ
set.registry.value_nameレジストリ値名
set.registry.value_name.length対応する要素の長さ
set.value_nameレジストリ値名
set_key_value.registry.key_nameレジストリ名
set_key_value.registry.key_name.length対応する要素の長さ
set_key_value.registry.key_pathレジストリパス
set_key_value.registry.key_path.length対応する要素の長さ
set_key_value.registry.value_nameレジストリ値名
set_key_value.registry.value_name.length対応する要素の長さ
set_key_value.value_nameレジストリ値名

イベント write

ファイルに書き込みが行われました

プロパティ定義
write.file.device_pathファイルのパス
write.file.device_path.length対応する要素の長さ
write.file.nameファイルのベース名
write.file.name.length対応する要素の長さ
write.file.pathファイルのパス
write.file.path.length対応する要素の長さ

属性ドキュメント

*.cmdline

タイプ: 文字列

定義: プロセスのコマンドライン

*.cmdline には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

例:

exec.cmdline == "-sV -p 22,53,110,143,4564 198.116.0-255.1-127"

これらの正確な引数を持つ任意のプロセスにマッチします。

例:

exec.cmdline =~ "* -F * http*"

“http” で始まる引数の前に “-F " 引数を持つプロセスにマッチします。

*.container.id

タイプ: 文字列

定義: コンテナ ID

*.container.id には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.created_at

タイプ: 整数

定義: プロセス作成時のタイムスタンプ

*.created_at には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.device_path

タイプ: 文字列

定義: ファイルのパス

*.device_path には 5 個の有効なプレフィックスがあります。 create.file delete.file rename.file rename.file.destination write.file

例:

create.file.device_path == "\device\harddisk1\cmd.bat"

c:\cmd.bat にあるファイルが作成された場合にマッチします

*.envp

タイプ: 文字列

定義: プロセスの環境変数

*.envp には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.envs

タイプ: 文字列

定義: プロセスの環境変数名

*.envs には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.key_name

タイプ: 文字列

定義: レジストリ名

*.key_name には 8 個の有効なプレフィックスがあります。 create.registry create_key.registry delete.registry delete_key.registry open.registry open_key.registry set.registry set_key_value.registry

*.key_path

タイプ: 文字列

定義: レジストリパス

*.key_path には 8 個の有効なプレフィックスがあります。 create.registry create_key.registry delete.registry delete_key.registry open.registry open_key.registry set.registry set_key_value.registry

*.length

タイプ: 整数

定義: 対応する要素の長さ

*.length には 44 個の有効なプレフィックスがあります。 create.file.device_path create.file.name create.file.path create.registry.key_name create.registry.key_path create_key.registry.key_name create_key.registry.key_path delete.file.device_path delete.file.name delete.file.path delete.registry.key_name delete.registry.key_path delete_key.registry.key_name delete_key.registry.key_path exec.file.name exec.file.path exit.file.name exit.file.path open.registry.key_name open.registry.key_path open_key.registry.key_name open_key.registry.key_path process.ancestors process.ancestors.file.name process.ancestors.file.path process.file.name process.file.path process.parent.file.name process.parent.file.path rename.file.destination.device_path rename.file.destination.name rename.file.destination.path rename.file.device_path rename.file.name rename.file.path set.registry.key_name set.registry.key_path set.registry.value_name set_key_value.registry.key_name set_key_value.registry.key_path set_key_value.registry.value_name write.file.device_path write.file.name write.file.path

*.name

タイプ: 文字列

定義: ファイルのベース名

*.name には 5 個の有効なプレフィックスがあります。 exec.file exit.file process.ancestors.file process.file process.parent.file

例:

exec.file.name == "cmd.bat"

任意の cmd.bat ファイルが実行された場合にマッチします

*.name

タイプ: 文字列

定義: ファイルのベース名

*.name には 5 個の有効なプレフィックスがあります。 create.file delete.file rename.file rename.file.destination write.file

例:

create.file.name == "cmd.bat"

任意の cmd.bat ファイルが作成された場合にマッチします

*.path

タイプ: 文字列

定義: ファイルのパス

*.path には 5 個の有効なプレフィックスがあります。 exec.file exit.file process.ancestors.file process.file process.parent.file

例:

exec.file.path == "c:\cmd.bat"

c:\cmd.bat にあるファイルが実行された場合にマッチします

*.path

タイプ: 文字列

定義: ファイルのパス

*.path には 5 個の有効なプレフィックスがあります。 create.file delete.file rename.file rename.file.destination write.file

例:

create.file.path == "c:\cmd.bat"

c:\cmd.bat にあるファイルが作成された場合にマッチします

*.pid

タイプ: 整数

定義: プロセスのプロセス ID (スレッドグループ ID とも呼ばれる)

*.pid には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.ppid

タイプ: 整数

定義: 親プロセス ID

*.ppid には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.registry.value_name

タイプ: 文字列

定義: レジストリ値名

*.registry.value_name には 2 個の有効なプレフィックスがあります。 set set_key_value

*.user

タイプ: 文字列

定義: ユーザー名

*.user には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.user_sid

タイプ: 文字列

定義: プロセスのユーザー SID

*.user_sid には 5 個の有効なプレフィックスがあります。 exec exit process process.ancestors process.parent

*.value_name

タイプ: 文字列

定義: レジストリ値名

*.value_name には 2 個の有効なプレフィックスがあります。 set set_key_value

change_permission.new_sd

タイプ: 文字列

定義: 権限が変更されたオブジェクトの新しいセキュリティ記述子

change_permission.old_sd

タイプ: 文字列

定義: 権限が変更される前のオブジェクトの元のセキュリティ記述子

change_permission.path

タイプ: 文字列

定義: 権限が変更されたオブジェクトの名前

change_permission.type

タイプ: 文字列

定義: 権限が変更されたオブジェクトの種類

change_permission.user_domain

タイプ: 文字列

定義: 権限を変更したユーザーのドメイン名

change_permission.username

タイプ: 文字列

定義: 権限変更を実行したユーザー名

container.created_at

タイプ: 整数

定義: コンテナ作成時のタイムスタンプ

container.id

タイプ: 文字列

定義: コンテナの ID

container.runtime

タイプ: 文字列

定義: コンテナを管理するランタイム

container.tags

タイプ: 文字列

定義: コンテナのタグ

event.hostname

タイプ: 文字列

定義: イベントに関連付けられたホスト名

event.origin

タイプ: 文字列

定義: イベントの発生元

event.os

タイプ: 文字列

定義: イベントが発生したオペレーティングシステム

event.service

タイプ: 文字列

定義: イベントに関連付けられたサービス

event.timestamp

タイプ: 整数

定義: イベントのタイムスタンプ

exit.cause

タイプ: 整数

定義: プロセス終了の原因 (EXITED、SIGNALED、COREDUMPED のいずれか 1 つ)

exit.code

タイプ: 整数

定義: プロセスの終了コード、またはプロセスを終了させたシグナルの番号

定数

定数は、ルールの可読性を向上させるために使用します。定数には、すべてのアーキテクチャに共通するものと、いくつかのアーキテクチャに固有のものがあります。

Boolean constants

ブール定数はサポートされているブール定数です。

名前アーキテクチャ
trueすべて
falseすべて

DNS qclasses

DNS qclasses は、サポートされている DNS クエリクラスです。

名前アーキテクチャ
CLASS_INETすべて
CLASS_CSNETすべて
CLASS_CHAOSすべて
CLASS_HESIODすべて
CLASS_NONEすべて
CLASS_ANYすべて

DNS qtypes

DNS qtypes は、サポートされている DNS クエリタイプです。

名前アーキテクチャ
Noneすべて
Aすべて
NSすべて
MDすべて
MFすべて
CNAMEすべて
SOAすべて
MBすべて
MGすべて
MRすべて
NULLすべて
PTRすべて
HINFOすべて
MINFOすべて
MXすべて
TXTすべて
RPすべて
AFSDBすべて
X25すべて
ISDNすべて
RTすべて
NSAPPTRすべて
SIGすべて
KEYすべて
PXすべて
GPOSすべて
AAAAすべて
LOCすべて
NXTすべて
EIDすべて
NIMLOCすべて
SRVすべて
ATMAすべて
NAPTRすべて
KXすべて
CERTすべて
DNAMEすべて
OPTすべて
APLすべて
DSすべて
SSHFPすべて
RRSIGすべて
NSECすべて
DNSKEYすべて
DHCIDすべて
NSEC3すべて
NSEC3PARAMすべて
TLSAすべて
SMIMEAすべて
HIPすべて
NINFOすべて
RKEYすべて
TALINKすべて
CDSすべて
CDNSKEYすべて
OPENPGPKEYすべて
CSYNCすべて
ZONEMDすべて
SVCBすべて
HTTPSすべて
SPFすべて
UINFOすべて
UIDすべて
GIDすべて
UNSPECすべて
NIDすべて
L32すべて
L64すべて
LPすべて
EUI48すべて
EUI64すべて
URIすべて
CAAすべて
AVCすべて
TKEYすべて
TSIGすべて
IXFRすべて
AXFRすべて
MAILBすべて
MAILAすべて
ANYすべて
TAすべて
DLVすべて
Reservedすべて

L3 protocols

L3 プロトコルは、サポートされているレイヤー 3 プロトコルです。

名前アーキテクチャ
ETH_P_LOOPすべて
ETH_P_PUPすべて
ETH_P_PUPATすべて
ETH_P_TSNすべて
ETH_P_IPすべて
ETH_P_X25すべて
ETH_P_ARPすべて
ETH_P_BPQすべて
ETH_P_IEEEPUPすべて
ETH_P_IEEEPUPATすべて
ETH_P_BATMANすべて
ETH_P_DECすべて
ETH_P_DNADLすべて
ETH_P_DNARCすべて
ETH_P_DNARTすべて
ETH_P_LATすべて
ETH_P_DIAGすべて
ETH_P_CUSTすべて
ETH_P_SCAすべて
ETH_P_TEBすべて
ETH_P_RARPすべて
ETH_P_ATALKすべて
ETH_P_AARPすべて
ETH_P_8021_Qすべて
ETH_P_ERSPANすべて
ETH_P_IPXすべて
ETH_P_IPV6すべて
ETH_P_PAUSEすべて
ETH_P_SLOWすべて
ETH_P_WCCPすべて
ETH_P_MPLSUCすべて
ETH_P_MPLSMCすべて
ETH_P_ATMMPOAすべて
ETH_P_PPPDISCすべて
ETH_P_PPPSESすべて
ETH_P__LINK_CTLすべて
ETH_P_ATMFATEすべて
ETH_P_PAEすべて
ETH_P_AOEすべて
ETH_P_8021_ADすべて
ETH_P_802_EX1すべて
ETH_P_TIPCすべて
ETH_P_MACSECすべて
ETH_P_8021_AHすべて
ETH_P_MVRPすべて
ETH_P_1588すべて
ETH_P_NCSIすべて
ETH_P_PRPすべて
ETH_P_FCOEすべて
ETH_P_IBOEすべて
ETH_P_TDLSすべて
ETH_P_FIPすべて
ETH_P_80221すべて
ETH_P_HSRすべて
ETH_P_NSHすべて
ETH_P_LOOPBACKすべて
ETH_P_QINQ1すべて
ETH_P_QINQ2すべて
ETH_P_QINQ3すべて
ETH_P_EDSAすべて
ETH_P_IFEすべて
ETH_P_AFIUCVすべて
ETH_P_8023_MINすべて
ETH_P_IPV6_HOP_BY_HOPすべて
ETH_P_8023すべて
ETH_P_AX25すべて
ETH_P_ALLすべて
ETH_P_8022すべて
ETH_P_SNAPすべて
ETH_P_DDCMPすべて
ETH_P_WANPPPすべて
ETH_P_PPPMPすべて
ETH_P_LOCALTALKすべて
ETH_P_CANすべて
ETH_P_CANFDすべて
ETH_P_PPPTALKすべて
ETH_P_TR8022すべて
ETH_P_MOBITEXすべて
ETH_P_CONTROLすべて
ETH_P_IRDAすべて
ETH_P_ECONETすべて
ETH_P_HDLCすべて
ETH_P_ARCNETすべて
ETH_P_DSAすべて
ETH_P_TRAILERすべて
ETH_P_PHONETすべて
ETH_P_IEEE802154すべて
ETH_P_CAIFすべて
ETH_P_XDSAすべて
ETH_P_MAPすべて

L4 protocols

L4 プロトコルは、サポートされているレイヤー 4 プロトコルです。

名前アーキテクチャ
IP_PROTO_IPすべて
IP_PROTO_ICMPすべて
IP_PROTO_IGMPすべて
IP_PROTO_IPIPすべて
IP_PROTO_TCPすべて
IP_PROTO_EGPすべて
IP_PROTO_IGPすべて
IP_PROTO_PUPすべて
IP_PROTO_UDPすべて
IP_PROTO_IDPすべて
IP_PROTO_TPすべて
IP_PROTO_DCCPすべて
IP_PROTO_IPV6すべて
IP_PROTO_RSVPすべて
IP_PROTO_GREすべて
IP_PROTO_ESPすべて
IP_PROTO_AHすべて
IP_PROTO_ICMPV6すべて
IP_PROTO_MTPすべて
IP_PROTO_BEETPHすべて
IP_PROTO_ENCAPすべて
IP_PROTO_PIMすべて
IP_PROTO_COMPすべて
IP_PROTO_SCTPすべて
IP_PROTO_UDPLITEすべて
IP_PROTO_MPLSすべて
IP_PROTO_RAWすべて

Network directions

Network directions は、ネットワーク パケットでサポートされている方向を表します。

名前アーキテクチャ
INGRESSすべて
EGRESSすべて

お役に立つドキュメント、リンクや記事: