У безопасности как таковой есть одна печальная особенность — зачастую о ней вспоминают лишь тогда, когда думать о ней уже поздно. В мире мобильных девайсов ситуация выглядит еще более тревожно. Сегодня общественность хорошо осведомлена о последствиях взлома десктопных и веб-приложений, однако до сих пор мало кто задумывается о безопасности использования смартфонов и планшетов.

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

С точки зрения разработчиков основной риск безопасности — взлом их приложения и, как следствие, потеря клиентов и бизнеса. Если рассматривать способность мобильных приложений противостоять локальным и веб-атакам, то обе операционные системы находятся примерно в равных условиях. Следуя практикам безопасной разработки, разработчикам вполне под силу создать хорошо защищенное приложение и для Android, и для iOS.

Как правило, приложения для Android представляют собой программы, написанные на языке Java, который невосприимчив к атакам на переполнение буфера, в отличие от программ для iOS, написанных на Objective-C. Приложения для Android можно легко декомпилировать и изменить исходный код на вредоносный, поэтому разработчики должны применять техники обфускации кода.

Как уже говорилось, приложения, написанные на Objective-C, потенциально уязвимы к переполнению буфера, однако в арсенале iOS-разработчиков присутствуют необходимые механизмы, способные предотвратить успешную эксплуатацию таких уязвимостей. К таким механизмам, прежде всего, относятся параметры компиляции, такие как PIE (Position Independent Executable), SSP (Stack Smashing Protection) и ARC (Automatic Reference Counting). Данные параметры обеспечивают эффективное управление памятью и отсутствие ошибок, которые приводят к переполнениям буфера. В дополнение к этому на презентации восьмой версии iOS был представлен новый язык программирования Swift, призванный заменить собой Objective-C. По заявлениям компании Apple, новый язык является более простым в изучении и более безопасным, чем его предшественник. Не приведет ли появление нового языка программирования к появлению новых уязвимостей, мы сможем узнать уже ближе к концу 2014 г.

Таким образом, Android- и iOS-приложения могут быть одинаково хорошо защищенными, и вероятность взлома этих приложений напрямую зависит от мастерства разработчиков.

Безопасность рядовых пользователей мобильных девайсов зависит от безопасности мобильной ОС, которой они пользуются. Даже если на девайсе установлены только хорошо защищенные приложения, конечные пользователи все равно могут быть успешно атакованы через бреши в самой операционной системе. Если по критерию защищенности мобильных приложений обе ОС находятся на примерно одинаковом уровне, то с точки зрения безопасности самой системы Android и iOS значительно различаются между собой.

Прежде чем говорить о различиях в механизмах защиты двух ОС, стоит отметить наличие в них базовых принципов безопасности, таких как доступность системного раздела только для чтения и разграничение выполняемых процессов на уровне ядра. И в Android, и в iOS системный раздел не доступен для записи, что предотвращает случайное либо целенаправленное изменение файлов системы. Также в обоих ОС реализован принцип «песочницы» (sandbox). Это значит, что каждое приложение работает в изолированном контейнере и не имеет доступа к системным файлам либо ресурсам других приложений. В системе iOS почти все приложения выполняются под непривилегированным пользователем «mobile». В Android каждому приложению соответствует свой уникальный пользователь, что обеспечивает разграничение прав выполняемых приложений на уровне ядра операционной системы.

Основные различия в механизмах безопасности Android и iOS относятся к принципам разграничения доступа на уровне ядра, к процессу верификации загружаемого в магазины ПО и к принципам контроля прав доступа устанавливаемых приложений.

Перед тем, как появиться в магазине App Store, iOS-приложения тщательно проверяются на наличие уязвимостей и на соответствие стандартам разработки Apple. Также каждое приложение, устанавливаемое на iOS, должно быть подписано уникальным сертификатом программы «iOS Developer Program», который выдается компанией Apple только после необходимых верификаций разработчика. Описанные меры обеспечивают отсутствие вредоносного ПО в магазине приложений App Store.

Google не проверяет приложения перед загрузкой их в Google Play, но проводит регулярные сканирования своего магазина на предмет наличия потенциально вредоносного ПО. Такой подход компании Google может показаться достаточно небезопасным. И действительно, в магазине Google Play размещено большое количество потенциально вредоносного ПО (malware). Однако, согласно исследованиям компании Hewlett-Packard и соответствующему документу «HP Security Research Cyber Risk Report 2013», большинство таких программ на самом деле не несут в себе ничего вредоносного и на деле являются обычными рекламными приложениями.

Конечно же в магазине Google Play присутствуют и настоящие вредоносные приложения типа malware, но при должных пользовательских навыках можно полностью оградить себя от воздействия такого рода ПО. Дело в том, что при установке нового приложения на девайс под управлением Android пользователю показывается полный перечень прав доступа, требуемых данному приложению. По этому перечню пользователь может определить потенциально вредоносное ПО и отменить его установку. Например, если приложение «Фонарь» собирается запрашивать права на доступ к контактным данным либо на доступ к Интернету, то данное приложение с определенной долей вероятности можно отнести к вредоносному ПО.

