Documentation
¶
Index ¶
Constants ¶
View Source
const TypePrefix = "Crowdstrike"
Variables ¶
View Source
var ( TypeNetworkConnect = mustBuild(logtypes.ConfigJSON{ Name: TypePrefix + ".NetworkConnect", Description: `This event is generated when an application attempts a remote connection on an interface`, ReferenceURL: `-`, NewEvent: func() interface{} { return &NetworkConnect{} }, }) TypeNetworkListen = mustBuild(logtypes.ConfigJSON{ Name: TypePrefix + ".NetworkListen", Description: `This event is generated when an application establishes a socket in listening mode`, ReferenceURL: `-`, NewEvent: func() interface{} { return &NetworkListen{} }, }) )
nolint:lll
View Source
var ( TypeProcessRollup2 = mustBuild(logtypes.ConfigJSON{ Name: TypePrefix + ".ProcessRollup2", Description: `This event (often called "PR2" for short) is generated for a process that is running or has finished running on a host and contains information about that process.`, ReferenceURL: `-`, NewEvent: func() interface{} { return &ProcessRollup2{} }, }) TypeSyntheticProcessRollup2 = mustBuild(logtypes.ConfigJSON{ Name: TypePrefix + ".SyntheticProcessRollup2", Description: `A synthetic version of the process rollup (PR2) event`, ReferenceURL: `-`, NewEvent: func() interface{} { return &SyntheticProcessRollup2{} }, }) )
nolint:lll
View Source
var TypeDNSRequest = mustBuild(logtypes.ConfigJSON{ Name: TypePrefix + ".DNSRequest", Description: `This event is generated for every attempted DNS name resolution on a host.`, ReferenceURL: `-`, NewEvent: func() interface{} { return &DNSRequest{} }, })
TypeDNSRequest is the logtype entry for Crowdstrike DNS request events. nolint:lll
View Source
var ( // TypeUnknownEvent is a special event collects all crowdstrike events that don't yet have a registered log type TypeUnknownEvent = logtypes.MustBuild(logtypes.ConfigJSON{ Name: TypePrefix + ".Unknown", Description: `This event is used to store all unknown crowdstrike log events`, ReferenceURL: `-`, NewEvent: func() interface{} { return &UnknownEventWithPayload{} }, }) )
Functions ¶
Types ¶
type BaseEvent ¶
type BaseEvent struct {
Name null.String `json:"name" validate:"required" description:"The event name"`
AID null.String `` /* 244-byte string literal not displayed */
AIP null.String `` /* 216-byte string literal not displayed */
CID null.String `json:"cid" description:"CID"`
ID null.String `json:"id" description:"ID"`
EventPlatform null.String `json:"event_platform" description:"The platform the sensor was running on"`
Timestamp time.Time `` /* 129-byte string literal not displayed */
TimestampHuman time.Time `` /* 146-byte string literal not displayed */
ComputerName null.String `json:"ComputerName" panther:"hostname" description:"The name of the host."`
ConfigBuild null.String `json:"ConfigBuild" description:"Config build"`
ConfigStateHash null.String `json:"ConfigStateHash" description:"Config state hash"`
Entitlements null.String `json:"Entitlements" description:"Entitlements"`
TreeID null.String `json:"TreeId" panther:"trace_id" description:"If this event is part of a detection tree, the tree ID it is part of"`
TreeIDDecimal null.Int64 `` /* 134-byte string literal not displayed */
}
Common fields for all croudstrike events nolint:lll
type ContextEvent ¶
type ContextEvent struct {
BaseEvent
ContextThreadID null.String `json:"ContextThreadId" description:"The unique ID of a process that was spawned by another process."`
ContextThreadIDDecimal null.Int64 `` /* 137-byte string literal not displayed */
ContextTimestamp time.Time `json:"ContextTimeStamp" tcodec:"unix" description:"The time at which an event occurred on the system, as seen by the sensor."`
ContextTimestampDecimal time.Time `` /* 165-byte string literal not displayed */
ContextProcessID null.String `json:"ContextProcessId" description:"The unique ID of a process that was spawned by another process."`
ContextProcessIDDecimal null.Int64 `` /* 138-byte string literal not displayed */
InContext null.String `json:"InContext" description:"In context (N/A on iOS)"`
}
Common context fields for events NOTE: All fields are not required so we can use this when parsing unknown events nolint:lll
func (*ContextEvent) PantherEventTime ¶
func (e *ContextEvent) PantherEventTime() time.Time
PantherEventTime implements pantherlog.EventTimer and tries to use the device timestamp else falls back to server timestamp.
type DNSRequest ¶
type DNSRequest struct {
EventSimpleName null.String `json:"event_simpleName" validate:"required,eq=DnsRequest" description:"Event name"`
ContextEvent
EffectiveTransmissionClass null.Int64 `json:"EffectiveTransmissionClass" description:"Effective transmission class"`
DomainName null.String `json:"DomainName" panther:"domain" description:"The domain name requested"`
InterfaceIndex null.Int64 `json:"InterfaceIndex" description:"The network interface index (Windows only)"`
DualRequest null.Int64 `json:"DualRequest" description:"If the event is dual request (Windows only)"`
DNSRequestCount null.Int64 `json:"DnsRequestCount" description:"The number of DNS requests (Windows only)"`
AppIdentifier null.String `json:"AppIdentifier" description:"The identifier of the app that made the request (Android, iOS)"`
IPAddress null.String `json:"IpAddress" panther:"ip" description:"The device ip address (Android, iOS)"`
RequestType null.String `json:"RequestType" description:"The DNS request type"`
}
nolint:lll
type NetworkConnect ¶
type NetworkConnect struct {
EventSimpleName null.String `json:"event_simpleName" validate:"required,oneof=NetworkConnectIP4 NetworkConnectIP6" description:"Event name"`
ContextEvent
LocalAddressIP4 null.String `json:"LocalAddressIP4" panther:"ip" description:"Local IPv4 address for the connection"`
LocalAddressIP6 null.String `json:"LocalAddressIP6" panther:"ip" description:"Local IPv6 address for the connection"`
RemoteAddressIP4 null.String `json:"RemoteAddressIP4" panther:"ip" description:"Remote IPv4 address for the connection"`
RemoteAddressIP6 null.String `json:"RemoteAddressIP6" panther:"ip" description:"Remote IPv6 address for the connection"`
ConnectionFlags null.Uint16 `` /* 185-byte string literal not displayed */
Protocol null.Uint16 `json:"Protocol" description:"IP Protocol (ICMP = 1, TCP = 6, UDP = 17)"`
LocalPort null.Uint16 `json:"LocalPort" description:"Connection local port"`
RemotePort null.Uint16 `json:"RemotePort" description:"Connection remote port"`
ConnectionDirection null.Uint16 `json:"ConnectionDirection" description:"Direction of the connection (OUTBOUND = 0, INBOUND = 1, NEITHER = 2, BOTH = 3)"`
ICMPType null.String `json:"IcmpType" description:"ICMP type (N/A on iOS)"`
ICMPCode null.String `json:"IcmpCode" description:"ICMP code (N/A on iOS)"`
}
nolint:lll
type NetworkListen ¶
type NetworkListen struct {
EventSimpleName null.String `json:"event_simpleName" validate:"required,oneof=NetworkListenIP4 NetworkListenIP6" description:"event name"`
ContextEvent
LocalAddressIP4 null.String `json:"LocalAddressIP4" panther:"ip" description:"Local IPv4 address for the connection"`
LocalAddressIP6 null.String `json:"LocalAddressIP6" panther:"ip" description:"Local IPv6 address for the connection"`
RemoteAddressIP4 null.String `json:"RemoteAddressIP4" panther:"ip" description:"Remote IPv4 address for the connection"`
RemoteAddressIP6 null.String `json:"RemoteAddressIP6" panther:"ip" description:"Remote IPv6 address for the connection"`
ConnectionFlags null.Uint16 `` /* 185-byte string literal not displayed */
Protocol null.Uint16 `json:"Protocol" description:"IP Protocol (ICMP = 1, TCP = 6, UDP = 17)"`
LocalPort null.Uint16 `json:"LocalPort" description:"Connection local port"`
RemotePort null.Uint16 `json:"RemotePort" description:"Connection remote port"`
ConnectionDirection null.Uint16 `json:"ConnectionDirection" description:"Direction of the connection (OUTBOUND = 0, INBOUND = 1, NEITHER = 2, BOTH = 3)"`
}
nolint:lll
type ProcessRollup2 ¶
type ProcessRollup2 struct {
EventSimpleName null.String `json:"event_simpleName" validate:"required,eq=ProcessRollup2" description:"Event name"`
BaseEvent
TargetProcessID null.Int64 `json:"TargetProcessId" description:"The unique ID of a target process"`
SourceProcessID null.Int64 `json:"SourceProcessId" description:"The unique ID of creating process."`
SourceThreadID null.Int64 `json:"SourceThreadId" description:"The unique ID of thread from creating process."`
ParentProcessID null.Int64 `json:"ParentProcessId" description:"The unique ID of the parent process."`
ImageFileName null.String `` /* 243-byte string literal not displayed */
CommandLine null.String `json:"CommandLine" description:"The command line used to create this process. May be empty in some circumstances"`
RawProcessID null.Int64 `` /* 150-byte string literal not displayed */
ProcessStartTime time.Time `` /* 127-byte string literal not displayed */
ProcessEndTime time.Time `json:"ProcessEndTime" tcodec:"unix" description:"The time the process finished (in decimal, non-hex format)."`
SHA256HashData null.String `` /* 155-byte string literal not displayed */
SHA1HashData null.String `json:"SHA1HashData" panther:"sha1" description:"The SHA1 hash of a file"`
MD5HashData null.String `json:"MD5HashData" panther:"md5" description:"The MD5 hash of a file"`
// Windows only
ImageSubsystem null.String `json:"ImageSubsystem" description:"Subsystem of the image filename (Windows only)"`
UserSID null.String `` /* 170-byte string literal not displayed */
AuthenticationID null.String `json:"AuthenticationId" description:"The authentication identifier (Windows only)" `
IntegrityLevel null.String `json:"IntegrityLevel" description:"The integrity level (Windows only)" `
ProcessCreateFlags null.String `json:"ProcessCreateFlags" description:"Captured flags from original process create. This is a bitfield. (Windows only)"`
ProcessParameterFlags null.String `` /* 167-byte string literal not displayed */
ProcessSXSFlags null.String `` /* 207-byte string literal not displayed */
ParentAuthenticationID null.String `json:"ParentAuthenticationId" description:"The authentication identifier for the parent process (Windows only)" `
TokenType null.String `json:"TokenType" description:"The token type (Windows only)"`
SessionID null.String `json:"SessionId" description:"The id of the session (Windows only)"`
WindowFlags null.String `json:"WindowFlags" description:"Flags from the window (Windows only)"`
ShowWindowFlags null.String `json:"ShowWindowFlags" description:"Window visibility flags (Windows only)"`
WindowStartingPositionHorizontal null.Int64 `json:"WindowStartingPositionHorizontal" description:"Start horizontal position of the process window (Windows only)"`
WindowStartingPositionVertical null.Int64 `json:"WindowStartingPositionVertical" description:"Start vertical position of the process window (Windows only)"`
WindowStartingWidth null.Int64 `json:"WindowStartingWidth" description:"Start width of the process window (Windows only)"`
WindowStartingHeight null.Int64 `json:"WindowStartingHeight" description:"Start height of the process window (Windows only)"`
Desktop null.String `json:"Desktop" description:"The desktop of the process window (Windows only)"`
WindowStation null.String `json:"WindowStation" description:"The process window station (Windows only)"`
WindowTitle null.String `json:"WindowTitle" description:"The title of the process window (WindowsOnly)"`
LinkName null.String `json:"LinkName" description:"Link name (Windows only)"`
ApplicationUserModelID null.String `json:"ApplicationUserModelId" description:"Application user model id (WindowsOnly)"`
CallStackModuleNames null.String `json:"CallStackModuleNames" description:"Call stack module names (Windows only)"`
CallStackModuleNamesVersion null.String `json:"CallStackModuleNamesVersion" description:"Call stack module names version (Windows only)"`
RPCClientProcessID null.String `json:"RpcClientProcessId" description:"RPC client process id (Windows only)"`
CSAProcessDataCollectionInstanceID null.String `json:"CsaProcessDataCollectionInstanceId" description:"CSA process data collection instance id (Windows only)"`
OriginalCommandLine null.String `json:"OriginalCommandLine" description:"The original command line used to create this process (Windows only)"`
CreateProcessType null.String `json:"CreateProcessType" description:"Create process type (Windows only)"`
ZoneIdentifier null.String `json:"ZoneIdentifier" description:"Zone identifier (Windows only)"`
HostURL null.String `json:"HostUrl" description:"Host URL (Windows only)"`
ReferrerURL null.String `json:"ReferrerUrl" panther:"url" description:"Referrer URL (Windows only)"`
GrandParent null.String `json:"GrandParent" description:"Grant parent (Windows only)"`
BaseFileName null.String `json:"BaseFileName" description:"Base file name (Windows only)"`
Tags null.String `json:"Tags" description:"Process tags comma separated list (Windows, Mac)"`
ParentBaseFileName null.String `json:"ParentBaseFileName" description:"Parent process base file name (Windows, Mac)"`
ProcessGroupID null.Int64 `json:"ProcessGroupId" description:"Process group id (Windows, Mac)"`
UID null.Int64 `json:"UID" description:"UID (Mac, Linux, Android)"`
RUID null.Int64 `json:"RUID" description:"RUID (Mac, Linux, Android)"`
SVUID null.Int64 `json:"SVUID" description:"SVUID (Mac, Linux, Android)"`
GID null.Int64 `json:"GID" description:"GID (Mac, Linux, Android)"`
RGID null.Int64 `json:"RGID" description:"RGID (Mac, Linux, Android)"`
SVGID null.Int64 `json:"SVGID" description:"SVGID (Mac, Linux, Android)"`
SessionProcessID null.Int64 `json:"SessionProcessId" description:"Session process id (Mac, Linux)"`
MachOSubType null.String `json:"MachOSubType" description:"MachOSubType (Mac only)"`
TTYName null.String `json:"TtyName" description:"TTY name (Linux only)"`
OCIContainerID null.String `json:"OciContainerId" description:"OCI Container id (Linux only)"`
// Android only
SourceAndroidComponentName null.String `json:"SourceAndroidComponentName" description:"Source component name (Android only)"`
TargetAndroidComponentName null.String `json:"TargetAndroidComponentName" description:"Target component name (Android only)"`
TargetAndroidComponentType null.String `json:"TargetAndroidComponentType" description:"Target component type (Android only)"`
}
nolint:lll
type SyntheticProcessRollup2 ¶
type SyntheticProcessRollup2 struct {
EventSimpleName null.String `json:"event_simpleName" validate:"required,eq=SyntheticProcessRollup2" description:"event name"`
ContextEvent
TargetProcessID null.Int64 `json:"TargetProcessId" description:"The unique ID of a target process"`
SourceProcessID null.Int64 `json:"SourceProcessId" description:"The unique ID of creating process."`
SourceThreadID null.Int64 `json:"SourceThreadId" description:"The unique ID of thread from creating process."`
ParentProcessID null.Int64 `json:"ParentProcessId" description:"The unique ID of the parent process."`
ImageFileName null.String `` /* 243-byte string literal not displayed */
CommandLine null.String `json:"CommandLine" description:"The command line used to create this process. May be empty in some circumstances"`
RawProcessID null.Int64 `` /* 150-byte string literal not displayed */
ProcessStartTime time.Time `` /* 127-byte string literal not displayed */
ProcessEndTime time.Time `json:"ProcessEndTime" tcodec:"unix" description:"The time the process finished (in decimal, non-hex format)."`
SHA256HashData null.String `` /* 155-byte string literal not displayed */
SHA1HashData null.String `json:"SHA1HashData" panther:"sha1" description:"The SHA1 hash of a file"`
MD5HashData null.String `json:"MD5HashData" panther:"md5" description:"The MD5 hash of a file"`
SyntheticPR2Flags null.Uint16 `` /* 186-byte string literal not displayed */
// Windows only
ImageSubsystem null.String `json:"ImageSubsystem" description:"Subsystem of the image filename (Windows only)"`
UserSID null.String `` /* 170-byte string literal not displayed */
AuthenticationID null.String `json:"AuthenticationId" description:"The authentication identifier (Windows only)" `
IntegrityLevel null.String `json:"IntegrityLevel" description:"The integrity level (Windows only)" `
// Mac only
ProcessGroupID null.Int64 `json:"ProcessGroupId" description:"Process group id (Mac)"`
UID null.Int64 `json:"UID" description:"UID (Mac)"`
RUID null.Int64 `json:"RUID" description:"RUID (Mac)"`
SVUID null.Int64 `json:"SVUID" description:"SVUID (Mac)"`
GID null.Int64 `json:"GID" description:"GID (Mac)"`
RGID null.Int64 `json:"RGID" description:"RGID (Mac)"`
SVGID null.Int64 `json:"SVGID" description:"SVGID (Mac)"`
SessionProcessID null.Int64 `json:"SessionProcessId" description:"Session process id (Mac)"`
}
nolint:lll
type UnknownEvent ¶
type UnknownEvent struct {
EventSimpleName null.String `json:"event_simpleName" validate:"required" description:"Event name"`
ContextEvent
}
This event holds all common fields for crowdstrike events.
type UnknownEventWithPayload ¶
type UnknownEventWithPayload struct {
// We neethe ed the embedding to parse the base fields of the payload
UnknownEvent
UnknownPayload *jsoniter.RawMessage `json:"unknown_payload" validate:"required" description:"The full JSON payload of the event"`
}
This event is a catch-all event for all (yet) unknown crowdstrike events
Click to show internal directories.
Click to hide internal directories.