Atributos y ayudantes de Windows Agent

Esta documentación describe los atributos y los ayudantes de Windows del Security Language (SECL) de Datadog.

Las reglas que utilicen atributos y ayudantes de Windows deben incluir un campo de filtro de regla de sistema operativo como el siguiente.

id: [...]
expression: [...]
filters:
  - Sistema operativo == "Windows"

Activadores

Los activadores son eventos que corresponden a tipos de actividad observados por el sistema. El conjunto de activadores admitidos actualmente es:

Evento SECLTipoDefiniciónVersión del Agent
change_permissionRegistroSe ha modificado un permiso7.55
createArchivoSe ha creado un archivo7.52
create_keyRegistroSe ha creado una clave de registro7.52
deleteArchivoSe ha eliminado un archivo7.54
delete_keyRegistroSe ha eliminado una clave de registro7.52
execProcesoSe ha ejecutado o bifurcado un proceso7.27
exitProcesoSe ha cerrado un proceso7.38
open_keyRegistroSe ha abierto una clave de registro7.52
renameArchivoSe ha renombrado un archivo7.54
set_key_valueRegistroSe ha definido un valor de clave de registro7.52
writeArchivoSe ha escrito un archivo7.54

Variables

Las variables SECL son variables predefinidas que pueden utilizarse como valores o como parte de valores.

Por ejemplo, la regla que utiliza una variable process.pid tiene este aspecto:

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

Lista de las variables disponibles:

Variable SECLDefiniciónVersión del Agent
process.pidPID de proceso7.33

Atributos de evento

Común a todos los tipos de eventos

PropiedadDefinición
container.created_atMarca de tiempo de la creación del contenedor
container.idID del contenedor
container.runtimeTiempo de ejecución que gestiona el contenedor
container.tagsEtiquetas (tags) del contenedor
event.hostnameNombre de host asociado al evento
event.originOrigen del evento
event.osSistema operativo del evento
event.serviceServicio asociado al evento
event.timestampMarca de tiempo del evento
process.ancestors.cmdlineLínea de comandos del proceso
process.ancestors.container.idID del contenedor
process.ancestors.created_atMarca de tiempo de la creación del proceso
process.ancestors.envpVariables de entorno del proceso
process.ancestors.envsNombres de variables de entorno del proceso
process.ancestors.file.nameNombre base del archivo
process.ancestors.file.name.lengthLongitud de la cadena correspondiente
process.ancestors.file.pathRuta del archivo
process.ancestors.file.path.lengthLongitud de la cadena correspondiente
process.ancestors.pidID de proceso del proceso (también llamado ID del grupo de subprocesos)
process.ancestors.ppidID del proceso principal
process.ancestors.userNombre de usuario
process.ancestors.user_sidSId del usuario del proceso
process.cmdlineLínea de comandos del proceso
process.container.idID del contenedor
process.created_atMarca de tiempo de la creación del proceso
process.envpVariables de entorno del proceso
process.envsNombres de variables de entorno del proceso
process.file.nameNombre base del archivo
process.file.name.lengthLongitud de la cadena correspondiente
process.file.pathRuta del archivo
process.file.path.lengthLongitud de la cadena correspondiente
process.parent.cmdlineLínea de comandos del proceso
process.parent.container.idID del contenedor
process.parent.created_atMarca de tiempo de la creación del proceso
process.parent.envpVariables de entorno del proceso
process.parent.envsNombres de variables de entorno del proceso
process.parent.file.nameNombre base del archivo
process.parent.file.name.lengthLongitud de la cadena correspondiente
process.parent.file.pathRuta del archivo
process.parent.file.path.lengthLongitud de la cadena correspondiente
process.parent.pidID de proceso del proceso (también llamado ID del grupo de subprocesos)
process.parent.ppidID del proceso principal
process.parent.userNombre de usuario
process.parent.user_sidSId del usuario del proceso
process.pidID de proceso del proceso (también llamado ID del grupo de subprocesos)
process.ppidID del proceso principal
process.userNombre de usuario
process.user_sidSId del usuario del proceso

Evento change_permission

Se ha modificado un permiso

PropiedadDefinición
change_permission.new_sdNuevo descriptor de seguridad del objeto cuyo permiso se ha modificado
change_permission.old_sdDescriptor de seguridad original del objeto cuyo permiso se ha modificado
change_permission.pathNombre del objeto cuyo permiso se ha modificado
change_permission.typeTipo de objeto cuyo permiso se ha modificado
change_permission.user_domainNombre de dominio del autor del cambio de permiso
change_permission.usernameNombre de usuario del autor del cambio de permiso

