Desejo saber se um contêiner docker específico executa ou não o perfil seccomp padrão. Não tenho acesso à linha de comando usada para iniciar o contêiner, nem ao Dockerfile.
lançando ps aufxwww
, posso ver que o processo /usr/bin/dockerd-current
tem as opções --seccomp-profile=/etc/docker/seccomp.json
. Este é realmente o arquivo de perfil seccomp padrão.
No entanto, o processo /usr/bin/docker-containerd-current
de lançamento do aplicativo em contêiner não o fez. E docker inspect
retorna: "SecurityOpt": null,
.
Então em qual eu confio?
EDITAR
Mais surpreendente, executei um docker enquanto especificava explicitamente um filtro seccomp
docker run -d --security-opt seccomp=/etc/docker/seccomp.python.json friendly
e o /proc/$pid/status
arquivo retorna seccomp 0
.
Em vez disso, eu esperaria, de acordo com o homem:
2 SECCOMP_MODE_FILTER
Responder1
Não sou um especialista e encontrei este post porque pesquisei a mesma pergunta no Google, mas descobri isso.
Se você executar o Docker com um perfil Seccomp, especificando nada e o docker usará o padrão ou especificando você mesmo um perfil na daemon.json
linha de comando e execute:
docker run -it alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp: 2
Como você pode ver, você pode ver que o filtro Seccomp está ativado dentro da janela de encaixe. Se você disser explicitamente ao docker para executar sem perfil Seccomp, obterá 0.
docker run -it --security-opt seccomp=unconfine alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp: 0
Então você pode ver isso de dentro da janela de encaixe. Talvez isso faça sentido, pois são os processos dentro do Docker que precisam ser confinados pelo perfil Seccomp.
Você também pode testar se um perfil faz algobaixando o perfil padrãoe removendo algo dele, por exemplo chown
, e tente:
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, de acordo com opágina de manualparece que no kernel 4.14 você pode ver algo em:
/proc/sys/kernel/seccomp/actions_avail
Isso não existe no meu kernel 4.9. Espero que isso seja útil para alguém.