Lili
07/20/2023, 5:57 PMBrian Bergstrand
07/20/2023, 7:31 PMLili
07/21/2023, 3:43 AMIvan
07/21/2023, 8:22 AMPeter
07/21/2023, 10:11 AMexecve
, connect
, and friends. However, there did not appear to be a mechanism to do so in osquery directly - whether using kaudit nor eBPF. Although we could run another agent, and manage the audit rules manually, we’d need to then collect logs from a new audit daemon to get the new telemetry.
Instead we settled on an osquery extension which installs bundled eBPF programs. These programs write data into a kernel managed ring-buffer, which is then “streamed” into an associated user-space ring-buffer which is flushed when the associated osquery table is queried.
As a result, we can then just query the table as if it was a regular osquery table and get the new telemetry into our existing pipeline.
(Although you mentioned issues with eBPF, these programs are very short, only use existing tracepoints for the syscalls we care about - which are “low volume”. We still use audit rules to get the rest of the high volume telemetry.)Ivan
07/21/2023, 10:41 AMIvan
07/21/2023, 10:42 AMPeter
07/21/2023, 10:46 AMIvan
07/21/2023, 10:50 AMIvan
07/21/2023, 10:54 AMPeter
07/21/2023, 10:55 AMPeter
07/21/2023, 10:57 AMIvan
07/21/2023, 11:53 AMLili
07/24/2023, 11:44 AMIvan
07/24/2023, 4:22 PMPeter
07/24/2023, 4:52 PMLili
07/31/2023, 10:53 AMStefano Bonicatti
08/02/2023, 12:42 PMIvan
08/02/2023, 12:48 PM