Очень многие из нас уже носят с собой устройства, которые еще несколько десятилетий назад описывали лишь в научно-фантастической литературе: телефон, компьютер, плеер с бесконечным запасом песен, видеокамера, навигатор и почти вся информация в мире. На фоне смартфонов и других мобильных аппаратов настольные компьютеры и ноутбуки выглядят такими же громоздкими и устаревшими, как сотовые телефоны 25-летней давности. Но защищены ли на новых мобильных устройствах персональные сведения их владельцев?

Окинем беглым взглядом защитные механизмы операционных систем и приложений, чтобы разобраться — достаточно ли их, а также напомним пользователям, что им стоит знать о возможных рисках.

Основные мобильные операционные системы сегодня — это iOS, Android, Windows Phone и BlackBerry10. Все они начинены защитными функциями — в них нашли воплощение практически все основные концепции информационной безопасности, и это неспроста, ведь мобильные телефоны хранят массу наших личных сведений. Компактное устройство, напичканное датчиками, — это по сути «кладезь» уязвимостей, которыми обязательно попытаются воспользоваться злоумышленники. Мобильные аппараты способны исполнять множество сторонних приложений, используются повсюду, постоянно на связи с сетями, часто лежат без присмотра и теряются. Им необходимы сильные меры защиты, но не в ущерб удобству.

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

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

Защитные механизмы

Операционную среду мобильного устройства определяют четыре основные категории игроков, действующих на рынке: разработчики приложений, разработчики ОС, поставщики оборудования и операторы, причем большинство мер безопасности, реализованных создателями платформ, обоснованно сосредоточены на разработчиках сторонних приложений. Операционные системы мобильных устройств заведомо считают приложения «враждебными» и применяют мощные механизмы изоляции их друг от друга, а также от системного ядра. Эти механизмы («песочницы») пользуются способностью процессора отделять друг от друга адресные пространства задач средствами контроля доступа, реализованными на уровне файловой системы, а также криптографией, чтобы не позволять приложениям делиться информацией локально стандартными средствами. У приложения может быть файловая зона, но доступ к ней есть только у него самого.

Тем не менее по-прежнему встречаются ошибки переполнения буфера, в том числе в браузерах и других распространенных приложениях. Такие ошибки нередко используются как точки входа вредоносными программами, которые могут скомпрометировать отдельное приложение или ОС в целом. Чтобы уменьшить этот риск, в iOS и Android применяется технология Address Space Layout Randimization размещения различных функций приложений в случайным образом выбранные участки памяти. Это затрудняет жизнь вирусописателям, поскольку они лишаются гарантии найти нужные им подпрограммы.

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

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

Значит ли все это, что конфиденциальными данными пользователя нельзя обмениваться без получения его разрешения? К сожалению, утечки информации неизбежны. Они могут быть случайными или вызванными злоумышленником, так как у всех систем есть свои недостатки. Даже у механизма строгой изоляции есть свои ограничения, и разработчики ПО расходятся во мнениях относительно целесообразности привлечения пользователей к принятию решений о хранении их информации. Например Apple, будучи одновременно поставщиком оборудования и ПО, строго контролирует приложения, которые пользователи могут устанавливать на свои устройства, и гарантирует, что благодаря проверкам личные данные будут в сохранности. Но о выдаче некоторых особо важных привилегий, таких как доступ к геолокации и телефонным звонкам, принимает решение сам пользователь при инсталляции. В системе Android, в свою очередь, поддерживается принцип осведомленности пользователя и прозрачности. Отсюда определенные осложнения, связанные с тем, что пользователь в процессе установки должен принимать решения о всех полномочиях приложения, а не только о критически важных.

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

Проблемы приватности

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

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

Источник наиболее сложных проблем — обмен данными: локальный и через внешние сайты. Достаточно трудно разработать политики безопасности, которые позволили бы приложениям ограниченно делиться данными без риска полного раскрытия.

Все ОС дают приложениям возможность общаться через механизм межпроцессной связи, но, несмотря на ограничения, прорывы иногда происходят. Обмен данными между приложениями, даже под контролем ОС, иногда может привести к повышению привилегий. Если приложению A для платформы Android дана привилегия П, а у приложения Б ее нет, они все равно могут установить межпроцессную связь. Приложение Б может запросить привилегированные данные у А, которое с использованием своей привилегии П получит к ним доступ и отправит их приложению Б. Исследования показывают, что это вполне реальный сценарий, хотя, теоретически, неверное использование привилегий приложением А должно привлечь внимание операторов магазина мобильных приложений, которые после проверки должны удалить из него программу-нарушителя, но так происходит не всегда.

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

Угроза исходит и от небрежности программиста — при выборе идентификатора для использования в базе данных своего сервера многие разработчики останавливаются на самом удобном для них: уникальный идентификатор устройства, реальное имя пользователя, данный провайдером номер телефона и т. д. В общем случае для «безопасности» может использоваться несколько идентификаторов, а затем все данные приложений разработчика привязываются к выбранному идентификатору. Неудивительно, что со временем сервер становится жертвой вредоносной программы, — два независимых разработчика приложений, пользующиеся для своих баз данных одними и теми же идентифицирующими сведениями, могут нарушить приватность пользователя, если обе базы окажутся скомпрометированы. Путем простого объединения баз можно скоррелировать информацию и составить досье на пользователей. В конечном итоге можно будет выяснить их истинные личности, несмотря на то что формально разработчик принял меры против этого.

Вопиющие злоупотребления

Приведем особенно яркий пример приложения, нарушающего приватность пользователей. Многие операторы полагают, что им нужна подробная информация об использовании сети мобильными устройствами, в том числе номера телефонов, время выполнения вызовов и передачи SMS, сведения о посещениях сайтов и показания GPS. Утверждается, что анализ этих данных позволяет оптимизировать быстродействие сети, поэтому из этих соображений на аппараты в заводских условиях устанавливают специальное приложение Carrier IQ, не сообщая об этом пользователю. Например, как выяснили в Федеральной комиссии по торговле США, компания HTC одно время устанавливала Carrier IQ на свои смартфоны с Android, не принимая «соответствующих мер безопасности». Таким образом, информация от Carrier IQ становилась доступной сторонним приложениям без согласия пользователя. В результате мер противодействия, принятых специальной комиссией, HTC пришлось дать согласие проходить внешние аудиты безопасности на протяжении 20 лет. По идее, это должно послужить уроком, убеждающим в необходимости поставить приватность во главу угла, но лишь время покажет, будут ли какие-то перемены на практике.

Государственное регулирование

Подобные вмешательства государства и судебные прецеденты заставляют провайдеров серьезнее относиться к приватности, однако проблема вряд ли вскоре исчезнет. Информация о пользователях — это ходовой товар в современной коммерции, и приложения, способные доставить эту информацию рекламодателям, пользуются огромным спросом. К сожалению, даже когда люди разборчивы в выдаче разрешений на использование своих личных сведений, приняв участие в проектах, связанных с Большими Данными, в конечном счете они могут раскрыть о себе больше, чем хотелось бы.

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

Рекомендации

Некоторые разработчики ПО скептически смотрят на привлечение пользователей к управлению настройками приватности их собственных данных, рассуждая примерно так: «Если предложить пользователю выдать всю информацию о себе в обмен на возможность посмотреть видео с милым котиком, то девять из десяти с готовностью щелкнут по кнопке “Да”». Тем не менее именно жалобы пользователей сдерживают сейчас волну нарушений приватности, и пользователи, которые заботятся о сохранности персональных данных, делают важное дело для всей экосистемы мобильных устройств.

Технические специалисты и поклонники передовых технологий могут помочь, если займутся исследованием рисков, а пока самое малое, что могут пользователи, — это соблюдать осторожность при установке приложений на мобильные устройства. Если приложение безосновательно запрашивает разрешения или просит слишком много привилегий, не устанавливайте его. Читайте политики конфиденциальности, и если есть признаки, что ваши данные будут использоваться без ограничений, в том числе передаваться третьим сторонам, не устанавливайте приложение. Пользователям также стоит регулярно инспектировать привилегии приложений и объем хранимых ими локально данных. Лишние данные стоит время от времени удалять. Сообщайте об обнаруженных нарушениях и о том, что, по-вашему, можно было бы изменить.

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

***

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

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

Хилари Орман (hilarie@purplestreak.com) — консультант по безопасности, компания Purple Streak.

Hilarie Orman, Did you want privacy with that? Personal Data Protection in Mobile Devices, IEEE Internet Computing, May/June 2013. All rights reserved. Reprinted with permission.?