Anatomy Of An Event

Event encapsulates the state that is fundamental for assertion against the rule engine. Most ETW providers such as Kernel Logger produce the flow of events in raw format. This means that the vast majority of the event's parameters lack a meaningful context needed for an intuitive human interpretation. To clarify the previous statement, here are some concrete examples:

This is not the only heavy-lifting tasks Fibratus performs to produce high-quality events. Additionally, events are enriched with various parameters that are not originally present in ETW payloads.

Canonical fields

Each event contains a series of canonical fields that describe the nature of the event such as its name, the process identifier that generated the event and such. Canonical fields include:

Parameters

Internally, event parameters are modeled as a collection of key/value pairs. The key is mapped to the structure consisting of parameter name, parameter type and the value. An example of the parameter tuple could be the dip parameter that denotes a destination IP address with value 172.17.0.2 and therefore IPv4 type. Parameter types can be scalar values, strings, slices, enumerations, and timestamps among others.

Process state

Each event has attached process state that represents the contextual information about the process including its name, command line, user, token integrity level, allocated resources such as handles, dynamically-linked libraries, environment variables and other attributes. The process state internals are thoroughly explained in the Process events section.

Callstacks

Callstacks provide detailed insight into the execution context of system events by capturing the sequence of function calls (stack frames) that led to a particular action, such as a file write, process creation, or registry state manipulation.

Metadata

Metadata are arbitrary tags composed of key/value pairs. Event metadata are decorated via transformers. Tags can hold any string values employed for filtering, grouping or other purposes.