Всем привет!
Использование Secure Compute Mode (Seccomp) позволит сократить поверхность атаки за счет возможности ограничения/разрешения syscalls, которые могут быть «запущены». Базовый профиль содержит несколько основных блоков:
defaultAction – действие, которое будет применено «по умолчанию», architectures (syscalls могут обладать разными id в зависимости от архитектуры), syscalls – перечень системных вызовов. Но как его правильно «приготовить»?Частично ответ на это есть в подробной статье от Paulo Gomes, в которой он раскрывает важные аспекты, про которые не стоит забывать, например:
🍭 Устанавливайте
allowPrivilegeEscalation в значение false. Да, это влияет на Seccomp. Как именно – описано в статье🍭 Назначайте Seccomp профиль на уровне Container, а не Pod (статья 2019 года, возможно причина уже не актуальна)
🍭 Используйте default профили только в экстренных случаях. Лучше напишите свои
🍭 Запускайте Seccomp в режиме аудита для «тонкой настройки». Да, так можно
🍭 Whitelisting лучше, чем Blacklisting
Для каждого рассмотренного совета Paolo приводит аргументацию, почему предложенный вариант является оптимальным и несколько примеров. Отличная статья, чтобы начать изучение Seccomp.
P.S. В документации Docker можно ознакомиться с обоснованием того, почему тот или иной syscall «заблокировали» и он не попал в Seccomp профиль.