Уровни безопасности, присутствующие в macOS | |
Разработчики) | Apple Inc. |
---|---|
изначальный выпуск | 16 сентября 2015 г. ; 5 лет назад ( 2015-09-16) |
Операционная система | macOS |
Включено в | OS X El Capitan (OS X 10.11) и более поздние версии |
Тип | Программное обеспечение компьютерной безопасности |
Интернет сайт | разработчик.apple.com / library / archive / documentation / Security / Conceptual / System _Integrity _Protection _Guide / Introduction / Introduction.html |
Система защиты целостности ( SIP, иногда называют без корней) является функцией безопасности компании Apple «s MacOS операционной системы, введенной в OS X El Capitan (2015) (OS X 10,11). Он включает ряд механизмов, которые задействованы ядром. Центральным элементом является защита файлов и каталогов, находящихся в собственности системы, от изменений процессами без определенных «прав», даже если они выполняются пользователем root или пользователем с привилегиями root ( sudo ).
Apple утверждает, что пользователь root может быть значительным фактором риска для безопасности системы, особенно в системах с одной учетной записью пользователя, в которой этот пользователь также является администратором. По умолчанию SIP включен, но его можно отключить.
Apple заявляет, что защита целостности системы - необходимый шаг для обеспечения высокого уровня безопасности. На одной из сессий разработчиков WWDC инженер Apple Пьер-Оливье Мартель описал неограниченный доступ с правами root как одну из оставшихся слабых сторон системы, заявив, что «[любая] вредоносная программа - это один пароль или уязвимость от получения полного контроля над устройством. ". Он заявил, что в большинстве установок macOS есть только одна учетная запись пользователя, которая обязательно несет с собой учетные данные администратора, что означает, что большинство пользователей могут предоставить root-доступ любой программе, которая его запрашивает. Всякий раз, когда пользователь в такой системе получает запрос и вводит пароль своей учетной записи, который, по словам Мартеля, часто является слабым или не существует, безопасность всей системы может быть поставлена под угрозу. Ограничение полномочий root не является чем-то беспрецедентным для macOS. Так, например, версия MacOS предшествующего Mac OS X Leopard обеспечивать уровень 1 в уровне защиты, функция безопасности, которая берет свое начало в BSD и его производных, на которых Macos частично на основе.
Защита целостности системы включает в себя следующие механизмы:
Защита целостности системы защищает системные файлы и каталоги, помеченные для защиты. Это происходит либо путем добавления расширенного атрибута файла к файлу или каталогу, либо путем добавления файла или каталога к нему, /System/Library/Sandbox/rootless.conf
либо и того, и другого. Среди защищенных каталогов являются: /System
, /bin
, /sbin
, /usr
(но не /usr/local
). Символические ссылки с /etc
, /tmp
и /var
к /private/etc
, /private/tmp
а /private/var
также защищены, хотя целевые каталоги сами не защищены. Большинство предустановленных приложений Apple /Applications
также защищены. Ядро, XNU, останавливает все процессы без специальных разрешений от изменения разрешений и содержимого помеченных файлов и каталогов, а также предотвращает инъекцию коды, прикрепление выполнения и DTrace в отношении защищаемых исполняемых файлов.
Начиная с OS X Yosemite, расширения ядра, такие как драйверы, должны быть подписаны кодом с определенным правом Apple. Разработчики должны запросить у Apple ID разработчика с таким правом. Ядро отказывается загружаться, если присутствуют неподписанные расширения, вместо этого показывая пользователю знак запрета. Этот механизм, получивший название «подписывание kext», был интегрирован в систему защиты целостности системы.
Защита целостности системы также очищает определенные переменные среды при вызове системных программ, когда действует протокол SIP. Например, SIP будет очищать LD_LIBRARY_PATH и DYLD_LIBRARY_PATH перед вызовом системной программы, такой как / bin / bash, чтобы избежать внедрения кода в процесс Bash.
Каталоги, защищенные SIP по умолчанию, включают:
/System
/sbin
/bin
/usr
/Applications
/usr
защищен за исключением /usr/local
подкаталога. /Applications
защищен для приложений, предустановленных с Mac OS, таких как Календарь, Фотографии, Safari, Терминал, Консоль, Магазин приложений и Заметки.
Защита целостности системы может быть отключена (полностью или частично) только вне системного раздела. Для этого Apple предоставляет csrutil
утилиту командной строки, которую можно запустить из окна Терминала в системе восстановления или с загрузочного установочного диска MacOS, который добавляет аргумент загрузки в NVRAM устройства. Этот параметр применяется ко всем установкам El Capitan или macOS Sierra на устройстве. После установки macOS программа установки перемещает все неизвестные компоненты из отмеченных системных каталогов в /Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/
. За счет предотвращения доступа на запись в системные каталоги права доступа к системным файлам и каталогам автоматически поддерживаются во время обновлений программного обеспечения Apple. В результате восстановление разрешений недоступно в Дисковой утилите и соответствующей diskutil
операции.
Получение защиты целостности системы было неоднозначным. Macworld выразил обеспокоенность тем, что Apple может забрать полный контроль у пользователей и разработчиков в будущих выпусках и постепенно переместить политику безопасности macOS в сторону политики безопасности мобильной операционной системы Apple iOS, после чего для установки многих утилит и модификаций потребуется взлом. Некоторые приложения и драйверы не будут работать в полной мере или не будут работать вообще, если функция не отключена, временно или навсегда. Ars Technica предположила, что это может непропорционально затронуть мелких разработчиков, поскольку более крупные могут работать с Apple напрямую. Однако они также отметили, что у большинства пользователей, включая опытных, не будет причин отключать эту функцию, заявив, что у нее «почти нет недостатков».