Является ли SELinux значительно более безопасным, чем AppArmor для контейнеров Docker?

#security #ubuntu #docker #selinux #apparmor

#Безопасность #ubuntu #docker #selinux #apparmor

Вопрос:

Насколько я понимаю, и AppArmor, и SELinux реализуют систему обязательного контроля доступа (MAC), которая обеспечивает дополнительный уровень безопасности изоляции между контейнерами, и что Docker поставляется с политиками по умолчанию для обоих.

Однако, в частности, SELinux может использовать Multi Category Security (MCS) для обеспечения того, чтобы каждый отдельный контейнер в системе мог получать доступ только к файлам на хосте, помеченным для этого конкретного контейнера (подробнее: статья, презентация). То есть, если два контейнера Docker A и B развернуты на одном хосте, политика безопасности SELinux по умолчанию, поставляемая с Docker, фактически обеспечивает соблюдение того, что в случае сбоя процесс linux в контейнере A не сможет получить доступ к файлам, принадлежащим контейнеру B. Не только это, но и единственный способ, которым файлы могут быть смонтированы в контейнер с хоста, — это если тома имеют суффикс «: Z», таким образом, сообщая Docker, чтобы обязательно добавить соответствующие MCS помечают файлы на хосте по этому пути, чтобы контейнер мог получить к ним доступ.

Напротив, я не могу найти никаких ссылок на аналогичный механизм в AppArmor. Вместо этого, профиль AppArmor по умолчанию в Docker, похоже, в первую очередь предназначен для запрета доступа к определенным путям файловой системы и ресурсам хоста, а не для запрета доступа между контейнерами.

Мой вопрос в том, если я использую профиль AppArmor Docker по умолчанию, получу ли я такую же эффективную защиту, как при использовании SELinux, как описано выше? Будет ли AppArmor блокировать доступ из одного контейнера к файлам другого контейнера? Если да, то как это достигается?

Комментарии:

1. Это отличный вопрос, но, боюсь, он не по теме в StackOverflow. Возможно, вам следует опубликовать сообщение о ошибке сервера или, возможно, о обмене стеком информационной безопасности . Я понимаю, что это сложный вопрос, междисциплинарный вопрос между управлением сервером и безопасностью, затрагивающий также разработку программного обеспечения.