Как песочница приложений macOS защищает пользователей

Введенная в 2007 году и обязательная с 2012 года, песочница — это инструмент, используемый macOS для ограничения ущерба, который может нанести захваченное приложение. Apple говорит: «Хотя песочница приложений не предотвращает атаки на ваше приложение, она минимизирует ущерб, который может быть причинен в случае успешной атаки. Песочница приложений macOS защищает пользователей, ограничивая, сколько проблем может создать приложение.
Также читайте: 4 лучших приложения песочницы для Windows, чтобы обеспечить вашу безопасность
Что такое песочница приложений macOS?
Каждое приложение получает свою собственную область для работы: «песочницу». Если приложение хочет выйти за пределы своей песочницы, ему нужно запросить разрешение у операционной системы. В зависимости от настроек песочницы ОС либо отклонит, либо одобрит запрос приложения, предоставляя как можно менее конкретную информацию для выполнения запроса.

Представьте себе автомобиль. Водитель защищен множеством функций безопасности, таких как антиблокировочная система тормозов, подушки безопасности, зоны деформации и многое другое. В 2007 году, когда была введена песочница приложений, аналогичных компьютерных систем не существовало. Как спрашивалась в вводной презентации, где были ремни безопасности для компьютеров? Песочница защищает пользователей так же, как автомобили защищают своих водителей: встречая сбои с системами снижения ущерба. Независимо от того, вызваны ли они злонамеренной деятельностью или ошибками в коде, ущерб снижается.
Поскольку песочница ограничивает, что могут делать приложения, это может ограничить свободу разработчиков. Приложения в песочнице работают медленнее и требуют больше времени на разработку. Благодаря огромным возможностям Mac, ограничения песочницы могут значительно повлиять на совместимость различных приложений. В результате опытные пользователи часто выбирают приложения, работающие вне песочницы, либо из-за производительности, либо из-за проблем с функциональностью.
Как работает песочница приложений?
Песочница основана на принципе наименьших привилегий. Короче говоря, системы могут делать то, что им нужно, но не более того. Ограничивая каждую часть системы выполнением только своей заявленной цели, вы снижаете вероятность захвата вашего приложения. Например, нет причин, чтобы приложение фонарика имело доступ к вашему списку контактов.
Приложения могут выходить за пределы своей песочницы, но только с разрешения операционной системы. Возьмите, к примеру, диалоговое окно «Сохранить и открыть» в macOS. Приложение, находясь в своей песочнице, не может напрямую получить доступ к ресурсам файловой системы на вашем жестком диске. Оно не может, например, открыть панель в «~/Documents». Вместо этого приложение должно запросить у API Powerbox с помощью классов NSOpenPanel и NSSavePanel доступ к панели.

Приложение не может видеть, что происходит внутри Powerbox напрямую. Только открытый или сохраненный файл будет доступен приложению. Таким образом, приложения могут выполнять критически важные функции без ненужного риска.
Эта функциональность обеспечивается правами (в частности, com.apple.security.files.user-selected.read-write). Разработчики приложений устанавливают права, которые объявляют, что делает приложение. На основе заявленных прав операционная система разрешает приложению соответствующий уровень функциональности с ограничениями.
Этот мыслительный процесс лежит в основе всей модели и механизма песочницы приложений: приложения должны заявлять намерение и запрашивать разрешение у уровня ОС, чтобы выполнить что-либо опасное.
Песочничные приложения против непесочничных приложений
С 1 июня 2012 года все сторонние приложения, распространяемые через Mac App Store, должны быть в песочнице. Хотя песочница позволяет широкий спектр функциональности приложений, вы обнаружите, что приложения Mac App Store часто более ограничены, чем их непесочничные компоненты. Некоторые разработчики даже поддерживают две версии: полнофункциональное приложение для прямой загрузки и ограниченную версию для Mac App Store. Благодаря большей сложности разработки песочницы добавление новой функциональности в приложение становится более трудным — если эта функциональность вообще разрешена ОС.
Хотя песочничные приложения могут получить выгоду от распространения через Mac App Store, вы можете догадаться, насколько мы считаем это ценным. Песочницу также можно расширить с помощью разрешений безопасности. Хотя приложение не может самостоятельно включить разрешения доступности, оно может попросить пользователя сделать это.

Чтобы увидеть, какие из ваших приложений находятся в песочнице, откройте Монитор активности и щелкните правой кнопкой мыши по заголовкам столбцов, чтобы добавить «Песочница» в окно.

Существуют некоторые приложения, которые просто никогда не могут существовать в песочнице. На самом деле, множество ценных случаев использования предотвращается песочницей. Песочница предотвращает межприложенческое взаимодействие, наблюдение или модификацию, значительно ограничивая, как приложения могут взаимодействовать. Системные ярлыки, такие как TextExpander, полностью запрещены, поскольку такой уровень функциональности не может быть разрешен песочницей.
Заключение
Хотя обещающая, песочница приложений macOS не была реализована должным образом. Она ограничила уникальные торговые предложения приложений Mac, такие как скорость и улучшенная функциональность. Приложения, работающие вне песочницы, почти всегда более способны и быстрее. С точки зрения опытного пользователя, мои самые используемые приложения не находятся в песочнице. Приложения, такие как TextExpander, SnagIt и TotalFinder, имеют решающее значение для моей повседневной работы. Чтобы избежать аналогичного широкого уклонения, будущие системы безопасности должны сочетать гибкость и мощность с прозрачностью.
Кредит изображения: Apple