Что означает режим rootless в macOS

rootless — это набор дополнительных мер безопасности, повышающих защиту операционных систем macOS (в прошлом Mac OS X или просто OS X) от вредоносных программ. Впервые режим rootless появился в 2015-м году в версии Mac OS X El Capitan. Название rootless на самом деле вводит в заблуждение — правильное название будет System Integrity Protection (Защита целостности системы), так как пользователь root в системе всё еще существует, но SIP запрещает доступ к определённым системным директориям даже руту — пользователю, обладающему неограниченными правами. По факту это означает, что у вас больше нет полного контроля над системой. Если какой-то вредоносной программе удастся ввести вас в заблуждение и вы в ответ на её запрос введёте пароль администратора, этой программе всё равно не удастся внести какие-либо изменения в защищённые системные файлы и директории. То есть, даже если вы словите вирус, система останется работоспособной и вероятность угробить её существенно снижается. Минусом (а как же без них) является то, что вам не удастся внести изменения в системные файлы, даже если вы захотите это сделать. Это не так плохо, как может показаться, — в большинстве случаев нет никакой необходимости в подобных изменениях.

Ограничения, накладываемые System Integrity Protection:

  • Вы не можете вносить какие бы то ни было изменения в директории  /System, /bin, /sbin или /usr (за исключением /usr/local), а так же не можете изменить встроенные программы и утилиты. Изменения в эти директории могут быть выполнены только при обновлении системы или установщиком программ при условии, что устанавливаемое приложение имеет цифровую подпись выданную компанией Apple. Так как при "нормальном" использовании для настройки системы macOS требуется доступ только в директории /Library, ~/Library и /Applications, а unix-подобные утилиты (например Homebrew) хранят свои файлы в директориях /usr/local (и в некоторых случаях в /etc и /opt), то, по логике, у вас не должно возникнуть никаких проблем в использовании и настройке macOS. Прямое обращение к загрузочному диску также запрещено, так что обойти таким способом защиту SIP не удастся.

    Полный список всех недоступных для изменения директорий, а также исключений можно найти в файле /System/Library/Sandbox/rootless.conf

    При обновлении системы до версии El Capitan или выше, все "неавторизованные" файлы будут перемещены в директорию /Library/SystemMigration/History/Migration-(some UUID)/QuarantineRoot/
  • Запрещено подключение к системным процессам, то есть к исполняемым копиям программ, звпущенным из защищенных системных директорий. Это означает, что вы не сможете использовать отладчики и трассировщики с этими программами, но разработчики без ограничений могут отлаживать работу своих собственных программ.

    Это ограничение также запрещает внедрение кода в системные программы, например в Finder, что делает невозможным использование некоторых полезных утилит, расширяющих функционал системных приложений. Утилиты, написанные на базе dtrace (например, opensnoop), так же не смогут следить и выводить отчеты о работе системных программ.
  • Расширения ядра (kexts) могут быть загружены только если они надлежащим образом подписаны цифровой подписью Apple или авторизованного разработчика. Это ограничение заменяет собой уже существовавшее ранее требование цифровой подписи расширений ядра и, соответственно, отменяет существовавшие пути обхода этого запрета. Причиной номер один для установки расширений ядра было использование сторонних SSD-дисков для использования с ними команды TRIM. Но, начиная с версии системы v10.10.4 Apple решила эту проблему и необходимость в использовании сторонних расширений для этой цели отпала.

Если вам мешают эти ограничения — например, вы разрабатываете расширение ядра или при отладке вам необходим доступ к системным программам — вы можете отключить SIP. Сделать это возможно, перезагрузив компьютер в режим восстановления (удерживая клавиши Cmd-R нажатыми во время старта системы), и выполнив команду csrutil disable в терминале. Чтобы снова включить SIP, соответственно, выполните команду csrutil enable в терминале режима восстановления.

Но десять раз подумайте, прежде чем отключать System Integrity Protection. Возможно, есть другой способ, совместимый с SIP, чтобы решить вашу задачу. Действительно ли вам необходимо размещать свои файлы в директории /System/Library, или в /bin, или где-то ещё? Может лучше найти им место в безопасной директории /usr/local/bin или /Library? SIP по началу может показаться слишком большим ограничением, мешающим привычной работе в системе, но есть весомые причины, по которым это ограничение было добавлено. В конце концов, накладываемые SIP запреты продиктованы практикой безопасного использования компьютеров.

Вольный перевод ответа на сайте Stackexchange.

0 комментариев to the "Что означает режим rootless в macOS"

Добавить комментарий

By submitting this form, you accept the Mollom privacy policy.