Evento create

Se ha creado un archivo

PropiedadDefinición
create.file.device_pathRuta del archivo
create.file.device_path.lengthLongitud de la cadena correspondiente
create.file.nameNombre base del archivo
create.file.name.lengthLongitud de la cadena correspondiente
create.file.pathRuta del archivo
create.file.path.lengthLongitud de la cadena correspondiente

Evento create_key

Se ha creado una clave de registro

PropiedadDefinición
create.registry.key_nameNombre del registro
create.registry.key_name.lengthLongitud de la cadena correspondiente
create.registry.key_pathRuta del registro
create.registry.key_path.lengthLongitud de la cadena correspondiente
create_key.registry.key_nameNombre del registro
create_key.registry.key_name.lengthLongitud de la cadena correspondiente
create_key.registry.key_pathRuta del registro
create_key.registry.key_path.lengthLongitud de la cadena correspondiente

Evento delete

Se ha eliminado un archivo

PropiedadDefinición
delete.file.device_pathRuta del archivo
delete.file.device_path.lengthLongitud de la cadena correspondiente
delete.file.nameNombre base del archivo
delete.file.name.lengthLongitud de la cadena correspondiente
delete.file.pathRuta del archivo
delete.file.path.lengthLongitud de la cadena correspondiente

Evento delete_key

Se ha eliminado una clave de registro

PropiedadDefinición
delete.registry.key_nameNombre del registro
delete.registry.key_name.lengthLongitud de la cadena correspondiente
delete.registry.key_pathRuta del registro
delete.registry.key_path.lengthLongitud de la cadena correspondiente
delete_key.registry.key_nameNombre del registro
delete_key.registry.key_name.lengthLongitud de la cadena correspondiente
delete_key.registry.key_pathRuta del registro
delete_key.registry.key_path.lengthLongitud de la cadena correspondiente

Evento exec

Se ha ejecutado o bifurcado un proceso

PropiedadDefinición
exec.cmdlineLínea de comandos del proceso
exec.container.idID del contenedor
exec.created_atMarca de tiempo de la creación del proceso
exec.envpVariables de entorno del proceso
exec.envsNombres de variables de entorno del proceso
exec.file.nameNombre base del archivo
exec.file.name.lengthLongitud de la cadena correspondiente
exec.file.pathRuta del archivo
exec.file.path.lengthLongitud de la cadena correspondiente
exec.pidID de proceso del proceso (también llamado ID del grupo de subprocesos)
exec.ppidID del proceso principal
exec.userNombre de usuario
exec.user_sidSId del usuario del proceso

Evento exit

Se ha cerrado un proceso

PropiedadDefinición
exit.causeCausa de finalización del proceso (una de EXITED, SIGNALED, COREDUMPED)
exit.cmdlineLínea de comandos del proceso
exit.codeCódigo de salida del proceso o número de la señal que ha provocado la finalización del proceso
exit.container.idID del contenedor
exit.created_atMarca de tiempo de la creación del proceso
exit.envpVariables de entorno del proceso
exit.envsNombres de variables de entorno del proceso
exit.file.nameNombre base del archivo
exit.file.name.lengthLongitud de la cadena correspondiente
exit.file.pathRuta del archivo
exit.file.path.lengthLongitud de la cadena correspondiente
exit.pidID de proceso del proceso (también llamado ID del grupo de subprocesos)
exit.ppidID del proceso principal
exit.userNombre de usuario
exit.user_sidSId del usuario del proceso

Evento open_key

Se ha abierto una clave de registro

PropiedadDefinición
open.registry.key_nameNombre del registro
open.registry.key_name.lengthLongitud de la cadena correspondiente
open.registry.key_pathRuta del registro
open.registry.key_path.lengthLongitud de la cadena correspondiente
open_key.registry.key_nameNombre del registro
open_key.registry.key_name.lengthLongitud de la cadena correspondiente
open_key.registry.key_pathRuta del registro
open_key.registry.key_path.lengthLongitud de la cadena correspondiente

Evento rename

Se ha renombrado un archivo

