Docker comprueba si se aplica el perfil seccomp predeterminado

Docker comprueba si se aplica el perfil seccomp predeterminado

Deseo saber si un contenedor acoplable específico ejecuta o no el perfil seccomp predeterminado. No tengo acceso a la línea de comando que se usó para iniciar el contenedor, ni al Dockerfile.

Al iniciar ps aufxwww, puedo ver que el proceso /usr/bin/dockerd-currenttiene las opciones --seccomp-profile=/etc/docker/seccomp.json. De hecho, este es el archivo de perfil seccomp predeterminado.

Sin embargo, el proceso /usr/bin/docker-containerd-currentde lanzamiento de la aplicación en contenedor no lo ha hecho. Y docker inspectdevuelve: "SecurityOpt": null,.

Entonces ¿en cuál confío?

EDITAR

Lo más sorprendente es que ejecuté una ventana acoplable mientras especificaba explícitamente un filtro seccomp.

docker run -d --security-opt seccomp=/etc/docker/seccomp.python.json friendly

y el /proc/$pid/statusarchivo regresa seccomp 0.

En cambio, habría esperado, según el hombre:

2 SECCOMP_MODE_FILTER

Respuesta1

No soy un experto y de hecho encontré esta publicación porque busqué en Google la misma pregunta, pero descubrí esto.

Si ejecuta Docker con un perfil Seccomp, ya sea no especificando nada y Docker usará el valor predeterminado, o especificando un perfil usted mismo en daemon.jsonla línea de comando y ejecuta:

docker run -it alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp:        2

Como puede ver, puede ver que el filtro Seccomp está activado dentro de la ventana acoplable. Si le dice explícitamente a Docker que se ejecute sin un perfil Seccomp, obtendrá 0.

docker run -it --security-opt seccomp=unconfine alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp:        0

Para que puedas verlo desde el interior de la ventana acoplable. Quizás esto tenga sentido, ya que son los procesos dentro de Docker los que deben estar confinados por el perfil Seccomp.

También puedes probar que un perfil hace algodescargando el perfil predeterminadoy eliminando algo de él, por ejemplo chown, y luego intente:

docker run -it --security-opt seccomp=/etc/docker/myseccomp.json alpine /bin/sh
/ # touch testfile
/ # chown 100.100 testfile
chown: testfile: Operation not permitted

Finalmente, según elpágina de manualparece que desde el kernel 4.14 puedes ver algo en:

/proc/sys/kernel/seccomp/actions_avail

Esto no existe en mi kernel 4.9. Espero que esto sea útil para alguien.

información relacionada