Как посмотреть пробки на дорогах
Информация о пробках доступна пока не во всех городах присутствия 2ГИС, но мы всё время работаем над тем, чтобы таких городов стало больше.
Если сервис «Пробки» доступен в вашем городе, в правом верхнем углу карты будет отображаться круглая кнопка с цифрой. Когда вы нажмёте на неё, кнопка изменит цвет в зависимости от среднего уровня загруженности дорог, а сами дороги подсветятся красным, жёлтым или зелёным цветом в зависимости от уровня пробок.
Если такой кнопки нет, значит сейчас открыт участок карты, где данными о пробках мы пока не располагаем.

Чтобы сформировать картину о дорожной ситуации, наши серверы ежесекундно обрабатывают огромные объёмы информации на основе партнёрских данных. Информация обрабатывается алгоритмами в реальном времени, чтобы в приложении отображалась актуальная ситуация на дорогах.
Яндекс.Пробки. А туда ли вы едете?
В прошлой статье была затронута тема информационной безопасности такой крупной компании, как Google.
Настало время посмотреть в сторону отечественного производителя, а именно, компании Яндекс и её сервиса карт.
С чего все началось. Стоял я, значит, как-то в пробке и думал, что заставляет всех людей ездить теми или иными маршрутами. Ответ очевиден: много чего.
Однако не последнюю роль определенно играет наличие пробок и разного рода дорожных ситуаций (ДТП, ремонт полотна, камеры).
Кроме того, эти факторы учитывают и все современные навигаторы при прокладке маршрута.
Что ж, попробуем повлиять на дорожную обстановку, хотя бы виртуально…

Играть будем с картами от компании Яндекс. Для начала разберемся, как вообще работает система. Все просто: мобильные пользователи ставят приложение и отправляют данные с координатами, направлением и скоростью на уютный сервачок Яндекса, где полученные данные агрегируются, после чего и рисуется карта.
Коротко говоря, едешь медленно – значит стоишь в пробке, быстро – все свободно. Чем больше людей (устройств) отправляют статистику, тем точнее данные. Подробнее о работе системе написано у самого Яндекса.
Читая описания работы системы, пытливый ум непременно должен заинтересоваться следующей фразой:
«Все данные обезличены, то есть не содержат никакой информации о пользователе или его автомобиле».
Так-так-так, если данные обезличены, то почему бы нам не попробовать стать той кучей пользователей, которые отправляют данные, например, с нужной нам скоростью, дабы информация о загруженности дорог в выбранном направлении изменилась? (http://en.wikipedia.org/wiki/Spoofing_attack)
Итак, у нас на руках телефон с ОС Android на борту, приложение «Яндекс.карты» и сниффер «Shark».
Необходимо для начала посмотреть, как обмениваются между собой данными приложение и сервер.
Соглашаемся на отправку данных о дорожных ситуациях, запускаем сниффер и катаемся по городу, собирая пакеты (сетевые, конечно).
Для начала попробуем поставить какую-нибудь метку о дорожной ситуации, например:

GET /userpoi/addpoint?uuid=a61d46553953fc3e346dae59d852c950&catidx=2&lat=59.985712&lon=30.350740&utf&comment=bla%20bla&packetid=2936036690 HTTP/1.1
Host: mobile-partners.maps.yandex.net
uuid – параметр-идентификатор пользователя
catidx – категория метки
lat;lon – координаты, куда ставится метка
comment – комментарий
packetid – ID пакета
Как, собственно, и ожидалось, можно рандомно менять uuid. Метки успешно ставились. Изменение packetid также ни на что не повлияло.
Играя с различными значениями (координаты и тип метки) и многократно посылая пакеты, можно в короткие сроки затруднить просмотр карты:

Но это все ребячество, где же данные о пробках?
Долго ждать не приходится, сразу бросается в глаза следующий пакет:
—edge_here
Content-Disposition: form-data; name=»data»
Content-Type: application/gzip
uuid – знакомый нам параметр-идентификатор, значение которого можно произвольно менять.
packetid – как можно понять из названия, это ID пакета. Он же является и его контрольной суммой.
В пейлоаде POST-запроса – не что иное, как gzip, внутри которого можно увидеть что-то типа:
Как раз то, что мы ищем: текущее местоположение, направление, скорость и время.
Пробуем играть со значениями в xml, меняя направление, положение, скорость и время => пакеты не принимаются сервером. Оно и очевидно, контрольные суммы не сходятся. Выход один: узнать, как сгенерировать packetid.
О том, как получить исходники андроидовского приложения, уже немало было сказано, поэтому на этом останавливаться не будем.

Шикарно. Исходник есть, осталось только разобраться, как это работает.
А работало оно следующим образом:
1) xml с данными gzip’овалась
2) полученный gzip ксорился побайтово с uuid
3) от полученого результата вычислялся CRC32
4) итоговым результатом и был заветный packetid
Мы знаем, как генерятся контрольные суммы – теперь ничто не мешает нам накодить скрипт, который будет отправлять на сервера Яндекса данные с нашими координатами и скоростью.
Тестим.

