aquasecurity / aquasecurity/tracee

Add ability to capture multiple files with send_bin in one event

Open
#1,295 0 comments 0 reactions 0 assignees View on GitHub
area/capture area/ebpf kind/feature priority/backlog
Dominant language
Go
Stars
4.6k
Forks
507
Avg merge
2d 8h
Merged PRs (30d)
9

Description

The problem:
We are not able to capture multiple file originating from the same syscall/lsm hook.

The cause:
At the moment send_bin is used as a tail call because of size limitation of the per cpu buffer. Because the size is too small to actually capture any real data we are forced to loop multiple times - and by that cross the BPF instruction limitations.
We bypass that by using tail calls - we enables us 32 more time the maximum instruction limit.

The solution:
Ideally we want to use send_bin as a normal function and not as a tail call. If the chuck size was bigger and the instruction count would be lower and we wouldn't need tail calls.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the send_bin path used from syscall/LSM hooks, including its per-CPU buffer handling and tail-call loop. Determine whether a larger chunk size can make send_bin a normal function without exceeding BPF instruction limits. Done means one event can capture multiple originating files without relying on repeated tail calls.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, linux
Domain
operating-systems, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.