Привратник и Песочница — ангелы маковского апокалипсиса

В наступающем июле случится неизбежное. Однажды комплекс мер безопасности iPhone OS, вопреки прогнозам умных людей, доказал свою эффективность. За четыре года пользователи iOS установили на свои устройства более 30 миллиардов приложений сторонних разработчиков, но до сих пор неизвестно ни об одной успешной атаке на невзломанные iOS-устройства.

В июле 2012 года этот комплекс приходит на Маки, вместе с OS X v. 10.8 «Горный лев». Это конец света, маковский апокалипсис. Или начало чего-то нового?

apokalypsisFront

Меры по обеспечению безопасности всегда неприятны, но реальность не оставляет нам выбора. Мы оснащаем двери хитрыми замками, устанавливаем сигнализацию, пристёгиваемся ремнями безопасности, терпеливо дожидаемся у перехода разрешающего сигнала светофора.

Глобальная сеть и бессовестные люди превратили цифровую жизнь законопослушного пользователя в путешествие по опасному кварталу, где за путешественником следят недобрые глаза, выискивая момент для нападения.

iOS

Когда Apple открыла iOS (тогда еще iPhone OS) для сторонних разработчиков, к ужасу поклонников и на радость ненавистникам, правила создания программ и их размещения на полках эксклюзивного онлайнового магазина App Store показались беспрецедентно жёсткими.

Тогда же производителей цифровой нечисти, фактически, признали победителями. Ни одно из средств защиты от злонамеренного программного обеспечения не гарантирует стопроцентной безопасности. Атакующий знает, где и как он будет атаковать, и может сосредоточить все свои силы в нужном месте.

DSC001511

Защищающему приходится прикрывать все возможные лазейки в охраняемом объекте, и даже уважаемому эксперту по имени Ёжик понятно, что пользователь, хранящий на своём устройстве ключи от банковских счетов и личные данные о друзьях и себе, обречен быть обворованным. Если это не iOS-устройство.

Оборона iOS состоит из нескольких эшелонов, каждый из которых, взятый по отдельности, не может гарантировать безопасность, но вместе они превращаются в труднопреодолимое препятствие. Все программы в App Store тщательно и квалифицированно проверяются. Даже проверяющие не могут внести изменения в программу — она защищена от этого электронной подписью автора.

Для того, чтобы отправить программу на проверку, автор должен быть официальным членом «клуба» iOS Developer Program. Членство платное (99 долларов), но соискателю может быть отказано в приёме в этот клуб.

Проверенные программы, написанные неслучайными людьми, при определённых условиях становятся опасны: программ без ошибок не бывает, а сбои программы, вызванные ими, часто превращаются в лазейки для враждебного проникновения. Если проникновение случилось, в бой вступает последний эшелон защиты — Песочница (Sandbox). Её задача — свести к минимуму, а то и к нулю, ущерб от случившегося.

Из всех мер безопасности, Песочница самая болезненная и неприятная. Программе выделяется для её нужд участок диска или SSD, недоступный никому, кроме неё, а программе недоступны все другие области постоянной памяти. Из-за этого многие действия, понятные прежде даже уважаемому эксперту Ёжику, усложняются, но Песочница выполняет свою задачу.

Это еще не все ужасы самой виртуальной тюрьмы на свете (App Store с точки зрения разработчиков), но мы на этом остановимся. В iOS описанные меры безопасности применяются с самого первого дня, и все, кто пишет для этой системы, учитывают существующие ограничения: к ним быстро привыкаешь.

OS X

Оставить без внимания разгул цифровой нечисти (жертвами которой всё чаще становятся пользователи Маков) нельзя. Интересно, какой из двух доступных вариантов выбрали бы вы? Применили бы опыт успешного решения неразрешимой проблемы ценой фактического разрушения одной из лучших операционных систем в мире? Или воздержались бы от этого шага, с безумным бесстрашием глядя в глаза опасности, сохранив бесценный артефакт?

На Apple выбрали самый безумный вариант: успешный опыт применить, операционную систему сохранить (насколько возможно). Пользователь вообще не должен ничего заметить. Люди несовершенны, эксцессы неизбежны, особенно на первых порах, пользователи их заметят, но похоже, у очередного безумия Apple есть шанс.

sandbox_1042

Первый ангел маковского апокалипсиса — Песочница — появился еще в прошлой большой версии OS X. Во многом песочница в OS X похожа на песочницу в iOS, но она другая. Руководство Apple решило воздержаться от её принудительного применения в OS X. Это условно добровольный выбор. Если программа предназначена для Mac App Store, песочница в ней должна быть включена.

А новорожденная песочница в OS X даже строже, чем её аналог в iOS, в ней запрещен не только доступ к файловой системе за пределами собственного участка памяти, но и доступ к сети, к контактам, к iTunes и много к чему ещё. Проникнув в систему с помощью уязвимости программы с такой песочницей, злоумышленники не смогут ничего украсть.

Если программе нужен доступ к файлам за пределами Песочницы, его можно разрешить (разрешения на доступ к сервисам Песочницы витиевато называются «entitlements», (читается как «интайтлментс» — в старину так называли владения, пожалованные дворянину его сюзереном), только на чтение, только на запись, или сразу и на то, и на другое. Если нужен доступ к сети — его можно разрешить, и тоже раздельно. Инайтлментов предусмотрено много.

no-restrictions

OS X — царство средств автоматизации: AppleScript, Automator, скрипты UNIX. Песочница из iOS, в её нынешней инкарнации, с ними несовместима. В OS X 10.8, в зависимости от способа применения скриптов, они либо просто работают, либо потребуют от авторов относительно небольшой доработки (цифровой подписи, заверенной Apple: разработчикам скриптов придётся вступать в Mac Developer Program!).

Второй ангел маковского апокалипсиса, технология (архитектура) Gatekeeper (Привратник), мягко выводит из игры разработчиков, которые всё еще не вступили в Mac Developer Program (правила приёма те же, что и в iOS Developer Program).

gatekeeper

Gatekeeper — это антивирус наоборот. Вместо того, чтобы сканировать программы и документы на предмет обнаружения признаков злонамеренности, известных к моменту поиска, Привратник разрешает запуск исключительно программ, которые ему известны как «хорошие программы». Это касается и других форм «опасного контента», например, скриптов, загруженных из Cети.

К «хорошим программам» относятся программы, созданные на этом компьютере, программы, поставляемые в составе операционной системы, и приобретенные в Mac App Store. В самом строгом режиме — только они.

В режиме «по умолчанию», к этому списку добавляются программы, подписанные участниками Mac Developer Program, решившими не размещать свою продукцию в Mac App Store, и не подвергать её проверке, и делать в ней всё, что угодно, как в старые добрые времена.

Размещение программы в любом из App Store намного хлопотнее, эти программы проверяются, им запрещены многие естественные вещи — зато за всё отвечает Apple:

mac-app-store-app

Члены клуба Mac Developer Program, кроме обычных ключей для размещения программы в App Store, теперь получают на портале разработчиков еще один ключ, Developer ID, дающий право обойтись без помощи Apple при приёмке и распространении программы, при этом программа попадает в список «хороших программ»:

developer-id-app

У Привратника три режима: очень строгий, строгий и «всё по барабану». В третьем случае OS X 10.8, как и все версии системы до неё, разрешает запускать всё. Но это, почему-то, уже не кажется хорошей идеей, не правда ли?