Уязвимости и особенности системы безопасности Android

99d9426ad0fbbb64658e5e411433db29

В большинстве своем все эти бэкдоры и прочая нечисть используют стандартный API Android, а потому могут быть легко обнаружены с помощью просмотра разрешений приложения перед установкой. Хочет, например, игра просматривать личные данные пользователя —в топку ее, захотел браузер отправлять СМС-сообщения —не нужен нам такой браузер. Это не относится к последнему типу зловредных программ, однако они быстро выдают себя с помощью рекламных объявлений, к тому же пользователи обычно отписывают о таком поведении приложения прямо в комментариях в Google Play, так что идентифицировать их можно еще до установки.

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

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

Интересно, что, по заявлению Google, открытый доступ к SD-карте сам по себе вовсе не уязвимость, а нормальное поведение любой системы, которая поддерживает работу со съемными накопителями. Это довольно спорное утверждение, однако в Google заверили, что проблема с доступом конкретно к фотографиям и геолокационным данным в ближайшее время будет решена. Информации о том, используют ли какие-то вирусы эту особенность, пока нет.

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

Еще более серьезная проблема в системе безопасности Android была найдена в декабре 2011 года. Исследователи из Университета Северной Каролины опубликовали документ, содержащий информацию о не совсем точной реализации механизма разграничения привилегий в смартфонах крупнейших производителей, в число которых вошли НТС, Motorola и Samsung. Оказалось, что многие безобидные с виду привилегии, реализованные в Android, дают приложениям гораздо больше полномочий, чем требуется на самом деле. Исследователи нашли 13 лазеек, 11 из которых открывали доступ к конфиденциальной информации пользователя. При этом наличие лазеек разнилось между производителями и даже моделями устройств.

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

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

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

Все эти уязвимости позволяют бэкдорам и руткитам ввести пользователя в заблуждение и выдать себя за легитимное приложение с корректными правами доступа, однако на этом игра в технологии не заканчивается. Оказавшись в системе, зараза может воспользоваться уязвимостями самого Linux и системных компонентов и получить права root и полное господство в системе, включая возможность установки приложений без разрешения пользователя (как это делает бэкдор Android. Anzhu), доступ к любой информации и возможность окопаться так глубоко, что даже «сброс до заводских настроек» не поможет (DBF BootKit размещает себя сразу после загрузчика, что позволяет ему перехватить управление еще до загрузки самой ОС).

Интересно, что для получения привилегий администратора трояны и вирусы используют техники, разработанные энтузиастами для рутинга устройств. Это все те же эксплойты Exploid, RageAgainstTheCage, KillinglnTheName, ZimperLich, GingerBreak и так далее, которые эксплуатируют бреши в реализации hotplug, библиотеке bionic и системных сервисах. Обычно после установки зловред проверяет наличие исполняемого файла /system/bin/su; отсутствие которого сигнализирует о невозможности получить root-права, и запускает эксплойт, с помощью которого происходит доступ к привилегиям root, а также установка этого самого файла. Если же файл найден, троян пытается получить root штатными средствами, что приводит к генерации сообщения о запросе прав, на что пользователь должен ответить «да» или «нет». Этим зловред может выдать себя, однако большинство неграмотных пользователей просто нажимают «да» и забывают о сообщении. Далее зловред может делать все, что захочет.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

16 − 1 =