Все отлично работает: на улице появился несуществующий затор.
А если там еще поставить парочку меток об аварии или дорожных работах, то вполне можно заставить некоторых доверчивых водителей (или их навигаторы) принять решение об изменении своего маршрута, тем самым позволив мне, любимому, свободно доехать до дома!
Этот и еще множество других докладов по инфобезу можно услышать на ежемесячных встречах Russian Defcon Group, что проходят в Питере. Приходите, там всегда интересно.
Такие дела.
Ах да, информация о данной баге была своевременно предоставленна ребятам из Я, которые все очень оперативно прикрыли. Молодцы.
Вам же предлагаю не расстраиваться, ведь есть еще Google и Nokia с их пробками!
Ну и совсем любопытным – код скрипта для спуфинга Яндекс.Пробок: http://pastebin.com/9y4hmFX9
Огромное спасибо ntkt за помощь и с прошедшим ДР!
До встречи на дорогах.
- Блог компании Digital Security
- Информационная безопасность
Есть вопрос: Как «Яндекс.Пробки» узнаёт о ситуации на дорогах?
Редакция The Village продолжает с помощью экспертов отвечать на вопросы киевлян о жизни города. В этот раз мы узнавали, как интернет-сервисы узнают актуальную информацию о заторах на дорогах.
В этом месяце жители Киева неоднократно получали возможность прочувствовать, что такое 10-балльные заторы. Актуальную информацию о загруженности дорог предоставляет интернет-сервис «Яндекс.Пробки». The Village узнавал, как в «Яндексе» узнают о ситуации на дорогах, обратившись к аналитику этой компании.
Денис Ткалич
Аналитик компании «Яндекс.Украина»
Основную часть данных мы получаем в автоматическом режиме от пользователей мобильных приложений «Яндекс.Карты» и «Яндекс.Навигатор». Если пользователь согласился передавать нам данные (поставил соответствующую галочку в приложении), то к аждые несколько секунд устройство с помощью GPS передаёт свои географические координаты, направление и скорость движения в компьютерную систему «Яндекс.Пробок». Естественно, все данные анонимны: мы не можем по ним
определить, о каком человеке или автомобиле идёт речь. Мы знаем только скорость, координаты и направление движения некой точки. Таким образом, мы автоматически собираем данные многих пользователей (в Киеве, например, это десятки тысяч людей). По каждому пользователю программа-анализатор строит единый маршрут движения с информацией о скорости его прохождения — трек. Треки поступают не только от частных водителей, но и от машин компаний-партнёров «Яндекс» (организаций с большим парком автомобилей, курсирующих по городу).
чем больше пользователей передают данные о своём движении, тем точнее будет информация о пробках
Чтобы правильно воссоздать картину загруженности дорог, необходимо проверять, соответствует ли трек ситуации на участке. Ведь пользователи мобильных «Яндекс.Карт» могут останавливаться или замедлять движение не из-за затора, а, например, чтобы купить что-нибудь в киоске или не пропустить малозаметный поворот. И если мимо свободно едут ещё несколько автомобилей с мобильными устройствами, такой трек будет отсеян алгоритмом, потому что не отображает реальную загруженность участка. Соответственно, чем больше пользователей передают нам данные о своём движении, тем точнее будет информация о пробках.
После объединения проверенных треков алгоритм анализирует их и выставляет «зелёные», «жёлтые» и «красные» оценки соответствующим участкам дорог. Эта схема отрисовывается на слое «Пробки Яндекс.Карты» — и в мобильном приложении, и на веб-сервисе.
Помимо своих координат автомобилисты могут сообщать сервису дополнительную информацию об авариях, ремонтных работах или других дорожных неприятностях. Для этого нужно поставить соответствующую точку в мобильных «Яндекс.Картах».
Для каждого из городов шкала баллов настроена по-разному
В Киеве, Москве, Санкт-Петербурге и ещё нескольких крупных городах, где пробки стали уже непобедимым явлением, сервис «Яндекс.Пробки» оценивает ситуацию по 10-балльной шкале. Для каждого из городов шкала баллов настроена по-разному: то, что в Москве — небольшое затруднение, в другом городе — уже серьёзная пробка. Например, в Санкт-Петербурге при шести баллах водитель потеряет примерно столько же времени, сколько в Москве при пяти.
Кстати, не так давно на улицах Киева появились экраны с информацией от «Яндекс.Пробки». Они показывают загруженность на ближайшем участке дороги и примыкающих улицах. Экраны расположены около стадиона «Динамо» и ТРЦ «Арена-Сити», на пересечении улицы Саксаганского с улицей Шота Руставели, а также на Бессарабке.
Яндекс.Пробки: как работают и как правильно пользоваться на компьютере, iOS и Android
В 2018 году Яндекс поглотил компанию «СМИлинк», предоставлявшую информацию о дорожной обстановке для сервиса «Пробки в Москве», а спустя год функционал был интегрирован в Яндекс.Карты. С тех пор жители более чем 40 городов России и нескольких десятков зарубежных населенных пунктов активно используют сервис для построения маршрутов в объезд заторов.

