{"id":14281,"url":"\/distributions\/14281\/click?bit=1&hash=ab757d18c623a4013353d71493ed166f5261785dc223f01a84b7b3412c030874","title":"\u041a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u0442\u0435\u043c\u043f\u044b \u0440\u043e\u0441\u0442\u0430 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438? ","buttonText":"","imageUuid":""}

Я нашел способ отследить всех водителей «Ситимобила»

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

Выполнив этот запрос несколько раз с разными параметрами, я понял, что можно выгружать данные о таксистах практически в реалтайме. Вы только представьте, сколько интересного можно теперь узнать!

С чего все началось?

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

Я нашел уязвимость и написал в Mail.ru Group. Буквально через 3 минуты мне ответили, что эти данные открытые и их не нужно защищать.

Ну раз так, давайте развлекаться!

Анализируем «Ситимобил»

Я написал алгоритм, который за пару десятков секунд собирает информацию о всех таксистах «Ситимобил», которые сейчас на линии в Москве и Московской области. Вот как он работает:

О технических деталях я подробнее говорю в статье на «Хабре», а пока давайте сосредоточимся на результатах.

Думаете, сколько водителей на линии в воскресенье утром?

4374
таксистов «Ситимобил» на линии в Москве в 11:00 в воскресенье

Но разве нас интересует срез? Давайте посмотрим в динамике.

Найс. А как эти водители распределены в пространстве?

Ну и напоследок давайте проследим за каким-нибудь водителем.

Вот, видно маршрут. А ведь можно еще поднять частоту опроса и получить более точные данные.

И что такого?

А то, что данные вроде как важные.

Во-первых, можно оценить долю рынка и доходность компании «Ситимобил».

Во-вторых, на месте другого агрегатора (например, «Яндекс.Такси») я бы использовал данные о положении таксистов конкурентов. Для ценообразования, например. Или вычислил водителей, работающих и там и там, на основе корреляций в геопозициях.

В-третьих, раз можно отследить конкретного таксиста, можно отследить и его клиента. Это уже серьёзно. По факту можно узнать, куда уехал человек на «Ситимобиле», если вы знаете, где он сел в такси.

Заключение

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

Если Mail.ru Group все еще считает, что эту информацию не нужно защищать, то «Яндекс.Такси», вот вам гора данных. С её помощью вы сможете забрать часть прибыли «Ситимобила».

Если же Mail.ru Group признаёт, что данные чувствительные, и закрывает к ним доступ, то будет честно выплатить вознаграждение по bug bounty.

Как, думаете, ещё можно использовать данные о таксистах?

Спасибо, что дочитали! Надеюсь, вам было интересно.
Успехов!

0
177 комментариев
Написать комментарий...
Айрат Натфуллин

А я поддерживаю Ситимобил в этой истории. Хотелось бы, конечно, увидеть, как именно оформил баг Сергей: сказал, что аутентификации нет на точке и всё; или же указал, что выдаются данные, которые можно использовать так-то и так-то.

Просто, если первое, то это немного грязно, хоть и неплохо получилось пропиарить свои скилы :) 

Если говорить о самой проблеме, то бага же не в том, что аутентификации - нет. Если добавить аутентификацию, то вы так же сможете все эти данные получить, просто надо будет передавать сессионный ключ, кукис или что там еще.

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

Если вы посмотрите тот же Lyft, он возвращает номер машины и марку только когда уже есть заказ машины, но не показывает их списком, пока они колесят на карте вокруг тебя.

Интересно, хоть часть соображений и анализа были в отчёте? Или это было "У вас тут точка открыта для показа машин рядом. Как вам? Платите."

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

Ответить
Развернуть ветку
Dmitry Turmyshev

чувак, там была ссылка на отчёт на hackerone, ты все пропустил

Ответить
Развернуть ветку
Айрат Натфуллин

Проверял в самой статье и на хабре, поэтому видимо не нашел. Сейчас увидел в комменте от Сити, спасибо.

В самом баге hackerone (https://hackerone.com/reports/756833) не описано то, что описано в статье. Да, без authn. Да, можно получить цвет машины, где тут sensitive data и как это можно использовать (если есть limit rate и нельзя связать id, как я писал в комменте).

Ответить
Развернуть ветку
Евгений Шаповалов
Iterating over different city locations you can get the whole information about company fleet

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

Ответить
Развернуть ветку
174 комментария
Раскрывать всегда