Я хочу узнать, запускает ли определенный контейнер docker профиль seccomp по умолчанию. У меня нет доступа ни к командной строке, которая использовалась для запуска контейнера, ни к Dockerfile.
запуская ps aufxwww
, я вижу, что у процесса /usr/bin/dockerd-current
есть параметры --seccomp-profile=/etc/docker/seccomp.json
. Это действительно файл профиля seccomp по умолчанию.
Однако процесс /usr/bin/docker-containerd-current
, запускающий контейнерное приложение, не имеет. И docker inspect
возвращает: "SecurityOpt": null,
.
Так кому же из них мне доверять?
РЕДАКТИРОВАТЬ
Еще более удивительно, что я запустил docker, явно указав фильтр seccomp
docker run -d --security-opt seccomp=/etc/docker/seccomp.python.json friendly
и /proc/$pid/status
файл возвращается seccomp 0
.
Вместо этого я бы ожидал, по словам этого человека:
2 SECCOMP_MODE_FILTER
решение1
Я не эксперт и на самом деле нашел этот пост, потому что искал в Google тот же вопрос, но вот что я обнаружил.
Если вы запускаете Docker с профилем Seccomp, либо ничего не указывая, и docker будет использовать профиль по умолчанию, либо самостоятельно указывая профиль в daemon.json
командной строке и выполняя:
docker run -it alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp: 2
Как вы видите, вы можете увидеть, что фильтр Seccomp включен внутри docker. Если вы явно укажете docker работать без профиля Seccomp, вы получите 0.
docker run -it --security-opt seccomp=unconfine alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp: 0
Так что вы можете увидеть это изнутри докера. Возможно, это имеет смысл, поскольку именно процессы внутри докера должны быть ограничены профилем Seccomp.
Вы также можете проверить, что профиль что-то делает,загрузка профиля по умолчаниюи удалив что-нибудь из него, например chown
, а затем попробуйте:
docker run -it --security-opt seccomp=/etc/docker/myseccomp.json alpine /bin/sh
/ # touch testfile
/ # chown 100.100 testfile
chown: testfile: Operation not permitted
Наконец, согласностраница руководствапохоже, начиная с ядра 4.14 вы можете увидеть что-то в:
/proc/sys/kernel/seccomp/actions_avail
Этого нет в моем ядре 4.9. Надеюсь, это кому-то поможет.