Documentation ¶
Index ¶
- Constants
- func CreateNetEvent(eventMeta bufferdecoder.NetEventMetadata, ctx procinfo.ProcessCtx, ...) trace.Event
- func FindingToEvent(f detect.Finding) (*trace.Event, error)
- func GetCaptureEventsList(cfg Config) map[events.ID]eventConfig
- func GetEssentialEventsList() map[events.ID]eventConfig
- func MergeErrors(cs ...<-chan error) <-chan error
- type BPFError
- func (b BPFError) CPU() uint32
- func (b BPFError) Count() uint32
- func (b *BPFError) Decode(rawBuffer []byte) error
- func (b BPFError) Error() string
- func (b BPFError) File() []byte
- func (b BPFError) FileAsString() string
- func (b BPFError) ID() uint32
- func (b BPFError) Line() uint32
- func (b BPFError) LogLevel() logger.Level
- func (b BPFError) Return() int64
- func (b BPFError) Size() int
- func (b BPFError) Type() BPFErrorType
- type BPFErrorType
- type CapabilitiesConfig
- type CaptureConfig
- type Config
- type Filter
- type InitValues
- type NetIfaces
- type OutputConfig
- type Tracee
Constants ¶
const ( Iterate )
const ( UIDFilterMap = "uid_filter" PIDFilterMap = "pid_filter" MntNSFilterMap = "mnt_ns_filter" PidNSFilterMap = "pid_ns_filter" UTSFilterMap = "uts_ns_filter" CommFilterMap = "comm_filter" ProcessTreeFilterMap = "process_tree_map" CgroupIdFilterMap = "cgroup_id_filter" ContIdFilter = "cont_id_filter" BinaryFilterMap = "binary_filter" )
const BPFMaxErrFileLen = 72 // BPF_MAX_ERR_FILE_LEN
Variables ¶
This section is empty.
Functions ¶
func CreateNetEvent ¶
func CreateNetEvent(eventMeta bufferdecoder.NetEventMetadata, ctx procinfo.ProcessCtx, eventName string) trace.Event
CreateNetEvent creates and returns event 'eventName'
func FindingToEvent ¶ added in v0.10.0
FindingToEvent converts a detect.Finding into a trace.Event This is used because the pipeline expects trace.Event, but the rule engine returns detect.Finding
func GetCaptureEventsList ¶ added in v0.8.0
GetCaptureEventsList sets events used to capture data
func GetEssentialEventsList ¶ added in v0.8.0
GetEssentialEventsList sets the default events used by tracee
func MergeErrors ¶
MergeErrors merges multiple channels of errors. Based on https://blog.golang.org/pipelines.
Types ¶
type BPFError ¶ added in v0.10.0
type BPFError struct {
// contains filtered or unexported fields
}
BPFError struct contains aggregated data about a bpf error origin
func (BPFError) FileAsString ¶ added in v0.10.0
func (BPFError) Type ¶ added in v0.10.0
func (b BPFError) Type() BPFErrorType
type BPFErrorType ¶ added in v0.10.0
type BPFErrorType uint32
const ( BPFErrUnspec BPFErrorType = iota // BPF_ERR_UNSPEC // tracee functions BPFErrInitContext // BPF_ERR_INIT_CONTEXT // bpf helpers functions BPFErrMapLookupElem // BPF_ERR_MAP_LOOKUP_ELEM BPFErrMapUpdateElem // BPF_ERR_MAP_UPDATE_ELEM BPFErrMapDeleteElem // BPF_ERR_MAP_DELETE_ELEM BPFErrGetCurrentComm // BPF_ERR_GET_CURRENT_COMM BPFErrTailCall // BPF_ERR_TAIL_CALL )
func (BPFErrorType) String ¶ added in v0.10.0
func (b BPFErrorType) String() string
type CapabilitiesConfig ¶ added in v0.9.0
type CaptureConfig ¶
type Config ¶
type Config struct { Filter *Filter Capture *CaptureConfig Capabilities *CapabilitiesConfig Output *OutputConfig Cache queue.CacheConfig PerfBufferSize int BlobPerfBufferSize int Debug bool BTFObjPath string BPFObjPath string BPFObjBytes []byte KernelConfig *helpers.KernelConfig ChanEvents chan trace.Event ProcessInfo bool OSInfo *helpers.OSInfo Sockets runtime.Sockets ContainersEnrich bool EngineConfig engine.Config // contains filtered or unexported fields }
Config is a struct containing user defined configuration of tracee
type Filter ¶
type Filter struct { EventsToTrace []events.ID UIDFilter *filters.BPFUIntFilter[uint32] PIDFilter *filters.BPFUIntFilter[uint32] NewPidFilter *filters.BoolFilter MntNSFilter *filters.BPFUIntFilter[uint64] PidNSFilter *filters.BPFUIntFilter[uint64] UTSFilter *filters.BPFStringFilter CommFilter *filters.BPFStringFilter ContFilter *filters.BoolFilter NewContFilter *filters.BoolFilter ContIDFilter *filters.ContainerFilter RetFilter *filters.RetFilter ArgFilter *filters.ArgFilter ContextFilter *filters.ContextFilter ProcessTreeFilter *filters.ProcessTreeFilter BinaryFilter *filters.BPFStringFilter Follow bool NetFilter *NetIfaces }
type InitValues ¶ added in v0.8.1
type InitValues struct {
// contains filtered or unexported fields
}
InitValues determines if to initialize values that might be needed by eBPF programs
type NetIfaces ¶ added in v0.8.1
type NetIfaces struct {
Ifaces []string
}
func (*NetIfaces) Interfaces ¶ added in v0.8.1
type OutputConfig ¶
type Tracee ¶
type Tracee struct { StackAddressesMap *bpf.BPFMap FDArgPathMap *bpf.BPFMap // contains filtered or unexported fields }
Tracee traces system calls and system events using eBPF
func New ¶
New creates a new Tracee instance based on a given valid Config It is expected that New will not cause external system side effects (reads, writes, etc.)
func (*Tracee) GetTailCalls ¶ added in v0.8.3
func (*Tracee) Init ¶ added in v0.8.1
Init initialize tracee instance and it's various subsystems, potentially performing external system operations to initialize them. NOTE: any initialization logic, especially one that causes side effects, should go here and not New().
func (*Tracee) WaitForPipeline ¶
WaitForPipeline waits for results from all error channels.