Estoy usando filtros seccomp para restringir las llamadas al sistema realizadas por un proceso. Hasta el uso de la lista blanca de llamadas al sistema para permitir y rechazar llamadas al sistema es comprensible. Me quedé con el concepto de eventos ptrace generados por las reglas seccomp . Por ejemplo, puedo prohibir open , pero quiero generar un evento ptrace en una llamada al sistema open para poder determinar si el proceso puede abrir ese archivo o no. Mi pregunta específica es ¿cómo capturar el evento ptrace generado por seccomp? Cualquier ayuda o referencia será de gran bendición.
Busqué en Google en mi humilde capacidad, pero no encontré ninguna ayuda ni ejemplo en ejecución.
Necesita tener un programa separado que rastree el inferior. Este rastreador llamará
ptrace(PTRACE_SETOPTIONS, tracee_pid, 0, PTRACE_O_TRACESECCOMP);para solicitar notificaciones, y llamar
waitpid(tracee_pid, &status, __WALL); ser notificado. Cuando regrese waitpid , analice status y recupere la notificación a través de
unsigned long data; ptrace(PTRACE_GETEVENTMSG, tracee_pid, 0, &data);