Дом Securitywatch Черная шляпа: многочисленные уязвимости главного ключа поражают Android

Черная шляпа: многочисленные уязвимости главного ключа поражают Android

Видео: Villainous ❤️ BlackHat You so F' precious when you smile ❤️ (Ноябрь 2024)

Видео: Villainous ❤️ BlackHat You so F' precious when you smile ❤️ (Ноябрь 2024)
Anonim

Все началось как шутка, объяснил Джефф Форристал из Bluebox Security. Команда Bluebox хотела создать взломанную версию приложения FourSquare, которая бы выглядела, как будто вы где-то странный, как Антарктида. Увы, Google Maps отклонил запросы от настроенного приложения. Поиск путей решения этой проблемы привел команду к слабости, которую они назвали «Мастер Ключ». «Эта тема уже освещена», - сказал Форристалл. «Он просочился. Он отсутствовал в течение нескольких недель. Но на самом деле существует более одного мастер-ключа, поэтому этот разговор вырос с одной ошибки до четырех».

Forristal объяснил, что, разобрав, изменив и собрав приложение, они изменили подпись разработчика. Новая подпись не была лицензирована для использования Google Maps, поэтому она была отклонена. Их новый квест; изменить код без изменения подписи.

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

«Форматы APK, JAR и ZIP в основном одинаковы», - отметил Форристал. «JAR и APK просто имеют дополнительные компоненты». Его окончательный успех включал использование формата ZIP. Когда он вставил «злой» файл с тем же именем, что и существующий допустимый файл, верификатор подписал действительный файл, но «злой» файл был запущен.

Почему? Потому что Android использует другой код управления файлами ZIP в верификаторе и в самом установщике. «Несоответствие при разборе файла ZIP является источником этой ошибки», - объяснил Forristal. «На самом деле, в базе кода Android есть восемь отдельных реализаций разбора ZIP-файлов».

Из песочницы

«Я использовал этот трюк навсегда», - сказал Форристаль. «Теперь давайте возьмем это к удивительному». Как и iOS, Android запускает каждое приложение в своей изолированной программной среде, поэтому приложение не может получить доступ к ресурсам, принадлежащим другому приложению. «Единственный способ попасть в« песочницу »- подписаться тем же разработчиком», - пояснил он. «Это то, что делает возможными обновления».

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

Оказывается, сторонние VPN должны быть подписаны на платформе, и в качестве бонуса они уже запрашивают доступ к системной песочнице. Forristal продемонстрировал три простые команды, которые он использовал, чтобы вставить свой «злой» код в стороннюю VPN, шутя над «инструментами über hacking». Результат? Троян с полным доступом на системном уровне.

Простая эксплуатация

Главный специалист по безопасности Саурик (Джей Фриман) поднял концепцию на новый уровень, пояснил Forristal. Его инструмент Cydia Impactor работает на OSX и Windows и автоматизирует эксплойт. «Подключите устройство, - сказал Форристаль, - оно выясняет правильное приложение, создает его, добавляет соответствующий хак, чтобы получить root-доступ, и доставляет его. Я собирался выпустить немного глупого доказательства концептуальных приложений, но это потрясающе»."

Forristal отметил, что тип процессора устройства не имеет значения. На атаку не влияют ASLR (рандомизация структуры адресной системы) или DEP (предотвращение выполнения данных). Он сделал одну версию, которая работает на четырех поколениях Android, и единственное, что нужно, - это знание Java. «Я представил это для Black Hat, потому что это легко понять и использовать», сказал Forristal.

Больше мастер-ключей

Forristal обнаружил ряд других недавно обнаруженных ошибок, которые можно считать «мастер-ключами». Исследуя код для функции под названием Authenticated Attributes, исследователи Bluebox нашли закомментированную строку с пометкой «TODO». В результате отсутствия кода, независимо от того, какие изменения вы вносите, файл проходит проверку. Не многие файлы используют эту функцию, отметил Forristal. «Если вы найдете такой файл, вы можете скопировать и вставить файл сертификата и принять личность разработчика. Если вы подписали приложение с помощью Authenticated Attributes, вы отдали свою личность». Поскольку эта ошибка была исправлена ​​до того, как Bluebox сообщил об этом, они не берут кредит.

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

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

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

Черная шляпа: многочисленные уязвимости главного ключа поражают Android