Защита целостности системы (SIP) - это общая политика безопасности, целью которой является предотвращение изменения системных файлов и процессов третьими лицами. Чтобы достичь этого, он имеет следующие концепции:
- Защита файловой системы
- Защита расширения ядра
- Защита во время выполнения
Защита файловой системы
SIP не позволяет сторонам, кроме Apple, добавлять, удалять или изменять каталоги и файлы, хранящиеся в определенных каталогах:
/bin
/sbin
/usr
/System
Apple указала, что разработчикам доступны следующие каталоги:
/usr/local
/Applications
/Library
~/Library
Все каталоги, /usr
кроме /usr/local
, защищены SIP.
Можно добавлять, удалять или изменять SIP-защищенные файлы и каталоги с помощью пакета установщика, который подписан собственным центром сертификации Apple. Это позволяет Apple вносить изменения в части ОС, защищенные SIP, без необходимости изменения существующих защит SIP.
Соответствующий центр сертификации зарезервирован Apple для собственного использования; Пакеты установщика, подписанные ID разработчика, не могут изменять файлы или каталоги, защищенные SIP.
Чтобы определить, какие каталоги защищены, Apple в настоящее время определила два файла конфигурации в файловой системе. Основной находится в расположении ниже:
/System/Library/Sandbox/rootless.conf
где rootless.conf
перечисляет все приложения и каталоги верхнего уровня, которые защищает SIP.
Приложения
SIP защищает основные приложения, которые OS X устанавливает в приложения и служебные программы. Это означает, что больше не будет возможности удалять приложения, которые устанавливает OS X, даже из командной строки при использовании привилегий root.
Справочники
SIP также защищает ряд каталогов и символических ссылок за пределами, /Applications
а верхний уровень этих каталогов также указан в rootless.conf
.
В дополнение к защите Apple также определила некоторые исключения для защиты SIP в файле rootless.conf, и эти исключения отмечены звездочками. Эти исключения из защиты SIP означают, что в этих местах можно добавлять, удалять или изменять файлы и каталоги.
Среди этих исключений следующие:
/System/Library/User Template
- где OS X хранит каталоги шаблонов, которые он использует при создании домашних папок для новых учетных записей.
/usr/libexec/cups
- где OS X хранит информацию о конфигурации принтера
Apple считает этот файл своим, и любые изменения третьих сторон будут перезаписаны Apple.
Чтобы увидеть, какие файлы были защищены SIP, используйте ls
команду с тире заглавной O в терминале:
ls -O
Файлы, защищенные SIP, будут помечены как ограниченные .
Важно знать, что даже если символическая ссылка защищена SIP, это не обязательно означает, что каталог, на который они ссылаются, защищен SIP. На корневом уровне загрузочного диска OS X El Capitan есть несколько символических ссылок, защищенных SIP, которые указывают на каталоги, хранящиеся в корневом каталоге с именем private
.
Однако, когда содержимое private
каталога проверяется, каталоги, на которые указывают эти символические ссылки, не защищены SIP, и они и их содержимое могут быть перемещены, отредактированы или изменены процессами, использующими привилегии root.
В дополнение к списку исключений SIP, которые были установлены Apple rootless.conf
, существует второй список исключений SIP. Этот список включает в себя ряд каталогов и имен приложений для сторонних продуктов. Аналогично rootless.conf
, этот список исключений является Apple, и любые изменения третьих сторон будут перезаписаны Apple.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Защита во время выполнения
Защита SIP не ограничивается защитой системы от изменений файловой системы. Есть также системные вызовы, которые сейчас ограничены в своей функциональности.
- task_for_pid () / processor_set_tasks () завершается ошибкой с EPERM
- Специальные порты Маха сбрасываются на exec (2)
- переменные окружения dyld игнорируются
- Датчики DTrace недоступны
Однако SIP не блокирует проверку разработчиком своих собственных приложений во время их разработки. Инструменты Xcode по-прежнему позволяют проверять и отлаживать приложения в процессе разработки.
Для получения более подробной информации об этом, я бы порекомендовал взглянуть на документацию Apple для разработчиков SIP .
Защита расширения ядра
SIP блокирует установку неподписанных расширений ядра. Чтобы установить расширение ядра в OS X El Capitan с включенным SIP, расширение ядра должно:
- Быть подписанным с ID разработчика для подписи сертификата Kexts
- Установить в / Библиотека / Расширения
При установке неподписанного расширения ядра, SIP нужно будет сначала отключить.
Для получения дополнительной информации об управлении SIP, пожалуйста, взгляните на ссылку ниже:
Защита целостности системы - добавление еще одного уровня в модель безопасности Apple
sudo
и запрос пароля работал как обычно / ранее / ожидаемый. Так что, вероятно, ответ «в большинстве случаев вы не заметите; когда вы это сделаете, вы заметите трудно».