Защита целостности системы - System Integrity Protection

Защита целостности системы
Уровни безопасности, присутствующие в macOS
Уровни безопасности, присутствующие в macOS
Разработчики)Apple Inc.
изначальный выпуск16 сентября 2015 г.; 5 лет назад (2015-09-16)
Операционная системаmacOS
Включено вOS X El Capitan (OS X 10.11) и новее
ТипПрограммное обеспечение компьютерной безопасности
Интернет сайтразработчик.яблоко.com/библиотека/архив/документация/Безопасность/ Концептуальный/Система_Честность_Защита_Гид/Вступление/Вступление.html

Защита целостности системы (ГЛОТОК,[1] иногда упоминается как безродный[2][3]) является функцией безопасности яблоко с macOS Операционная система введено в OS X El Capitan (2015) (OS X 10.11). Он включает в себя ряд механизмов, которые применяются ядро. Центральным элементом является защита принадлежащих системе файлы и каталоги от модификаций процессами без определенных «прав», даже если они выполняются пользователь root или пользователь с привилегии root (судо ).

Apple утверждает, что пользователь root может быть значительным фактором риска для безопасности системы, особенно в системах с одним учетная запись пользователя на котором этот пользователь также является администратором. SIP включен по умолчанию, но его можно отключить.[4][5]

Обоснование

Apple заявляет, что защита целостности системы - необходимый шаг для обеспечения высокого уровня безопасности. В одном из WWDC сессии разработчиков, инженер Apple Пьер-Оливье Мартель описал неограниченное корневой доступ в качестве одной из оставшихся слабых сторон системы, говоря, что «[любая] вредоносная программа - это один пароль или уязвимость от получения полного контроля над устройством ". Он заявил, что большинство установок macOS имеют только одну учетную запись пользователя, которая обязательно содержит учетные данные администратора, а это означает, что большинство пользователей могут предоставить root-доступ любой программе, которая его запрашивает. в такой системе запрашивается и вводится пароль учетной записи, который, по словам Мартеля, часто является слабым или не существует, безопасность всей системы может быть поставлена ​​под угрозу.[4] Ограничение полномочий root не является чем-то беспрецедентным для macOS. Например, версии macOS до Mac OS X Leopard принуждать 1-й уровень из уровень безопасности, функция безопасности, созданная в BSD и его производные, на которых частично основана macOS.[6]

Функции

Запрещенный знак (кружок с пересекающей его единственной линией), который отображается во время процесса загрузки, когда системе не разрешено продолжать работу.
"запрещающий символ "[7] отображается, когда macOS не разрешено выполнять процесс загрузки. Это может произойти, если включена функция «подписывание kext» и пользователь установил неподписанный расширение ядра.

Защита целостности системы включает в себя следующие механизмы:

Защита целостности системы защищает системные файлы и каталоги, помеченные для защиты. Это происходит либо путем добавления расширенный атрибут файла в файл или каталог, добавив файл или каталог в /System/Library/Sandbox/rootless.conf или оба. Среди защищенных каталогов: /Система, / bin, / sbin, / usr (но нет / usr / местный).[8] Символические ссылки из /так далее, / tmp и / var к / частный / и т. д., / частный / tmp и / частный / var также защищены, хотя целевые каталоги сами не защищены. Большинство предустановленных приложений Apple в /Приложения также защищены.[1] В ядро, XNU, останавливает все процессы без определенных прав от изменения разрешений и содержимого помеченных файлов и каталогов, а также предотвращает внедрение кода, вложение во время выполнения и DTrace в отношении защищенных исполняемые файлы.[9]

С OS X Йосемити, расширения ядра, такие как водители, должен быть кодовая подпись с определенным правом Apple. Разработчики должны запросить у Apple ID разработчика с таким правом.[10] Ядро отказывается ботинок если присутствуют неподписанные расширения, показывая пользователю запрещающий знак вместо. Этот механизм, называемый «подписью kext», был интегрирован в систему защиты целостности системы.[4][11]

Защита целостности системы также будет очищать определенные переменные среды при вызове системных программ, когда действует протокол SIP. Например, SIP очистит LD_LIBRARY_PATH и DYLD_LIBRARY_PATH перед вызовом системной программы, например / bin / bash чтобы избежать внедрения кода в процесс Bash.[12]

Конфигурация

