Hook OCI [Open Container Initiative] para rastrear llamadas al sistema y generar un perfil de seccomp [SECure COMPuting mode] que es un mecanismo de seguridad del kernel de Linux que restringe las llamadas al sistema que un proceso puede realizar. Este proyecto proporciona un hook OCI para generar perfiles de seccomp mediante el rastreo de las llamadas al sistema [syscalls] realizadas por el contenedor. El perfil generado permitirá todas las llamadas al sistema realizadas y denegará el resto.
$ grep CONFIG_SECCOMP= /boot/config-$(uname -r)
CONFIG_SECCOMP=y
# docker run --rm --hook-spec /usr/share/oci/hooks.d/oci-seccomp-bpf-hook.json -v /tmp/seccomp:/output nginx
$ cat /tmp/seccomp/seccomp.json
Nota.- defaultAction: SCMP_ACT_ERRNO: Deniega cualquier syscall no permitida y syscalls.names: Lista de syscalls permitidas.
# docker run --rm --security-opt seccomp=/tmp/seccomp/seccomp.json nginx
1.-
Usando runc y con un contenedor definido en un bundle OCI, con su config.json. Modificar el archivo config.json del contenedor para incluir el hook:
"hooks": {
"poststart": [
{
"path": "/usr/lib/oci/hooks.d/oci-seccomp-bpf-hook",
"args": ["oci-seccomp-bpf-hook", "-o", "/tmp/seccomp-profile.json"]
}
]
}
Indica que, después de iniciar el contenedor, se ejecutará el hook y se generará un archivo /tmp/seccomp-profile.json con el perfil generado.
# runc run mi_contenedor