xaker

Секретные токены тысяч разработчиков найдены в коде Android-приложений

  • воскресенье, 22 июня 2014 г. в 03:11:07
http://www.xakep.ru/post/62671/

Миллионы пользователей скачивают и устанавливают приложения из каталога Google Play, хотя мало кто проверяет качество кода, о нём практически ничего не известно. Чтобы изучить эту тему, исследователи из Колумбийского университета создали программу PlayDrone — первый автоматический краулер Google Play. Краулер сам по себе прост: менее 2000 строк на Ruby и HTML, исходный код опубликован на Github.

PlayDrone в течение почти всего 2013 года ежедневно выкачивал приложения из каталога Google Play. Он проиндексировал 1 107 476 программ — это самый большой индекс кода Android-приложений. Разработчики применили некоторые хакерские методы, чтобы обойти ограничения Google на массовое индексирование каталога Google Play, потому что по умолчанию через веб-интерфейс нельзя просматривать более 500 приложений в каждой категории. Они также провели декомпиляцию кода программ, в том числе получили исходный код 884 217 бесплатных приложений. Всего в индекс включено более 100 млрд строк кода.

Чтобы продемонстрировать практическую полезность краулера PlayDrone, исследователи выбрали несколько практических задач. Одна из них — анализ повторяющегося кода в разных приложениях (оказалось, что 25% содержимого Google Play — дубликаты). Ещё одна — анализ эффективности механизмов аутентификации через OAuth. Кроме того, авторы исследовали тренды, как меняется популярность приложений со временем, как часто выходят новые версии, какие рекламные библиотеки используются в бесплатных программах и многое другое. Например, они доказали, что количество скачиваний практически не зависит от средней оценки.

Пожалуй, самое интересное — то, что в коде приложений найдено много секретных токенов для аутентификации на других сервисах, в том числе Amazon Web Services или Facebook. Разработчики хранят их прямо в коде, не сознавая, что токены легко получить с помощью декомпиляции.

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

Токены Facebook тоже ценны, потому что дают частичный доступ к аккаунтам всех, у которых установлено данное мобильное приложение и разрешён доступ в Facebook. Может случиться конфуз, если популярное приложение с миллионов устройств имеет право публикации на стене, а секретный токен попадёт в чужие руки.

Результаты исследования Николя Вьенно (Nicolas Viennot) с коллегами опубликовали на конференции Sigmetrics 2014, которая сегодня заканчивается в Остине (Техас). Они также предложили компании Google свою помощью в запуске программы для автоматического сканирования кода программ Google Play на наличие секретных токенов OAuth.