Реальная ценность моделей MAC в Linux

Sep 12 2020

Я читал о MAC и DAC в Интернете, но до сих пор не понимаю, от какой атаки невозможно защититься, если использовать только возможности DAC + по сравнению с возможностями MAC + DAC +. Если процесс не запускается от имени root и не имеет CAP_DAC_OVERRIDE, CAP_FOWNER и других опасных возможностей, он не может преодолеть уже назначенное владение и ACL ресурсов, которые он использует. С другой стороны, если процесс запускается от имени root и имеет CAP_MAC_ADMIN, он может перезаписать контекст безопасности, установленный MAC.

Так является ли MAC «просто дополнительным уровнем защиты» без каких-либо реальных преимуществ в современной системе Linux?

Update1 Я добавлю сюда свои «ответы» на конкретные аргументы. Я предполагаю, что ни один из процессов не запускается от имени пользователя root и не имеет ненужных возможностей (кроме процессов / сценариев запуска системы).

Аргумент : вы можете защитить веб-сервер от запуска произвольных команд оболочки.

Ответ : (Не говоря уже о контейнерных веб-приложениях), можно добавить разрешающий ACL для всех команд, к которым может получить доступ UID / GID сервера, и запрещающий ACL для остальных команд на хосте.

Аргумент : пользователь может иметь файл с разрешениями 0777 [и, по сути, передавать его всем в системе].

Ответ : сценарий запуска системы может установить ACL по умолчанию для каталога, в котором создается этот файл, так что все, что пользовательский процесс создает в этом каталоге, всегда будет унаследовать эти ACL. В общем, наличие 7 в «других» кажется плохой идеей, и если файл получит такие разрешения, дискреционная политика может быть применена здесь при развертывании системы (установка дистрибутива) или даже при запуске при каждой загрузке системы.

Ответы

ManuelHerrera Sep 13 2020 at 23:06

Разница в том, кто определяет права доступа к файлам. DAC предоставляет владельцу файла полный контроль над правами доступа к файлу. MAC использует метки для обеспечения централизованного управления, что означает наличие дополнительного уровня безопасности, который не зависит от владельца файла. Например, у пользователя может быть файл с разрешениями rwxrwxrwx (777), но MAC применяет свой rwx только к определенному набору меток безопасности, эффективно перекрывая DAC.

Saustin Sep 21 2020 at 06:03

DAC не покрывает все потенциальные ситуации разрешения безопасности, которые мог бы сделать MAC. ACL очень гибкие по сравнению с DAC.

Для простоты ЦАП позволяет управлять только rwx, верно? С помощью DAC вы можете быть более явным и на уровне системных вызовов контролировать то, что разрешено. Например, вы можете разрешить кому-либо добавлять файлы в файл, но не перезаписывать / удалять его.