PropiedadDefinición
rename.file.destination.device_pathRuta del archivo
rename.file.destination.device_path.lengthLongitud de la cadena correspondiente
rename.file.destination.nameNombre base del archivo
rename.file.destination.name.lengthLongitud de la cadena correspondiente
rename.file.destination.pathRuta del archivo
rename.file.destination.path.lengthLongitud de la cadena correspondiente
rename.file.device_pathRuta del archivo
rename.file.device_path.lengthLongitud de la cadena correspondiente
rename.file.nameNombre base del archivo
rename.file.name.lengthLongitud de la cadena correspondiente
rename.file.pathRuta del archivo
rename.file.path.lengthLongitud de la cadena correspondiente

Evento set_key_value

Se ha definido un valor de clave de registro

PropiedadDefinición
set.registry.key_nameNombre del registro
set.registry.key_name.lengthLongitud de la cadena correspondiente
set.registry.key_pathRuta del registro
set.registry.key_path.lengthLongitud de la cadena correspondiente
set.registry.value_nameNombre del valor del registro
set.registry.value_name.lengthLongitud de la cadena correspondiente
set.value_nameNombre del valor del registro
set_key_value.registry.key_nameNombre del registro
set_key_value.registry.key_name.lengthLongitud de la cadena correspondiente
set_key_value.registry.key_pathRuta del registro
set_key_value.registry.key_path.lengthLongitud de la cadena correspondiente
set_key_value.registry.value_nameNombre del valor del registro
set_key_value.registry.value_name.lengthLongitud de la cadena correspondiente
set_key_value.value_nameNombre del valor del registro

Evento write

Se ha escrito un archivo

PropiedadDefinición
write.file.device_pathRuta del archivo
write.file.device_path.lengthLongitud de la cadena correspondiente
write.file.nameNombre base del archivo
write.file.name.lengthLongitud de la cadena correspondiente
write.file.pathRuta del archivo
write.file.path.lengthLongitud de la cadena correspondiente

Documentación sobre atributos

*.cmdline

Tipo: cadena

Definición: línea de comandos del proceso

*.cmdline tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

Ejemplo:

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

Coincide con cualquier proceso que tenga estos argumentos exactos.

Ejemplo:

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

Coincide con cualquier proceso que tenga el argumento “-F” en cualquier lugar antes de un argumento que empiece por “http”.

*.container.id

Tipo: cadena

Definición: ID de contenedor

*.container.id tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.created_at

Tipo: int

Definición: marca de tiempo de la creación del proceso

*.created_at tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.device_path

Tipo: cadena

Definición: ruta del archivo

*.device_path tiene 5 prefijos posibles: create.file delete.file rename.file rename.file.destination write.file

Ejemplo:

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

Coincide con la creación del archivo ubicado en c:\cmd.bat

*.envp

Tipo: cadena

Definición: variables de entorno del proceso

*.envp tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.envs

Tipo: cadena

Definición: nombres de variable de entorno del proceso

*.envs tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.key_name

Tipo: cadena

Definición: nombre del registro

*.key_name tiene 8 prefijos posibles: create.registry create_key.registry delete.registry delete_key.registry open.registry open_key.registry set.registry set_key_value.registry

*.key_path

Tipo: cadena

Definición: ruta del registro

*.key_path tiene 8 prefijos posibles: create.registry create_key.registry delete.registry delete_key.registry open.registry open_key.registry set.registry set_key_value.registry

*.length

Tipo: int

Definición: longitud de la cadena correspondiente

*.length tiene 43 prefijos posibles: 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.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

Tipo: cadena

Definición: nombre base del archivo

*.name tiene 5 prefijos posibles: exec.file exit.file process.ancestors.file process.file process.parent.file

Ejemplo:

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

Coincide con la ejecución de cualquier archivo llamado cmd.bat.

*.name

Tipo: cadena

Definición: nombre base del archivo

*.name tiene 5 prefijos posibles: create.file delete.file rename.file rename.file.destination write.file

Ejemplo:

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

Coincide con la creación de cualquier archivo llamado cmd.bat.

*.path

Tipo: cadena

Definición: ruta del archivo

*.path tiene 5 prefijos posibles: exec.file exit.file process.ancestors.file process.file process.parent.file

Ejemplo:

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

Coincide con la ejecución del archivo ubicado en c:\cmd.bat

*.path

Tipo: cadena

Definición: ruta del archivo

*.path tiene 5 prefijos posibles: create.file delete.file rename.file rename.file.destination write.file

Ejemplo:

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

Coincide con la creación del archivo ubicado en c:\cmd.bat

*.pid

Tipo: int

Definición: ID de proceso del proceso (también llamado ID de grupo del subproceso)

*.pid tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.ppid

Tipo: int

Definición: ID del proceso principal

*.ppid tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.registry.value_name

