Захист цілісності системи (SIP) - це загальна політика безпеки з метою запобігання зміні системних файлів і процесів сторонніми сторонами. Для цього у нього є такі поняття:
- Захист файлової системи
- Захист розширення ядра
- Захист від виконання
Захист файлової системи
SIP не дозволяє сторонам, окрім Apple, додавати, видаляти або змінювати каталоги та файли, що зберігаються в певних каталогах:
/bin
/sbin
/usr
/System
Apple вказала, що розробникам доступні такі каталоги:
/usr/local
/Applications
/Library
~/Library
Усі каталоги, /usr
крім /usr/local
них, захищені SIP.
Можна додавати, видаляти або змінювати файли та каталоги, захищені SIP, через пакет встановлення, який підписується власною службою сертифікації Apple. Це дозволяє Apple вносити зміни до захищених SIP частин ОС, не потребуючи змін існуючих SIP-захистів.
Орган, щодо якого йдеться про сертифікат, зберігається компанією Apple для власного використання; Пакети встановлення, підписані ідентифікатором розробника, не можуть змінювати файли або каталоги, захищені 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 () / Process_set_tasks () не вдається з EPERM
- Спеціальні порти Mach скидаються на exec (2)
- змінні змінного середовища ільдо ігноруються
- Зонди DTrace недоступні
Однак SIP не блокує перевірку розробником власних додатків під час їх розробки. Інструменти Xcode надалі дозволятимуть інспектувати та налагоджувати програми під час процесу розробки.
Для більш детальної інформації про це я рекомендую ознайомитися з документацією розробника Apple для SIP .
Захист розширення ядра
SIP блокує встановлення безпідписаних розширень ядра. Для того щоб встановити розширення ядра на OS X El Capitan з включеним SIP, розширення ядра повинно:
- Будьте підписані ідентифікатором розробника для підпису сертифіката Kexts
- Встановити в / Бібліотека / Розширення
Якщо встановити непідписане розширення ядра, потрібно спочатку відключити SIP.
Для отримання додаткової інформації щодо управління SIP, перегляньте посилання нижче:
Захист цілісності системи - додавання ще одного шару до моделі безпеки Apple
sudo
і запит пароля працювали як нормально / раніше / очікувалося. Тож, ймовірно, відповідь "більшу частину часу ви не помітите; коли це зробите, ви помітите важко".