Gatekeeper — это функция безопасности операционной системы macOS от Apple . [1] [2] Она обеспечивает подпись кода и проверяет загруженные приложения перед их запуском, тем самым снижая вероятность непреднамеренного запуска вредоносного ПО . Gatekeeper основан на File Quarantine , который был представлен в Mac OS X Leopard (10.5) и расширен в Mac OS X Snow Leopard (10.6). [3] [4] Функция появилась в версии 10.7.3 Mac OS X Lion как утилита командной строки spctl . [5] [6] Графический пользовательский интерфейс изначально был добавлен в OS X Mountain Lion (10.8), но был перенесен в Lion с обновлением 10.7.5. [7]
На панели «Безопасность и конфиденциальность» в Системных настройках пользователю доступны три опции, разрешающие загрузку приложений из:
Утилита командной строки spctl обеспечивает детальное управление, например, настраиваемые правила и индивидуальные или общие разрешения, а также возможность отключить Gatekeeper. [6]
При загрузке приложения к загруженному файлу может быть добавлен определенный расширенный атрибут файла («флаг карантина»). [10] Этот атрибут добавляется приложением, которое загружает файл, например веб-браузером или почтовым клиентом , но обычно не добавляется обычным программным обеспечением клиента BitTorrent , например Transmission , и разработчикам приложений необходимо реализовать эту функцию в своих приложениях, и она не реализована системой. Система также может принудительно навязывать такое поведение отдельным приложениям с помощью системы на основе сигнатур под названием Xprotect. [11]
Когда пользователь пытается открыть приложение с таким атрибутом, система откладывает выполнение и проверяет, что оно:
Начиная с Mac OS X Snow Leopard, система ведет два черных списка для идентификации известных вредоносных программ или небезопасного программного обеспечения. Черные списки периодически обновляются. Если приложение занесено в черный список, то File Quarantine откажется открывать его и порекомендует пользователю перетащить его в корзину . [11] [12]
Gatekeeper откажется открывать приложение, если требования по подписи кода не выполнены. Apple может отозвать сертификат разработчика, которым было подписано приложение, и предотвратить дальнейшее распространение. [1] [3]
После того, как приложение прошло File Quarantine или Gatekeeper, ему будет разрешено работать в обычном режиме, и оно не будет проверяться снова. [1] [3]
Чтобы переопределить Gatekeeper, пользователь (действующий как администратор) должен либо переключиться на более мягкую политику на панели «Безопасность и конфиденциальность» в Системных настройках, либо разрешить ручное переопределение для конкретного приложения, открыв приложение из контекстного меню или добавив его с помощью spctl . [1]
Разработчики могут подписывать образы дисков , которые могут быть проверены системой как единое целое. В macOS Sierra это позволяет разработчикам гарантировать целостность всех упакованных файлов и не допускать их заражения и последующего распространения злоумышленниками. Кроме того, «рандомизация пути» запускает пакеты приложений из случайного скрытого пути и не позволяет им получать доступ к внешним файлам относительно их местоположения. Эта функция отключается, если пакет приложения был создан из подписанного пакета установщика или образа диска или если пользователь вручную переместил приложение без каких-либо других файлов в другой каталог. [8]
Эффективность и обоснованность Gatekeeper в борьбе с вредоносным ПО были признаны, [3] но были встречены с оговорками. Исследователь безопасности Крис Миллер отметил, что Gatekeeper будет проверять сертификат разработчика и сверяться со списком известных вредоносных программ только при первом открытии приложения. Вредоносное ПО, которое уже прошло Gatekeeper, не будет остановлено. [13] Кроме того, Gatekeeper будет проверять только приложения, имеющие флаг карантина. Поскольку этот флаг добавляется другими приложениями, а не системой, любое пренебрежение или невыполнение этого не приводит к срабатыванию Gatekeeper. По словам блогера по безопасности Томаса Рида, клиенты BitTorrent часто нарушают это. Флаг также не добавляется, если приложение пришло из другого источника, например, из сетевых папок и USB-флешек . [10] [13] Также были подняты вопросы о процессе регистрации для получения сертификата разработчика и перспективе кражи сертификата. [14]
В сентябре 2015 года исследователь безопасности Патрик Уордл написал о другом недостатке, который касается приложений, которые распространяются с внешними файлами, такими как библиотеки или даже HTML- файлы, которые могут содержать JavaScript . [8] Злоумышленник может манипулировать этими файлами и через них эксплуатировать уязвимость в подписанном приложении. Затем приложение и его внешние файлы могут быть повторно распространены, при этом исходная подпись самого пакета приложения остается нетронутой. Поскольку Gatekeeper не проверяет такие отдельные файлы, безопасность может быть скомпрометирована. [15] Благодаря рандомизации путей и подписанным образам дисков Apple предоставила механизмы для смягчения этой проблемы в macOS Sierra. [8]
В 2021 году была обнаружена уязвимость, при которой размещение #!
в первой строке (без пути интерпретатора ) файла обходило Gatekeeper. [16]
В 2022 году исследователь Microsoft поделился уязвимостью, которая использует формат AppleDouble для установки произвольного списка контроля доступа с целью обхода Gatekeeper. [17]
{{cite web}}
: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )