Documentation ¶
Overview ¶
Code generated - DO NOT EDIT.
Index ¶
- Constants
- Variables
- func FindContainerID(s string) string
- func GetEventTypePerCategory() map[EventCategory][]eval.EventType
- func GetHostByteOrder() binary.ByteOrder
- func IsAlphaNumeric(r rune) bool
- func IsPrintable(s string) bool
- func IsPrintableASCII(s string) bool
- func MarshalBinary(data []byte, binaryMarshalers ...BinaryMarshaler) (int, error)
- func SliceToArray(src []byte, dst unsafe.Pointer)
- func StringifyHelpersList(input []uint32) []string
- func UnmarshalBinary(data []byte, binaryUnmarshalers ...BinaryUnmarshaler) (int, error)
- func UnmarshalPrintableString(data []byte, size int) (string, error)
- func UnmarshalString(data []byte, size int) (string, error)
- func UnmarshalStringArray(data []byte) ([]string, error)
- type AddressFamily
- type ArgsEntry
- func (z *ArgsEntry) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *ArgsEntry) EncodeMsg(en *msgp.Writer) (err error)
- func (p *ArgsEntry) Equals(o *ArgsEntry) bool
- func (z *ArgsEntry) MarshalMsg(b []byte) (o []byte, err error)
- func (z *ArgsEntry) Msgsize() (s int)
- func (p *ArgsEntry) ToArray() ([]string, bool)
- func (z *ArgsEntry) UnmarshalMsg(bts []byte) (o []byte, err error)
- type ArgsEnvs
- type ArgsEnvsCacheEntry
- type ArgsEnvsEvent
- type BPFAttachType
- type BPFCmd
- type BPFEvent
- type BPFHelperFunc
- type BPFMap
- type BPFMapType
- type BPFProgram
- type BPFProgramType
- type BinaryMarshaler
- type BinaryUnmarshaler
- type BindEvent
- type CapsetEvent
- type CgroupTracingEvent
- type ChmodEvent
- type ChmodMode
- type ChownEvent
- type ContainerContext
- type Credentials
- func (z *Credentials) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *Credentials) EncodeMsg(en *msgp.Writer) (err error)
- func (e *Credentials) MarshalBinary(data []byte) (int, error)
- func (z *Credentials) MarshalMsg(b []byte) (o []byte, err error)
- func (z *Credentials) Msgsize() (s int)
- func (e *Credentials) UnmarshalBinary(data []byte) (int, error)
- func (z *Credentials) UnmarshalMsg(bts []byte) (o []byte, err error)
- type DNSEvent
- func (z *DNSEvent) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *DNSEvent) EncodeMsg(en *msgp.Writer) (err error)
- func (z *DNSEvent) MarshalMsg(b []byte) (o []byte, err error)
- func (z *DNSEvent) Msgsize() (s int)
- func (e *DNSEvent) UnmarshalBinary(data []byte) (int, error)
- func (z *DNSEvent) UnmarshalMsg(bts []byte) (o []byte, err error)
- type EnvsEntry
- func (z *EnvsEntry) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *EnvsEntry) EncodeMsg(en *msgp.Writer) (err error)
- func (p *EnvsEntry) Equals(o *EnvsEntry) bool
- func (p *EnvsEntry) Get(key string) string
- func (p *EnvsEntry) Keys() ([]string, bool)
- func (z *EnvsEntry) MarshalMsg(b []byte) (o []byte, err error)
- func (z *EnvsEntry) Msgsize() (s int)
- func (p *EnvsEntry) ToArray() ([]string, bool)
- func (z *EnvsEntry) UnmarshalMsg(bts []byte) (o []byte, err error)
- type Event
- func (e *Event) GetEventType() EventType
- func (e *Event) GetFieldEventType(field eval.Field) (eval.EventType, error)
- func (e *Event) GetFieldType(field eval.Field) (reflect.Kind, error)
- func (e *Event) GetFieldValue(field eval.Field) (interface{}, error)
- func (e *Event) GetFields() []eval.Field
- func (e *Event) GetPointer() unsafe.Pointer
- func (e *Event) GetTags() []string
- func (e *Event) GetType() string
- func (e *Event) SetFieldValue(field eval.Field, value interface{}) error
- func (e *Event) UnmarshalBinary(data []byte) (int, error)
- type EventCategory
- type EventType
- type ExecEvent
- type ExitCause
- type ExitEvent
- type FileEvent
- func (z *FileEvent) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *FileEvent) EncodeMsg(en *msgp.Writer) (err error)
- func (e *FileEvent) GetPathResolutionError() string
- func (z *FileEvent) MarshalMsg(b []byte) (o []byte, err error)
- func (z *FileEvent) Msgsize() (s int)
- func (e *FileEvent) SetBasenameStr(str string)
- func (e *FileEvent) SetPathnameStr(str string)
- func (e *FileEvent) UnmarshalBinary(data []byte) (int, error)
- func (z *FileEvent) UnmarshalMsg(bts []byte) (o []byte, err error)
- type FileFields
- func (z *FileFields) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *FileFields) EncodeMsg(en *msgp.Writer) (err error)
- func (f *FileFields) GetInLowerLayer() bool
- func (f *FileFields) GetInUpperLayer() bool
- func (f *FileFields) HasHardLinks() bool
- func (e *FileFields) MarshalBinary(data []byte) (int, error)
- func (z *FileFields) MarshalMsg(b []byte) (o []byte, err error)
- func (z *FileFields) Msgsize() (s int)
- func (e *FileFields) UnmarshalBinary(data []byte) (int, error)
- func (z *FileFields) UnmarshalMsg(bts []byte) (o []byte, err error)
- type IPPortContext
- type InvalidateDentryEvent
- type KernelCapability
- type L3Protocol
- type L4Protocol
- type LinkEvent
- type LoadModuleEvent
- type MMapEvent
- type MMapFlag
- type MProtectEvent
- type MkdirEvent
- type Model
- func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Evaluator, error)
- func (m *Model) GetEventTypes() []eval.EventType
- func (m *Model) GetIterator(field eval.Field) (eval.Iterator, error)
- func (m *Model) NewEvent() eval.Event
- func (m *Model) ValidateField(field eval.Field, fieldValue eval.FieldValue) error
- type MountEvent
- type MountReleasedEvent
- type NetDevice
- type NetDeviceEvent
- type NetworkContext
- type NetworkDeviceContext
- type OpenEvent
- type OpenFlags
- type PIDContext
- func (z *PIDContext) DecodeMsg(dc *msgp.Reader) (err error)
- func (z PIDContext) EncodeMsg(en *msgp.Writer) (err error)
- func (z PIDContext) MarshalMsg(b []byte) (o []byte, err error)
- func (z PIDContext) Msgsize() (s int)
- func (p *PIDContext) UnmarshalBinary(data []byte) (int, error)
- func (z *PIDContext) UnmarshalMsg(bts []byte) (o []byte, err error)
- type PTraceEvent
- type PTraceRequest
- type PipeBufFlag
- type Process
- func (z *Process) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *Process) EncodeMsg(en *msgp.Writer) (err error)
- func (e *Process) GetPathResolutionError() string
- func (z *Process) MarshalMsg(b []byte) (o []byte, err error)
- func (e *Process) MarshalPidCache(data []byte) (int, error)
- func (e *Process) MarshalProcCache(data []byte) (int, error)
- func (z *Process) Msgsize() (s int)
- func (e *Process) UnmarshalBinary(data []byte) (int, error)
- func (z *Process) UnmarshalMsg(bts []byte) (o []byte, err error)
- type ProcessAncestorsIterator
- type ProcessCacheEntry
- func (z *ProcessCacheEntry) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *ProcessCacheEntry) EncodeMsg(en *msgp.Writer) (err error)
- func (pc *ProcessCacheEntry) Equals(entry *ProcessCacheEntry) bool
- func (pc *ProcessCacheEntry) Exec(entry *ProcessCacheEntry)
- func (pc *ProcessCacheEntry) Exit(exitTime time.Time)
- func (pc *ProcessCacheEntry) Fork(childEntry *ProcessCacheEntry)
- func (pc *ProcessCacheEntry) GetNextAncestorNoFork() *ProcessCacheEntry
- func (z *ProcessCacheEntry) MarshalMsg(b []byte) (o []byte, err error)
- func (z *ProcessCacheEntry) Msgsize() (s int)
- func (pc *ProcessCacheEntry) Release()
- func (pc *ProcessCacheEntry) Reset()
- func (pc *ProcessCacheEntry) Retain()
- func (pc *ProcessCacheEntry) SetAncestor(parent *ProcessCacheEntry)
- func (pc *ProcessCacheEntry) SetParent(parent *ProcessCacheEntry)
- func (pc *ProcessCacheEntry) SetReleaseCallback(callback func())
- func (pc *ProcessCacheEntry) SetSpan(spanID uint64, traceID uint64)
- func (pc *ProcessCacheEntry) ShareArgsEnvs(childEntry *ProcessCacheEntry)
- func (z *ProcessCacheEntry) UnmarshalMsg(bts []byte) (o []byte, err error)
- type ProcessContext
- func (z *ProcessContext) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *ProcessContext) EncodeMsg(en *msgp.Writer) (err error)
- func (z *ProcessContext) MarshalMsg(b []byte) (o []byte, err error)
- func (z *ProcessContext) Msgsize() (s int)
- func (z *ProcessContext) UnmarshalMsg(bts []byte) (o []byte, err error)
- type Protection
- type QClass
- type QType
- type RenameEvent
- type RetValError
- type RmdirEvent
- type SELinuxEvent
- type SELinuxEventKind
- type SetXAttrEvent
- type SetgidEvent
- type SetuidEvent
- type Signal
- type SignalEvent
- type SpanContext
- func (z *SpanContext) DecodeMsg(dc *msgp.Reader) (err error)
- func (z SpanContext) EncodeMsg(en *msgp.Writer) (err error)
- func (z SpanContext) MarshalMsg(b []byte) (o []byte, err error)
- func (z SpanContext) Msgsize() (s int)
- func (s *SpanContext) UnmarshalBinary(data []byte) (int, error)
- func (z *SpanContext) UnmarshalMsg(bts []byte) (o []byte, err error)
- type SpliceEvent
- type SyscallEvent
- func (z *SyscallEvent) DecodeMsg(dc *msgp.Reader) (err error)
- func (z SyscallEvent) EncodeMsg(en *msgp.Writer) (err error)
- func (z SyscallEvent) MarshalMsg(b []byte) (o []byte, err error)
- func (z SyscallEvent) Msgsize() (s int)
- func (e *SyscallEvent) UnmarshalBinary(data []byte) (int, error)
- func (z *SyscallEvent) UnmarshalMsg(bts []byte) (o []byte, err error)
- type UmountEvent
- type UnlinkEvent
- type UnlinkFlags
- type UnloadModuleEvent
- type UtimesEvent
- type VMFlag
- type VethPairEvent
Constants ¶
const ( // MaxSegmentLength defines the maximum length of each segment of a path MaxSegmentLength = 255 // MaxPathDepth defines the maximum depth of a path // see pkg/security/ebpf/c/dentry_resolver.h: DR_MAX_TAIL_CALL * DR_MAX_ITERATION_DEPTH MaxPathDepth = 1350 // MaxBpfObjName defines the maximum length of a Bpf object name MaxBpfObjName = 16 // PathSuffix defines the suffix used for path fields PathSuffix = ".path" // NameSuffix defines the suffix used for name fields NameSuffix = ".name" // ContainerIDLen defines the length of a container ID ContainerIDLen = sha256.Size * 2 // MaxSymlinks maximum symlinks captured MaxSymlinks = 2 )
const ( LowerLayer = 1 << iota UpperLayer )
File flags
Variables ¶
var ( // BPFCmdConstants is the list of BPF commands // generate_constants:BPF commands,BPF commands are used to specify a command to a bpf syscall. BPFCmdConstants = map[string]BPFCmd{ "BPF_MAP_CREATE": BpfMapCreateCmd, "BPF_MAP_LOOKUP_ELEM": BpfMapLookupElemCmd, "BPF_MAP_UPDATE_ELEM": BpfMapUpdateElemCmd, "BPF_MAP_DELETE_ELEM": BpfMapDeleteElemCmd, "BPF_MAP_GET_NEXT_KEY": BpfMapGetNextKeyCmd, "BPF_PROG_LOAD": BpfProgLoadCmd, "BPF_OBJ_PIN": BpfObjPinCmd, "BPF_OBJ_GET": BpfObjGetCmd, "BPF_PROG_ATTACH": BpfProgAttachCmd, "BPF_PROG_DETACH": BpfProgDetachCmd, "BPF_PROG_TEST_RUN": BpfProgTestRunCmd, "BPF_PROG_RUN": BpfProgTestRunCmd, "BPF_PROG_GET_NEXT_ID": BpfProgGetNextIDCmd, "BPF_MAP_GET_NEXT_ID": BpfMapGetNextIDCmd, "BPF_PROG_GET_FD_BY_ID": BpfProgGetFdByIDCmd, "BPF_MAP_GET_FD_BY_ID": BpfMapGetFdByIDCmd, "BPF_OBJ_GET_INFO_BY_FD": BpfObjGetInfoByFdCmd, "BPF_PROG_QUERY": BpfProgQueryCmd, "BPF_RAW_TRACEPOINT_OPEN": BpfRawTracepointOpenCmd, "BPF_BTF_LOAD": BpfBtfLoadCmd, "BPF_BTF_GET_FD_BY_ID": BpfBtfGetFdByIDCmd, "BPF_TASK_FD_QUERY": BpfTaskFdQueryCmd, "BPF_MAP_LOOKUP_AND_DELETE_ELEM": BpfMapLookupAndDeleteElemCmd, "BPF_MAP_FREEZE": BpfMapFreezeCmd, "BPF_BTF_GET_NEXT_ID": BpfBtfGetNextIDCmd, "BPF_MAP_LOOKUP_BATCH": BpfMapLookupBatchCmd, "BPF_MAP_LOOKUP_AND_DELETE_BATCH": BpfMapLookupAndDeleteBatchCmd, "BPF_MAP_UPDATE_BATCH": BpfMapUpdateBatchCmd, "BPF_MAP_DELETE_BATCH": BpfMapDeleteBatchCmd, "BPF_LINK_CREATE": BpfLinkCreateCmd, "BPF_LINK_UPDATE": BpfLinkUpdateCmd, "BPF_LINK_GET_FD_BY_ID": BpfLinkGetFdByIDCmd, "BPF_LINK_GET_NEXT_ID": BpfLinkGetNextIDCmd, "BPF_ENABLE_STATS": BpfEnableStatsCmd, "BPF_ITER_CREATE": BpfIterCreateCmd, "BPF_LINK_DETACH": BpfLinkDetachCmd, "BPF_PROG_BIND_MAP": BpfProgBindMapCmd, } // BPFHelperFuncConstants is the list of BPF helper func constants // generate_constants:BPF helper functions,BPF helper functions are the supported BPF helper functions. BPFHelperFuncConstants = map[string]BPFHelperFunc{}/* 166 elements not displayed */ // BPFMapTypeConstants is the list of BPF map type constants // generate_constants:BPF map types,BPF map types are the supported eBPF map types. BPFMapTypeConstants = map[string]BPFMapType{ "BPF_MAP_TYPE_UNSPEC": BpfMapTypeUnspec, "BPF_MAP_TYPE_HASH": BpfMapTypeHash, "BPF_MAP_TYPE_ARRAY": BpfMapTypeArray, "BPF_MAP_TYPE_PROG_ARRAY": BpfMapTypeProgArray, "BPF_MAP_TYPE_PERF_EVENT_ARRAY": BpfMapTypePerfEventArray, "BPF_MAP_TYPE_PERCPU_HASH": BpfMapTypePercpuHash, "BPF_MAP_TYPE_PERCPU_ARRAY": BpfMapTypePercpuArray, "BPF_MAP_TYPE_STACK_TRACE": BpfMapTypeStackTrace, "BPF_MAP_TYPE_CGROUP_ARRAY": BpfMapTypeCgroupArray, "BPF_MAP_TYPE_LRU_HASH": BpfMapTypeLruHash, "BPF_MAP_TYPE_LRU_PERCPU_HASH": BpfMapTypeLruPercpuHash, "BPF_MAP_TYPE_LPM_TRIE": BpfMapTypeLpmTrie, "BPF_MAP_TYPE_ARRAY_OF_MAPS": BpfMapTypeArrayOfMaps, "BPF_MAP_TYPE_HASH_OF_MAPS": BpfMapTypeHashOfMaps, "BPF_MAP_TYPE_DEVMAP": BpfMapTypeDevmap, "BPF_MAP_TYPE_SOCKMAP": BpfMapTypeSockmap, "BPF_MAP_TYPE_CPUMAP": BpfMapTypeCPUmap, "BPF_MAP_TYPE_XSKMAP": BpfMapTypeXskmap, "BPF_MAP_TYPE_SOCKHASH": BpfMapTypeSockhash, "BPF_MAP_TYPE_CGROUP_STORAGE": BpfMapTypeCgroupStorage, "BPF_MAP_TYPE_REUSEPORT_SOCKARRAY": BpfMapTypeReuseportSockarray, "BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE": BpfMapTypePercpuCgroupStorage, "BPF_MAP_TYPE_QUEUE": BpfMapTypeQueue, "BPF_MAP_TYPE_STACK": BpfMapTypeStack, "BPF_MAP_TYPE_SK_STORAGE": BpfMapTypeSkStorage, "BPF_MAP_TYPE_DEVMAP_HASH": BpfMapTypeDevmapHash, "BPF_MAP_TYPE_STRUCT_OPS": BpfMapTypeStructOps, "BPF_MAP_TYPE_RINGBUF": BpfMapTypeRingbuf, "BPF_MAP_TYPE_INODE_STORAGE": BpfMapTypeInodeStorage, "BPF_MAP_TYPE_TASK_STORAGE": BpfMapTypeTaskStorage, } // BPFProgramTypeConstants is the list of BPF program type constants // generate_constants:BPF program types,BPF program types are the supported eBPF program types. BPFProgramTypeConstants = map[string]BPFProgramType{ "BPF_PROG_TYPE_UNSPEC": BpfProgTypeUnspec, "BPF_PROG_TYPE_SOCKET_FILTER": BpfProgTypeSocketFilter, "BPF_PROG_TYPE_KPROBE": BpfProgTypeKprobe, "BPF_PROG_TYPE_SCHED_CLS": BpfProgTypeSchedCls, "BPF_PROG_TYPE_SCHED_ACT": BpfProgTypeSchedAct, "BPF_PROG_TYPE_TRACEPOINT": BpfProgTypeTracepoint, "BPF_PROG_TYPE_XDP": BpfProgTypeXdp, "BPF_PROG_TYPE_PERF_EVENT": BpfProgTypePerfEvent, "BPF_PROG_TYPE_CGROUP_SKB": BpfProgTypeCgroupSkb, "BPF_PROG_TYPE_CGROUP_SOCK": BpfProgTypeCgroupSock, "BPF_PROG_TYPE_LWT_IN": BpfProgTypeLwtIn, "BPF_PROG_TYPE_LWT_OUT": BpfProgTypeLwtOut, "BPF_PROG_TYPE_LWT_XMIT": BpfProgTypeLwtXmit, "BPF_PROG_TYPE_SOCK_OPS": BpfProgTypeSockOps, "BPF_PROG_TYPE_SK_SKB": BpfProgTypeSkSkb, "BPF_PROG_TYPE_CGROUP_DEVICE": BpfProgTypeCgroupDevice, "BPF_PROG_TYPE_SK_MSG": BpfProgTypeSkMsg, "BPF_PROG_TYPE_RAW_TRACEPOINT": BpfProgTypeRawTracepoint, "BPF_PROG_TYPE_CGROUP_SOCK_ADDR": BpfProgTypeCgroupSockAddr, "BPF_PROG_TYPE_LWT_SEG6LOCAL": BpfProgTypeLwtSeg6local, "BPF_PROG_TYPE_LIRC_MODE2": BpfProgTypeLircMode2, "BPF_PROG_TYPE_SK_REUSEPORT": BpfProgTypeSkReuseport, "BPF_PROG_TYPE_FLOW_DISSECTOR": BpfProgTypeFlowDissector, "BPF_PROG_TYPE_CGROUP_SYSCTL": BpfProgTypeCgroupSysctl, "BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE": BpfProgTypeRawTracepointWritable, "BPF_PROG_TYPE_CGROUP_SOCKOPT": BpfProgTypeCgroupSockopt, "BPF_PROG_TYPE_TRACING": BpfProgTypeTracing, "BPF_PROG_TYPE_STRUCT_OPS": BpfProgTypeStructOps, "BPF_PROG_TYPE_EXT": BpfProgTypeExt, "BPF_PROG_TYPE_LSM": BpfProgTypeLsm, "BPF_PROG_TYPE_SK_LOOKUP": BpfProgTypeSkLookup, } // BPFAttachTypeConstants is the list of BPF attach type constants // generate_constants:BPF attach types,BPF attach types are the supported eBPF program attach types. BPFAttachTypeConstants = map[string]BPFAttachType{ "BPF_CGROUP_INET_INGRESS": BpfCgroupInetIngress, "BPF_CGROUP_INET_EGRESS": BpfCgroupInetEgress, "BPF_CGROUP_INET_SOCK_CREATE": BpfCgroupInetSockCreate, "BPF_CGROUP_SOCK_OPS": BpfCgroupSockOps, "BPF_SK_SKB_STREAM_PARSER": BpfSkSkbStreamParser, "BPF_SK_SKB_STREAM_VERDICT": BpfSkSkbStreamVerdict, "BPF_CGROUP_DEVICE": BpfCgroupDevice, "BPF_SK_MSG_VERDICT": BpfSkMsgVerdict, "BPF_CGROUP_INET4_BIND": BpfCgroupInet4Bind, "BPF_CGROUP_INET6_BIND": BpfCgroupInet6Bind, "BPF_CGROUP_INET4_CONNECT": BpfCgroupInet4Connect, "BPF_CGROUP_INET6_CONNECT": BpfCgroupInet6Connect, "BPF_CGROUP_INET4_POST_BIND": BpfCgroupInet4PostBind, "BPF_CGROUP_INET6_POST_BIND": BpfCgroupInet6PostBind, "BPF_CGROUP_UDP4_SENDMSG": BpfCgroupUDP4Sendmsg, "BPF_CGROUP_UDP6_SENDMSG": BpfCgroupUDP6Sendmsg, "BPF_LIRC_MODE2": BpfLircMode2, "BPF_FLOW_DISSECTOR": BpfFlowDissector, "BPF_CGROUP_SYSCTL": BpfCgroupSysctl, "BPF_CGROUP_UDP4_RECVMSG": BpfCgroupUDP4Recvmsg, "BPF_CGROUP_UDP6_RECVMSG": BpfCgroupUDP6Recvmsg, "BPF_CGROUP_GETSOCKOPT": BpfCgroupGetsockopt, "BPF_CGROUP_SETSOCKOPT": BpfCgroupSetsockopt, "BPF_TRACE_RAW_TP": BpfTraceRawTp, "BPF_TRACE_FENTRY": BpfTraceFentry, "BPF_TRACE_FEXIT": BpfTraceFexit, "BPF_MODIFY_RETURN": BpfModifyReturn, "BPF_LSM_MAC": BpfLsmMac, "BPF_TRACE_ITER": BpfTraceIter, "BPF_CGROUP_INET4_GETPEERNAME": BpfCgroupInet4Getpeername, "BPF_CGROUP_INET6_GETPEERNAME": BpfCgroupInet6Getpeername, "BPF_CGROUP_INET4_GETSOCKNAME": BpfCgroupInet4Getsockname, "BPF_CGROUP_INET6_GETSOCKNAME": BpfCgroupInet6Getsockname, "BPF_XDP_DEVMAP": BpfXdpDevmap, "BPF_CGROUP_INET_SOCK_RELEASE": BpfCgroupInetSockRelease, "BPF_XDP_CPUMAP": BpfXdpCPUmap, "BPF_SK_LOOKUP": BpfSkLookup, "BPF_XDP": BpfXdp, "BPF_SK_SKB_VERDICT": BpfSkSkbVerdict, } // PipeBufFlagConstants is the list of pipe buffer flags // generate_constants:Pipe buffer flags,Pipe buffer flags are the supported flags for a pipe buffer. PipeBufFlagConstants = map[string]PipeBufFlag{ "PIPE_BUF_FLAG_LRU": PipeBufFlagLRU, "PIPE_BUF_FLAG_ATOMIC": PipeBufFlagAtomic, "PIPE_BUF_FLAG_GIFT": PipeBufFlagGift, "PIPE_BUF_FLAG_PACKET": PipeBufFlagPacket, "PIPE_BUF_FLAG_CAN_MERGE": PipeBufFlagCanMerge, "PIPE_BUF_FLAG_WHOLE": PipeBufFlagWhole, "PIPE_BUF_FLAG_LOSS": PipeBufFlagLoss, } // DNSQTypeConstants see https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml // generate_constants:DNS qtypes,DNS qtypes are the supported DNS query types. DNSQTypeConstants = map[string]int{ "None": 0, "A": 1, "NS": 2, "MD": 3, "MF": 4, "CNAME": 5, "SOA": 6, "MB": 7, "MG": 8, "MR": 9, "NULL": 10, "PTR": 12, "HINFO": 13, "MINFO": 14, "MX": 15, "TXT": 16, "RP": 17, "AFSDB": 18, "X25": 19, "ISDN": 20, "RT": 21, "NSAPPTR": 23, "SIG": 24, "KEY": 25, "PX": 26, "GPOS": 27, "AAAA": 28, "LOC": 29, "NXT": 30, "EID": 31, "NIMLOC": 32, "SRV": 33, "ATMA": 34, "NAPTR": 35, "KX": 36, "CERT": 37, "DNAME": 39, "OPT": 41, "APL": 42, "DS": 43, "SSHFP": 44, "RRSIG": 46, "NSEC": 47, "DNSKEY": 48, "DHCID": 49, "NSEC3": 50, "NSEC3PARAM": 51, "TLSA": 52, "SMIMEA": 53, "HIP": 55, "NINFO": 56, "RKEY": 57, "TALINK": 58, "CDS": 59, "CDNSKEY": 60, "OPENPGPKEY": 61, "CSYNC": 62, "ZONEMD": 63, "SVCB": 64, "HTTPS": 65, "SPF": 99, "UINFO": 100, "UID": 101, "GID": 102, "UNSPEC": 103, "NID": 104, "L32": 105, "L64": 106, "LP": 107, "EUI48": 108, "EUI64": 109, "URI": 256, "CAA": 257, "AVC": 258, "TKEY": 249, "TSIG": 250, "IXFR": 251, "AXFR": 252, "MAILB": 253, "MAILA": 254, "ANY": 255, "TA": 32768, "DLV": 32769, "Reserved": 65535, } // DNSQClassConstants see https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml // generate_constants:DNS qclasses,DNS qclasses are the supported DNS query classes. DNSQClassConstants = map[string]int{ "CLASS_INET": 1, "CLASS_CSNET": 2, "CLASS_CHAOS": 3, "CLASS_HESIOD": 4, "CLASS_NONE": 254, "CLASS_ANY": 255, } // SECLConstants are constants supported in runtime security agent rules // generate_constants:SecL constants,SecL constants are the supported generic SecL constants. SECLConstants = map[string]interface{}{ "true": &eval.BoolEvaluator{Value: true}, "false": &eval.BoolEvaluator{Value: false}, } // L3ProtocolConstants is the list of supported L3 protocols // generate_constants:L3 protocols,L3 protocols are the supported Layer 3 protocols. L3ProtocolConstants = map[string]L3Protocol{ "ETH_P_LOOP": EthPLOOP, "ETH_P_PUP": EthPPUP, "ETH_P_PUPAT": EthPPUPAT, "ETH_P_TSN": EthPTSN, "ETH_P_IP": EthPIP, "ETH_P_X25": EthPX25, "ETH_P_ARP": EthPARP, "ETH_P_BPQ": EthPBPQ, "ETH_P_IEEEPUP": EthPIEEEPUP, "ETH_P_IEEEPUPAT": EthPIEEEPUPAT, "ETH_P_BATMAN": EthPBATMAN, "ETH_P_DEC": EthPDEC, "ETH_P_DNADL": EthPDNADL, "ETH_P_DNARC": EthPDNARC, "ETH_P_DNART": EthPDNART, "ETH_P_LAT": EthPLAT, "ETH_P_DIAG": EthPDIAG, "ETH_P_CUST": EthPCUST, "ETH_P_SCA": EthPSCA, "ETH_P_TEB": EthPTEB, "ETH_P_RARP": EthPRARP, "ETH_P_ATALK": EthPATALK, "ETH_P_AARP": EthPAARP, "ETH_P_8021_Q": EthP8021Q, "ETH_P_ERSPAN": EthPERSPAN, "ETH_P_IPX": EthPIPX, "ETH_P_IPV6": EthPIPV6, "ETH_P_PAUSE": EthPPAUSE, "ETH_P_SLOW": EthPSLOW, "ETH_P_WCCP": EthPWCCP, "ETH_P_MPLSUC": EthPMPLSUC, "ETH_P_MPLSMC": EthPMPLSMC, "ETH_P_ATMMPOA": EthPATMMPOA, "ETH_P_PPPDISC": EthPPPPDISC, "ETH_P_PPPSES": EthPPPPSES, "ETH_P__LINK_CTL": EthPLinkCTL, "ETH_P_ATMFATE": EthPATMFATE, "ETH_P_PAE": EthPPAE, "ETH_P_AOE": EthPAOE, "ETH_P_8021_AD": EthP8021AD, "ETH_P_802_EX1": EthP802EX1, "ETH_P_TIPC": EthPTIPC, "ETH_P_MACSEC": EthPMACSEC, "ETH_P_8021_AH": EthP8021AH, "ETH_P_MVRP": EthPMVRP, "ETH_P_1588": EthP1588, "ETH_P_NCSI": EthPNCSI, "ETH_P_PRP": EthPPRP, "ETH_P_FCOE": EthPFCOE, "ETH_P_IBOE": EthPIBOE, "ETH_P_TDLS": EthPTDLS, "ETH_P_FIP": EthPFIP, "ETH_P_80221": EthP80221, "ETH_P_HSR": EthPHSR, "ETH_P_NSH": EthPNSH, "ETH_P_LOOPBACK": EthPLOOPBACK, "ETH_P_QINQ1": EthPQINQ1, "ETH_P_QINQ2": EthPQINQ2, "ETH_P_QINQ3": EthPQINQ3, "ETH_P_EDSA": EthPEDSA, "ETH_P_IFE": EthPIFE, "ETH_P_AFIUCV": EthPAFIUCV, "ETH_P_8023_MIN": EthP8023MIN, "ETH_P_IPV6_HOP_BY_HOP": EthPIPV6HopByHop, "ETH_P_8023": EthP8023, "ETH_P_AX25": EthPAX25, "ETH_P_ALL": EthPALL, "ETH_P_8022": EthP8022, "ETH_P_SNAP": EthPSNAP, "ETH_P_DDCMP": EthPDDCMP, "ETH_P_WANPPP": EthPWANPPP, "ETH_P_PPPMP": EthPPPPMP, "ETH_P_LOCALTALK": EthPLOCALTALK, "ETH_P_CAN": EthPCAN, "ETH_P_CANFD": EthPCANFD, "ETH_P_PPPTALK": EthPPPPTALK, "ETH_P_TR8022": EthPTR8022, "ETH_P_MOBITEX": EthPMOBITEX, "ETH_P_CONTROL": EthPCONTROL, "ETH_P_IRDA": EthPIRDA, "ETH_P_ECONET": EthPECONET, "ETH_P_HDLC": EthPHDLC, "ETH_P_ARCNET": EthPARCNET, "ETH_P_DSA": EthPDSA, "ETH_P_TRAILER": EthPTRAILER, "ETH_P_PHONET": EthPPHONET, "ETH_P_IEEE802154": EthPIEEE802154, "ETH_P_CAIF": EthPCAIF, "ETH_P_XDSA": EthPXDSA, "ETH_P_MAP": EthPMAP, } // L4ProtocolConstants is the list of supported L4 protocols // generate_constants:L4 protocols,L4 protocols are the supported Layer 4 protocols. L4ProtocolConstants = map[string]L4Protocol{ "IP_PROTO_IP": IPProtoIP, "IP_PROTO_ICMP": IPProtoICMP, "IP_PROTO_IGMP": IPProtoIGMP, "IP_PROTO_IPIP": IPProtoIPIP, "IP_PROTO_TCP": IPProtoTCP, "IP_PROTO_EGP": IPProtoEGP, "IP_PROTO_IGP": IPProtoIGP, "IP_PROTO_PUP": IPProtoPUP, "IP_PROTO_UDP": IPProtoUDP, "IP_PROTO_IDP": IPProtoIDP, "IP_PROTO_TP": IPProtoTP, "IP_PROTO_DCCP": IPProtoDCCP, "IP_PROTO_IPV6": IPProtoIPV6, "IP_PROTO_RSVP": IPProtoRSVP, "IP_PROTO_GRE": IPProtoGRE, "IP_PROTO_ESP": IPProtoESP, "IP_PROTO_AH": IPProtoAH, "IP_PROTO_ICMPV6": IPProtoICMPV6, "IP_PROTO_MTP": IPProtoMTP, "IP_PROTO_BEETPH": IPProtoBEETPH, "IP_PROTO_ENCAP": IPProtoENCAP, "IP_PROTO_PIM": IPProtoPIM, "IP_PROTO_COMP": IPProtoCOMP, "IP_PROTO_SCTP": IPProtoSCTP, "IP_PROTO_UDPLITE": IPProtoUDPLITE, "IP_PROTO_MPLS": IPProtoMPLS, "IP_PROTO_RAW": IPProtoRAW, } )
var ( // ErrNotEnoughData is returned when the buffer is too small to unmarshal the event ErrNotEnoughData = errors.New("not enough data") // ErrNotEnoughSpace is returned when the provided buffer is too small to marshal the event ErrNotEnoughSpace = errors.New("not enough space") // ErrStringArrayOverflow returned when there is a string array overflow ErrStringArrayOverflow = errors.New("string array overflow") // ErrNonPrintable returned when a string contains non printable char ErrNonPrintable = errors.New("non printable") )
var ( // ProcessSymlinkPathname handles symlink for process enrtries ProcessSymlinkPathname = &eval.OpOverrides{ StringEquals: func(a *eval.StringEvaluator, b *eval.StringEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { path, err := eval.GlobCmp.StringEquals(a, b, state) if err != nil { return nil, err } if a.Field == "exec.file.path" || a.Field == "process.file.path" { se1, err := eval.GlobCmp.StringEquals(symlinkPathnameEvaluators[0], b, state) if err != nil { return nil, err } se2, err := eval.GlobCmp.StringEquals(symlinkPathnameEvaluators[1], b, state) if err != nil { return nil, err } or, err := eval.Or(se1, se2, state) if err != nil { return nil, err } return eval.Or(path, or, state) } else if b.Field == "exec.file.path" || b.Field == "process.file.path" { se1, err := eval.GlobCmp.StringEquals(symlinkPathnameEvaluators[0], a, state) if err != nil { return nil, err } se2, err := eval.GlobCmp.StringEquals(symlinkPathnameEvaluators[1], a, state) if err != nil { return nil, err } or, err := eval.Or(se1, se2, state) if err != nil { return nil, err } return eval.Or(path, or, state) } return path, nil }, StringValuesContains: func(a *eval.StringEvaluator, b *eval.StringValuesEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { path, err := eval.GlobCmp.StringValuesContains(a, b, state) if err != nil { return nil, err } if a.Field == "exec.file.path" || a.Field == "process.file.path" { se1, err := eval.GlobCmp.StringValuesContains(symlinkPathnameEvaluators[0], b, state) if err != nil { return nil, err } se2, err := eval.GlobCmp.StringValuesContains(symlinkPathnameEvaluators[1], b, state) if err != nil { return nil, err } or, err := eval.Or(se1, se2, state) if err != nil { return nil, err } return eval.Or(path, or, state) } return path, nil }, StringArrayContains: func(a *eval.StringEvaluator, b *eval.StringArrayEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { path, err := eval.GlobCmp.StringArrayContains(a, b, state) if err != nil { return nil, err } if a.Field == "exec.file.path" || a.Field == "process.file.path" { se1, err := eval.GlobCmp.StringArrayContains(symlinkPathnameEvaluators[0], b, state) if err != nil { return nil, err } se2, err := eval.GlobCmp.StringArrayContains(symlinkPathnameEvaluators[1], b, state) if err != nil { return nil, err } or, err := eval.Or(se1, se2, state) if err != nil { return nil, err } return eval.Or(path, or, state) } return path, nil }, StringArrayMatches: func(a *eval.StringArrayEvaluator, b *eval.StringValuesEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { return eval.GlobCmp.StringArrayMatches(a, b, state) }, } // ProcessSymlinkBasename handles symlink for process enrtries ProcessSymlinkBasename = &eval.OpOverrides{ StringEquals: func(a *eval.StringEvaluator, b *eval.StringEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { path, err := eval.StringEquals(a, b, state) if err != nil { return nil, err } if a.Field == "exec.file.name" || a.Field == "process.file.name" { symlink, err := eval.StringEquals(symlinkBasenameEvaluator, b, state) if err != nil { return nil, err } return eval.Or(path, symlink, state) } else if b.Field == "exec.file.name" || b.Field == "process.file.name" { symlink, err := eval.StringEquals(a, symlinkBasenameEvaluator, state) if err != nil { return nil, err } return eval.Or(path, symlink, state) } return path, nil }, StringValuesContains: func(a *eval.StringEvaluator, b *eval.StringValuesEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { path, err := eval.StringValuesContains(a, b, state) if err != nil { return nil, err } if a.Field == "exec.file.name" || a.Field == "process.file.name" { symlink, err := eval.StringValuesContains(symlinkBasenameEvaluator, b, state) if err != nil { return nil, err } return eval.Or(path, symlink, state) } return path, nil }, StringArrayContains: func(a *eval.StringEvaluator, b *eval.StringArrayEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { path, err := eval.StringArrayContains(a, b, state) if err != nil { return nil, err } if a.Field == "exec.file.name" || a.Field == "process.file.name" { symlink, err := eval.StringArrayContains(symlinkBasenameEvaluator, b, state) if err != nil { return nil, err } return eval.Or(path, symlink, state) } return path, nil }, StringArrayMatches: func(a *eval.StringArrayEvaluator, b *eval.StringValuesEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { return eval.StringArrayMatches(a, b, state) }, } )
var ByteOrder binary.ByteOrder
ByteOrder holds the hosts byte order
var ( // KernelCapabilityConstants list of kernel capabilities // generate_constants:Kernel Capability constants,Kernel Capability constants are the supported Linux Kernel Capability. KernelCapabilityConstants = map[string]uint64{ "CAP_AUDIT_CONTROL": 1 << unix.CAP_AUDIT_CONTROL, "CAP_AUDIT_READ": 1 << unix.CAP_AUDIT_READ, "CAP_AUDIT_WRITE": 1 << unix.CAP_AUDIT_WRITE, "CAP_BLOCK_SUSPEND": 1 << unix.CAP_BLOCK_SUSPEND, "CAP_BPF": 1 << unix.CAP_BPF, "CAP_CHECKPOINT_RESTORE": 1 << unix.CAP_CHECKPOINT_RESTORE, "CAP_CHOWN": 1 << unix.CAP_CHOWN, "CAP_DAC_OVERRIDE": 1 << unix.CAP_DAC_OVERRIDE, "CAP_DAC_READ_SEARCH": 1 << unix.CAP_DAC_READ_SEARCH, "CAP_FOWNER": 1 << unix.CAP_FOWNER, "CAP_FSETID": 1 << unix.CAP_FSETID, "CAP_IPC_LOCK": 1 << unix.CAP_IPC_LOCK, "CAP_IPC_OWNER": 1 << unix.CAP_IPC_OWNER, "CAP_KILL": 1 << unix.CAP_KILL, "CAP_LAST_CAP": 1 << unix.CAP_LAST_CAP, "CAP_LEASE": 1 << unix.CAP_LEASE, "CAP_LINUX_IMMUTABLE": 1 << unix.CAP_LINUX_IMMUTABLE, "CAP_MAC_ADMIN": 1 << unix.CAP_MAC_ADMIN, "CAP_MAC_OVERRIDE": 1 << unix.CAP_MAC_OVERRIDE, "CAP_MKNOD": 1 << unix.CAP_MKNOD, "CAP_NET_ADMIN": 1 << unix.CAP_NET_ADMIN, "CAP_NET_BIND_SERVICE": 1 << unix.CAP_NET_BIND_SERVICE, "CAP_NET_BROADCAST": 1 << unix.CAP_NET_BROADCAST, "CAP_NET_RAW": 1 << unix.CAP_NET_RAW, "CAP_PERFMON": 1 << unix.CAP_PERFMON, "CAP_SETFCAP": 1 << unix.CAP_SETFCAP, "CAP_SETGID": 1 << unix.CAP_SETGID, "CAP_SETPCAP": 1 << unix.CAP_SETPCAP, "CAP_SETUID": 1 << unix.CAP_SETUID, "CAP_SYSLOG": 1 << unix.CAP_SYSLOG, "CAP_SYS_ADMIN": 1 << unix.CAP_SYS_ADMIN, "CAP_SYS_BOOT": 1 << unix.CAP_SYS_BOOT, "CAP_SYS_CHROOT": 1 << unix.CAP_SYS_CHROOT, "CAP_SYS_MODULE": 1 << unix.CAP_SYS_MODULE, "CAP_SYS_NICE": 1 << unix.CAP_SYS_NICE, "CAP_SYS_PACCT": 1 << unix.CAP_SYS_PACCT, "CAP_SYS_PTRACE": 1 << unix.CAP_SYS_PTRACE, "CAP_SYS_RAWIO": 1 << unix.CAP_SYS_RAWIO, "CAP_SYS_RESOURCE": 1 << unix.CAP_SYS_RESOURCE, "CAP_SYS_TIME": 1 << unix.CAP_SYS_TIME, "CAP_SYS_TTY_CONFIG": 1 << unix.CAP_SYS_TTY_CONFIG, "CAP_WAKE_ALARM": 1 << unix.CAP_WAKE_ALARM, } )
var SECLLegacyFields = map[eval.Field]eval.Field{
"chmod.filename": "chmod.file.path",
"chmod.basename": "chmod.file.name",
"chmod.mode": "chmod.file.destination.mode",
"chown.filename": "chown.file.path",
"chown.basename": "chown.file.name",
"chown.uid": "chown.file.destination.uid",
"chown.user": "chown.file.destination.user",
"chown.gid": "chown.file.destination.gid",
"chown.group": "chown.file.destination.group",
"open.filename": "open.file.path",
"open.basename": "open.file.name",
"open.mode": "open.file.destination.mode",
"mkdir.filename": "mkdir.file.path",
"mkdir.basename": "mkdir.file.name",
"mkdir.mode": "mkdir.file.destination.mode",
"rmdir.filename": "rmdir.file.path",
"rmdir.basename": "rmdir.file.name",
"rename.old.filename": "rename.file.path",
"rename.old.basename": "rename.file.name",
"rename.new.filename": "rename.file.destination.path",
"rename.new.basename": "rename.file.destination.name",
"unlink.filename": "unlink.file.path",
"unlink.basename": "unlink.file.name",
"utimes.filename": "utimes.file.path",
"utimes.basename": "utimes.file.name",
"link.source.filename": "link.file.path",
"link.source.basename": "link.file.name",
"link.target.filename": "link.file.destination.path",
"link.target.basename": "link.file.destination.name",
"setxattr.filename": "setxattr.file.path",
"setxattr.basename": "setxattr.file.name",
"setxattr.namespace": "setxattr.file.destination.namespace",
"setxattr.name": "setxattr.file.destination.name",
"removexattr.filename": "removexattr.file.path",
"removexattr.basename": "removexattr.file.name",
"removexattr.namespace": "removexattr.file.destination.namespace",
"removexattr.name": "removexattr.file.destination.name",
"exec.filename": "exec.file.path",
"exec.overlay_numlower": "exec.file.overlay_numlower",
"exec.basename": "exec.file.name",
"exec.name": "exec.comm",
"process.filename": "process.file.path",
"process.basename": "process.file.name",
"process.name": "process.comm",
"process.ancestors.filename": "process.ancestors.file.path",
"process.ancestors.basename": "process.ancestors.file.name",
"process.ancestors.name": "process.ancestors.comm",
}
SECLLegacyFields contains the list of the legacy attributes we need to support
var ( // SECLVariables set of variables SECLVariables = map[string]eval.VariableValue{ "process.pid": eval.NewIntVariable(func(ctx *eval.Context) int { pc := (*Event)(ctx.Object).ProcessContext if pc == nil { return 0 } return int(pc.Process.Pid) }, nil), } )
Functions ¶
func FindContainerID ¶
FindContainerID extracts the first sub string that matches the pattern of a container ID
func GetEventTypePerCategory ¶
func GetEventTypePerCategory() map[EventCategory][]eval.EventType
GetEventTypePerCategory returns the event types per category
func GetHostByteOrder ¶
GetHostByteOrder guesses the hosts byte order
func IsAlphaNumeric ¶
IsAlphaNumeric returns whether a character is either a digit or a letter
func IsPrintable ¶
IsPrintable returns whether the string does contain only unicode printable
func IsPrintableASCII ¶
IsPrintableASCII returns whether the string does contain only ASCII char
func MarshalBinary ¶ added in v0.36.0
func MarshalBinary(data []byte, binaryMarshalers ...BinaryMarshaler) (int, error)
MarshalBinary calls a series of BinaryMarshaler
func SliceToArray ¶
SliceToArray copy src bytes to dst. Destination should have enough space
func StringifyHelpersList ¶
StringifyHelpersList returns a string list representation of a list of helpers
func UnmarshalBinary ¶
func UnmarshalBinary(data []byte, binaryUnmarshalers ...BinaryUnmarshaler) (int, error)
UnmarshalBinary calls a series of BinaryUnmarshaler
func UnmarshalPrintableString ¶
UnmarshalPrintableString unmarshal printable string
func UnmarshalString ¶
UnmarshalString unmarshal string
func UnmarshalStringArray ¶
UnmarshalStringArray extract array of string for array of byte
Types ¶
type AddressFamily ¶ added in v0.37.0
type AddressFamily int
AddressFamily represents a family address (AF_INET, AF_INET6, AF_UNIX etc)
func (AddressFamily) String ¶ added in v0.37.0
func (af AddressFamily) String() string
type ArgsEntry ¶
type ArgsEntry struct { *ArgsEnvsCacheEntry `msg:"-"` Values []string `msg:"values"` Truncated bool `msg:"-"` // contains filtered or unexported fields }
ArgsEntry defines a args cache entry
func (*ArgsEntry) MarshalMsg ¶ added in v0.36.0
MarshalMsg implements msgp.Marshaler
func (*ArgsEntry) Msgsize ¶ added in v0.36.0
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
type ArgsEnvsCacheEntry ¶
type ArgsEnvsCacheEntry struct { Size uint32 ValuesRaw []byte Container *list.Element // contains filtered or unexported fields }
ArgsEnvsCacheEntry defines a args/envs base entry
func NewArgsEnvsCacheEntry ¶
func NewArgsEnvsCacheEntry(onRelease func(_ *ArgsEnvsCacheEntry)) *ArgsEnvsCacheEntry
NewArgsEnvsCacheEntry returns a new args/env cache entry
func (*ArgsEnvsCacheEntry) Append ¶
func (p *ArgsEnvsCacheEntry) Append(entry *ArgsEnvsCacheEntry)
Append an entry to the list
func (*ArgsEnvsCacheEntry) Release ¶
func (p *ArgsEnvsCacheEntry) Release()
Release decrement and eventually release the entry
func (*ArgsEnvsCacheEntry) Retain ¶
func (p *ArgsEnvsCacheEntry) Retain()
Retain increment ref counter
type ArgsEnvsEvent ¶
type ArgsEnvsEvent struct {
ArgsEnvs
}
ArgsEnvsEvent defines a args/envs event
func (*ArgsEnvsEvent) UnmarshalBinary ¶
func (e *ArgsEnvsEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type BPFAttachType ¶
type BPFAttachType uint32
BPFAttachType is used to define attach type constants
const ( // BpfCgroupInetIngress attach type BpfCgroupInetIngress BPFAttachType = iota + 1 // BpfCgroupInetEgress attach type BpfCgroupInetEgress // BpfCgroupInetSockCreate attach type BpfCgroupInetSockCreate // BpfCgroupSockOps attach type BpfCgroupSockOps // BpfSkSkbStreamParser attach type BpfSkSkbStreamParser // BpfSkSkbStreamVerdict attach type BpfSkSkbStreamVerdict // BpfCgroupDevice attach type BpfCgroupDevice // BpfSkMsgVerdict attach type BpfSkMsgVerdict // BpfCgroupInet4Bind attach type BpfCgroupInet4Bind // BpfCgroupInet6Bind attach type BpfCgroupInet6Bind // BpfCgroupInet4Connect attach type BpfCgroupInet4Connect // BpfCgroupInet6Connect attach type BpfCgroupInet6Connect // BpfCgroupInet4PostBind attach type BpfCgroupInet4PostBind // BpfCgroupInet6PostBind attach type BpfCgroupInet6PostBind // BpfCgroupUDP4Sendmsg attach type BpfCgroupUDP4Sendmsg // BpfCgroupUDP6Sendmsg attach type BpfCgroupUDP6Sendmsg // BpfLircMode2 attach type BpfLircMode2 // BpfFlowDissector attach type BpfFlowDissector // BpfCgroupSysctl attach type BpfCgroupSysctl // BpfCgroupUDP4Recvmsg attach type BpfCgroupUDP4Recvmsg // BpfCgroupUDP6Recvmsg attach type BpfCgroupUDP6Recvmsg // BpfCgroupGetsockopt attach type BpfCgroupGetsockopt // BpfCgroupSetsockopt attach type BpfCgroupSetsockopt // BpfTraceRawTp attach type BpfTraceRawTp // BpfTraceFentry attach type BpfTraceFentry // BpfTraceFexit attach type BpfTraceFexit // BpfModifyReturn attach type BpfModifyReturn // BpfLsmMac attach type BpfLsmMac // BpfTraceIter attach type BpfTraceIter // BpfCgroupInet4Getpeername attach type BpfCgroupInet4Getpeername // BpfCgroupInet6Getpeername attach type BpfCgroupInet6Getpeername // BpfCgroupInet4Getsockname attach type BpfCgroupInet4Getsockname // BpfCgroupInet6Getsockname attach type BpfCgroupInet6Getsockname // BpfXdpDevmap attach type BpfXdpDevmap // BpfCgroupInetSockRelease attach type BpfCgroupInetSockRelease // BpfXdpCPUmap attach type BpfXdpCPUmap // BpfSkLookup attach type BpfSkLookup // BpfXdp attach type BpfXdp // BpfSkSkbVerdict attach type BpfSkSkbVerdict )
func (BPFAttachType) String ¶
func (t BPFAttachType) String() string
type BPFCmd ¶
type BPFCmd uint64
BPFCmd represents a BPF command
const ( // BpfMapCreateCmd command BpfMapCreateCmd BPFCmd = iota // BpfMapLookupElemCmd command BpfMapLookupElemCmd // BpfMapUpdateElemCmd command BpfMapUpdateElemCmd // BpfMapDeleteElemCmd command BpfMapDeleteElemCmd // BpfMapGetNextKeyCmd command BpfMapGetNextKeyCmd // BpfProgLoadCmd command BpfProgLoadCmd // BpfObjPinCmd command BpfObjPinCmd // BpfObjGetCmd command BpfObjGetCmd // BpfProgAttachCmd command BpfProgAttachCmd // BpfProgDetachCmd command BpfProgDetachCmd // BpfProgTestRunCmd command BpfProgTestRunCmd // BpfProgGetNextIDCmd command BpfProgGetNextIDCmd // BpfMapGetNextIDCmd command BpfMapGetNextIDCmd // BpfProgGetFdByIDCmd command BpfProgGetFdByIDCmd // BpfMapGetFdByIDCmd command BpfMapGetFdByIDCmd // BpfObjGetInfoByFdCmd command BpfObjGetInfoByFdCmd // BpfProgQueryCmd command BpfProgQueryCmd // BpfRawTracepointOpenCmd command BpfRawTracepointOpenCmd // BpfBtfLoadCmd command BpfBtfLoadCmd // BpfBtfGetFdByIDCmd command BpfBtfGetFdByIDCmd // BpfTaskFdQueryCmd command BpfTaskFdQueryCmd // BpfMapLookupAndDeleteElemCmd command BpfMapLookupAndDeleteElemCmd // BpfMapFreezeCmd command BpfMapFreezeCmd // BpfBtfGetNextIDCmd command BpfBtfGetNextIDCmd // BpfMapLookupBatchCmd command BpfMapLookupBatchCmd // BpfMapLookupAndDeleteBatchCmd command BpfMapLookupAndDeleteBatchCmd // BpfMapUpdateBatchCmd command BpfMapUpdateBatchCmd // BpfMapDeleteBatchCmd command BpfMapDeleteBatchCmd // BpfLinkCreateCmd command BpfLinkCreateCmd // BpfLinkUpdateCmd command BpfLinkUpdateCmd // BpfLinkGetFdByIDCmd command BpfLinkGetFdByIDCmd // BpfLinkGetNextIDCmd command BpfLinkGetNextIDCmd // BpfEnableStatsCmd command BpfEnableStatsCmd // BpfIterCreateCmd command BpfIterCreateCmd // BpfLinkDetachCmd command BpfLinkDetachCmd // BpfProgBindMapCmd command BpfProgBindMapCmd )
type BPFEvent ¶
type BPFEvent struct { SyscallEvent Map BPFMap `field:"map"` // eBPF map involved in the BPF command Program BPFProgram `field:"prog"` // eBPF program involved in the BPF command Cmd uint32 `field:"cmd" constants:"BPF commands"` // BPF command name }
BPFEvent represents a BPF event
type BPFHelperFunc ¶
type BPFHelperFunc uint32
BPFHelperFunc represents a BPF helper function
const ( // BpfUnspec helper function BpfUnspec BPFHelperFunc = iota // BpfMapLookupElem helper function BpfMapLookupElem // BpfMapUpdateElem helper function BpfMapUpdateElem // BpfMapDeleteElem helper function BpfMapDeleteElem // BpfProbeRead helper function BpfProbeRead // BpfKtimeGetNs helper function BpfKtimeGetNs // BpfTracePrintk helper function BpfTracePrintk // BpfGetPrandomU32 helper function BpfGetPrandomU32 // BpfGetSmpProcessorID helper function BpfGetSmpProcessorID // BpfSkbStoreBytes helper function BpfSkbStoreBytes // BpfL3CsumReplace helper function BpfL3CsumReplace // BpfL4CsumReplace helper function BpfL4CsumReplace // BpfTailCall helper function BpfTailCall // BpfCloneRedirect helper function BpfCloneRedirect // BpfGetCurrentPidTgid helper function BpfGetCurrentPidTgid // BpfGetCurrentUIDGid helper function BpfGetCurrentUIDGid // BpfGetCurrentComm helper function BpfGetCurrentComm // BpfGetCgroupClassid helper function BpfGetCgroupClassid // BpfSkbVlanPush helper function BpfSkbVlanPush // BpfSkbVlanPop helper function BpfSkbVlanPop // BpfSkbGetTunnelKey helper function BpfSkbGetTunnelKey // BpfSkbSetTunnelKey helper function BpfSkbSetTunnelKey // BpfPerfEventRead helper function BpfPerfEventRead // BpfRedirect helper function BpfRedirect // BpfGetRouteRealm helper function BpfGetRouteRealm // BpfPerfEventOutput helper function BpfPerfEventOutput // BpfSkbLoadBytes helper function BpfSkbLoadBytes // BpfGetStackid helper function BpfGetStackid // BpfCsumDiff helper function BpfCsumDiff // BpfSkbGetTunnelOpt helper function BpfSkbGetTunnelOpt // BpfSkbSetTunnelOpt helper function BpfSkbSetTunnelOpt // BpfSkbChangeProto helper function BpfSkbChangeProto // BpfSkbChangeType helper function BpfSkbChangeType // BpfSkbUnderCgroup helper function BpfSkbUnderCgroup // BpfGetHashRecalc helper function BpfGetHashRecalc // BpfGetCurrentTask helper function BpfGetCurrentTask // BpfProbeWriteUser helper function BpfProbeWriteUser // BpfCurrentTaskUnderCgroup helper function BpfCurrentTaskUnderCgroup // BpfSkbChangeTail helper function BpfSkbChangeTail // BpfSkbPullData helper function BpfSkbPullData // BpfCsumUpdate helper function BpfCsumUpdate // BpfSetHashInvalid helper function BpfSetHashInvalid // BpfGetNumaNodeID helper function BpfGetNumaNodeID // BpfSkbChangeHead helper function BpfSkbChangeHead // BpfXdpAdjustHead helper function BpfXdpAdjustHead // BpfProbeReadStr helper function BpfProbeReadStr // BpfGetSocketCookie helper function BpfGetSocketCookie // BpfGetSocketUID helper function BpfGetSocketUID // BpfSetHash helper function BpfSetHash // BpfSetsockopt helper function BpfSetsockopt // BpfSkbAdjustRoom helper function BpfSkbAdjustRoom // BpfRedirectMap helper function BpfRedirectMap // BpfSkRedirectMap helper function BpfSkRedirectMap // BpfSockMapUpdate helper function BpfSockMapUpdate // BpfXdpAdjustMeta helper function BpfXdpAdjustMeta // BpfPerfEventReadValue helper function BpfPerfEventReadValue // BpfPerfProgReadValue helper function BpfPerfProgReadValue // BpfGetsockopt helper function BpfGetsockopt // BpfOverrideReturn helper function BpfOverrideReturn // BpfSockOpsCbFlagsSet helper function BpfSockOpsCbFlagsSet // BpfMsgRedirectMap helper function BpfMsgRedirectMap // BpfMsgApplyBytes helper function BpfMsgApplyBytes // BpfMsgCorkBytes helper function BpfMsgCorkBytes // BpfMsgPullData helper function BpfMsgPullData // BpfBind helper function BpfBind // BpfXdpAdjustTail helper function BpfXdpAdjustTail // BpfSkbGetXfrmState helper function BpfSkbGetXfrmState // BpfGetStack helper function BpfGetStack // BpfSkbLoadBytesRelative helper function BpfSkbLoadBytesRelative // BpfFibLookup helper function BpfFibLookup // BpfSockHashUpdate helper function BpfSockHashUpdate // BpfMsgRedirectHash helper function BpfMsgRedirectHash // BpfSkRedirectHash helper function BpfSkRedirectHash // BpfLwtPushEncap helper function BpfLwtPushEncap // BpfLwtSeg6StoreBytes helper function BpfLwtSeg6StoreBytes // BpfLwtSeg6AdjustSrh helper function BpfLwtSeg6AdjustSrh // BpfLwtSeg6Action helper function BpfLwtSeg6Action // BpfRcRepeat helper function BpfRcRepeat // BpfRcKeydown helper function BpfRcKeydown // BpfSkbCgroupID helper function BpfSkbCgroupID // BpfGetCurrentCgroupID helper function BpfGetCurrentCgroupID // BpfGetLocalStorage helper function BpfGetLocalStorage // BpfSkSelectReuseport helper function BpfSkSelectReuseport // BpfSkbAncestorCgroupID helper function BpfSkbAncestorCgroupID // BpfSkLookupTCP helper function BpfSkLookupTCP // BpfSkLookupUDP helper function BpfSkLookupUDP // BpfSkRelease helper function BpfSkRelease // BpfMapPushElem helper function BpfMapPushElem // BpfMapPopElem helper function BpfMapPopElem // BpfMapPeekElem helper function BpfMapPeekElem // BpfMsgPushData helper function BpfMsgPushData // BpfMsgPopData helper function BpfMsgPopData // BpfRcPointerRel helper function BpfRcPointerRel // BpfSpinLock helper function BpfSpinLock // BpfSpinUnlock helper function BpfSpinUnlock // BpfSkFullsock helper function BpfSkFullsock // BpfTCPSock helper function BpfTCPSock // BpfSkbEcnSetCe helper function BpfSkbEcnSetCe // BpfGetListenerSock helper function BpfGetListenerSock // BpfSkcLookupTCP helper function BpfSkcLookupTCP BpfTCPCheckSyncookie // BpfSysctlGetName helper function BpfSysctlGetName // BpfSysctlGetCurrentValue helper function BpfSysctlGetCurrentValue // BpfSysctlGetNewValue helper function BpfSysctlGetNewValue // BpfSysctlSetNewValue helper function BpfSysctlSetNewValue // BpfStrtol helper function BpfStrtol // BpfStrtoul helper function BpfStrtoul // BpfSkStorageGet helper function BpfSkStorageGet // BpfSkStorageDelete helper function BpfSkStorageDelete // BpfSendSignal helper function BpfSendSignal BpfTCPGenSyncookie // BpfSkbOutput helper function BpfSkbOutput // BpfProbeReadUser helper function BpfProbeReadUser // BpfProbeReadKernel helper function BpfProbeReadKernel // BpfProbeReadUserStr helper function BpfProbeReadUserStr // BpfProbeReadKernelStr helper function BpfProbeReadKernelStr // BpfTCPSendAck helper function BpfTCPSendAck // BpfSendSignalThread helper function BpfSendSignalThread // BpfJiffies64 helper function BpfJiffies64 // BpfReadBranchRecords helper function BpfReadBranchRecords // BpfGetNsCurrentPidTgid helper function BpfGetNsCurrentPidTgid // BpfXdpOutput helper function BpfXdpOutput // BpfGetNetnsCookie helper function BpfGetNetnsCookie // BpfGetCurrentAncestorCgroupID helper function BpfGetCurrentAncestorCgroupID // BpfSkAssign helper function BpfSkAssign // BpfKtimeGetBootNs helper function BpfKtimeGetBootNs // BpfSeqPrintf helper function BpfSeqPrintf // BpfSeqWrite helper function BpfSeqWrite // BpfSkCgroupID helper function BpfSkCgroupID // BpfSkAncestorCgroupID helper function BpfSkAncestorCgroupID // BpfRingbufOutput helper function BpfRingbufOutput // BpfRingbufReserve helper function BpfRingbufReserve // BpfRingbufSubmit helper function BpfRingbufSubmit // BpfRingbufDiscard helper function BpfRingbufDiscard // BpfRingbufQuery helper function BpfRingbufQuery // BpfCsumLevel helper function BpfCsumLevel // BpfSkcToTCP6Sock helper function BpfSkcToTCP6Sock // BpfSkcToTCPSock helper function BpfSkcToTCPSock // BpfSkcToTCPTimewaitSock helper function BpfSkcToTCPTimewaitSock // BpfSkcToTCPRequestSock helper function BpfSkcToTCPRequestSock // BpfSkcToUDP6Sock helper function BpfSkcToUDP6Sock // BpfGetTaskStack helper function BpfGetTaskStack // BpfLoadHdrOpt helper function BpfLoadHdrOpt // BpfStoreHdrOpt helper function BpfStoreHdrOpt // BpfReserveHdrOpt helper function BpfReserveHdrOpt // BpfInodeStorageGet helper function BpfInodeStorageGet // BpfInodeStorageDelete helper function BpfInodeStorageDelete // BpfDPath helper function BpfDPath // BpfCopyFromUser helper function BpfCopyFromUser // BpfSnprintfBtf helper function BpfSnprintfBtf // BpfSeqPrintfBtf helper function BpfSeqPrintfBtf // BpfSkbCgroupClassid helper function BpfSkbCgroupClassid // BpfRedirectNeigh helper function BpfRedirectNeigh // BpfPerCPUPtr helper function BpfPerCPUPtr // BpfThisCPUPtr helper function BpfThisCPUPtr // BpfRedirectPeer helper function BpfRedirectPeer // BpfTaskStorageGet helper function BpfTaskStorageGet // BpfTaskStorageDelete helper function BpfTaskStorageDelete // BpfGetCurrentTaskBtf helper function BpfGetCurrentTaskBtf // BpfBprmOptsSet helper function BpfBprmOptsSet // BpfKtimeGetCoarseNs helper function BpfKtimeGetCoarseNs // BpfImaInodeHash helper function BpfImaInodeHash // BpfSockFromFile helper function BpfSockFromFile // BpfCheckMtu helper function BpfCheckMtu // BpfForEachMapElem helper function BpfForEachMapElem // BpfSnprintf helper function BpfSnprintf )
func (BPFHelperFunc) String ¶
func (f BPFHelperFunc) String() string
type BPFMap ¶
type BPFMap struct { ID uint32 `field:"-"` // ID of the eBPF map Type uint32 `field:"type" constants:"BPF map types"` // Type of the eBPF map Name string `field:"name"` // Name of the eBPF map (added in 7.35) }
BPFMap represents a BPF map
type BPFMapType ¶
type BPFMapType uint32
BPFMapType is used to define map type constants
const ( // BpfMapTypeUnspec map type BpfMapTypeUnspec BPFMapType = iota // BpfMapTypeHash map type BpfMapTypeHash // BpfMapTypeArray map type BpfMapTypeArray // BpfMapTypeProgArray map type BpfMapTypeProgArray // BpfMapTypePerfEventArray map type BpfMapTypePerfEventArray // BpfMapTypePercpuHash map type BpfMapTypePercpuHash // BpfMapTypePercpuArray map type BpfMapTypePercpuArray // BpfMapTypeStackTrace map type BpfMapTypeStackTrace // BpfMapTypeCgroupArray map type BpfMapTypeCgroupArray // BpfMapTypeLruHash map type BpfMapTypeLruHash // BpfMapTypeLruPercpuHash map type BpfMapTypeLruPercpuHash // BpfMapTypeLpmTrie map type BpfMapTypeLpmTrie // BpfMapTypeArrayOfMaps map type BpfMapTypeArrayOfMaps // BpfMapTypeHashOfMaps map type BpfMapTypeHashOfMaps // BpfMapTypeDevmap map type BpfMapTypeDevmap // BpfMapTypeSockmap map type BpfMapTypeSockmap // BpfMapTypeCPUmap map type BpfMapTypeCPUmap // BpfMapTypeXskmap map type BpfMapTypeXskmap // BpfMapTypeSockhash map type BpfMapTypeSockhash // BpfMapTypeCgroupStorage map type BpfMapTypeCgroupStorage // BpfMapTypeReuseportSockarray map type BpfMapTypeReuseportSockarray // BpfMapTypePercpuCgroupStorage map type BpfMapTypePercpuCgroupStorage // BpfMapTypeQueue map type BpfMapTypeQueue // BpfMapTypeStack map type BpfMapTypeStack // BpfMapTypeSkStorage map type BpfMapTypeSkStorage // BpfMapTypeDevmapHash map type BpfMapTypeDevmapHash // BpfMapTypeStructOps map type BpfMapTypeStructOps // BpfMapTypeRingbuf map type BpfMapTypeRingbuf // BpfMapTypeInodeStorage map type BpfMapTypeInodeStorage // BpfMapTypeTaskStorage map type BpfMapTypeTaskStorage )
func (BPFMapType) String ¶
func (t BPFMapType) String() string
type BPFProgram ¶
type BPFProgram struct { ID uint32 `field:"-"` // ID of the eBPF program Type uint32 `field:"type" constants:"BPF program types"` // Type of the eBPF program AttachType uint32 `field:"attach_type" constants:"BPF attach types"` // Attach type of the eBPF program Helpers []uint32 `field:"helpers,handler:ResolveHelpers" constants:"BPF helper functions"` // eBPF helpers used by the eBPF program (added in 7.35) Name string `field:"name"` // Name of the eBPF program (added in 7.35) Tag string `field:"tag"` // Hash (sha1) of the eBPF program (added in 7.35) }
BPFProgram represents a BPF program
func (*BPFProgram) UnmarshalBinary ¶
func (p *BPFProgram) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type BPFProgramType ¶
type BPFProgramType uint32
BPFProgramType is used to define program type constants
const ( // BpfProgTypeUnspec program type BpfProgTypeUnspec BPFProgramType = iota // BpfProgTypeSocketFilter program type BpfProgTypeSocketFilter // BpfProgTypeKprobe program type BpfProgTypeKprobe // BpfProgTypeSchedCls program type BpfProgTypeSchedCls // BpfProgTypeSchedAct program type BpfProgTypeSchedAct // BpfProgTypeTracepoint program type BpfProgTypeTracepoint // BpfProgTypeXdp program type BpfProgTypeXdp // BpfProgTypePerfEvent program type BpfProgTypePerfEvent // BpfProgTypeCgroupSkb program type BpfProgTypeCgroupSkb // BpfProgTypeCgroupSock program type BpfProgTypeCgroupSock // BpfProgTypeLwtIn program type BpfProgTypeLwtIn // BpfProgTypeLwtOut program type BpfProgTypeLwtOut // BpfProgTypeLwtXmit program type BpfProgTypeLwtXmit // BpfProgTypeSockOps program type BpfProgTypeSockOps // BpfProgTypeSkSkb program type BpfProgTypeSkSkb // BpfProgTypeCgroupDevice program type BpfProgTypeCgroupDevice // BpfProgTypeSkMsg program type BpfProgTypeSkMsg // BpfProgTypeRawTracepoint program type BpfProgTypeRawTracepoint // BpfProgTypeCgroupSockAddr program type BpfProgTypeCgroupSockAddr // BpfProgTypeLwtSeg6local program type BpfProgTypeLwtSeg6local // BpfProgTypeLircMode2 program type BpfProgTypeLircMode2 // BpfProgTypeSkReuseport program type BpfProgTypeSkReuseport // BpfProgTypeFlowDissector program type BpfProgTypeFlowDissector // BpfProgTypeCgroupSysctl program type BpfProgTypeCgroupSysctl // BpfProgTypeRawTracepointWritable program type BpfProgTypeRawTracepointWritable // BpfProgTypeCgroupSockopt program type BpfProgTypeCgroupSockopt // BpfProgTypeTracing program type BpfProgTypeTracing // BpfProgTypeStructOps program type BpfProgTypeStructOps // BpfProgTypeExt program type BpfProgTypeExt // BpfProgTypeLsm program type BpfProgTypeLsm // BpfProgTypeSkLookup program type BpfProgTypeSkLookup )
func (BPFProgramType) String ¶
func (t BPFProgramType) String() string
type BinaryMarshaler ¶ added in v0.36.0
BinaryMarshaler interface implemented by every event type
type BinaryUnmarshaler ¶
BinaryUnmarshaler interface implemented by every event type
type BindEvent ¶ added in v0.37.0
type BindEvent struct { SyscallEvent Addr IPPortContext `field:"addr"` // Bound address AddrFamily uint16 `field:"addr.family"` // Address family }
BindEvent represents a bind event
type CapsetEvent ¶
type CapsetEvent struct { CapEffective uint64 `field:"cap_effective" constants:"Kernel Capability constants"` // Effective capability set of the process CapPermitted uint64 `field:"cap_permitted" constants:"Kernel Capability constants"` // Permitted capability set of the process }
CapsetEvent represents a capset event
func (*CapsetEvent) UnmarshalBinary ¶
func (e *CapsetEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type CgroupTracingEvent ¶ added in v0.36.0
type CgroupTracingEvent struct { ContainerContext ContainerContext TimeoutRaw uint64 }
CgroupTracingEvent is used to signal that a new cgroup should be traced by the activity dump manager
func (*CgroupTracingEvent) UnmarshalBinary ¶ added in v0.36.0
func (e *CgroupTracingEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshals a binary representation of itself
type ChmodEvent ¶
type ChmodEvent struct { SyscallEvent File FileEvent `field:"file"` Mode uint32 `field:"file.destination.mode; file.destination.rights" constants:"Chmod mode constants"` // New mode/rights of the chmod-ed file }
ChmodEvent represents a chmod event
func (*ChmodEvent) UnmarshalBinary ¶
func (e *ChmodEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type ChownEvent ¶
type ChownEvent struct { SyscallEvent File FileEvent `field:"file"` UID int64 `field:"file.destination.uid"` // New UID of the chown-ed file's owner User string `field:"file.destination.user,handler:ResolveChownUID"` // New user of the chown-ed file's owner GID int64 `field:"file.destination.gid"` // New GID of the chown-ed file's owner Group string `field:"file.destination.group,handler:ResolveChownGID"` // New group of the chown-ed file's owner }
ChownEvent represents a chown event
func (*ChownEvent) UnmarshalBinary ¶
func (e *ChownEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type ContainerContext ¶
type ContainerContext struct { ID string `field:"id,handler:ResolveContainerID"` // ID of the container Tags []string `field:"tags,handler:ResolveContainerTags,weight:9999"` // Tags of the container }
ContainerContext holds the container context of an event
func (*ContainerContext) UnmarshalBinary ¶
func (e *ContainerContext) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type Credentials ¶
type Credentials struct { UID uint32 `field:"uid" msg:"uid"` // UID of the process GID uint32 `field:"gid" msg:"gid"` // GID of the process User string `field:"user" msg:"user"` // User of the process Group string `field:"group" msg:"group"` // Group of the process EUID uint32 `field:"euid" msg:"euid"` // Effective UID of the process EGID uint32 `field:"egid" msg:"egid"` // Effective GID of the process EUser string `field:"euser" msg:"euser"` // Effective user of the process EGroup string `field:"egroup" msg:"egroup"` // Effective group of the process FSUID uint32 `field:"fsuid" msg:"fsuid"` // FileSystem-uid of the process FSGID uint32 `field:"fsgid" msg:"fsgid"` // FileSystem-gid of the process FSUser string `field:"fsuser" msg:"fsuser"` // FileSystem-user of the process FSGroup string `field:"fsgroup" msg:"fsgroup"` // FileSystem-group of the process CapEffective uint64 `field:"cap_effective" msg:"cap_effective" constants:"Kernel Capability constants"` // Effective capability set of the process CapPermitted uint64 `field:"cap_permitted" msg:"cap_permitted" constants:"Kernel Capability constants"` // Permitted capability set of the process }
Credentials represents the kernel credentials of a process
func (*Credentials) DecodeMsg ¶ added in v0.36.0
func (z *Credentials) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*Credentials) EncodeMsg ¶ added in v0.36.0
func (z *Credentials) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*Credentials) MarshalBinary ¶ added in v0.36.0
func (e *Credentials) MarshalBinary(data []byte) (int, error)
MarshalBinary marshalls a binary representation of itself
func (*Credentials) MarshalMsg ¶ added in v0.36.0
func (z *Credentials) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*Credentials) Msgsize ¶ added in v0.36.0
func (z *Credentials) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*Credentials) UnmarshalBinary ¶
func (e *Credentials) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
func (*Credentials) UnmarshalMsg ¶ added in v0.36.0
func (z *Credentials) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type DNSEvent ¶ added in v0.36.0
type DNSEvent struct { ID uint16 `field:"-" msg:"-"` Name string `field:"question.name" msg:"name" op_override:"eval.DNSNameCmp"` // the queried domain name Type uint16 `field:"question.type" msg:"type" constants:"DNS qtypes"` // a two octet code which specifies the DNS question type Class uint16 `field:"question.class" msg:"class" constants:"DNS qclasses"` // the class looked up by the DNS question Size uint16 `field:"question.size" msg:"size"` // the total DNS request size in bytes Count uint16 `field:"question.count" msg:"count"` // the total count of questions in the DNS request }
DNSEvent represents a DNS event
func (*DNSEvent) MarshalMsg ¶ added in v0.38.0
MarshalMsg implements msgp.Marshaler
func (*DNSEvent) Msgsize ¶ added in v0.38.0
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*DNSEvent) UnmarshalBinary ¶ added in v0.36.0
UnmarshalBinary unmarshalls a binary representation of itself
type EnvsEntry ¶
type EnvsEntry struct { *ArgsEnvsCacheEntry `msg:"-"` Values []string `msg:"values"` Truncated bool `msg:"-"` // contains filtered or unexported fields }
EnvsEntry defines a args cache entry
func (*EnvsEntry) MarshalMsg ¶ added in v0.36.0
MarshalMsg implements msgp.Marshaler
func (*EnvsEntry) Msgsize ¶ added in v0.36.0
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
type Event ¶
type Event struct { ID string `field:"-"` Type uint32 `field:"-"` Async bool `field:"async" msg:"async" event:"*"` // True if the syscall was asynchronous TimestampRaw uint64 `field:"-"` Timestamp time.Time `field:"-"` // Timestamp of the event // context shared with all events ProcessCacheEntry *ProcessCacheEntry `field:"-"` PIDContext PIDContext `field:"-"` SpanContext SpanContext `field:"-"` ProcessContext *ProcessContext `field:"process" event:"*"` ContainerContext ContainerContext `field:"container"` NetworkContext NetworkContext `field:"network"` // fim events Chmod ChmodEvent `field:"chmod" event:"chmod"` // [7.27] [File] A file’s permissions were changed Chown ChownEvent `field:"chown" event:"chown"` // [7.27] [File] A file’s owner was changed Open OpenEvent `field:"open" event:"open"` // [7.27] [File] A file was opened Mkdir MkdirEvent `field:"mkdir" event:"mkdir"` // [7.27] [File] A directory was created Rmdir RmdirEvent `field:"rmdir" event:"rmdir"` // [7.27] [File] A directory was removed Rename RenameEvent `field:"rename" event:"rename"` // [7.27] [File] A file/directory was renamed Unlink UnlinkEvent `field:"unlink" event:"unlink"` // [7.27] [File] A file was deleted Utimes UtimesEvent `field:"utimes" event:"utimes"` // [7.27] [File] Change file access/modification times Link LinkEvent `field:"link" event:"link"` // [7.27] [File] Create a new name/alias for a file SetXAttr SetXAttrEvent `field:"setxattr" event:"setxattr"` // [7.27] [File] Set exteneded attributes RemoveXAttr SetXAttrEvent `field:"removexattr" event:"removexattr"` // [7.27] [File] Remove extended attributes Splice SpliceEvent `field:"splice" event:"splice"` // [7.36] [File] A splice command was executed // process events Exec ExecEvent `field:"exec" event:"exec"` // [7.27] [Process] A process was executed or forked SetUID SetuidEvent `field:"setuid" event:"setuid"` // [7.27] [Process] A process changed its effective uid SetGID SetgidEvent `field:"setgid" event:"setgid"` // [7.27] [Process] A process changed its effective gid Capset CapsetEvent `field:"capset" event:"capset"` // [7.27] [Process] A process changed its capacity set Signal SignalEvent `field:"signal" event:"signal"` // [7.35] [Process] A signal was sent Exit ExitEvent `field:"exit" event:"exit"` // [7.38] [Process] A process was terminated // kernel events SELinux SELinuxEvent `field:"selinux" event:"selinux"` // [7.30] [Kernel] An SELinux operation was run BPF BPFEvent `field:"bpf" event:"bpf"` // [7.33] [Kernel] A BPF command was executed PTrace PTraceEvent `field:"ptrace" event:"ptrace"` // [7.35] [Kernel] A ptrace command was executed MMap MMapEvent `field:"mmap" event:"mmap"` // [7.35] [Kernel] A mmap command was executed MProtect MProtectEvent `field:"mprotect" event:"mprotect"` // [7.35] [Kernel] A mprotect command was executed LoadModule LoadModuleEvent `field:"load_module" event:"load_module"` // [7.35] [Kernel] A new kernel module was loaded UnloadModule UnloadModuleEvent `field:"unload_module" event:"unload_module"` // [7.35] [Kernel] A kernel module was deleted // network events DNS DNSEvent `field:"dns" event:"dns"` // [7.36] [Network] A DNS request was sent Bind BindEvent `field:"bind" event:"bind"` // [7.37] [Network] [Experimental] A bind was executed // internal usage Mount MountEvent `field:"-"` Umount UmountEvent `field:"-"` InvalidateDentry InvalidateDentryEvent `field:"-"` ArgsEnvs ArgsEnvsEvent `field:"-"` MountReleased MountReleasedEvent `field:"-"` CgroupTracing CgroupTracingEvent `field:"-"` NetDevice NetDeviceEvent `field:"-"` VethPair VethPairEvent `field:"-"` }
Event represents an event sent from the kernel genaccessors
func (*Event) GetEventType ¶
GetEventType returns the event type of the event
func (*Event) GetFieldEventType ¶
func (*Event) GetPointer ¶
GetPointer return an unsafe.Pointer of the Event
func (*Event) SetFieldValue ¶
type EventCategory ¶
type EventCategory = string
EventCategory category type
const ( // FIMCategory FIM events FIMCategory EventCategory = "File Activity" // ProcessCategory process events ProcessCategory EventCategory = "Process Activity" // KernelCategory Kernel events KernelCategory EventCategory = "Kernel Activity" // NetworkCategory network events NetworkCategory EventCategory = "Network Activity" )
Event categories
func GetAllCategories ¶ added in v0.34.0
func GetAllCategories() []EventCategory
GetAllCategories returns all categories
func GetEventTypeCategory ¶
func GetEventTypeCategory(eventType eval.EventType) EventCategory
GetEventTypeCategory returns the category for the given event type
type EventType ¶
type EventType uint64
EventType describes the type of an event sent from the kernel
const ( // UnknownEventType unknow event UnknownEventType EventType = iota // FileOpenEventType File open event FileOpenEventType // FileMkdirEventType Folder creation event FileMkdirEventType // FileLinkEventType Hard link creation event FileLinkEventType // FileRenameEventType File or folder rename event FileRenameEventType // FileUnlinkEventType Unlink event FileUnlinkEventType // FileRmdirEventType Rmdir event FileRmdirEventType // FileChmodEventType Chmod event FileChmodEventType // FileChownEventType Chown event FileChownEventType // FileUtimesEventType Utime event FileUtimesEventType // FileSetXAttrEventType Setxattr event FileSetXAttrEventType // FileRemoveXAttrEventType Removexattr event FileRemoveXAttrEventType // FileMountEventType Mount event FileMountEventType // FileUmountEventType Umount event FileUmountEventType // ForkEventType Fork event ForkEventType // ExecEventType Exec event ExecEventType // ExitEventType Exit event ExitEventType // InvalidateDentryEventType Dentry invalidated event InvalidateDentryEventType // SetuidEventType setuid event SetuidEventType // SetgidEventType setgid event SetgidEventType // CapsetEventType capset event CapsetEventType // ArgsEnvsEventType args and envs event ArgsEnvsEventType // MountReleasedEventType sent when a mount point is released MountReleasedEventType // SELinuxEventType selinux event SELinuxEventType // BPFEventType bpf event BPFEventType // PTraceEventType PTrace event PTraceEventType // MMapEventType MMap event MMapEventType // MProtectEventType MProtect event MProtectEventType // LoadModuleEventType LoadModule event LoadModuleEventType // UnloadModuleEventType UnloadModule evnt UnloadModuleEventType // SignalEventType Signal event SignalEventType // SpliceEventType Splice event SpliceEventType // CgroupTracingEventType is sent when a new cgroup is being traced CgroupTracingEventType // DNSEventType DNS event DNSEventType // NetDeviceEventType is sent for events on net devices NetDeviceEventType // VethPairEventType is sent when a new veth pair is created VethPairEventType // BindEventType Bind event BindEventType // MaxKernelEventType is used internally to get the maximum number of kernel events. MaxKernelEventType // FirstDiscarderEventType first event that accepts discarders FirstDiscarderEventType = FileOpenEventType // LastDiscarderEventType last event that accepts discarders LastDiscarderEventType = FileRemoveXAttrEventType // CustomLostReadEventType is the custom event used to report lost events detected in user space CustomLostReadEventType = iota // CustomLostWriteEventType is the custom event used to report lost events detected in kernel space CustomLostWriteEventType // CustomRulesetLoadedEventType is the custom event used to report that a new ruleset was loaded CustomRulesetLoadedEventType // CustomNoisyProcessEventType is the custom event used to report the detection of a noisy process CustomNoisyProcessEventType // CustomForkBombEventType is the custom event used to report the detection of a fork bomb CustomForkBombEventType // CustomTruncatedParentsEventType is the custom event used to report that the parents of a path were truncated CustomTruncatedParentsEventType // CustomSelfTestEventType is the custom event used to report the results of a self test run CustomSelfTestEventType // MaxAllEventType is used internally to get the maximum number of events. MaxAllEventType )
func ParseEvalEventType ¶
ParseEvalEventType convert a eval.EventType (string) to its uint64 representation the current algorithm is not efficient but allows us to reduce the number of conversion functions
func ParseEventTypeStringSlice ¶ added in v0.36.0
ParseEventTypeStringSlice converts a list
type ExitCause ¶ added in v0.38.0
type ExitCause uint32
ExitCause represents the cause of a process termination
type ExitEvent ¶ added in v0.38.0
type ExitEvent struct { *Process Cause uint32 `field:"cause"` // Cause of the process termination (one of EXITED, SIGNALED, COREDUMPED) Code uint32 `field:"code"` // Exit code of the process or number of the signal that caused the process to terminate }
ExitEvent represents a process exit event
type FileEvent ¶
type FileEvent struct { FileFields PathnameStr string `field:"path,handler:ResolveFilePath" msg:"path" op_override:"ProcessSymlinkPathname"` // File's path BasenameStr string `field:"name,handler:ResolveFileBasename" msg:"name" op_override:"ProcessSymlinkBasename"` // File's basename Filesystem string `field:"filesystem,handler:ResolveFileFilesystem" msg:"filesystem"` // File's filesystem PathResolutionError error `field:"-" msg:"-"` // used to mark as already resolved, can be used in case of empty path IsPathnameStrResolved bool `field:"-" msg:"-"` IsBasenameStrResolved bool `field:"-" msg:"-"` }
FileEvent is the common file event type
func (*FileEvent) GetPathResolutionError ¶
GetPathResolutionError returns the path resolution error as a string if there is one
func (*FileEvent) MarshalMsg ¶ added in v0.36.0
MarshalMsg implements msgp.Marshaler
func (*FileEvent) Msgsize ¶ added in v0.36.0
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*FileEvent) SetBasenameStr ¶ added in v0.36.0
SetBasenameStr set and mark as resolved
func (*FileEvent) SetPathnameStr ¶ added in v0.36.0
SetPathnameStr set and mark as resolved
func (*FileEvent) UnmarshalBinary ¶
UnmarshalBinary unmarshalls a binary representation of itself
type FileFields ¶
type FileFields struct { UID uint32 `field:"uid" msg:"uid"` // UID of the file's owner User string `field:"user,handler:ResolveFileFieldsUser" msg:"user,omitempty"` // User of the file's owner GID uint32 `field:"gid" msg:"gid"` // GID of the file's owner Group string `field:"group,handler:ResolveFileFieldsGroup" msg:"group,omitempty"` // Group of the file's owner Mode uint16 `field:"mode;rights,handler:ResolveRights,opts:cacheless_resolution" msg:"mode" constants:"Chmod mode constants"` // Mode/rights of the file CTime uint64 `field:"change_time" msg:"ctime"` // Change time of the file MTime uint64 `field:"modification_time" msg:"mtime"` // Modification time of the file MountID uint32 `field:"mount_id" msg:"mount_id"` // Mount ID of the file Inode uint64 `field:"inode" msg:"inode"` // Inode of the file InUpperLayer bool `field:"in_upper_layer,handler:ResolveFileFieldsInUpperLayer" msg:"in_upper_layer"` // Indicator of the file layer, for example, in an OverlayFS NLink uint32 `field:"-" msg:"-"` PathID uint32 `field:"-" msg:"-"` Flags int32 `field:"-" msg:"-"` }
FileFields holds the information required to identify a file
func (*FileFields) DecodeMsg ¶ added in v0.36.0
func (z *FileFields) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*FileFields) EncodeMsg ¶ added in v0.36.0
func (z *FileFields) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*FileFields) GetInLowerLayer ¶
func (f *FileFields) GetInLowerLayer() bool
GetInLowerLayer returns whether a file is in a lower layer
func (*FileFields) GetInUpperLayer ¶
func (f *FileFields) GetInUpperLayer() bool
GetInUpperLayer returns whether a file is in the upper layer
func (*FileFields) HasHardLinks ¶
func (f *FileFields) HasHardLinks() bool
HasHardLinks returns whether the file has hardlink
func (*FileFields) MarshalBinary ¶ added in v0.36.0
func (e *FileFields) MarshalBinary(data []byte) (int, error)
MarshalBinary marshals a binary representation of itself
func (*FileFields) MarshalMsg ¶ added in v0.36.0
func (z *FileFields) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*FileFields) Msgsize ¶ added in v0.36.0
func (z *FileFields) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*FileFields) UnmarshalBinary ¶
func (e *FileFields) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
func (*FileFields) UnmarshalMsg ¶ added in v0.36.0
func (z *FileFields) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type IPPortContext ¶ added in v0.36.0
type IPPortContext struct { IPNet net.IPNet `field:"ip"` // IP address Port uint16 `field:"port"` // Port number }
IPPortContext is used to hold an IP and Port
type InvalidateDentryEvent ¶
InvalidateDentryEvent defines a invalidate dentry event
func (*InvalidateDentryEvent) UnmarshalBinary ¶
func (e *InvalidateDentryEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type KernelCapability ¶
type KernelCapability uint64
KernelCapability represents a kernel capability bitmask value
func (KernelCapability) String ¶
func (kc KernelCapability) String() string
func (KernelCapability) StringArray ¶
func (kc KernelCapability) StringArray() []string
StringArray returns the kernel capabilities as an array of strings
type L3Protocol ¶ added in v0.36.0
type L3Protocol uint16
L3Protocol Network protocols
const ( // EthPLOOP Ethernet Loopback packet EthPLOOP L3Protocol = 0x0060 // EthPPUP Xerox PUP packet EthPPUP L3Protocol = 0x0200 // EthPPUPAT Xerox PUP Addr Trans packet EthPPUPAT L3Protocol = 0x0201 // EthPTSN TSN (IEEE 1722) packet EthPTSN L3Protocol = 0x22F0 // EthPIP Internet Protocol packet EthPIP L3Protocol = 0x0800 // EthPX25 CCITT X.25 EthPX25 L3Protocol = 0x0805 // EthPARP Address Resolution packet EthPARP L3Protocol = 0x0806 // EthPBPQ G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] EthPBPQ L3Protocol = 0x08FF // EthPIEEEPUP Xerox IEEE802.3 PUP packet EthPIEEEPUP L3Protocol = 0x0a00 // EthPIEEEPUPAT Xerox IEEE802.3 PUP Addr Trans packet EthPIEEEPUPAT L3Protocol = 0x0a01 // EthPBATMAN B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] EthPBATMAN L3Protocol = 0x4305 // EthPDEC DEC Assigned proto EthPDEC L3Protocol = 0x6000 // EthPDNADL DEC DNA Dump/Load EthPDNADL L3Protocol = 0x6001 // EthPDNARC DEC DNA Remote Console EthPDNARC L3Protocol = 0x6002 // EthPDNART DEC DNA Routing EthPDNART L3Protocol = 0x6003 // EthPLAT DEC LAT EthPLAT L3Protocol = 0x6004 // EthPDIAG DEC Diagnostics EthPDIAG L3Protocol = 0x6005 // EthPCUST DEC Customer use EthPCUST L3Protocol = 0x6006 // EthPSCA DEC Systems Comms Arch EthPSCA L3Protocol = 0x6007 // EthPTEB Trans Ether Bridging EthPTEB L3Protocol = 0x6558 // EthPRARP Reverse Addr Res packet EthPRARP L3Protocol = 0x8035 // EthPATALK Appletalk DDP EthPATALK L3Protocol = 0x809B // EthPAARP Appletalk AARP EthPAARP L3Protocol = 0x80F3 // EthP8021Q 802.1Q VLAN Extended Header EthP8021Q L3Protocol = 0x8100 // EthPERSPAN ERSPAN type II EthPERSPAN L3Protocol = 0x88BE // EthPIPX IPX over DIX EthPIPX L3Protocol = 0x8137 // EthPIPV6 IPv6 over bluebook EthPIPV6 L3Protocol = 0x86DD // EthPPAUSE IEEE Pause frames. See 802.3 31B EthPPAUSE L3Protocol = 0x8808 // EthPSLOW Slow Protocol. See 802.3ad 43B EthPSLOW L3Protocol = 0x8809 // EthPWCCP Web-cache coordination protocol defined in draft-wilson-wrec-wccp-v2-00.txt EthPWCCP L3Protocol = 0x883E // EthPMPLSUC MPLS Unicast traffic EthPMPLSUC L3Protocol = 0x8847 // EthPMPLSMC MPLS Multicast traffic EthPMPLSMC L3Protocol = 0x8848 // EthPATMMPOA MultiProtocol Over ATM EthPATMMPOA L3Protocol = 0x884c // EthPPPPDISC PPPoE discovery messages EthPPPPDISC L3Protocol = 0x8863 // EthPPPPSES PPPoE session messages EthPPPPSES L3Protocol = 0x8864 // EthPLinkCTL HPNA, wlan link local tunnel EthPLinkCTL L3Protocol = 0x886c // EthPATMFATE Frame-based ATM Transport over Ethernet EthPATMFATE L3Protocol = 0x8884 // EthPPAE Port Access Entity (IEEE 802.1X) EthPPAE L3Protocol = 0x888E // EthPAOE ATA over Ethernet EthPAOE L3Protocol = 0x88A2 // EthP8021AD 802.1ad Service VLAN EthP8021AD L3Protocol = 0x88A8 // EthP802EX1 802.1 Local Experimental 1. EthP802EX1 L3Protocol = 0x88B5 // EthPTIPC TIPC EthPTIPC L3Protocol = 0x88CA // EthPMACSEC 802.1ae MACsec EthPMACSEC L3Protocol = 0x88E5 // EthP8021AH 802.1ah Backbone Service Tag EthP8021AH L3Protocol = 0x88E7 // EthPMVRP 802.1Q MVRP EthPMVRP L3Protocol = 0x88F5 // EthP1588 IEEE 1588 Timesync EthP1588 L3Protocol = 0x88F7 // EthPNCSI NCSI protocol EthPNCSI L3Protocol = 0x88F8 // EthPPRP IEC 62439-3 PRP/HSRv0 EthPPRP L3Protocol = 0x88FB // EthPFCOE Fibre Channel over Ethernet EthPFCOE L3Protocol = 0x8906 // EthPIBOE Infiniband over Ethernet EthPIBOE L3Protocol = 0x8915 // EthPTDLS TDLS EthPTDLS L3Protocol = 0x890D // EthPFIP FCoE Initialization Protocol EthPFIP L3Protocol = 0x8914 // EthP80221 IEEE 802.21 Media Independent Handover Protocol EthP80221 L3Protocol = 0x8917 // EthPHSR IEC 62439-3 HSRv1 EthPHSR L3Protocol = 0x892F // EthPNSH Network Service Header EthPNSH L3Protocol = 0x894F // EthPLOOPBACK Ethernet loopback packet, per IEEE 802.3 EthPLOOPBACK L3Protocol = 0x9000 // EthPQINQ1 deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] EthPQINQ1 L3Protocol = 0x9100 // EthPQINQ2 deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] EthPQINQ2 L3Protocol = 0x9200 // EthPQINQ3 deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] EthPQINQ3 L3Protocol = 0x9300 // EthPEDSA Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] EthPEDSA L3Protocol = 0xDADA // EthPIFE ForCES inter-FE LFB type EthPIFE L3Protocol = 0xED3E // EthPAFIUCV IBM afiucv [ NOT AN OFFICIALLY REGISTERED ID ] EthPAFIUCV L3Protocol = 0xFBFB // EthP8023MIN If the value in the ethernet type is less than this value then the frame is Ethernet II. Else it is 802.3 EthP8023MIN L3Protocol = 0x0600 // EthPIPV6HopByHop IPv6 Hop by hop option EthPIPV6HopByHop L3Protocol = 0x000 // EthP8023 Dummy type for 802.3 frames EthP8023 L3Protocol = 0x0001 // EthPAX25 Dummy protocol id for AX.25 EthPAX25 L3Protocol = 0x0002 // EthPALL Every packet (be careful!!!) EthPALL L3Protocol = 0x0003 // EthP8022 802.2 frames EthP8022 L3Protocol = 0x0004 // EthPSNAP Internal only EthPSNAP L3Protocol = 0x0005 // EthPDDCMP DEC DDCMP: Internal only EthPDDCMP L3Protocol = 0x0006 // EthPWANPPP Dummy type for WAN PPP frames*/ EthPWANPPP L3Protocol = 0x0007 // EthPPPPMP Dummy type for PPP MP frames EthPPPPMP L3Protocol = 0x0008 // EthPLOCALTALK Localtalk pseudo type EthPLOCALTALK L3Protocol = 0x0009 // EthPCAN CAN: Controller Area Network EthPCAN L3Protocol = 0x000C // EthPCANFD CANFD: CAN flexible data rate*/ EthPCANFD L3Protocol = 0x000D // EthPPPPTALK Dummy type for Atalk over PPP*/ EthPPPPTALK L3Protocol = 0x0010 // EthPTR8022 802.2 frames EthPTR8022 L3Protocol = 0x0011 // EthPMOBITEX Mobitex (kaz@cafe.net) EthPMOBITEX L3Protocol = 0x0015 // EthPCONTROL Card specific control frames EthPCONTROL L3Protocol = 0x0016 // EthPIRDA Linux-IrDA EthPIRDA L3Protocol = 0x0017 // EthPECONET Acorn Econet EthPECONET L3Protocol = 0x0018 // EthPHDLC HDLC frames EthPHDLC L3Protocol = 0x0019 // EthPARCNET 1A for ArcNet :-) EthPARCNET L3Protocol = 0x001A // EthPDSA Distributed Switch Arch. EthPDSA L3Protocol = 0x001B // EthPTRAILER Trailer switch tagging EthPTRAILER L3Protocol = 0x001C // EthPPHONET Nokia Phonet frames EthPPHONET L3Protocol = 0x00F5 // EthPIEEE802154 IEEE802.15.4 frame EthPIEEE802154 L3Protocol = 0x00F6 // EthPCAIF ST-Ericsson CAIF protocol EthPCAIF L3Protocol = 0x00F7 // EthPXDSA Multiplexed DSA protocol EthPXDSA L3Protocol = 0x00F8 // EthPMAP Qualcomm multiplexing and aggregation protocol EthPMAP L3Protocol = 0x00F9 )
func (L3Protocol) String ¶ added in v0.36.0
func (proto L3Protocol) String() string
type L4Protocol ¶ added in v0.36.0
type L4Protocol uint16
L4Protocol transport protocols
const ( // IPProtoIP Dummy protocol for TCP IPProtoIP L4Protocol = 0 // IPProtoICMP Internet Control Message Protocol (IPv4) IPProtoICMP L4Protocol = 1 // IPProtoIGMP Internet Group Management Protocol IPProtoIGMP L4Protocol = 2 // IPProtoIPIP IPIP tunnels (older KA9Q tunnels use 94) IPProtoIPIP L4Protocol = 4 // IPProtoTCP Transmission Control Protocol IPProtoTCP L4Protocol = 6 // IPProtoEGP Exterior Gateway Protocol IPProtoEGP L4Protocol = 8 // IPProtoIGP Interior Gateway Protocol (any private interior gateway (used by Cisco for their IGRP)) IPProtoIGP L4Protocol = 9 // IPProtoPUP PUP protocol IPProtoPUP L4Protocol = 12 // IPProtoUDP User Datagram Protocol IPProtoUDP L4Protocol = 17 // IPProtoIDP XNS IDP protocol IPProtoIDP L4Protocol = 22 // IPProtoTP SO Transport Protocol Class 4 IPProtoTP L4Protocol = 29 // IPProtoDCCP Datagram Congestion Control Protocol IPProtoDCCP L4Protocol = 33 // IPProtoIPV6 IPv6-in-IPv4 tunnelling IPProtoIPV6 L4Protocol = 41 // IPProtoRSVP RSVP Protocol IPProtoRSVP L4Protocol = 46 // IPProtoGRE Cisco GRE tunnels (rfc 1701,1702) IPProtoGRE L4Protocol = 47 // IPProtoESP Encapsulation Security Payload protocol IPProtoESP L4Protocol = 50 // IPProtoAH Authentication Header protocol IPProtoAH L4Protocol = 51 // IPProtoICMPV6 Internet Control Message Protocol (IPv6) IPProtoICMPV6 L4Protocol = 58 // IPProtoMTP Multicast Transport Protocol IPProtoMTP L4Protocol = 92 // IPProtoBEETPH IP option pseudo header for BEET IPProtoBEETPH L4Protocol = 94 // IPProtoENCAP Encapsulation Header IPProtoENCAP L4Protocol = 98 // IPProtoPIM Protocol Independent Multicast IPProtoPIM L4Protocol = 103 // IPProtoCOMP Compression Header Protocol IPProtoCOMP L4Protocol = 108 // IPProtoSCTP Stream Control Transport Protocol IPProtoSCTP L4Protocol = 132 // IPProtoUDPLITE UDP-Lite (RFC 3828) IPProtoUDPLITE L4Protocol = 136 // IPProtoMPLS MPLS in IP (RFC 4023) IPProtoMPLS L4Protocol = 137 // IPProtoRAW Raw IP packets IPProtoRAW L4Protocol = 255 )
func (L4Protocol) String ¶ added in v0.36.0
func (proto L4Protocol) String() string
type LinkEvent ¶
type LinkEvent struct { SyscallEvent Source FileEvent `field:"file"` Target FileEvent `field:"file.destination"` }
LinkEvent represents a link event
type LoadModuleEvent ¶ added in v0.35.0
type LoadModuleEvent struct { SyscallEvent File FileEvent `field:"file"` // Path to the kernel module file LoadedFromMemory bool `field:"loaded_from_memory"` // Indicates if the kernel module was loaded from memory Name string `field:"name"` // Name of the new kernel module }
LoadModuleEvent represents a load_module event
func (*LoadModuleEvent) UnmarshalBinary ¶ added in v0.35.0
func (e *LoadModuleEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshals a binary representation of itself
type MMapEvent ¶ added in v0.34.0
type MMapEvent struct { SyscallEvent File FileEvent `field:"file"` Addr uint64 `field:"-"` Offset uint64 `field:"-"` Len uint32 `field:"-"` Protection int `field:"protection" constants:"Protection constants"` // memory segment protection Flags int `field:"flags" constants:"MMap flags"` // memory segment flags }
MMapEvent represents a mmap event
type MProtectEvent ¶ added in v0.34.0
type MProtectEvent struct { SyscallEvent VMStart uint64 `field:"-"` VMEnd uint64 `field:"-"` VMProtection int `field:"vm_protection" constants:"Virtual Memory flags"` // initial memory segment protection ReqProtection int `field:"req_protection" constants:"Virtual Memory flags"` // new memory segment protection }
MProtectEvent represents a mprotect event
func (*MProtectEvent) UnmarshalBinary ¶ added in v0.34.0
func (e *MProtectEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshals a binary representation of itself
type MkdirEvent ¶
type MkdirEvent struct { SyscallEvent File FileEvent `field:"file"` Mode uint32 `field:"file.destination.mode; file.destination.rights" constants:"Chmod mode constants"` // Mode/rights of the new directory }
MkdirEvent represents a mkdir event
func (*MkdirEvent) UnmarshalBinary ¶
func (e *MkdirEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type Model ¶
type Model struct{}
Model describes the data model for the runtime security agent events
func (*Model) GetEvaluator ¶
func (*Model) GetEventTypes ¶
func (*Model) ValidateField ¶
ValidateField validates the value of a field
type MountEvent ¶
type MountEvent struct { SyscallEvent MountID uint32 GroupID uint32 Device uint32 ParentMountID uint32 ParentInode uint64 FSType string MountPointStr string MountPointPathResolutionError error RootMountID uint32 RootInode uint64 RootStr string RootPathResolutionError error FSTypeRaw [16]byte }
MountEvent represents a mount event
func (*MountEvent) GetFSType ¶
func (m *MountEvent) GetFSType() string
GetFSType returns the filesystem type of the mountpoint
func (*MountEvent) GetMountPointPathResolutionError ¶
func (m *MountEvent) GetMountPointPathResolutionError() string
GetMountPointPathResolutionError returns the mount point path resolution error as a string if there is one
func (*MountEvent) GetRootPathResolutionError ¶
func (m *MountEvent) GetRootPathResolutionError() string
GetRootPathResolutionError returns the root path resolution error as a string if there is one
func (*MountEvent) IsOverlayFS ¶
func (m *MountEvent) IsOverlayFS() bool
IsOverlayFS returns whether it is an overlay fs
func (*MountEvent) UnmarshalBinary ¶
func (e *MountEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type MountReleasedEvent ¶
MountReleasedEvent defines a mount released event
func (*MountReleasedEvent) UnmarshalBinary ¶
func (e *MountReleasedEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type NetDevice ¶ added in v0.36.0
type NetDevice struct { Name string NetNS uint32 IfIndex uint32 PeerNetNS uint32 PeerIfIndex uint32 }
NetDevice represents a network device
type NetDeviceEvent ¶ added in v0.36.0
type NetDeviceEvent struct { SyscallEvent Device NetDevice }
NetDeviceEvent represents a network device event
func (*NetDeviceEvent) UnmarshalBinary ¶ added in v0.36.0
func (e *NetDeviceEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type NetworkContext ¶ added in v0.36.0
type NetworkContext struct { Device NetworkDeviceContext `field:"device"` // network device on which the network packet was captured L3Protocol uint16 `field:"l3_protocol" constants:"L3 protocols"` // l3 protocol of the network packet L4Protocol uint16 `field:"l4_protocol" constants:"L4 protocols"` // l4 protocol of the network packet Source IPPortContext `field:"source"` // source of the network packet Destination IPPortContext `field:"destination"` // destination of the network packet Size uint32 `field:"size"` // size in bytes of the network packet }
NetworkContext represents the network context of the event
func (*NetworkContext) UnmarshalBinary ¶ added in v0.36.0
func (e *NetworkContext) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type NetworkDeviceContext ¶ added in v0.36.0
type NetworkDeviceContext struct { NetNS uint32 `field:"-"` IfIndex uint32 `field:"ifindex"` // interface ifindex IfName string `field:"ifname,handler:ResolveNetworkDeviceIfName"` // interface ifname }
NetworkDeviceContext represents the network device context of a network event
func (*NetworkDeviceContext) UnmarshalBinary ¶ added in v0.36.0
func (e *NetworkDeviceContext) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type OpenEvent ¶
type OpenEvent struct { SyscallEvent File FileEvent `field:"file"` Flags uint32 `field:"flags" constants:"Open flags"` // Flags used when opening the file Mode uint32 `field:"file.destination.mode" constants:"Chmod mode constants"` // Mode of the created file }
OpenEvent represents an open event
type OpenFlags ¶
type OpenFlags int
OpenFlags represents an open flags bitmask value
func (OpenFlags) StringArray ¶
StringArray returns the open flags as an array of strings
type PIDContext ¶ added in v0.37.0
type PIDContext struct { Pid uint32 `field:"pid" msg:"pid"` // Process ID of the process (also called thread group ID) Tid uint32 `field:"tid" msg:"tid"` // Thread ID of the thread NetNS uint32 `field:"-" msg:"-"` }
PIDContext holds the process context of an kernel event
func (*PIDContext) DecodeMsg ¶ added in v0.37.0
func (z *PIDContext) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (PIDContext) EncodeMsg ¶ added in v0.37.0
func (z PIDContext) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (PIDContext) MarshalMsg ¶ added in v0.37.0
func (z PIDContext) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (PIDContext) Msgsize ¶ added in v0.37.0
func (z PIDContext) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*PIDContext) UnmarshalBinary ¶ added in v0.37.0
func (p *PIDContext) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
func (*PIDContext) UnmarshalMsg ¶ added in v0.37.0
func (z *PIDContext) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type PTraceEvent ¶ added in v0.34.0
type PTraceEvent struct { SyscallEvent Request uint32 `field:"request" constants:"Ptrace constants"` // ptrace request PID uint32 `field:"-"` Address uint64 `field:"-"` Tracee *ProcessContext `field:"tracee"` // process context of the tracee }
PTraceEvent represents a ptrace event
func (*PTraceEvent) UnmarshalBinary ¶ added in v0.34.0
func (e *PTraceEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type PTraceRequest ¶ added in v0.34.0
type PTraceRequest uint32
PTraceRequest represents a ptrace request value
func (PTraceRequest) String ¶ added in v0.34.0
func (f PTraceRequest) String() string
type PipeBufFlag ¶ added in v0.35.0
type PipeBufFlag int
PipeBufFlag represents a pipe buffer flag
const ( // PipeBufFlagLRU pipe buffer flag PipeBufFlagLRU PipeBufFlag = 0x1 /* page is on the LRU */ // PipeBufFlagAtomic pipe buffer flag PipeBufFlagAtomic PipeBufFlag = 0x2 /* was atomically mapped */ // PipeBufFlagGift pipe buffer flag PipeBufFlagGift PipeBufFlag = 0x4 /* page is a gift */ // PipeBufFlagPacket pipe buffer flag PipeBufFlagPacket PipeBufFlag = 0x8 /* read() as a packet */ // PipeBufFlagCanMerge pipe buffer flag PipeBufFlagCanMerge PipeBufFlag = 0x10 /* can merge buffers */ // PipeBufFlagWhole pipe buffer flag PipeBufFlagWhole PipeBufFlag = 0x20 /* read() must return entire buffer or error */ // PipeBufFlagLoss pipe buffer flag PipeBufFlagLoss PipeBufFlag = 0x40 /* Message loss happened after this buffer */ )
func (PipeBufFlag) String ¶ added in v0.35.0
func (pbf PipeBufFlag) String() string
type Process ¶
type Process struct { PIDContext FileEvent FileEvent `field:"file" msg:"file"` ContainerID string `field:"container.id" msg:"container_id,omitempty"` // Container ID ContainerTags []string `field:"-" msg:"container_tags,omitempty"` SpanID uint64 `field:"-" msg:"span_id,omitempty"` TraceID uint64 `field:"-" msg:"trace_id,omitempty"` TTYName string `field:"tty_name" msg:"tty,omitempty"` // Name of the TTY associated with the process Comm string `field:"comm" msg:"comm"` // Comm attribute of the process // pid_cache_t ForkTime time.Time `field:"-" msg:"fork_time"` ExitTime time.Time `field:"-" msg:"exit_time"` ExecTime time.Time `field:"-" msg:"exec_time"` CreatedAt uint64 `field:"created_at,handler:ResolveProcessCreatedAt" msg:"-"` // Timestamp of the creation of the process Cookie uint32 `field:"cookie" msg:"cookie,omitempty"` // Cookie of the process PPid uint32 `field:"ppid" msg:"ppid"` // Parent process ID // credentials_t section of pid_cache_t Credentials `msg:"credentials"` ArgsID uint32 `field:"-" msg:"-"` EnvsID uint32 `field:"-" msg:"-"` ArgsEntry *ArgsEntry `field:"-" msg:"args_entry,omitempty"` EnvsEntry *EnvsEntry `field:"-" msg:"envs_entry,omitempty"` // defined to generate accessors, ArgsTruncated and EnvsTruncated are used during by unmarshaller Argv0 string `field:"argv0,handler:ResolveProcessArgv0,weight:100" msg:"argv0"` // First argument of the process Args string `field:"args,handler:ResolveProcessArgs,weight:100" msg:"-"` // Arguments of the process (as a string) Argv []string `` // Arguments of the process (as an array) /* 202-byte string literal not displayed */ ArgsTruncated bool `field:"args_truncated,handler:ResolveProcessArgsTruncated" msg:"-"` // Indicator of arguments truncation Envs []string `field:"envs,handler:ResolveProcessEnvs:100" msg:"envs,omitempty"` // Environment variable names of the process Envp []string `field:"envp,handler:ResolveProcessEnvp:100" msg:"-"` // Environment variables of the process EnvsTruncated bool `field:"envs_truncated,handler:ResolveProcessEnvsTruncated" msg:"envs_truncated,omitempty"` // Indicator of environment variables truncation // symlink to the process binary SymlinkPathnameStr [MaxSymlinks]string `field:"-" msg:"-"` SymlinkBasenameStr string `field:"-" msg:"-"` // cache version ScrubbedArgvResolved bool `field:"-" msg:"-"` ScrubbedArgv []string `field:"-" msg:"argv,omitempty"` ScrubbedArgsTruncated bool `field:"-" msg:"argv_truncated,omitempty"` Variables eval.Variables `field:"-" msg:"-"` IsThread bool `field:"is_thread" msg:"is_thread"` // Indicates whether the process is considered a thread (that is, a child process that hasn't executed another program) }
Process represents a process
func (*Process) GetPathResolutionError ¶
GetPathResolutionError returns the path resolution error as a string if there is one
func (*Process) MarshalMsg ¶ added in v0.36.0
MarshalMsg implements msgp.Marshaler
func (*Process) MarshalPidCache ¶ added in v0.36.0
MarshalPidCache marshals a binary representation of itself
func (*Process) MarshalProcCache ¶ added in v0.36.0
MarshalProcCache marshals a binary representation of itself
func (*Process) Msgsize ¶ added in v0.36.0
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*Process) UnmarshalBinary ¶
UnmarshalBinary unmarshalls a binary representation of itself
type ProcessAncestorsIterator ¶
type ProcessAncestorsIterator struct {
// contains filtered or unexported fields
}
ProcessAncestorsIterator defines an iterator of ancestors
func (*ProcessAncestorsIterator) Front ¶
func (it *ProcessAncestorsIterator) Front(ctx *eval.Context) unsafe.Pointer
Front returns the first element
func (*ProcessAncestorsIterator) Next ¶
func (it *ProcessAncestorsIterator) Next() unsafe.Pointer
Next returns the next element
type ProcessCacheEntry ¶
type ProcessCacheEntry struct { ProcessContext // contains filtered or unexported fields }
ProcessCacheEntry this struct holds process context kept in the process tree
func NewProcessCacheEntry ¶
func NewProcessCacheEntry(onRelease func(_ *ProcessCacheEntry)) *ProcessCacheEntry
NewProcessCacheEntry returns a new process cache entry
func (*ProcessCacheEntry) DecodeMsg ¶ added in v0.36.0
func (z *ProcessCacheEntry) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*ProcessCacheEntry) EncodeMsg ¶ added in v0.36.0
func (z *ProcessCacheEntry) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*ProcessCacheEntry) Equals ¶ added in v0.36.0
func (pc *ProcessCacheEntry) Equals(entry *ProcessCacheEntry) bool
Equals returns whether process cache entries share the same values for comm and args/envs
func (*ProcessCacheEntry) Exec ¶
func (pc *ProcessCacheEntry) Exec(entry *ProcessCacheEntry)
Exec replace a process
func (*ProcessCacheEntry) Exit ¶
func (pc *ProcessCacheEntry) Exit(exitTime time.Time)
Exit a process
func (*ProcessCacheEntry) Fork ¶
func (pc *ProcessCacheEntry) Fork(childEntry *ProcessCacheEntry)
Fork returns a copy of the current ProcessCacheEntry
func (*ProcessCacheEntry) GetNextAncestorNoFork ¶ added in v0.36.0
func (pc *ProcessCacheEntry) GetNextAncestorNoFork() *ProcessCacheEntry
GetNextAncestorNoFork returns the first ancestor that is not a fork entry
func (*ProcessCacheEntry) MarshalMsg ¶ added in v0.36.0
func (z *ProcessCacheEntry) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*ProcessCacheEntry) Msgsize ¶ added in v0.36.0
func (z *ProcessCacheEntry) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*ProcessCacheEntry) Release ¶
func (pc *ProcessCacheEntry) Release()
Release decrement and eventually release the entry
func (*ProcessCacheEntry) Retain ¶
func (pc *ProcessCacheEntry) Retain()
Retain increment ref counter
func (*ProcessCacheEntry) SetAncestor ¶
func (pc *ProcessCacheEntry) SetAncestor(parent *ProcessCacheEntry)
SetAncestor sets the ancestor
func (*ProcessCacheEntry) SetParent ¶ added in v0.36.0
func (pc *ProcessCacheEntry) SetParent(parent *ProcessCacheEntry)
SetParent set the parent of a fork child
func (*ProcessCacheEntry) SetReleaseCallback ¶ added in v0.35.0
func (pc *ProcessCacheEntry) SetReleaseCallback(callback func())
SetReleaseCallback set the callback called when the entry is released
func (*ProcessCacheEntry) SetSpan ¶ added in v0.36.0
func (pc *ProcessCacheEntry) SetSpan(spanID uint64, traceID uint64)
SetSpan sets the span
func (*ProcessCacheEntry) ShareArgsEnvs ¶ added in v0.36.0
func (pc *ProcessCacheEntry) ShareArgsEnvs(childEntry *ProcessCacheEntry)
ShareArgsEnvs share args and envs between the current entry and the given child entry
func (*ProcessCacheEntry) UnmarshalMsg ¶ added in v0.36.0
func (z *ProcessCacheEntry) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type ProcessContext ¶
type ProcessContext struct { Process Ancestor *ProcessCacheEntry `field:"ancestors,iterator:ProcessAncestorsIterator" msg:"ancestor,omitempty"` }
ProcessContext holds the process context of an event
func (*ProcessContext) DecodeMsg ¶ added in v0.36.0
func (z *ProcessContext) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*ProcessContext) EncodeMsg ¶ added in v0.36.0
func (z *ProcessContext) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*ProcessContext) MarshalMsg ¶ added in v0.36.0
func (z *ProcessContext) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*ProcessContext) Msgsize ¶ added in v0.36.0
func (z *ProcessContext) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*ProcessContext) UnmarshalMsg ¶ added in v0.36.0
func (z *ProcessContext) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type Protection ¶ added in v0.34.0
type Protection int
Protection represents a virtual memory protection bitmask value
func (Protection) String ¶ added in v0.34.0
func (p Protection) String() string
type QClass ¶ added in v0.36.0
type QClass uint32
QClass is used to declare the qclass field of a DNS request
type QType ¶ added in v0.36.0
type QType uint32
QType is used to declare the qtype field of a DNS request
type RenameEvent ¶
type RenameEvent struct { SyscallEvent Old FileEvent `field:"file"` New FileEvent `field:"file.destination"` DiscarderRevision uint32 `field:"-"` }
RenameEvent represents a rename event
func (*RenameEvent) UnmarshalBinary ¶
func (e *RenameEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type RetValError ¶
type RetValError int
RetValError represents a syscall return error value
func (RetValError) String ¶
func (f RetValError) String() string
type RmdirEvent ¶
type RmdirEvent struct { SyscallEvent File FileEvent `field:"file"` DiscarderRevision uint32 `field:"-"` }
RmdirEvent represents a rmdir event
func (*RmdirEvent) UnmarshalBinary ¶
func (e *RmdirEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type SELinuxEvent ¶
type SELinuxEvent struct { File FileEvent `field:"-"` EventKind SELinuxEventKind `field:"-"` BoolName string `field:"bool.name,handler:ResolveSELinuxBoolName"` // SELinux boolean name BoolChangeValue string `field:"bool.state"` // SELinux boolean new value BoolCommitValue bool `field:"bool_commit.state"` // Indicator of a SELinux boolean commit operation EnforceStatus string `field:"enforce.status"` // SELinux enforcement status (one of "enforcing", "permissive", "disabled"") }
SELinuxEvent represents a selinux event
func (*SELinuxEvent) UnmarshalBinary ¶
func (e *SELinuxEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type SELinuxEventKind ¶
type SELinuxEventKind uint32
SELinuxEventKind represents the event kind for SELinux events
const ( // SELinuxBoolChangeEventKind represents SELinux boolean change events SELinuxBoolChangeEventKind SELinuxEventKind = iota // SELinuxStatusChangeEventKind represents SELinux status change events SELinuxStatusChangeEventKind // SELinuxBoolCommitEventKind represents SELinux boolean commit events SELinuxBoolCommitEventKind )
type SetXAttrEvent ¶
type SetXAttrEvent struct { SyscallEvent File FileEvent `field:"file"` Namespace string `field:"file.destination.namespace,handler:ResolveXAttrNamespace"` // Namespace of the extended attribute Name string `field:"file.destination.name,handler:ResolveXAttrName"` // Name of the extended attribute NameRaw [200]byte `field:"-"` }
SetXAttrEvent represents an extended attributes event
func (*SetXAttrEvent) UnmarshalBinary ¶
func (e *SetXAttrEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type SetgidEvent ¶
type SetgidEvent struct { GID uint32 `field:"gid"` // New GID of the process Group string `field:"group,handler:ResolveSetgidGroup"` // New group of the process EGID uint32 `field:"egid"` // New effective GID of the process EGroup string `field:"egroup,handler:ResolveSetgidEGroup"` // New effective group of the process FSGID uint32 `field:"fsgid"` // New FileSystem GID of the process FSGroup string `field:"fsgroup,handler:ResolveSetgidFSGroup"` // New FileSystem group of the process }
SetgidEvent represents a setgid event
func (*SetgidEvent) UnmarshalBinary ¶
func (e *SetgidEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type SetuidEvent ¶
type SetuidEvent struct { UID uint32 `field:"uid"` // New UID of the process User string `field:"user,handler:ResolveSetuidUser"` // New user of the process EUID uint32 `field:"euid"` // New effective UID of the process EUser string `field:"euser,handler:ResolveSetuidEUser"` // New effective user of the process FSUID uint32 `field:"fsuid"` // New FileSystem UID of the process FSUser string `field:"fsuser,handler:ResolveSetuidFSUser"` // New FileSystem user of the process }
SetuidEvent represents a setuid event
func (*SetuidEvent) UnmarshalBinary ¶
func (e *SetuidEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type Signal ¶ added in v0.35.0
type Signal int
Signal represents a type of unix signal (ie, SIGKILL, SIGSTOP etc)
type SignalEvent ¶ added in v0.35.0
type SignalEvent struct { SyscallEvent Type uint32 `field:"type" constants:"Signal constants"` // Signal type (ex: SIGHUP, SIGINT, SIGQUIT, etc) PID uint32 `field:"pid"` // Target PID Target *ProcessContext `field:"target"` // Target process context }
SignalEvent represents a signal event
func (*SignalEvent) UnmarshalBinary ¶ added in v0.35.0
func (e *SignalEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshals a binary representation of itself
type SpanContext ¶
type SpanContext struct { SpanID uint64 `field:"_" msg:"span_id,omitempty"` TraceID uint64 `field:"_" msg:"trace_id,omitempty"` }
SpanContext describes a span context
func (*SpanContext) DecodeMsg ¶ added in v0.36.0
func (z *SpanContext) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (SpanContext) EncodeMsg ¶ added in v0.36.0
func (z SpanContext) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (SpanContext) MarshalMsg ¶ added in v0.36.0
func (z SpanContext) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (SpanContext) Msgsize ¶ added in v0.36.0
func (z SpanContext) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*SpanContext) UnmarshalBinary ¶
func (s *SpanContext) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
func (*SpanContext) UnmarshalMsg ¶ added in v0.36.0
func (z *SpanContext) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type SpliceEvent ¶ added in v0.35.0
type SpliceEvent struct { SyscallEvent File FileEvent `field:"file"` // File modified by the splice syscall PipeEntryFlag uint32 `field:"pipe_entry_flag" constants:"Pipe buffer flags"` // Entry flag of the "fd_out" pipe passed to the splice syscall PipeExitFlag uint32 `field:"pipe_exit_flag" constants:"Pipe buffer flags"` // Exit flag of the "fd_out" pipe passed to the splice syscall }
SpliceEvent represents a splice event
func (*SpliceEvent) UnmarshalBinary ¶ added in v0.35.0
func (e *SpliceEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshals a binary representation of itself
type SyscallEvent ¶
type SyscallEvent struct {
Retval int64 `field:"retval" msg:"retval,omitempty" constants:"Error Constants"` // Return value of the syscall
}
SyscallEvent contains common fields for all the event
func (*SyscallEvent) DecodeMsg ¶ added in v0.36.0
func (z *SyscallEvent) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (SyscallEvent) EncodeMsg ¶ added in v0.36.0
func (z SyscallEvent) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (SyscallEvent) MarshalMsg ¶ added in v0.36.0
func (z SyscallEvent) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (SyscallEvent) Msgsize ¶ added in v0.36.0
func (z SyscallEvent) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*SyscallEvent) UnmarshalBinary ¶
func (e *SyscallEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
func (*SyscallEvent) UnmarshalMsg ¶ added in v0.36.0
func (z *SyscallEvent) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type UmountEvent ¶
type UmountEvent struct { SyscallEvent MountID uint32 }
UmountEvent represents an umount event
func (*UmountEvent) UnmarshalBinary ¶
func (e *UmountEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type UnlinkEvent ¶
type UnlinkEvent struct { SyscallEvent File FileEvent `field:"file"` Flags uint32 `field:"flags" constants:"Unlink flags"` DiscarderRevision uint32 `field:"-"` }
UnlinkEvent represents an unlink event
func (*UnlinkEvent) UnmarshalBinary ¶
func (e *UnlinkEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type UnlinkFlags ¶
type UnlinkFlags int
UnlinkFlags represents an unlink flags bitmask value
func (UnlinkFlags) String ¶
func (f UnlinkFlags) String() string
func (UnlinkFlags) StringArray ¶
func (f UnlinkFlags) StringArray() []string
StringArray returns the unlink flags as an array of strings
type UnloadModuleEvent ¶ added in v0.35.0
type UnloadModuleEvent struct { SyscallEvent Name string `field:"name"` // Name of the kernel module that was deleted }
UnloadModuleEvent represents an unload_module event
func (*UnloadModuleEvent) UnmarshalBinary ¶ added in v0.35.0
func (e *UnloadModuleEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshals a binary representation of itself
type UtimesEvent ¶
type UtimesEvent struct { SyscallEvent File FileEvent `field:"file"` Atime time.Time `field:"-"` Mtime time.Time `field:"-"` }
UtimesEvent represents a utime event
func (*UtimesEvent) UnmarshalBinary ¶
func (e *UtimesEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself
type VethPairEvent ¶ added in v0.36.0
type VethPairEvent struct { SyscallEvent HostDevice NetDevice PeerDevice NetDevice }
VethPairEvent represents a veth pair event
func (*VethPairEvent) UnmarshalBinary ¶ added in v0.36.0
func (e *VethPairEvent) UnmarshalBinary(data []byte) (int, error)
UnmarshalBinary unmarshalls a binary representation of itself