Cerberus: уязвимость позволит получить доступ к любому устройству

19 август, 2013 - 09:45

Приложение Cerberus для платформы Android дает возможность удаленно управлять утерянным или украденным устройством, отслеживать его местоположение, загружать список последних звонков, SMS, снимать фото, записывать видео, аудио, пр. – и все это незаметно для злоумышленника.

Проблема только в том, что уязвимость Cerberus позволяет все это проделывать с законным владельцем аппарата.

Для входа в Cerberus используется стандартная процедура ввода логина и пароля, в ответ на которые Cerberus API возвращает ID устройства, случайно сгенерированную 15-символьную строку, которая используется для аутентификации в последующих запросах. Но оказалось, что эта строка на самом деле – IMEI аппарата.

Номера IMEI не случайны, первые 8 символов представляют собой Type Allocation Code (TAC), определяемые производителем и моделью аппарата, следующие 6 цифр – уникальный номер аппарата, таким образом, в 15-символьной строке IMEI случайная составляющая совсем невелика.

Чтобы проверить строку IMEI и ее регистрацию в Cerberus достаточно одного HTTP запроса. Чтобы проверить все IMEI, скажем, аппаратов Samsung Galaxy Note 2, достаточно 15 часов на не самой мощной машине со средней скоростью подключения к интернету. В ответ на запрос с IMEI, Cerberus API возвращает имя пользователя и хэш пароля SHA1 этого устройства! Далее, можно провести процедуру восстановления пароля с Android-устройства: при этом программа посылает запрос только с идентификатором (IMEI) и новым паролем, без имени пользователя и старого пароля. А обновив пароль, можно получить доступ к чужому аппарату!

О найденной ошибке компания Cerberus проинформирована. Ее разработчики обещают решить данную проблему в версии 2.4, которая выйдет в ближайшее время.