Защита целостности системы может быть отключена (полностью или частично) только вне системный раздел. С этой целью Apple предоставляет csrutil утилита командной строки который может быть выполнен из Терминал окно в система восстановления или загрузочный установочный диск macOS, который добавляет аргумент загрузки к NVRAM. Это применяется ко всем установкам El Capitan или macOS Sierra на устройстве.[4] После установки macOS программа установки перемещает все неизвестные компоненты из отмеченных системных каталогов в / Библиотека / SystemMigration / History / Migration- [UUID] / QuarantineRoot /.[1][4] Предотвращая доступ для записи к системным каталогам разрешения для системных файлов и каталогов сохраняются автоматически во время обновлений программного обеспечения Apple. Как результат, разрешение на ремонт недоступен в Дисковая утилита[13] и соответствующие diskutil операция.

Прием

Получение защиты целостности системы было неоднозначным. Macworld выразил обеспокоенность тем, что Apple может забрать полный контроль у пользователей и разработчиков в будущих выпусках и постепенно переместить политику безопасности macOS в сторону политики безопасности Apple. мобильная операционная система iOS, при этом установка многих утилит и доработок требует взлом.[2][14] Некоторые приложения и драйверы не будут работать в полной мере или не будут работать вообще, если функция не будет отключена временно или навсегда. Ars Technica предположил, что это может непропорционально сильно повлиять на мелких разработчиков, поскольку более крупные могут работать с Apple напрямую. Однако они также отметили, что большинство пользователей, включая опытные пользователи, не будет причин отключать эту функцию, заявив, что у нее «почти нет недостатков».[1]

Смотрите также

Рекомендации

  1. ^ а б c d Каннингем, Эндрю; Хатчинсон, Ли (29 сентября 2015 г.). «OS X 10.11 El Capitan: обзор Ars Technica - защита целостности системы». Ars Technica. Получено 29 сентября, 2015.
  2. ^ а б Каннингем, Эндрю (17 июня 2015 г.). «Первый взгляд: OS X El Capitan приносит в Йосемити маленького снежного барса». Ars Technica. Получено 18 июня, 2015.
  3. ^ Сливка, Эрик (12 июня 2015 г.). «OS X El Capitan открывает дверь для поддержки TRIM на твердотельных накопителях сторонних производителей для повышения производительности». MacRumors. Получено 18 июня, 2015.
  4. ^ а б c d е Мартель, Пьер-Оливье (июнь 2015 г.). «Безопасность и ваши приложения» (PDF). Разработчик Apple. С. 8–54. В архиве (PDF) с оригинала 23 апреля 2016 г.. Получено 30 сентября, 2016.
  5. ^ «Настройка защиты целостности системы». Библиотека разработчика Mac. яблоко. 16 сентября 2015 года. В архиве с оригинала 17 августа 2016 г.. Получено 30 сентября, 2016.
  6. ^ Гарфинкель, Саймон; Спаффорд, Джин; Шварц, Алан (2003). Практическая UNIX и безопасность в Интернете. O'Reilly Media. С. 118–9. ISBN  9780596003234.
  7. ^ «Об экранах, которые вы видите при запуске Mac». Служба поддержки Apple. 13 августа 2015 года. В архиве с оригинала 21 апреля 2016 г.. Получено 30 сентября, 2016.
  8. ^ «О защите целостности системы на вашем Mac». Служба поддержки Apple. 30 мая 2016 года. В архиве с оригинала 20 марта 2016 г.. Получено 30 сентября, 2016.
  9. ^ «Что нового в OS X - OS X El Capitan v10.11». Библиотека разработчика Mac. Яблоко. В архиве из оригинала 4 марта 2016 г.. Получено 30 сентября, 2016. Внедрение кода и вложение времени выполнения в системные двоичные файлы больше не разрешены.
  10. ^ «Расширения ядра». Библиотека разработчика Mac. Яблоко. 16 сентября 2015 года. В архиве с оригинала 17 августа 2016 г.. Получено 29 сентября, 2016.
  11. ^ «Обрезка в Йосемити». Синдори. Получено 18 июня, 2015.
  12. ^ Уолтон, Джеффри (28 марта 2020 г.). «Патч для Nettle 3.5.1 и OS X 10.12». жуки крапивы (Список рассылки). Получено 13 июля 2020.
  13. ^ «Примечания к выпуску OS X El Capitan Developer Beta 2». Библиотека разработчика Mac. Яблоко. 22 июня 2015 г. В разделе «Примечания и известные проблемы». В архиве с оригинала 26 июня 2015 г.. Получено 29 июня, 2015.
  14. ^ Флейшман, Гленн (15 июля 2015 г.). «Частный I: Защита целостности системы El Capitan изменит функции коммунальных служб». Macworld. Получено 22 июля, 2015.

внешняя ссылка