Kprobes и где они обитают

Про eBPF уже сказано и написано достаточно много, поэтому я хочу сделать следующий шаг и чуть глубже рассмотреть практические аспекты работы c таким механизмом, как kprobe , который позволяет использовать функции ядра Linux для динамического запуска пользовательского кода. Статья поможет ответить на вопросы: - Как понять, какую функцию ядра выбрать для использования с механизмом kprobe? - С чего начать ее поиск? - Какими инструментами пользоваться? kprobe — это, по сути, ловушка, или брейкпоинт, который можно установить почти в любом месте кода ядра Linux.

https://habr.com/ru/companies/pt/articles/972442/

#ebpf #kprobes #linux #linux_kernel #container_security #контейнеризация #tetragon #ftrace #bpftrace #open_source

Kprobes и где они обитают

Содержание О чём эта статья eBPF Что такое kprobe Другие механизмы трассировки, доступные для мониторинга с помощью eBPF Как мы используем kprobe в PT Container Security Рекомендации по поиску функций...

Хабр

Tetragon: лучшие практики и нюансы разработки Tracing Policy

Привет! Меня зовут Виталий Шишкин, я эксперт продукта Container Security в Positive Technologies. За годы работы над продуктом MaxPatrol 10 мы строили аудит Linux на базе подсистемы Auditd, которая решала свою задачу и достаточно просто настраивалась, но ситуация поменялась с появлением контейнеров, которые Auditd корректно поддерживать не умеет. Поэтому эта задача потребовала не просто смену решения для аудита системы, но и создание целого продукта, который сможет учитывать особенности Kubernetes и используемые им технологии ядра Linux.

https://habr.com/ru/companies/pt/articles/970318/

#tetragon #linux #cloud_native #информационная_безопасность #аудит_безопасности #kubernetes #auditd #kprobes #ebpf

Tetragon: лучшие практики и нюансы разработки Tracing Policy

Привет! Меня зовут Виталий Шишкин, я эксперт продукта Container Security в Positive Technologies. За годы работы над продуктом MaxPatrol 10 мы строили аудит Linux на базе подсистемы Auditd, которая...

Хабр
execmem patches v7 providing initial pieces of framework for allocating trampoline executable memory for tracing tools, and kprobes implementation for RISC-V: https://lore.kernel.org/linux-riscv/[email protected]/T/#t

#tracing #kprobes #linux #kernel
[PATCH v7 1/2] kprobes: Implement trampoline memory allocator for tracing

execmem allocator for #tracing and RISC-V support for applying it for #kprobes v6:

https://lore.kernel.org/linux-riscv/[email protected]/T/#t

#riscv #linux #kernel
[PATCH v6 1/2] kprobes: implemente trampoline memory allocator

Kprobes w/o modules for RISC-V v5

https://lore.kernel.org/linux-riscv/[email protected]/T/#t

s/textmem/execmem/ (a typo)

#linux #kernel #kprobes #riscv
[PATCH v5 1/2] kprobes: textmem API

LKML: Jarkko Sakkinen: [PATCH v2] arch/riscv: Enable kprobes when CONFIG_MODULES=n

It's my old #kprobes fix but scaled down to only riscv: https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/commit/?h=kprobes-v2&id=751d26b0addddf0470f6a9383e7da4b3d23b8b4e

Note that I've not even compile-tested this yet, i.e. due to changes still.

Yes, something like kprobes_alloc perhaps could make sense but I see the scope of patch sane: it does a necessary evolutionary step towards more logical separation.
arch/riscv: Enable kprobes when CONFIG_MODULES=n - kernel/git/jarkko/linux-tpmdd.git - Linux TPM Device Driver