В iOS раздача прав доступа приложениям реализована более гибко. Каждая категория доступа, будь то доступ к камере или к GPS, должна быть подтверждена либо отклонена пользователем.

А что насчет уязвимостей в самой операционной системе? Казалось бы, Android как полностью открытая ОС должна насчитывать огромное количество уязвимостей, найденных специалистами по всему миру. Однако iOS опережает Android по количеству известных уязвимостей (CVE), причем превосходство это довольно значительное: на середину 2014 г. iOS всех версий суммарно насчитывает 335 уязвимостей, тогда как Android только 36. Количество уязвимостей в операционной системе Apple, вероятно, продолжит расти, так как с презентацией бета-версии iOS 8 появились новые векторы для атаки: сторонние клавиатуры, множество новых API-вызовов в новом SDK и система управления «умным домом» HomeKit. Несмотря на такое большое количество уязвимостей, пользователям iOS не стоит беспокоиться о своей защищенности, так как Apple, как правило, закрывает новые уязвимости достаточно быстро.

Google, в свою очередь, делает упор на усиление безопасности своей операционной системы. В Android версии 4.4 появился модуль SELinux, который в принудительном режиме осуществляет контроль доступа на уровне ядра (в Android 4.3 SELinux по умолчанию отключен). Данный модуль работает независимо от базовой модели безопасности Linux, основанной на пользователях и группах.

Таким образом, в контексте собственной безопасности операционной системы победителем не является ни одна из двух ОС. И Android, и iOS имеют мощные механизмы защиты от хакерских атак, и обе компании, Google и Apple, уделяют безопасности своих систем повышенное внимание.

В последние годы активно растет число пользователей, которые используют свои личные мобильные девайсы для выполнения рабочих задач. Эта тенденция, получившая название BYOD (Bring Your Own Device), несет в себе определенные риски безопасности для корпораций. При помощи уязвимого либо просто утерянного смартфона или планшета злоумышленники могут получить несанкционированный доступ к секретной документации компании либо к ее внутренним ресурсам, например к почте. В связи с этим возникает потребность в использовании решений типа Mobile Device Management (MDM), позволяющих централизованно управлять политиками безопасности мобильных девайсов, работающих в сетях компании.

С точки зрения безопасности на уровне корпорации ОС от Apple имеет ряд преимуществ перед Android. iOS имеет в своем арсенале мощные средства для централизованного управления девайсами, такие как профили конфигурации, возможность удаленного полного сброса и встроенная поддержка сторонних MDM-решений. Android в чистом виде таких возможностей не имеет. Для интеграции с MDM-системами на Android необходимо предварительно устанавливать специальное ПО.

Стоит отдельно отметить, что компания Samsung ушла далеко вперед в вопросах корпоративной безопасности по сравнению с другими производителями девайсов на Android. Речь идет о программе SAFE (Samsung For Enterprise) и надстройке KNOX, которая представляет собой хорошо защищенный контейнер для всех рабочих активностей пользователей с поддержкой сторонних MDM-систем. Таким образом, все аппараты от Samsung, работающие на Android 4.3 и выше, полностью соответствуют принципам защищенного бизнеса. Тем не менее, Apple имеет гораздо меньшую линейку продуктов, нежели производители Android-девайсов, поэтому ей не составляет труда обеспечить поддержку систем корпоративной безопасности для всех своих смартфонов, планшетов и актуальных версий ОС. В категории наиболее безопасной для использования на уровне компаний операционной системы победителем выходит iOS.

Конечно, в рамках одной статьи невозможно полностью описать все имеющиеся в двух операционных системах возможности по обеспечению безопасности. Для тех, кто хочет углубить свое понимание механизмов защиты, Google и Apple разместили на своих сайтах подробные их описания. Резюмируем основные плюсы и недостатки двух операционных систем с точки зрения безопасности, упомянутые в данной статье:

Android

— Плюсы

• Открытость для исследователей безопасности

• Иммунитет приложений к переполнениям буфера

• Строгий контроль доступа на уровне ядра (SELinux)

— Минусы

• Большое количество потенциально вредоносного ПО в магазине Google Play

• Слабые возможности в обеспечении корпоративной безопасности

• Большое число версий ОС и моделей девайсов от различных вендоров, что усложняет стандартизацию методов защиты

iOS

— Плюсы

• Тщательный контроль загружаемых в App Store приложений, и, как следствие, практически полное отсутствие вредоносного ПО в магазине приложений

• Быстрая реакция Apple на инциденты безопасности

• Большие возможности по поддержке систем корпоративной безопасности

— Минусы

• Большое количество известных уязвимостей в самой операционной системе

• Рост числа возможных векторов для атаки (интеграция в экосистему Apple, система HomeKit)

В заключение хотелось бы сказать, что на самом деле сегодня мало кто будет выбирать телефон, учитывая его защищенность как основной критерий. И это правильно, потому что системы Android и iOS по возможностям защиты своих пользователей сегодня находятся на одном уровне. Однако, если безопасность девайса играет решающую роль, то наилучшим выбором будет любой девайс от Apple либо любой девайс от Samsung, работающий на Android 4.3 и выше.

Автор статьи — QA-инженер компании «Технологии качества» (бренд A1QA).