Skip to content

Commit

Permalink
feat: extend string data filtering for other events
Browse files Browse the repository at this point in the history
  • Loading branch information
rscampos committed Jan 8, 2025
1 parent 22fa7ba commit 890848a
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
34 changes: 34 additions & 0 deletions pkg/ebpf/c/tracee.bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -2209,6 +2209,9 @@ int BPF_KPROBE(trace_security_bprm_check)
if (p.config->options & OPT_EXEC_ENV)
save_str_arr_to_buf(&p.event->args_buf, envp, 4);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -2318,6 +2321,9 @@ int BPF_KPROBE(trace_security_inode_unlink)
save_to_submit_buf(&p.event->args_buf, &unlinked_file_id.device, sizeof(dev_t), 2);
save_to_submit_buf(&p.event->args_buf, &unlinked_file_id.ctime, sizeof(u64), 3);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -3547,6 +3553,9 @@ int BPF_KPROBE(trace_ret_do_mmap)
save_to_submit_buf(&p.event->args_buf, &prot, sizeof(unsigned long), 8);
save_to_submit_buf(&p.event->args_buf, &mmap_flags, sizeof(unsigned long), 9);

if (!evaluate_data_filters(&p, 1))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -3648,6 +3657,9 @@ int BPF_KPROBE(trace_security_file_mprotect)
save_to_submit_buf(&p.event->args_buf, &pkey, sizeof(int), 6);
}

if (!evaluate_data_filters(&p, 0))
return 0;

events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -4086,6 +4098,9 @@ int BPF_KPROBE(trace_security_kernel_read_file)
save_to_submit_buf(&p.event->args_buf, &type_id, sizeof(int), 3);
save_to_submit_buf(&p.event->args_buf, &ctime, sizeof(u64), 4);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand All @@ -4110,6 +4125,10 @@ int BPF_KPROBE(trace_security_kernel_post_read_file)
save_str_to_buf(&p.event->args_buf, file_path, 0);
save_to_submit_buf(&p.event->args_buf, &size, sizeof(loff_t), 1);
save_to_submit_buf(&p.event->args_buf, &type_id, sizeof(int), 2);

if (!evaluate_data_filters(&p, 0))
return 0;

events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -4400,6 +4419,9 @@ int tracepoint__module__module_load(struct bpf_raw_tracepoint_args *ctx)
save_str_to_buf(&p.event->args_buf, (void *) version, 1);
save_str_to_buf(&p.event->args_buf, (void *) srcversion, 2);

if (!evaluate_data_filters(&p, 3))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -4753,6 +4775,9 @@ statfunc int common_utimes(struct pt_regs *ctx)
save_to_submit_buf(&p.event->args_buf, &atime, sizeof(u64), 3);
save_to_submit_buf(&p.event->args_buf, &mtime, sizeof(u64), 4);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -4790,6 +4815,9 @@ int BPF_KPROBE(trace_do_truncate)
save_to_submit_buf(&p.event->args_buf, &dev, sizeof(dev_t), 2);
save_to_submit_buf(&p.event->args_buf, &length, sizeof(u64), 3);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -4980,6 +5008,9 @@ int BPF_KPROBE(trace_ret_inotify_find_inode)
save_to_submit_buf(&p.event->args_buf, &inode_nr, sizeof(unsigned long), 1);
save_to_submit_buf(&p.event->args_buf, &dev, sizeof(dev_t), 2);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down Expand Up @@ -5134,6 +5165,9 @@ int BPF_KPROBE(trace_security_path_notify)
save_to_submit_buf(&p.event->args_buf, &mask, sizeof(u64), 3);
save_to_submit_buf(&p.event->args_buf, &obj_type, sizeof(unsigned int), 4);

if (!evaluate_data_filters(&p, 0))
return 0;

return events_perf_submit(&p, 0);
}

Expand Down
13 changes: 12 additions & 1 deletion pkg/filters/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,19 @@ func (f *DataFilter) Parse(id events.ID, fieldName string, operatorAndValues str
valueHandler := func(val string) (string, error) {
switch id {
case events.SecurityFileOpen,
events.SecurityMmapFile,
events.SecurityBprmCheck,
events.SecurityKernelReadFile,
events.SecurityPostReadFile,
events.SecurityFileMprotect,
events.SecurityPathNotify,
events.SecurityInodeUnlink,
events.ModuleLoad,
events.InotifyWatch,
events.DoTruncate,
events.MagicWrite,
events.SecurityMmapFile:
events.VfsUtimes,
events.DoMmap:
return f.processKernelFilter(val, fieldName)

case events.SysEnter,
Expand Down

0 comments on commit 890848a

Please sign in to comment.