Tipo: cadena

Definición: nombre del valor del registro

*.registry.value_name tiene 2 prefijos posibles: set set_key_value

*.user

Tipo: cadena

Definición: nombre de usuario

*.user tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.user_sid

Tipo: cadena

Definición: SId del usuario del proceso

*.user_sid tiene 5 prefijos posibles: exec exit process process.ancestors process.parent

*.value_name

Tipo: cadena

Definición: nombre del valor del registro

*.value_name tiene 2 prefijos posibles: set set_key_value

change_permission.new_sd

Tipo: cadena

Definición: nuevo descriptor de seguridad del objeto cuyo permiso se ha modificado

change_permission.old_sd

Tipo: cadena

Definición: descriptor de seguridad original del objeto cuyo permiso se ha modificado

change_permission.path

Tipo: cadena

Definición: nombre del objeto cuyo permiso se ha modificado

change_permission.type

Tipo: cadena

Definición: tipo de objeto cuyo permiso se ha modificado

change_permission.user_domain

Tipo: cadena

Definición: nombre de dominio del autor del cambio de permiso

change_permission.username

Tipo: cadena

Definición: nombre de usuario del autor del cambio de permiso

container.created_at

Tipo: int

Definición: marca de tiempo de la creación del contenedor

container.id

Tipo: cadena

Definición: ID del contenedor

container.runtime

Tipo: cadena

Definición: tiempo de ejecución que gestiona el contenedor

container.tags

Tipo: cadena

Definición: etiquetas del contenedor

event.hostname

Tipo: cadena

Definición: nombre de host asociado al evento

event.origin

Tipo: cadena

Definición: origen del evento

event.os

Tipo: cadena

Definición: sistema operativo del evento

event.service

Tipo: cadena

Definición: servicio asociado al evento

event.timestamp

Tipo: int

Definición: marca de tiempo del evento

exit.cause

Tipo: int

Definición: causa de la finalización del proceso (EXITED, SIGNALED, COREDUMPED)

exit.code

Tipo: int

Definición: código de salida del proceso o número de la señal que provocó la finalización del proceso

Constantes

Las constantes se utilizan para mejorar la legibilidad de las reglas. Algunas constantes son comunes a todas las arquitecturas y otras son específicas de algunas arquitecturas.

Boolean constants

Las constantes booleanas son las constantes booleanas admitidas.

NombreArquitecturas
truetodos
falsetodos

DNS qclasses

Las qclasses DNS son las clases de consulta DNS admitidas.

NombreArquitecturas
CLASS_INETtodos
CLASS_CSNETtodos
CLASS_CHAOStodos
CLASS_HESIODtodos
CLASS_NONEtodos
CLASS_ANYtodos

DNS qtypes

Los qtypes DNS son los tipos de consulta DNS admitidos.

NombreArquitecturas
Nonetodos
Atodos
NStodos
MDtodos
MFtodos
CNAMEtodos
SOAtodos
MBtodos
MGtodos
MRtodos
NULLtodos
PTRtodos
HINFOtodos
MINFOtodos
MXtodos
TXTtodos
RPtodos
AFSDBtodos
X25todos
ISDNtodos
RTtodos
NSAPPTRtodos
SIGtodos
KEYtodos
PXtodos
GPOStodos
AAAAtodos
LOCtodos
NXTtodos
EIDtodos
NIMLOCtodos
SRVtodos
ATMAtodos
NAPTRtodos
KXtodos
CERTtodos
DNAMEtodos
OPTtodos
APLtodos
DStodos
SSHFPtodos
RRSIGtodos
NSECtodos
DNSKEYtodos
DHCIDtodos
NSEC3todos
NSEC3PARAMtodos
TLSAtodos
SMIMEAtodos
HIPtodos
NINFOtodos
RKEYtodos
TALINKtodos
CDStodos
CDNSKEYtodos
OPENPGPKEYtodos
CSYNCtodos
ZONEMDtodos
SVCBtodos
HTTPStodos
SPFtodos
UINFOtodos
UIDtodos
GIDtodos
UNSPECtodos
NIDtodos
L32todos
L64todos
LPtodos
EUI48todos
EUI64todos
URItodos
CAAtodos
AVCtodos
TKEYtodos
TSIGtodos
IXFRtodos
AXFRtodos
MAILBtodos
MAILAtodos
ANYtodos
TAtodos
DLVtodos
Reservedtodos

L3 protocols

Los protocolos L3 son los protocolos de capa 3 admitidos.

