Reference Library for Windows workloads Falco Threat Detection Rules

Sysdig Secure enables you to create and customize Threat Detection Rules to secure your environment. This topic provides all the fields and events that apply to Falco rules for Windows workloads.

Fields

Field Class: windows

NameTypeDescriptionVersions
fd.numUINT64The unique number identifying the handle objectall
fd.typeCHARBUFHandle type. Can be file, directory, module, key, event, mutex, semaphore, driver, process, thread, section, etc.all
fd.typecharCHARBUFHandle type represented as a single character. Can be ‘f’ for file, 4 for IPv4 socket, 6 for IPv6 socket, ’e’ for event object, ’s’ for section, etc.all
fd.nameCHARBUFFull handle name. If the handle is a file, this field contains the full path. If the handle is a registry key, this field represents the root and subkey union. The reasoning is similar with other handle types.all
fd.directoryCHARBUFIf the handle is a file, represents the directory that contains itall
fd.filenameCHARBUFIf the handle is a file, contains the filename without the pathall
fd.cipIPADDRClient IP addressall
fd.sipIPADDRServer IP addressall
fd.lipIPADDRLocal IP addressall
fd.ripIPADDRRemote IP addressall
fd.cportUINT64Client portall
fd.sportUINT64Server portall
fd.lportUINT64Local portall
fd.rportUINT64Remote portall
fd.l4protoCHARBUFIP protocol. Can be ’tcp’, ‘udp’all
fd.sockfamilyCHARBUFThe socket family for network eventsall
fd.is_serverBOOLReturns true if the process owning the handle is the server endpoint in the connectionall
fd.uidCHARBUFUnique identifier for the handleall
fd.containernameCHARBUFChaining of the container identifier and the handle name. Useful when trying to identify which container a handle belongs toall
fd.containerdirectoryCHARBUFChaining of the container identifier and the directory name. Useful when trying to identify which container a directory belongs toall
fd.cprotoCHARBUFClient protocolall
fd.sprotoCHARBUFServer protocolall
fd.lprotoCHARBUFLocal protocolall
fd.rprotoCHARBUFRemote protocolall
fd.cnetIPNETMatches the client IP networkall
fd.snetIPNETMatches the server IP networkall
fd.lnetIPNETMatches the local IP networkall
fd.rnetIPNETMatches the remote IP networkall
fd.connectedBOOLReturns true if the socket is connectedall
fd.cip.nameCHARBUFDomain name associated with the client IP addressall
fd.sip.nameCHARBUFDomain name associated with the server IP addressall
fd.lip.nameCHARBUFDomain name associated with the local IP addressall
fd.rip.nameCHARBUFDomain name associated with the remote IP addressall
fd.devCHARBUFDevice volume name for file handlesall
fd.inoCHARBUFFile identifier of the referenced fileall
proc.pidUINT64Identifier of the process generating the eventall
proc.exeCHARBUFFull executable path of the process generating the eventall
proc.nameCHARBUFName of the executable generating the eventall
proc.argsCHARBUFArguments passed on the command line when starting the process generating the eventall
proc.envCHARBUFEnvironment variables of the process generating the eventall
proc.cmdlineCHARBUFFull process command line, i.e. proc.name + proc.argsall
proc.exelineCHARBUFFull process command line, i.e. proc.exe + proc.argsall
proc.cwdCHARBUFThe current working directory of the process generating the event.all
proc.nthreadsUINT64Number of threads that the process generating the event currently has, including the main process threadall
proc.nchildsUINT64Number of threads that the process generating the event currently has, excluding the main process threadall
proc.ppidUINT64Pid of the parent of the process generating the eventall
proc.pnameCHARBUFName excluding the path of the parent of the process generating the eventall
proc.pcmdlineCHARBUFFull command line (proc.name + proc.args) of the parent of the process generating the eventall
proc.apidUINT64Pid of one of the process ancestors. E.g. proc.apid[1] returns the parent pid, proc.apid[2] returns the grandparent pid, and so on. proc.apid[0] is the pid of the current processall
proc.anameCHARBUFName of one of the process ancestors. E.g. proc.aname[1] returns the parent name, proc.aname[2] returns the grandparent name, and so on. proc.aname[0] is the name of the current processall
proc.durationUINT64Number of nanoseconds since the process generating the event startedall
proc.fdopencountUINT64Number of open handles for the processall
thread.tidUINT64Identifier of the thread generating the eventall
thread.ismainBOOLReturns true if the thread generating the event is the main one in the processall
proc.sidUINT64Session id of the process generating the eventall
proc.snameCHARBUFName of the process owner of the job object generating the eventall
proc.ttyBOOLReturns true if the process generating the event has attached a terminalall
proc.exepathCHARBUFFull executable path of the process generating the eventall
proc.is_container_healthcheckBOOLReturns true if this process is running as a part of the container’s health checkall
proc.is_container_liveness_probeBOOLReturns true if this process is running as a part of the container’s liveness probeall
proc.is_container_readiness_probeBOOLReturns true if this process is running as a part of the container’s readiness probeall
proc.is_exe_writableBOOLReturns true if process’ executable file is writable by the same user that spawned the processall
proc.privileges_permittedCHARBUFGranted process token privilegesall
proc.privileges_inheritedCHARBUFInherited process token privilegesall
evt.typeCHARBUFThe name of the event (e.g. WriteFile)all
evt.type.isBOOLAllows one to specify an event type, and returns true for events that are of that type. For example, evt.type.is[ReadFile] returns true for read file events, false for any other eventall
syscall.typeCHARBUFThe name of the system call. For example, if CreateHandle event is caputed with the mutex handle type this filed would return the NtCreateMutex syscall nameall
evt.categoryCHARBUFThe event category. Example values are ‘file’ for file operations like CreateFile/CloseFile, ’net’ for network operations like Accept/Send, ‘registry’ for things like RegCreateKey, and so onall
evt.cpuUINT64Number of the CPU where the event happenedall
evt.argsCHARBUFAll the event arguments aggregated into a single stringall
evt.argCHARBUFString representation of the event argument specified by nameall
evt.rawargCHARBUFRaw representation of the event argument specified by nameall
evt.infoCHARBUFFor most events, this field returns the same value as evt.argsall
evt.bufferCHARBUFThe binary data buffer for events that have one. For example, RegSetValue may write a binary content into registry valueall
evt.buflenUINT64The length of the binary data buffer for events that have oneall
evt.resCHARBUFEvent return value as a string. If the event failed, the result is an error code string (e.g. ‘The system cannot find the file specified.’). Otherwise, the result is the string ‘Success’all
evt.rawresUINT64Event return value as a number (e.g. -2). Useful for range comparisonsall
evt.failedBOOLReturns true for events that returned an error statusall
evt.is_ioBOOLReturns true for events that produce read or write I/O, like WriteFile or Recvall
evt.is_io_readBOOLReturns true for events that produce read I/O, like ReadFile or Recvall
evt.io_io_writeBOOLReturns true for events that produce write I/O, like WriteFile or Recvall
evt.io_dirCHARBUFReturns ‘r’ for events that produce read I/O like ReadFile or ‘w’ for events that trigger write I/O like WriteFileall
evt.is_waitBOOLReturns true for events that make the thread waitall
evt.countUINT64This filter field always returns 1 and can be used to count eventsall
evt.count.errorUINT64This filter field returns 1 for events that returned with an errorall
evt.count.error.fileUINT64This filter field returns 1 for events that returned with an error and are related to file I/Oall
evt.count.error.netUINT64This filter field returns 1 for events that returned with an error and are related to network I/Oall
evt.count.error.memoryUINT64This filter field returns 1 for events that returned with an error and are related to memory allocationall
evt.count.error.otherUINT64This filter field returns 1 for events that returned with an error and are related to none of the previous categoriesall
evt.aroundUINT64Accepts the event if it’s around the specified time interval. The syntax is evt.around[T]=D, where T is the value returned by %evt.rawtime for the event and D is a delta in milliseconds. For example, evt.around[1404996934793590564]=1000 will return the events with timestamp with one second before the timestamp and one second after it, for a total of two seconds of captureall
evt.abspathUINT64Absolute path calculated from directory file handleall
evt.is_open_readBOOLReturns true for events where the file was opened for readingall
evt.is_open_writeBOOLReturns true for events where the file was opened for writingall
evt.is_open_execBOOLReturns true for events where the executable file is createdall
user.uidCHARBUFUser SID (Security Identifier) (e.g. S-1-5-18)all
user.nameCHARBUFUser nameall
user.domainCHARBUFUser domain (e.g. NT AUTHORITY)all
user.homedirCHARBUFHome directory of the userall
user.shellCHARBUFUser’s shellall
user.loginuidUINT64User’s logon session identifierall
user.loginnameCHARBUFUser’s logon nameall
user.logintypeCHARBUFType of the logon session (e.g. INTERACTIVE)all
group.uidCHARBUFGroup SID (Security Identifier) (e.g. S-1-5-32-544)all
group.nameCHARBUFGroup name (e.g. Administrators)all
container.idCHARBUFUnique container short identifier (e.g. 3ad7b26ded6d)all
container.full_idCHARBUFUnique container full identifier (e.g. 3ad7b26ded6d8e7b23da7d48fe889434573036c27ae5a74837233de441c3601e)all
container.nameCHARBUFContainer nameall
container.typeCHARBUFContainer engine type (e.g. docker)all
container.imageCHARBUFContainer image name (e.g. falcosecurity/falco:latest)all
container.image.idCHARBUFContainer image identifier (e.g. 6f7e2741b66b)all
container.image.repositoryCHARBUFContainer image repository (e.g. falcosecurity/falco)all
container.image.tagCHARBUFContainer image tag (e.g. stable, latest)all
container.image.digestCHARBUFContainer image registry digest (e.g. sha256:d977378f890d445c15e51795296e4e5062f109ce6da83e0a355fc4ad8699d27)all
container.mountsCHARBUFA space-separated list of mount informationall
container.mountCHARBUFInformation about a single mount, specified by number mount source (e.g. container.mount[C:\WINDOWS])all
container.mount.sourceCHARBUFThe mount source specified by mount destination (e.g. container.mount.source[C:\WINDOWS\System32])all
container.mount.destCHARBUFThe mount dest specified by mount source (e.g. container.mount.source[C:\WINDOWS\System32])all
container.mount.modeCHARBUFThe mount mode specified by mount source (e.g. container.mount.mode[C:\WINDOWS])all
container.mount.rdwrCHARBUFThe mount the mount rdwr value specified by mount source (e.g. container.mount.rdwr[C:\WINDOWS])all
container.mount.propagationCHARBUFThe mount propagation value specified by mount source (e.g. container.mount.propagation[C:\WINDOWS])all
container.healthcheckCHARBUFContainer’s health check. Will be the null value (‘N/A’) if no healthcheck configured, ‘NONE’ if configured but explicitly not created, and the healthcheck command line otherwiseall
container.liveness_probeCHARBUFContainer’s liveness probe. Will be the null value (‘N/A’) if no liveness probe configured, the liveness probe command line otherwiseall
container.readiness_probeCHARBUFContainer’s readiness probe. Will be the null value (‘N/A’) if no readiness probe configured, the readiness probe command line otherwiseall
container.start_tsUINT64Container start as epoch timestamp in nanosecondsall
container.durationUINT64Number of nanoseconds since container.start_tsall
container.ipIPADDRThe container’s / pod’s primary ip addressall
container.cni.jsonCHARBUFThe container’s / pod’s CNI result field from the respective pod status infoall
k8s.ns.nameCHARBUFKubernetes namespace nameall
k8s.pod.nameCHARBUFKubernetes pod nameall
k8s.pod.uidCHARBUFKuberentes pod identifierall
k8s.pod.sandbox_idCHARBUFThe truncated Kubernetes pod sandbox identifierall
k8s.pod.full_sandbox_idCHARBUFThe full Kubernetes pod sandbox identifierall
k8s.pod.labelCHARBUFKubernetes pod label (e.g. k8s.pod.label[foo])all
k8s.pod.labelsCHARBUFKubernetes pod comma-separated key/value labels (e.g. foo1:bar1,foo2:bar2)all
k8s.pod.ipIPADDRThe Kubernetes pod IP, same as container.ip as each container in a pod shares the network stack of the sandbox podall
k8s.pod.cni.jsonCHARBUFPod CNI result in JSON formatall