Skip to content

Commit

Permalink
read directy into syscall cache
Browse files Browse the repository at this point in the history
  • Loading branch information
paulcacheux committed May 13, 2024
1 parent 46dee28 commit e419c09
Showing 1 changed file with 14 additions and 21 deletions.
35 changes: 14 additions & 21 deletions pkg/security/ebpf/c/include/hooks/mmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,30 @@

SEC("tracepoint/syscalls/sys_enter_mmap")
int tracepoint_syscalls_sys_enter_mmap(void *args) {
u64 sys_enter_mmap_off_offset;
LOAD_CONSTANT("sys_enter_mmap_off_offset", sys_enter_mmap_off_offset);
u64 sys_enter_mmap_len_offset;
LOAD_CONSTANT("sys_enter_mmap_len_offset", sys_enter_mmap_len_offset);
u64 sys_enter_mmap_prot_offset;
LOAD_CONSTANT("sys_enter_mmap_prot_offset", sys_enter_mmap_prot_offset);
u64 sys_enter_mmap_flags_offset;
LOAD_CONSTANT("sys_enter_mmap_flags_offset", sys_enter_mmap_flags_offset);

struct policy_t policy = fetch_policy(EVENT_MMAP);
if (is_discarded_by_process(policy.mode, EVENT_MMAP)) {
return 0;
}

u64 off, len, prot, flags;
bpf_probe_read(&off, sizeof(off), args + sys_enter_mmap_off_offset);
bpf_probe_read(&len, sizeof(len), args + sys_enter_mmap_len_offset);
bpf_probe_read(&prot, sizeof(prot), args + sys_enter_mmap_prot_offset);
bpf_probe_read(&flags, sizeof(flags), args + sys_enter_mmap_flags_offset);

struct syscall_cache_t syscall = {
.type = EVENT_MMAP,
.policy = policy,
.mmap = {
.offset = off,
.len = len,
.protection = prot,
.flags = flags,
}
};

u64 sys_enter_mmap_off_offset;
LOAD_CONSTANT("sys_enter_mmap_off_offset", sys_enter_mmap_off_offset);
u64 sys_enter_mmap_len_offset;
LOAD_CONSTANT("sys_enter_mmap_len_offset", sys_enter_mmap_len_offset);
u64 sys_enter_mmap_prot_offset;
LOAD_CONSTANT("sys_enter_mmap_prot_offset", sys_enter_mmap_prot_offset);
u64 sys_enter_mmap_flags_offset;
LOAD_CONSTANT("sys_enter_mmap_flags_offset", sys_enter_mmap_flags_offset);

bpf_probe_read(&syscall.mmap.offset, sizeof(u64), args + sys_enter_mmap_off_offset);
bpf_probe_read(&syscall.mmap.len, sizeof(u64), args + sys_enter_mmap_len_offset);
bpf_probe_read(&syscall.mmap.protection, sizeof(u64), args + sys_enter_mmap_prot_offset);
bpf_probe_read(&syscall.mmap.flags, sizeof(u64), args + sys_enter_mmap_flags_offset);

cache_syscall(&syscall);
return 0;
}
Expand Down

0 comments on commit e419c09

Please sign in to comment.