Аналитики «Лаборатории Касперского» проверили, как защищены пользователи каршеринговых сервисов и какие риски они несут в случае несанкционированного доступа к их аккаунтам.

Кому вообще может понадобиться «угонять» такой аккаунт? Эксперты объясняют, что на черном рынке на такие учетные записи уже есть предложение и спрос (см. иллюстрации ниже). Такие учетки интересны как минимум людям без водительского удостоверения и у тем, кому служба безопасности сервиса отказала в регистрации.

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

Исследователи изучили 13 мобильных приложений неназванных сервисов и проверили, позаботились ли их разработчики о безопасности пользователей и защите собственного ПО от несанкционированного доступа. Приложения проверялись по четырем возможным направлениям атаки:

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

Лишь одно из рассмотренных приложений оказалось способно противостоять реверс-инжинирингу: оно было защищено с помощью решения DexGuard, разработчики которого обещают также невозможность запуска ПО в случаях, когда владелец получил root-права на своем устройстве или приложение было модифицировано (пропатчено).

Названия файлов установочного пакета выдают использование DexGuard

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

Пароли

Половина протестированных приложений не дают возможность самому пользователю создавать логин и пароль: в роли таковых выступают телефонный номер и PIN-код, который пользователь получает в SMS. Исследователи отмечают, что возможность самостоятельного выбора логина и пароля – это важнейший элемент защиты. Дело в том, что телефонный номер, используемый многими сервисами в качестве логина, достаточно легко получить: часто его забывают скрыть в социальных сетях, а выявить там клиента каршеринга можно по хэштегам и фотографиям.

Таким образом, навязывая пароль пользователю, разработчики с одной стороны не дают ему использовать ненадежный пароль вида 1234, а с другой — это дает шанс злоумышленнику подобрать пароль (перехватить его, воспользовавшись уязвимостью SS7, или получить с помощью перевыпуска SIM-карты).

Специалисты на собственных аккаунтах проверили, насколько легко подобрать подобный «пароль». Так, если злоумышленник, нашедший в социальной сети номер телефона, попытается войти в приложение, его владелец получит SMS с кодом подтверждения. Часто это четырехзначное число (то есть возможно всего 10 000 комбинаций). В идеале такие коды должны быть минимум шестизначными и содержать не только цифры, но и буквы разного регистра.

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

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

При этом исследователи умышленно запустили перебор только в один поток, с одного IP-адреса, давая сервису шанс выявить и заблокировать атаку, а также связаться потенциальной жертвой и, в крайнем случае, деактивировать учетную запись. Но ничего из этого сделано не было.

Другой каршеринговый сервис присылает пользователям более стойкие пароли, но и здесь тоже не все гладко: коды создаются по единому шаблону — цифры по краям и четыре латинских буквы в нижнем регистре в середине. Таким образом, перебрать понадобится 45 миллионов комбинаций, однако если бы положение цифр было произвольным, количество вариантов возросло до двух миллиардов. Конечно, 45 000 000 — тоже много, но в приложении нет таймаута на ввод следующей комбинации, следовательно, нет и препятствия для перебора и реализации брутфорс-атаки.

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

Сервер продолжил отвечать после 1000 попыток. Исследователи отмечают, что «результат был предсказуем» и добавляют, что в этом приложении логин и пароль хранятся в локальном хранилище в зашифрованном виде, однако, зная их формат, подбор займет пару минут, большая часть которых уйдет на генерацию пары пароль/MD5-хэш (пароль захэширован с помощью MD5 и записан в файл на устройстве).

MitM

С центром управления приложения обмениваются данными по HTTPS и может уйти достаточно много времени на понимание протокола взаимодействия. Чтобы быстрее разобраться с этим аналитики прибегли к MITM-атаке, и здесь им помогла еще одна глобальная недоработка: ни одно из изученных приложений не проверяло сертификат сервера. Это позволило получить дамп всей сессии.

Скриншот успешной MITM-атаки с дампом HTTPS-трафика

Защита от перекрытия

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

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

Вывод

Эксперты резюмируют, что проблемы каршеринговых приложений очень похожи на проблемы приложений для управления подключенными автомобилями (connected cars).

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

Российским операторам каршеринга стоит кое-чему поучится у зарубежных коллег: например, один из крупных игроков на рынке краткосрочной аренды, предоставляет доступ к машине с помощью специальной карты, что хоть и снижает удобство пользования сервисом, но зато существенно повышает безопасность», — подытожили аналитики.

1 комментарий

  1. gfintn2

    02.08.2018 at 01:44

    СПАСИБО,ОЧЕНЬ, НУЖНАЯ ИНФОРМАЦИЯ ,,,

Оставить мнение