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-current
tiene 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-current
de lanzamiento de la aplicación en contenedor no lo ha hecho. Y docker inspect
devuelve: "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/status
archivo 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.json
la 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.