Назад | Перейти на главную страницу

Докер проверяет, применяется ли профиль seccomp по умолчанию

Я хочу знать, запускает ли конкретный контейнер докеров профиль seccomp по умолчанию. У меня нет доступа ни к командной строке, которая использовалась для запуска контейнера, ни к Dockerfile.

запуск ps aufxwww, я вижу, что процесс /usr/bin/dockerd-current есть варианты --seccomp-profile=/etc/docker/seccomp.json. Это действительно файл профиля seccomp по умолчанию.

Однако процесс /usr/bin/docker-containerd-current, запустив контейнерное приложение, нет. И docker inspect возвращает: "SecurityOpt": null,.

Так кому я доверяю?

РЕДАКТИРОВАТЬ

Что еще более удивительно, я запустил докер, явно указав фильтр seccomp

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

и /proc/$pid/status файл возвращается seccomp 0.

По словам этого человека, вместо этого я ожидал:

2 SECCOMP_MODE_FILTER

Я не эксперт и на самом деле нашел этот пост, потому что я задавал тот же вопрос в Google, но я узнал об этом.

Если вы запускаете Docker с профилем Seccomp, либо ничего не указывая, и докер будет использовать значение по умолчанию, либо указав профиль самостоятельно в daemon.json или в командной строке, и вы запускаете:

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

Как видите, вы видите, что фильтр Seccomp включен внутри докера. Если вы явно укажете докеру, что он должен работать без профиля Seccomp, вы получите 0.

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

Так что вы можете увидеть это изнутри докера. Возможно, это имеет смысл, поскольку именно процессы внутри Docker должны ограничиваться профилем 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 этого нет. Надеюсь, это кому-то поможет.