NombreArquitecturas
ETH_P_LOOPtodos
ETH_P_PUPtodos
ETH_P_PUPATtodos
ETH_P_TSNtodos
ETH_P_IPtodos
ETH_P_X25todos
ETH_P_ARPtodos
ETH_P_BPQtodos
ETH_P_IEEEPUPtodos
ETH_P_IEEEPUPATtodos
ETH_P_BATMANtodos
ETH_P_DECtodos
ETH_P_DNADLtodos
ETH_P_DNARCtodos
ETH_P_DNARTtodos
ETH_P_LATtodos
ETH_P_DIAGtodos
ETH_P_CUSTtodos
ETH_P_SCAtodos
ETH_P_TEBtodos
ETH_P_RARPtodos
ETH_P_ATALKtodos
ETH_P_AARPtodos
ETH_P_8021_Qtodos
ETH_P_ERSPANtodos
ETH_P_IPXtodos
ETH_P_IPV6todos
ETH_P_PAUSEtodos
ETH_P_SLOWtodos
ETH_P_WCCPtodos
ETH_P_MPLSUCtodos
ETH_P_MPLSMCtodos
ETH_P_ATMMPOAtodos
ETH_P_PPPDISCtodos
ETH_P_PPPSEStodos
ETH_P__LINK_CTLtodos
ETH_P_ATMFATEtodos
ETH_P_PAEtodos
ETH_P_AOEtodos
ETH_P_8021_ADtodos
ETH_P_802_EX1todos
ETH_P_TIPCtodos
ETH_P_MACSECtodos
ETH_P_8021_AHtodos
ETH_P_MVRPtodos
ETH_P_1588todos
ETH_P_NCSItodos
ETH_P_PRPtodos
ETH_P_FCOEtodos
ETH_P_IBOEtodos
ETH_P_TDLStodos
ETH_P_FIPtodos
ETH_P_80221todos
ETH_P_HSRtodos
ETH_P_NSHtodos
ETH_P_LOOPBACKtodos
ETH_P_QINQ1todos
ETH_P_QINQ2todos
ETH_P_QINQ3todos
ETH_P_EDSAtodos
ETH_P_IFEtodos
ETH_P_AFIUCVtodos
ETH_P_8023_MINtodos
ETH_P_IPV6_HOP_BY_HOPtodos
ETH_P_8023todos
ETH_P_AX25todos
ETH_P_ALLtodos
ETH_P_8022todos
ETH_P_SNAPtodos
ETH_P_DDCMPtodos
ETH_P_WANPPPtodos
ETH_P_PPPMPtodos
ETH_P_LOCALTALKtodos
ETH_P_CANtodos
ETH_P_CANFDtodos
ETH_P_PPPTALKtodos
ETH_P_TR8022todos
ETH_P_MOBITEXtodos
ETH_P_CONTROLtodos
ETH_P_IRDAtodos
ETH_P_ECONETtodos
ETH_P_HDLCtodos
ETH_P_ARCNETtodos
ETH_P_DSAtodos
ETH_P_TRAILERtodos
ETH_P_PHONETtodos
ETH_P_IEEE802154todos
ETH_P_CAIFtodos
ETH_P_XDSAtodos
ETH_P_MAPtodos

L4 protocols

Los protocolos L4 son los protocolos de capa 4 admitidos.

NombreArquitecturas
IP_PROTO_IPtodos
IP_PROTO_ICMPtodos
IP_PROTO_IGMPtodos
IP_PROTO_IPIPtodos
IP_PROTO_TCPtodos
IP_PROTO_EGPtodos
IP_PROTO_IGPtodos
IP_PROTO_PUPtodos
IP_PROTO_UDPtodos
IP_PROTO_IDPtodos
IP_PROTO_TPtodos
IP_PROTO_DCCPtodos
IP_PROTO_IPV6todos
IP_PROTO_RSVPtodos
IP_PROTO_GREtodos
IP_PROTO_ESPtodos
IP_PROTO_AHtodos
IP_PROTO_ICMPV6todos
IP_PROTO_MTPtodos
IP_PROTO_BEETPHtodos
IP_PROTO_ENCAPtodos
IP_PROTO_PIMtodos
IP_PROTO_COMPtodos
IP_PROTO_SCTPtodos
IP_PROTO_UDPLITEtodos
IP_PROTO_MPLStodos
IP_PROTO_RAWtodos

Más enlaces, artículos y documentación útiles:

PREVIEWING: emilia/INA-7367