Уже много лет macOS — отличный выбор как для повседневной работы, так и для творчества и для многих видов разработки. Но как обстоят дела с безопасностью? В этой статье рассмотрим механизмы защиты macOS и ответим на этот вопрос.
Еще по теме: Проксирование и перехват трафика приложений macOS
Механизмы защиты macOS
SIP
Раньше на «маках» пользователь с привилегиями администратора имел все те же возможности, что и root — «корневой» пользователь в Unix. Подтвердив команду вводом пароля, он мог, к примеру, изменять или удалять любые файлы в системе.
Это оставляло лазейку для вредоносного ПО: если убаюкать осторожность пользователя и заставить его ввести пароль, то дальше можно скрытно творить что угодно.
В OS X 10.11 El Capitan появилась система System Integrity Protection (SIP) — «защита целостности системы». На практике это реализованный на уровне ядра целый комплекс мер, который не дает затрагивать работу системы даже администратору.
Системные файлы и каталоги теперь под защитой — это реализовано как специальный расширенный атрибут у файла; запрещена инъекция кода в процессы, причем не только системные, но и другие; запрещена загрузка в ядро неподписанных расширений.
Конечно, бывают случаи, когда SIP мешает сделать что‑то нужное. Как любитель покопаться в системе, я спотыкаюсь об эту защиту регулярно с момента ее появления.
Отключить SIP возможно. Для этого нужно перезагрузить компьютер в режиме восстановления, открыть терминал и использовать утилиту csrutil. Затем еще одна перезагрузка, и еще две — чтобы потом включить SIP обратно (что все же рекомендуется делать).
Gatekeeper
Еще один механизм, призванный защитить «мак» от вирусов, называется Gatekeeper. Это система, которая, опираясь на базы данных Apple, распознает потенциально вредоносные файлы и препятствует их запуску.
Работает это вот как. Каждый скачанный файл помещается в карантин, получая соответствующий расширенный атрибут. При попытке запустить исполняемый файл, стоящий на карантине, система проверяет, не находится ли он в черном списке, есть ли у него подпись сертифицированного разработчика, и если да, то не изменено ли содержимое файла.
В зависимости от результатов проверки система либо сразу запускает файл, либо отказывается это делать. Если проблема в отсутствии подписи, то это легко обойти — достаточно открыть файл через контекстное меню, а не двойным кликом.
Gatekeeper при желании можно полностью отключить одной командой, причем не требуется даже перезагрузка. Хоть это и облегчит жизнь, делать так не рекомендуется. Программы просто так не попадают в черные списки!
Secure Enclave
В «маках» с чипами серии M либо с процессорами Intel и дополнительными чипами серии T используется специальное аппаратное решение для надежного хранения и подтверждения ключей шифрования и биометрической информации — Secure Enclave.
Пользователю Secure Enclave не виден, взаимодействовать с ним напрямую никак нельзя. Зато система общается с ним каждый раз, когда ты подтверждаешь платеж или ввод пароля отпечатком пальца или разблокируешь компьютер при помощи Apple Watch.
App Sandbox
Отдельно от SIP и Gatekeeper существует механизм App Sandbox, который контролирует доступ сторонних приложений к пользовательским и системным файлам и папкам. Точнее, позволяет разработчикам самим ограничивать возможности приложений! Для программ, распространяемых через App Store, это необходимое условие, для загружаемых другими способами — опциональное.
Подключив App Sandbox в Xcode при сборке проекта, разработчик выбирает, какие функции могут понадобиться приложению: доступ к определенным папкам, сетевым протоколам, возможностям вроде Apple Pay. Приложение при работе будет просить пользователя подтвердить, что он разрешает использовать тот или иной ресурс.
РЕКОМЕНДУЕМ: