Тревожно большое количество приложений VPN для Android вызывают у пользователей явно ошибочное чувство безопасности, особенно у тех, которые живут в условиях сетевой цензуры или для которых технологии крайне важны для сохранения приватности и физической безопасности.
Недавно опубликованное исследование выявило ряд недостатков во многих мобильных VPN-приложениях из контрольной группы, общим числом 283.
Загружая и устанавливая эти приложения, пользователи стремятся повысить защиту своих коммуникаций, а вместо этого получают программы, которые не обеспечивают шифрование, заражены зловредами, осуществляют перехват TLS-трафика, отслеживают действия хозяина и манипулируют HTTP-трафиком. «Лабораторные испытания выявили несколько экземпляров VPN-приложений, способных серьезно нарушить безопасность и приватность пользователя, – например, они используют ненадежные протоколы туннелирования VPN, а также сливают трафик IPv6 и DNS», – свидетельствует группа исследователей из Государственного объединения научных и прикладных исследований Австралии (AU-CSIRO), университета Нового Южного Уэльса и Международного института компьютерных наук при университете Калифорнии в Беркли.
Доклад по результатам исследования An Analysis of the Privacy and Security Risks of Android VPN Permission-enabled Apps («Анализ рисков в отношении приватности и безопасности со стороны приложений для Android с разрешением VPN») был представлен на конференции IMC 2016, проведенной в ноябре в г. Санта-Моника, штат Калифорния, США.
«Мы также обнаружили ряд приложений, активно выполняющих перехват TLS, – пишут далее исследователи. – Особую тревогу вызывают экземпляры приложений, внедряющие JavaScript для слежения, показа рекламы и для перенаправления трафика электронной коммерции к внешним партнерам». Дело в том, что с выпуском Android 4.0 в 2011 году Google ввела нативную поддержку для встроенных VPN-клиентов, и теперь такой клиент можно создать, запросив разрешение BIND_VPN_SERVICE. К сожалению, оказалось, что многие приложения злоупотребляют этим разрешением.
По словам авторов доклада, разработчики обычно используют BIND_VPN_SERVICE для перехвата, изменения и переадресации трафика на удаленный прокси или VPN-сервер, либо для реализации прокси-серверов в localhost. Это мощный Android-сервис, которым легко можно воспользоваться с недоброй целью. Например, Android VPN API может открыть сетевой интерфейс по запросу приложения и направить этому приложению трафик с мобильного телефона или планшета.
Разработчики должны декларировать доступ к BIND_VPN_SERVICE, внося эту информацию в файл AndroidManifest, причем для каждого приложения отдельно. Возможности для злоупотребления особенно высоки при изменении маршрута трафика; Android в этом случае старается предотвратить абьюз: выводит два предупреждения, информируя пользователя о создании виртуального интерфейса и о его активном состоянии.
«Тем не менее, среднестатистический пользователь мобильного устройства может недопонимать – возможно, из-за отсутствия технической подготовки, последствий выдачи стороннему приложению разрешения на чтение, блокировку и/или модификацию его трафика», – предполагают исследователи.
В докладе также отмечено, что проприетарные VPN-решения Cisco (AnyConnect) и Juniper (Junos), а также корпоративные решения для управления мобильными устройствами (MDM) реализуют собственные протоколы туннелирования поверх BIND_VPN_SERVICE.
В то же время в некоторых из подвергнутых анализу приложений отсутствуют важные средства защиты. Так, 18% VPN-приложений реализуют протоколы туннелирования без шифрования, что противоречит заявлениям об охране приватности. «Отсутствие сильного шифрования, как и слив трафика, может облегчить слежку, проводимую промежуточными устройствами (к примеру, коммерческими точками WiFi-доступа, собирающими пользовательские данные) или спецслужбами», – подчеркивают исследователи.
В 38% приложений обнаружен вредоносный код, детектируемый антивирусами из коллекции VirusTotal; 16% переадресовывают трафик через пиры в сети, а не через хост, что ставит под сомнение доверие и приватность. Такой же процент приложений использует прокси для манипулирования HTTP-трафиком посредством внедрения и удаления заголовков или транскодирования изображений.
«Вместе с тем артефакты, реализуемые VPN-приложениями, выходят за рамки типовых функций, присущих HTTP-прокси, – рассказывают авторы исследования. – Мы идентифицировали два VPN-приложения, активно внедряющие код JavaScript в пользовательский трафик с целью показа рекламы и трекинга. А одно из них перенаправляет коммерческий трафик на внешних рекламных партнеров».
Большинство протестированных приложений (75%) позволяют отслеживать активность пользователя третьей стороне и запрашивают разрешение на доступ к данным аккаунта и/или текстовым сообщениям (82%). Четыре приложения компрометируют корневое хранилище пользователей и осуществляют перехват TLS на лету.
«Возможность выхода за пределы песочницы с помощью разрешения BIND_VPN_SERVICE и наивность представлений, которые сложились у большинства пользователей о сторонних VPN-приложениях, наводят на мысль о необходимости срочно пересмотреть модель разрешений VPN на Android и ужесточить контроль над VPN-клиентами, – заключают исследователи. – Анализ отзывов пользователей и рейтинги VPN-приложений говорят о том, что подавляющее большинство пользователей до сих пор находятся в неведении относительно подобных практик, даже в тех случаях, когда приложение довольно популярно».
Axarhöfði 14,
110 Reykjavik, Iceland