Кулстори об Андроид-прошивках, ворующих ключи у AudD и приватность у своих пользователей

Кулстори об Андроид-прошивках, ворующих ключи у AudD и приватность у своих пользователей

AudD

Началось с этого письма.

Наше API по-умолчанию отклоняет запросы от IP-адресов, которые были замечены другими сервисами в поиске уязвимостей, подборе паролей и так далее. Иногда отклоняются запросы пользователей, использующих VPN или просто невезучих.

Сначала я хотел ответить шаблоном для таких случаев, но потом вгляделся внимательнее и перестал понимать, что происходит. У AudD не так много приложений, в которых можно столкнуться с баном IP: недоделанное приложение для Android, сделанное почти год назад, и расширение для Chrome. Но какое отношение к ним может иметь обновление прошивки Android? Что за now playing feature?

Зашёл в логи запросов, чтобы посмотреть, что использовал этот человек. И внезапно увидел в статистике 190 тысяч запросов с токеном расширения для браузера. Посмотрел внимательнее — у всех одинаковые параметры, которые использует расширение для идентификации пользователей. Но IP разные. В User-Agent — «Dalvik/2.1.0» у всех, но в скобочках разные андроид-девайсы.

Выражение моего лица было наполненно непониманием

После нескольких минут гугления выяснилось, в чём дело: упомянутая в письме PixelExpirience — кастомная прошивка для Android-устройств с сотнями тысяч пользователей. Они встроили в обновление крутую фичу: телефон автоматически распознаёт всю играющую вокруг музыку, и потом можно посмотреть, что за музыка вокруг играла, без необходимости использовать приложения.

Всё бы хорошо, но это работало с помощью постоянной отправки звука из микрофонов всех устройств с этой прошивкой на сервер AudD с токеном расширения AudD для Chrome. То есть авторы этой прошивки, не заботясь о своих пользователях, взяли и врубили у них круглосуточное прослушивание с отправкой данных на наш сервер.

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

Поиск по Гитхабу показал, что так сделали авторы минимум пяти прошивок с открытым исходным кодом

Мы выключили им распознавание; через какое-то время стали отправлять информацию о том, что распознавание у них отключено, в виде названий исполнителя и трека. Потом удалили все файлы с часами записей микрофонов их пользователей.

Потом нашёл чат в Телеграме, в котором пользователи PixelExperience жаловались, что распознавание перестало работать и выдаёт что-то не то

Через какое-то время две прошивки удалили эту фичу (но гит всё помнит: [1][2]). В чате PixelExperience запретили обсуждение происходящего и стали за него банить. Потом в сеть зашёл их главный разработчик, написал нам, извинился, и, возможно, через какое-то время его прошивка станет официальным клиентом нашего API распознавания музыки.

Оно стоит не так дорого: от $2 до $3.7 за тысячу запросов в зависимости от объёма запросов в месяц. Если что, пишите на api@audd.io. Некоммерческим open-source-проектам делаем скидки:)