Что такое Яндекс.Пробки
Для кого-то это просто полезный функциональный слой на Яндекс.Картах, а для некоторых — своеобразная социальная сеть, которую можно использовать параллельно с картами Google, например. Прямое назначение «Пробок» — оценивать и прогнозировать дорожную ситуацию для населенного пункта в целом и для каждого отдельного участка дороги отдельно.
Система баллов Яндекс.Пробках, что лучше 1 или 10?
Взглянув на Яндекс.Карты с активированным слоем «Пробки», водитель видит город в оттенках от зеленого к красному, каждый из которых соответствует оценке скорости движения в баллах от 1 до 10, где 1 (зеленый) — дороги полностью свободны, 10 (красный) — проще припарковать автомобиль и двигаться пешком.

Для каждой улицы, проулка или шоссе выставляется собственная оценка.
Система баллов индивидуальна для каждого города и для каждой дороги. Средняя скорость движения в 25 км/час для узкого переулка в центре Москвы — норма, а для кольцевой дороги провинциального города — это затор.
Загруженность дорог в Яндекс.Картах
1 — Дороги свободны;
2 — Дороги почти свободны;
3 — Местами затруднения;
4 — Местами затруднения;
5 — Движение плотное;
6 — Движение затрудненное;
7 — Серьезные пробки;
8 — Многокилометровые пробки;
9 — Город стоит;
10 — Пешком быстрее.
Откуда Яндекс.Пробки узнают о пробках?
Чтобы составить карту пробок в городе, не обязательно рассаживать по деревьям и столбам наблюдателей с биноклями и рациями, гораздо проще воспользоваться данными GPS/ГЛОНАСС, которые предоставляют сами пользователи, включившие на своих смартфонах, планшетах и навигаторах режим «Сообщать о пробках». Кроме того, данные поступают от многочисленных автомобилей компаний-партнеров, оснащенных GPS-трекерами.
Помимо вышеперечисленных способов получения данных о пробках, сами автомобилисты могут вручную сообщать сервису дополнительную информацию об авариях и ремонтных работах на дороге.

Чтобы добавить дополнительную информацию о дорожной ситуации (ДТП, ремонтных работах, камерах и т.д.) в приложении Яндекс.Карты или Яндекс.Навигатор:
1. Нажмите кнопку с изображением восклицательного знака в треугольнике.
2. Передвиньте появившийся значок дорожной ситуации (по умолчанию появляется значок ДТП) в необходимое место на карте.

3. Выберите соответствующий значок (ДТП, ремонтные работы, камера, другое или комментарий) и где необходимо укажите в каком ряду дороги произошло ДТП или проводятся ремонтные работы.
4. Нажмите кнопку «Отправить».

Как включить Яндекс.Пробки на компьютере, iPhone или Android
Чтобы активировать слой пробок на Яндекc.Картах на компьютере, следует нажать на иконку в виде светофора, при этом слева на экране появится дополнительная информация.

В мобильном приложении «Яндекс.Карты» и «Яндекс.Навигатор» (ссылки в конце статьи) пробки отображаются по нажатию иконки с изображением светофора в правом верхнем углу.

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

Откроется календарь, в котором можно выбрать для отображения прогнозируемую загруженность дорог в любой день.

Как включить «Разговорчики» в Яндекс.Картах (Яндекс.Навигаторе) и комментировать дорожные события
Особенностью Яндекс.Пробок является раздел «Разговорчики», в котором водители сообщают о различных дорожных ситуациях, не попавшим в сводку, а также общаются на свободные темы в довольно своеобразной манере.
Чтобы включить эту опцию, перейдите по пути «Настройки» (значок шестеренки) → «Все настройки» → «Карта и интерфейс» → «Дорожные события» и установите переключатель «Разговорчики» в положение «Включено».



Чтобы прочесть комментарии от других пользователей и оставить свой, нажмите на значок дорогожного события на карте и выберите значок «Разговорчики».

Где смотреть Яндекс.Пробки
Активировать функцию «пробки» можно в Яндекс.Картах на компьютере, используя любой браузер, или на мобильном устройстве с установленным iOS- и Android-приложением Яндекс.Карты или Яндекс.Навигатор. Кроме того, дорожную ситуацию со ссылкой на Яндекс сообщают на большинстве радиостанций и многих телеканалах. Функционал «Пробки» также может интегрировать в свой веб-сайт каждый желающий, воспользовавшись специальным API для разработчиков.
- Яндекс.Пробки на компьютере
- Яндекс.Карты для iPhone и iPad (App Store)
- Яндекс.Карты для Android (Google Play)
- Яндекс.Навигатор для iPhone и iPad (App Store)
- Яндекс.Навигатор для Android (Google Play)
Смотрите также:
- Как создавать свои карты и маршруты в Google Maps и делиться ими с друзьями.
- Самые сложные пароли: как правильно придумывать и не забывать их — 2 совета от хакера.
- Лайфхаки и необычные эффективные применения обычным вещам: ТОП-50.
Мы в Telegram и YouTube, подписывайтесь!
