История одного репорта в Google или как манипулировать данными в Google Maps.
Как часто вы пользуетесь Карты Google? Верите ли вы в то, что мега корпорации делают все, чтобы делать отличные, безопасные продукты для своих пользователей? Думали ли вы, что они могут просто не замечать критики от простых людей, которые пользуются их продуктами? Так получается, что я замечаю то, что иногда не видят другие или не придают этому значения. В общем этот рассказ о том, как мне слишком много пришлось пользоваться Картами Google и о беспечности корпорации, я бы даже сказал об отношении этих корпораций к своим продуктам и отзыву потребителей.
Опустим, пожалуй, подробное начало этой истории т. к. не обо всех аспектах я могу говорить в связи с моей работой, но это и не важно. Перейдем к сути этой истории…
Начало
Думаю, многие из вас пользуются Картами Google т. к. они установлены по умолчанию во многих устройствах и многие доверяют компании Google, что она выдает релевантные ответы на ваши запросы. Но мы с коллегами обнаружили, что в системе на наш взгляд есть логические ошибки, как Карты Google проверяют информацию, которую выдают пользователю. Мы предположили интересный вектор, а что, если информация, которую выдает Карты Google не проверяется (на первый взгляд это уже смешно звучит!).
Я начал ковырять Карты Google, стал пользовать карты пару дней. И то, что я нашел меня озадачило. Я смог вносить изменения в информацию, которую выдает Google карты. Объясню, человек, который допустим пользуется Google картами вводит поисковый запрос, ну к примеру ему нужно найти компанию «Ростелеком-Солар» (коллегам привет!).
В теории
Человек, который ввел запрос надеется, что вся информация, которая выдается ему должна быть проверена и соответствовать действительности (Google врать не будет) и по идее он может спокойно доверяться всей предоставленной информации и пользоваться ей.
Реальность
Но увы (я должен вас расстроить компания Google позволяет манипулировать данными, которые выдает сама же.
Далее будет описан метод, который позволил манипулировать данными любой организации, которую выдает Карты Google. Но перед всем этим, так же хотелось бы отметить.i
Все действия, которые описаны ниже были сделаны ради эксперимента, чтобы понять как работает выдача Карт Google и не имели мошеннических целей или целей как то навредить компаниям (так же все изменения были поправлены на оригинальную информацию).
В путь
Открываем Google Chrome посмотрим версию (на всякий случай)
Далее вбиваем нужный нам запрос к примеру «Ростелеком Солар»
На выдаче получаем официальный сайт «Ростелеком-Солар» и замечательную карточку справа (я ее выделил) в которой содержится информация об организации. Это карточка берется из Google карт, и если мы на нее переходим, то проваливаемся в сами Google карты. На этой карточке представлена полезная информация об организации (сайт, адрес и др.).
Если ткнем на кнопку сайт на карточке, то нас по идее должно перенаправить на официальный сайт. https://rt-solar.ru/
Так оно и работает примерно. Далее попробуем найти «Ростелеком-Солар» через Google карты.
Отлично, все работает на первый взгляд как надо. Человек вводит в строке поиска что ему нужно и получает ответ на запрос, вроде все норм. А теперь начнем манипуляцию.
В поисковике, где делали запрос предложим исправления для информации на карточке организации.
Предлагаем исправления, а давайте поменяем официальный сайт организации, чтобы Google карты и не только выдавали другой сайт ( далее мы более подробно обсудим векторы атак и сценарии возможной манипуляции).
Так видим официальный сайт.
Меняем на что-нибудь менее прозаичное
Жамкаем на отправить.
Обратим внимание, что нам выдала система «Предложенное изменение рассматривается». Ну значит все ок, наш эксперимент по идее должен на этом закончиться неудачей, ведь компания Google ответственная и все тщательно проверяет (подумал я с ухмылкой на своем лице). Ну что же, подождав пару минут я начал проверять результат наших манипуляций и что я обнаружил меня очень сильно порадовало. Буквально через пару минут я увидел, что внесенные нами изменения уже применились и их выдавали Google карты и поисковик в карточке.
Переходим на карточку выдачи Google и жамкаем на кнопку "сайт":
И тут же нас перенаправило куда?! Да на https://www.vodafone.ua/ru
Я не поверил, что такое возможно и решил оставить пока все так как есть, чтобы посмотреть, что будет с выдачей поисковика и Google картами.
Чтобы убедиться, что это не разовая ошибка решил повторить трюк. На это раз взял другую организацию (сразу отмечу что мой выбор был произвольным и ничем не обусловлен).
«Контур СКБ» https://kontur.ru/ серьезная организация, которая занимается выдачей электронных подписей (кто в курсе тот поймет)
Проверяем, что поиск выдал нам нормальную информацию
Сайт официальный все хорошо. Смотрим карточку, которая справа
Жамкаем на кнопку сайт и действительно перенаправляется на официальный сайт
Проделываем все описанные мною манипуляции для изменения официального сайта. Предлагаем исправления:
Проверяем какой сайт указан в карточке:
Производим подмену:
Применяем ее, жамкнув кнопку «Отправить» и получаем вывод:
Проверяем карточку, которую выдал нам поисковик:
Ждем пару минут и проверяем еще раз, и переходим по кнопке «Сайт» на карточке:
Жамкаем по кнопке «Сайт» и нас перенаправляет на https://www.cryptopro.ru/
Что имеем в результате нашего эксперимента: вроде получается, что можем манипулировать данными любой организации, которые выдает карты Google, хоть Google и пишет, что предложенные изменения рассматриваются, но по факту они применяются буквально моментально (проходит 2-3 минуты). В конце статьи будут ссылки на видео, если кто-то скажет, что это все подстроено и Компания Google не могла так делать. Но суть вопроса от этого не поменялась.
И далее наступает самое интересное
Как человек работающий в ИБ я знал, что у Google есть программа bug bounty.
https://www.google.com/about/appsecurity/reward-program/ я в первый день как нашел ошибку, сразу отправил отчет о найденной ошибке и стал ждать. Первые дня 2 я надеялся, что со мной свяжутся и скажут что-то типа «Дружище ты молодец, мы благодарны тебе за то, что ты дал знать об этом». Все то время, что я ждал, тестировал и смотрел как продолжает работать эта дырка, я стал замечать, что предложенный мною вариант перестал работать через день после моего репорта. Я подумал «какие они молодцы закрыли ошибку и теперь нельзя манипулировать данными организаций просто так». Так как со мной не выходили на связь уже 5 день, а я вижу, что мой сценарий не работает, я начал дальше копаться в картах Google, чтобы понять, как теперь применяются изменения и можно ли все это еще раз повторить. Но об этом чуть позже, не будем нарушать последовательность моего рассказа.
Спустя 7 дней от подачи отчета мне на конец то написали.
Вот тока смысл этого письма я так и не понял до сих пор, компания Google признает, что я нашел ошибку и уточняет «Вы обнаружили ошибку. Все изменения, которые вы вносите в панель, на самом деле являются изменениями, которые вносятся в Карты Google, откуда и берутся данные панели.» и объяснения «Это все еще подпадает под область, о которой я упоминал ранее. Возможность предложить редактирование в Картах работает, как и предполагалось. Изменения, внесенные здесь, являются обзором Классификатора машинного обучения в дополнение к команде рецензентов, которые просматривают изменения, которые кажутся подозрительными или вредоносными по своей природе»
Кто ни будь из вас вообще понял, что они имели в виду?!**
Лично я нет, поэтому ответил им, что мол "дайте знать исправили ли вы все до конца, чтобы я мог дальше ковырять эту проблему и убедиться, что она решена."
Несмотря на все это, я начал дальше отрабатывать другие возможности манипуляцией информацией в картах Google. Но как я понял, из их ответа что мол у них МЛ который не дает вносить изменения просто так + команда цензоров, которая проверяет изменения.
Я ушел с головой в изучение логики Google карт. Обо всем писать не буду, но могу констатировать печальный факт их МЛ работает плохо и если есть, какие то команды рецензентов, то они явно не готовы предотвращать манипуляции с данными в Google картах.
Кульминация
Я покажу как мне удавалось манипулировать данными после заявления Google о том, что у них все работает корректно.
По первому сценарию внесения изменений у меня ничего не получилось т.к. команда Google явно включила какую-то обработку изменений т. к. теперь выдавалось сообщение, что внесенные мною правки находятся на рассмотрении и они не применялись сразу и даже после долгого ожидания (до 24 часов). Но как говорится, не зря же мы изучали логику работы карт.
Попробуем проверить манипуляцию на Контур СКБ, т.к. у них много представительств в разных регионах.
На этот раз заходим в карты Google и ищем СКБ Контур, так же предлагаем внести изменения.
Напомню, что официальный сайт СКБ контур https://kontur.ru/
Меняем якобы на конкурента, который не аффилирован к СКБ контур:
Далее «Отправить» и ждем. Делаем поиск в поисковике Google Chrome и смотрим карточку:
Ждем пару часов и видим, что уже есть какой те прогресс. Наверное, Google отправила оповещение собственнику сайта или в организацию, подумал я и стал далее изучать. Было принято решение ковырять дальше карты ведь МЛ как-то же обрабатывает изменения.
Через 10-12 часов ковыряний я имел успех в своих манипуляциях (описывать конкретный сценарий здесь из соображений безопасности не буду), но факт на лицо мне удавалось производить манипуляции и далее.
Итог
Мне удалось манипулировать данными организации после того, как мне ответили из Google, что все работает нормально и это нормально для карт Google. Но в добавок еще и выдача в поиске выдавала нашу манипуляцию в карточке. И тут надо отметить, что изменения отражаются на Google картах по регионам, в которых можно вносить изменения. Что это значит? На момент моего исследования я находился в Калининградской области соответственно все изменения, которые я вносил, применялись тока на Google картах этого региона и поисковая выдача выдавала карточку организации для этого региона.
По итогу я понял, что компания Google что-то исправила в результате моего первого отчета, но не так хорошо, как это нужно сделать. Я продолжал им писать и говорить: «Ей, парни. Кто ни будь свяжитесь со мной, у вас не работает это должным образом, а до сих пор могу манипулировать данными в Google картах!». Последнее что я получил от них это
Меня это очень обидело, скажем честно. Столько времени потрачено на описание ошибки для отчета, на эту переписку с поддержкой.
И всем тем кто в будущем захочет подавать отчеты об ошибках в программе Google делайте это лучше с почты, которая привязана к структуре Google, иначе вас ждет одно разочарование (по итогу очень долго отвечают на письма не с их адресацией + вам не дадут доступ к панели отслеживания https://issuetracker.google.com/ там идет привязка к почте с которой вы отправляете отчет.
Вектор атаки
После того как я описал саму проблему было бы не плохо поговорить об опасности, которую представляет эта проблема. В своем отчете в Google я указал разные вектора атак и использование этой ошибки. Рассмотрим здесь только пару вариантов в подтверждение того, что это действительно может быть важной ошибкой.
- Предположим, что мы создаем клон официального сайта Microsoft (или любой другой большой организации) но с небольшими хитростями (можно сделать подмену символов, можно сделать похожее написание или похожий адрес не суть), далее мы с помощью описанной мною ошибки манипулируем данными для определённого региона в картах Google (делаем подмену официально сайта, на созданный нами), теперь пользователь будут перенаправляться на наш подменный сайт с помощью Google карт в том регионе и поисковой выдаче Google для того же региона, те кто будет использовать для перехода карточку организации и жамкать на кнопку «Сайт». Далее фантазия безгранична, что делать с пользователями, которые перешли на подменный ресурс? Начиная от сбора данных, которые пользователи могут вбивать на этих ресурсах, думая что они на официальном сайте ведь они прошли по ссылке, которую выдали Google карты и поисковая система Google, заканчивая тем, что можно просто размещать вредоносы, которые буду скачивать пользователи).
- Таким же образом можно просто перенаправлять пользователей на сайты конкурентов лишая клиентуры организацию для определенного региона (таргетированно).
- Поехали мы в командировку, хотим остановиться допустим в Hilton Denver City Center. Открываем карты Google и ищем нужный нам отель переходим на сайт (где уже есть сюрприз).
Делаем клон сайта для сбора данных которые возможны и потом (после заполнения всех форм) перенаправляем всех на официальны сайт.
Я не буду описывать все возможные сценарии, могу только сказать, что пару таких вариантов мы проверили и они работают. А самая прелесть в том, что это можно делать на определенный период времени и таргетированно на определенные регионы (куда мы вносим изменения), чтобы официально ничего не заметили. То есть мы можем поменять электронный адрес и официальный сайт на то, что, хотим на определенный промежуток времени и в определенном регионе, а потом все вернуть как было, чтобы владельцы организации не заметили эту подмену на выдаче карт Google. Так же хочется отметить, что все приложения которые берут данные из Google карт или используют их в своей выдаче берут и все манипуляции, которые проходят на Google картах (отдельный привет Booking.com, TripAdvisor и др.).
Вывод
Что по итогу, что я хотел здесь сказать. Это, наверное, больше крик души, потому что жаль видеть, как относятся корпорации к твоим отчетам об ошибках. По итогу на сегодня описанная мною ошибка позволяла манипулировать данными на Google картах. Из программы Google bug bounty. https://www.google.com/about/appsecurity/reward-program/ ответ «this report is not in scope for our VRP». То есть ни спасибо, ни чего, и нет упоминания, что они что-либо правили, тока что все работает как надо! Я не являюсь профессиональным "Багбаунтером", но занимаюсь время от времени этим ради фана, может я и не прав и Google карты действительно работают как надо. Но написав эту статью я хочу, чтобы эта информация стала публична (организации задумались о таком векторе атаки) и Google все-таки поправила эту ошибку до конца (ограничили действия об изменении данных организации без ее ведома). И да я бы не отказался, если все-таки компания Google хоть как-то сказала: «Спасибо» за мой отчет и потраченное время, но кто я такой в конце концов.