Я нашел способ отследить всех водителей «Ситимобила»
В субботу вечером я, как всегда, сидел и снифил трафик со своего телефона. Внезапно, открыв приложение «Ситимобила», я увидел, что запрос на получение информации о ближайших машинах выполняется без какой-либо аутентификации.
Выполнив этот запрос несколько раз с разными параметрами, я понял, что можно выгружать данные о таксистах практически в реалтайме. Вы только представьте, сколько интересного можно теперь узнать!
С чего все началось?
Да, я действительно сидел и смотрел трафик с телефона. Дело в том, что я инженер и постоянно изучаю, как работают технологии и разные вещи вокруг меня. Так было и в этот раз.
Я нашел уязвимость и написал в Mail.ru Group. Буквально через 3 минуты мне ответили, что эти данные открытые и их не нужно защищать.
Ну раз так, давайте развлекаться!
Анализируем «Ситимобил»
Я написал алгоритм, который за пару десятков секунд собирает информацию о всех таксистах «Ситимобил», которые сейчас на линии в Москве и Московской области. Вот как он работает:
О технических деталях я подробнее говорю в статье на «Хабре», а пока давайте сосредоточимся на результатах.
Думаете, сколько водителей на линии в воскресенье утром?
Но разве нас интересует срез? Давайте посмотрим в динамике.
Найс. А как эти водители распределены в пространстве?
Ну и напоследок давайте проследим за каким-нибудь водителем.
Вот, видно маршрут. А ведь можно еще поднять частоту опроса и получить более точные данные.
И что такого?
А то, что данные вроде как важные.
Во-первых, можно оценить долю рынка и доходность компании «Ситимобил».
Во-вторых, на месте другого агрегатора (например, «Яндекс.Такси») я бы использовал данные о положении таксистов конкурентов. Для ценообразования, например. Или вычислил водителей, работающих и там и там, на основе корреляций в геопозициях.
В-третьих, раз можно отследить конкретного таксиста, можно отследить и его клиента. Это уже серьёзно. По факту можно узнать, куда уехал человек на «Ситимобиле», если вы знаете, где он сел в такси.
Заключение
Не нужно недооценивать важность данных, которые показываются клиенту.
Если Mail.ru Group все еще считает, что эту информацию не нужно защищать, то «Яндекс.Такси», вот вам гора данных. С её помощью вы сможете забрать часть прибыли «Ситимобила».
Если же Mail.ru Group признаёт, что данные чувствительные, и закрывает к ним доступ, то будет честно выплатить вознаграждение по bug bounty.
Как, думаете, ещё можно использовать данные о таксистах?
Спасибо, что дочитали! Надеюсь, вам было интересно.
Успехов!
Всем привет. Сергей, ещё раз здравствуйте. Ситимобил на связи.
Мы внимательно изучили всю ситуацию, описанную Сергеем Крупником. Мы ожидаем, что все детали найденных дефектов, а также любые вопросы касающиеся уязвимостей, будут сначала заданы нам в тикете на HackerOne (https://hackerone.com/reports/756833). В данной ситуации мы не получили всех тех деталей, которые описаны в статье, и очень ждем от автора, что в будущем вместе с ним лично будем обсуждать любые возникающие вопросы.
Теперь по существу. Отображение доступных машин поблизости без пассажиров — штатная функциональность любого приложения по заказу такси, которую на данный момент нет планов менять. Описанный баг не позволял получить данные водителей Ситимобил с пассажирами и не позволял трэкать их перемешения. В любом случае, у нас есть план технически ограничить получение подобных данных.
По условиям программы Bug Bounty мы не можем можем выплатить вознаграждение после открытой публикации уязвимости. Но от команды Ситимобил считаем важным выдать вознаграждение за сообщение об этой возможности и проделанные усилия для её описании. Мы также готовы предложить Крупнику присоединиться к инженерной команде Ситимобил. Ещё мы призываем всех специалистов, кто занимается безопасностью пользовательских данных, сообщать нам о найденных уязвимостях через сайт HackerOne. Ситимобил очень серьёзно относиться к любым найденным уязвимостям и готов сотрдуничать со всеми, кому не безразлична эта тема. Мы также готовы выплачивать достойные вознаграждения за найденные баги в наших продуктах, но в рамках правил площадки HackerOne.
Странно, что вы «не получили всех деталей описанных в статье», в отчете на HackerOne явно видно, что отчёт полностью отражает ситуацию переданную в статье, а под статьей ваше мнение, что это не является уязвимостью «по вашему мнению». Грустно.
Head of PR не знает правила тся/ться. Георгий, не благодарите — http://tsya.ru/
Комментарий недоступен
Георгий, добрый день! Я нашёл баг в вашем ответе. Тикет создал:
http://tsya.ru/
Здравствуйте, Георгий!
А не находите ли Вы, что в Вашем ответе противоречие? Как минимум в том, что сначала Вы написали, что это не уязвимость, а следом просите и других инженеров сообщать о багах в вашем сервисе?
Кроме того, автор статьи сразу написал в техническую поддержку, которая также не потрудилась вникнуть в суть проблемы.
В статье по полочкам разложено, что можно выжать из «общедоступной» информации, а Вы, вроде как, это пропустили.
...
В любом случае, у нас есть план технически ограничить получение подобных данных....
Мы также готовы выплачивать достойные вознаграждения за найденные баги в наших продуктах, но в рамках правил площадки HackerOne.Это что же получается...
Вы открыто признаёте, что планируете ограничить получение этих данных. Но тикет на HackerOne закрыли, сообщив, что это не уязвимость (и таким образом не оставили шансов автору поста заработать, независимо от факта публикации этого поста). И при этом, предлагаете людям и дальше писать вам на HackerOne?
только в суд как Рамблер не подавайте, и уже хорошо ;)
"относиться"?
Пусть тебе компания оплатит курсы по русскому языку.
Пиздец какой-то
А вот в этом я не уверен. Множество раз как пользователь пытался вызывать ситимобил, на карте рядом показывалось огромное количество машин, но никто меня не брал. Все не мог понять в чем подвох. Пообщался с водителями - говорят, что на карте отражаются ВСЕ машины: и занятые, и свободные. Не понимаю, зачем их все выводить, наверное, чтобы создать впечатление большого парка и быстрой возможности уехать. Но факт остается - вы даже в интерфейсе выводите не только свободные машины.
двойной пробел
перемешенияСитимобил очень серьёзно относиться
сотрдуничать
Георгий волновался.
Мэйлру снова Мейлру, прямо удивительно, да?
Кому в рамках программы HackerOne mail.ru выплатил деньги или все были недостойны?
А от закрытой, вы закроете как дубликат :) Я вас знаю. Больше репортить не буду. Даже спасибо не скажете. Скажите честно бюджета на это нет. Нас имеют за такие ошибки, они влияют на КПИ или еще на что-то. Можно же без политоты. Получили оф ответ, так как эта история стала известна и у вас подгорает 5 точка.
Мне этот случай напомнил историю с Pokemon Go, та же уязвимость можно было отследить и поймать всех покемонов. Niantic не говорили, что это не проблема и api работает как должно.
компания тратит столько денег на доставучую рекламу, а когда появился повод поговорить реально в паблике решили дать скучную отписку. пиарщикам памятник!
OOO! Георгий, как вы кстати.... У меня немного не по теме... Я заказала такси в Ситимобил 19 сентября с работы в районет22.15 с ул.Красносельской дом 9 до ул Красноярской 9. На Щелковскоом шоссе дом 72 попала с вашим водителем в аварию. Круто так попали, благо машина хорошая Тойота и сработали задние подушки. Ноги все в крови и шишках, грудь и спина отбита, голова в шишках (это я уже потом все ощутила). После аварии шок, еле выпала из машины... Прострация, ничего не понимаю, просидела на бордюре полчаса. Потом, придя в себя, сняла на видео аварию. Запись есть . Позвонила в службу вашей поддержки чтоб вызвать снова такси до дома, при этом , обьяснив ситуации... Мне леденящим голосом ответили, что с меня 180 рублей... Ок. А теперь я вас хочу спросить это нормально????????????????? Ведь когда мы попали в аварию, диспетчер по громкой связи кричала - "ВЫ попали в аварию????????? " И что, зная причину , которую я рассказала нельзя было предложить любое проезжающее или находившееся такси поблизости в качестве компенсации??? Я не стала дожидаться ДПС и скорой.... Хотя, могла бы после этого предьявить вам претензии.. Но, когда я позвонила в службу поддержки и попросила номер и имя водителя, мне отказали. Так вот, будьте любезны, мне сообщите лично по тел 8-903-658-0636 фио водителя и тел... У меня теперь депрессия и страх, и если вызываю такси (о, бедные водители) прошу их ехать максимально внимательно и не гнать... Ну что,Георгий, перезвоните мне? А потом тут отпишусь о нашем разговоре...
В Рамблере не был сисадмином?
Ждем иск от Рамблер на долю в Bug Bounty? :)
Комментарий недоступен
Подключаете к автопарку?
http://joxi.ru/zANNOvQcv4zv7A.png
Спалил тему
Яндекс наверное сейчас вас такими ху**ми поливает
Яндекс, разработавший собственные карты и навигатор, не знает о бесплатном Fiddler
Самим не смешно такое писать?)
Данные в паблике, отлично! Это же можно применить в мирных целях, есть идея для приложения "Усталый водитель". Берем водителей и чекаем их по интервалу, считаем время от момента, когда водитель вышел на линию и до до тех пор, пока перестанет откликаться большой промежуток времени(отдых). Ставим каждому шкалу от зеленого (только вышел) к красному (более 12 часов на линии) с пиктограммками от "выспавшийся гепард" до "неспящий зомби". Далее человек ловит такси, запускает приложение, и по позиции вычисляются и показываются сорта водителей вокруг))
Выспавшийся гепард может быть не таким свежим после пары смен в убере/яндексе
"сорта водителей"! Шедевр. Первый рабочий день, уныние, день длинный. Очень длинный. И тут! "Сорта водителей"! Благодарю, товарищ!
«Буквально через 3 минуты мне ответили, что эти данные открытые и их не нужно защищать».
Вот сейчас кому-то люлей влетит...
«Это не баг, а фича»
А за что влетит, у них это публичный REST, он ответил все верно.
Красавчик! 👍
Спасибо!
Не, нет так. Красаучик, брат!
Участвовал в bug bounty от Badoo, нашел способ авторизоваться под учетными записями новых (и не очень) пользователей. Оформил отчет, сказали не баг. Больше не участвую.
Баг то пофиксили потом?
Что бы сделали в сша после такого?
Я когда подобные материалы читаю, то появляется ощущение, что я часть тупиковой ветви эволюции. :(
Mail.ru ни что особо не беспокоит. Ни важные данные, ни качество сервиса. Сам же Ситимобил скатился в г после поглощения.
Поглотить ресурсов хватает, а управлять и развивать - нет. Да и задачи такой нет.
Комментарий недоступен
Вы очень крутой. Чем еще занимаетесь?
Спасибо! Проекты разные делаю. Скоро будет материал про проект, который я делал последние несколько месяцев.
Автор, можно поконкретнее примеры как эти данные помогут конкурентам забрать часть прибыли Ситимобил? А то складывается ощущение, что вы получили данные и вам кажется что это нечто ценное, а мне кажется что это вода - просто любопытство удовлетворить без какой-либо практической пользы конкурентам.
Вот знает Яндекс где/сколько катают Ситимобилы, а дальше что? Сделать рассылку этим водилам мол вот есть сервис Яндекс.Такси? Думаете они про него не знают? Думаете Яндекс в паре районов работает, а сейчас посмотрит карту движения Ситимобилов и начнёт по другим районам ездить? А местоположение водителей что даст? Это же не стационарные точки...водители там где пассажиры и если в каком-то районе мало водителей Ситимобила, то наверное там глухняк.
Почему вы считаете эти данные багом? Если там личные данные пассажиров есть - однозначно баг. А если просто данные по машинам, то наоборот открытость и прозрачность - нечего скрывать.
По вашему, автор должен сразу сделать работу маркетологов и аналитиков?
Берите больше:
Он должен все это ещё упаковать в понятную презентацию и расписать бизнес-план по внедрению, чтобы те, кому это нужно, могли просто ответить «да, годится»
Зря минусуете ребята, у карширингов эти эндпойнты для незанятых машин тоже открыты. На них работают агрегаторы к примеру.
так какого черта, если их так много, машины в о о б щ е не приезжают?))))
Они ж там жирные заказы все сидят ждут как мыши.
Потому что они все работают по Яндексу в то же время.
Вопреки словам представителей Ситимобил, на картах отображаются как свободные водители, так и принявшие заказ
Эти данные открыты и у каршерингов и секрета с сенсацией тут нет. Каршеринг, который завтра закроет эти данные, скорее начнет проигрывать на рынке, потому что исчезнет из агрегаторов.
Точно такой же отчет и такие же картинки можно построить по положению незанятых машин каршерингов, а потом и маршруты по их перемещению между заказами.
Так что это точно часть открытого функционала, о которой Георгий Лобушкин тут и написал.
Рисков для пользователей сервиса нет, а польза для рынка есть.
Комментарий недоступен
длинные ночные маршруты на юг ДС это за закладками
Статья - идеальная демонстрация технических (и кое-каких других) навыков для резюме) Очень круто!!
для резюме пен-тестера?
интересно, схантят ли меня здесь если я напишу статью об использовании FFT для быстрого вычисления кодов Рида-Соломона? LOL
Сергей, думаю Вас быстро-быстро схантят сейчас)
А, уже!
Тогда дам совет, прежде, чем принимать предложение соберите все!
Сергей, а каким сниффером пользовался?
Чот проблема в последнее время https запросы посмотреть нормально
mitmproxy - подробнее про техническую часть написал на Хабре: https://habr.com/ru/post/480956/
wireshark на все времена
Charles.
Никаких проблем. Не а если вы ssl pinning не смогли - то вам значить это и не нужно.
Скорее всего не было certificate pinning - это на 2019 почти клинический случай, можно синффить с помощью первого попавшегося в гугл плее сниффера без рута.
Кстати, если пользуетесь приложением без cert pinning, выключайте ваши бесплатные впн на время использования. Это для вас они бесплатные, а вас продадут за деньги, это и поможет окупить им расходы на впн сервера и гелик для сео.
Пытливый ум всегда находка! Интересно
Комментарий недоступен
Спасибо! Рад, что понравилось)
Яндекс наверняка уже давно знает об этом и активно пользуется
Автор молодец! Ничего не понял, но вижу сколько людей благодарят, поэтому присоединяюсь!!!
Кайф, спасибо за статью!
Спасибо! Рад, что понравилось)
"А то, что данные вроде как важные." - Самых активных нужно отлавливать и отбирать ВУ.
Разве после принятия заказа машина не исчезает с радаров?
с радара клиентского приложения — да. она же не растворяется в эфире совсем
Автор , предлагаю связаться . Есть ценное предложение .
Очень круто, особенно понравилось поездки клиентов! 👏
Спасибо!
Автор молодец.
Правда, в мэйл ру могут передумать и тогда ..., что то я сомневаюсь в их желании что-то выплатить.
Класс предлагать попутный груз можно. Целый бизнес
Нашел баг интергация рекламы mail.ru в вк. Можно было узнать какая реклама покажется любому пользователю вк. У друга болел зуб, с моего компьютера мне предлагают лечить зубы и купить снасти для рыбалки. День рождения сестры, мне предлагают купить суши и сделать ремонт в квартире, она делала ремонт.
Вот правильно сделал, снял и дал оффлайн ссылку на youtube этого видео.
Зарепортил баг как security issue.
Баг исправили, никаких $$$ не принесло, даже спасибо НЕ сказали.
Реклама: Можно узнать рекламные предпочтения любого пользователя
Известно ли решение по данному багу? Будут фиксить?
> Новый статус отчёта – Закрыт06.09.18 20:54
> В песочнице баллы не начисляются.
> 21.01.19 16:43
спасибо, что исправили)
22.01.19 14:18
"Быдло сервис какой-то", имхо.
Ответ саппорта лучше всего описывает политику компании.)
Значит я как-то не так провожу выходные.
Комментарий недоступен
+- расположение первого запроса.
Можно первый запрос сделать с координатами Санкт-Петербурга и узнать, сколько машин там)
А я поддерживаю Ситимобил в этой истории. Хотелось бы, конечно, увидеть, как именно оформил баг Сергей: сказал, что аутентификации нет на точке и всё; или же указал, что выдаются данные, которые можно использовать так-то и так-то.
Просто, если первое, то это немного грязно, хоть и неплохо получилось пропиарить свои скилы :)
Если говорить о самой проблеме, то бага же не в том, что аутентификации - нет. Если добавить аутентификацию, то вы так же сможете все эти данные получить, просто надо будет передавать сессионный ключ, кукис или что там еще.
В конечном итоге, баги, как минимум, в двух местах:
1. Лимит на запросы, как уже писали в комментах: все эти данные имеют смысл только когда они более или менее полные (фразы про то, что можно узнать долю рынка) и когда их можно обновлять регулярно на большой площади (чтобы отслеживать статистику).
2. Персонализация данных машин: а именно то, что можно связать данные по машине в запросе сейчас с тем, что вернётся через час. Например, по какому-то внутреннему id. Именно это, как я понимаю, позволяло отслеживать маршрут машины.
Если вы посмотрите тот же Lyft, он возвращает номер машины и марку только когда уже есть заказ машины, но не показывает их списком, пока они колесят на карте вокруг тебя.
Интересно, хоть часть соображений и анализа были в отчёте? Или это было "У вас тут точка открыта для показа машин рядом. Как вам? Платите."
Ну и надо отметить, что все мы люди, какие бы проекты большие не были, какие бы крутые команды в них не участвовали - баги возможны.
Напомню вам случай, когда программист из Казани нашел возможность удалять на youtube любой видеоролик. Кто бы мог подумать, что такое возможно.
чувак, там была ссылка на отчёт на hackerone, ты все пропустил
Можно ли посмотреть исходники? Выкладывали в открытый доступ?
Подробнее про техническую часть написал на Хабре: https://habr.com/ru/post/480956/ Там есть пример curl запроса. Нужно просто его запустить в цикле. Успехов)
Еще никто не считал сколько зарабатывает Ситимобил?
Если (в среднем) 5000 машин ежедневно, а суммарный доход одного водителя в Москве 120тыс./месяц, пусть 33% дохода водителя – это Ситимобил (67% перевозок остальные таксопарки), получается 5000*40000 = 200млн.руб/в месяц фонд ЗП водителей Ситимобил. Если комиссия Ситимобил 10% от стоимости поездки, то доход Ситимобил 20млн.руб в месяц.
Комментарий удален модератором
Спасибо за статью, познавательно и достаточно кратко. Пишите ещё.
Спасибо! Рад, что понравилось)
Открыл сейчас приложение Я. Такси. Машинки двигаются. При желании тоже можно трек отследить. В чем проблема то. ПС. Статью и комменты прочитал.
Очень интересная статья! Автору спасибо за материал и успехов найти применение своим талантам на действительно стоящем проекте!
Спасибо!
Зачем показывать водителей которые движутся через публичное апи?
Сделайте внутреннее апи и следите за своими машинами.
Молодец ))
И ни разу не рэкетёр ))
К слову, даже если машина с пассажиром не видна, ТО, сопоставив точки исчезанновения и повления снова "пустого такси" получаем координаты маршрута клиента - откуда и куда.
Это и есть "Таксипортация"
это не баг это Таксипортация!
Комментарий удален модератором