Хочу сразу отметить, что я решил написать этот пост в надежде привлечь внимание к этой проблеме, т.к. техподдержка, в которую я обратился 3 дня назад, до сих пор не закрыла эту дыру.
Не так давно компания MediaMarkt проводила широкую рекламную акцию в СМИ, в которой всем предлагалось поучаствовать в конкурсе эссе, победитель которого получит шанс бесплатно вынести из магазина MediaMarkt любые товары за определенное время. Одним из обязательных условий конкурса была подписка на периодическую рассылку на сайте компании. Для этого необходимо было заполнить небольшой профиль.
Я решил поучаствовать в конкурсе и создал свой аккаунт на сайте, подписался на рассылку.
После очередного письма от MediaMarkt я решил, что не хочу больше видеть эту рекламную мишуру в своем почтовом ящике и решил отписаться.
В самом конце письма я увидел ссылку «Если Вы больше не хотите получать предложения Media Markt, нажмите сюда».
Нажал на ссылку и был сильно удивлен, т.к. открылась страница редактирования профиля с чужими данными (Имя, Фамилия, email, дата рождения, мобильный и домашний телефоны и ближайший магазин MediaMarkt). Нажал на ссылку еще раз. Открылась та же страница с теми же чужими данными.
Я нашел на сайте форму обратной связи, описал проблему и получил ответ:
Сегодня я решил еще раз нажать на ссылку отписки в этом письме. И снова открылась страница редактирования профиля, но только уже с другими чужими данными.
Судя по всему, уникальные хэши пользователей, которые используются в ссылке для идентификации подписчика, периодически меняются и соответствие «хэш-юзер» меняется вместе с ними.
Могу предложить один из тысячи вариантов использования этой дыры:
1. Регистрируем пачку (например, сотню) аккаунтов на сайте и подписываемся на рассылку. Все ящики настраиваем на пересылку на один общий ящик.
2. Ждем рассылки, раз в день проходим по ссылкам отписки из каждого письма и собираем чужие личные данные. В нашем случае это примерно сто карточек пользователя в день, содержащих ФИО, дату рождения, email, мобильный и домашний телефоны, и даже примерное географическое положение по указанному ближайшему магазину MediaMarkt.
3. После набора нужного количества личных данных используем базу в корыстных целях: спам, смс-спам, таргетированный спам (например, «Предложение специально к вашему дню рождения»), продажа, вредительство (размещение объявлений от имени чужих лиц), знакомства, мошенничество, взлом аккаунтов в соцсетях, почты пользователей и еще много-много разных вариантов, ограниченных только лишь фантазией злоумышленника.
Как видно, дыра не просто большая, а ОЧЕНЬ большая. Для ее закрытия достаточно было в качестве временной заплатки добавить редирект на страницу входа для пользователей, перешедших по ссылке отписки, чтобы пользователь 100% входил в СВОЙ личный кабинет.
А в это время разбираться с поломанными хэшами.
Однако, времени на это за 3 дня у «специалистов Центрального Офиса» не нашлось.
Я считаю, что такое попустительство непозволительно для столь крупной международной компании.
Везде и у всех рано или поздно случаются ошибки, но профессионализм сотрудников определяется умением вовремя ошибки распознать, исправить и не допустить их повторного появления.
Надеюсь, что этот пост послужит хорошим пинком и форсирует исправление данной ситуации.
UPD:
Вижу, что многие считают 3 дня недостаточным сроком для исправления такой дыры.
Я не считаю, что 3 дня (пусть даже из них 2 выходных) — это мало для исправления такой ошибки.
Сужу по себе и своим знакомым: при обнаружении такой значительной дыры начальство подняло бы всех программистов на уши, не важно — выходной/не выходной. За 15-30 минут заплатка была бы поставлена, а уже разбирательство в причинах и исправление ошибки оставлены до понедельника. По крайней мере, до понедельника уже никто из случайных пользователей доступ к чужим личным данным не получил бы.
Я считаю это нормальным.
Я понимаю, что бюрократические проволочки внутри компании могли задержать передачу информации до конечных программистов. Но это не оправдание для такой дыры. Если это так, то пусть компания пересматривает политику оперативного уведомления разработчиков о серьезных проблемах, потому что это не должно становиться проблемой конечных пользователей сайта компании, чьи личные данные стали вдруг доступны посторонним людям.
UPD2:
По всей видимости, дыру закрыли. По ссылке отписки открывается пустая форма без данных. Видимо, потому что свой аккаунт я удалил, не желая разглашения своей информации третьим лицам. Уточню, что с утра открывалась форма с чужими данными, аккаунт на тот момент был уже удален.
Предыстория
Не так давно компания MediaMarkt проводила широкую рекламную акцию в СМИ, в которой всем предлагалось поучаствовать в конкурсе эссе, победитель которого получит шанс бесплатно вынести из магазина MediaMarkt любые товары за определенное время. Одним из обязательных условий конкурса была подписка на периодическую рассылку на сайте компании. Для этого необходимо было заполнить небольшой профиль.
Я решил поучаствовать в конкурсе и создал свой аккаунт на сайте, подписался на рассылку.
Проблема
После очередного письма от MediaMarkt я решил, что не хочу больше видеть эту рекламную мишуру в своем почтовом ящике и решил отписаться.
В самом конце письма я увидел ссылку «Если Вы больше не хотите получать предложения Media Markt, нажмите сюда».
Нажал на ссылку и был сильно удивлен, т.к. открылась страница редактирования профиля с чужими данными (Имя, Фамилия, email, дата рождения, мобильный и домашний телефоны и ближайший магазин MediaMarkt). Нажал на ссылку еще раз. Открылась та же страница с теми же чужими данными.
Я нашел на сайте форму обратной связи, описал проблему и получил ответ:
Здравствуйте,
Благодарим Вас за то, что не оставили данный случай без внимания, нашли время написать нам.
Ваша информация была передана специалистам Центрального Офиса, которые занимаются разработкой сайта
Еще раз приносим Вам искренние извинения и надеемся, что этот случай не повлияет на Ваше решение посещать наш магазин в будущем.
Развитие проблемы
Сегодня я решил еще раз нажать на ссылку отписки в этом письме. И снова открылась страница редактирования профиля, но только уже с другими чужими данными.
Судя по всему, уникальные хэши пользователей, которые используются в ссылке для идентификации подписчика, периодически меняются и соответствие «хэш-юзер» меняется вместе с ними.
Потенциальная угроза
Могу предложить один из тысячи вариантов использования этой дыры:
1. Регистрируем пачку (например, сотню) аккаунтов на сайте и подписываемся на рассылку. Все ящики настраиваем на пересылку на один общий ящик.
2. Ждем рассылки, раз в день проходим по ссылкам отписки из каждого письма и собираем чужие личные данные. В нашем случае это примерно сто карточек пользователя в день, содержащих ФИО, дату рождения, email, мобильный и домашний телефоны, и даже примерное географическое положение по указанному ближайшему магазину MediaMarkt.
3. После набора нужного количества личных данных используем базу в корыстных целях: спам, смс-спам, таргетированный спам (например, «Предложение специально к вашему дню рождения»), продажа, вредительство (размещение объявлений от имени чужих лиц), знакомства, мошенничество, взлом аккаунтов в соцсетях, почты пользователей и еще много-много разных вариантов, ограниченных только лишь фантазией злоумышленника.
Как видно, дыра не просто большая, а ОЧЕНЬ большая. Для ее закрытия достаточно было в качестве временной заплатки добавить редирект на страницу входа для пользователей, перешедших по ссылке отписки, чтобы пользователь 100% входил в СВОЙ личный кабинет.
А в это время разбираться с поломанными хэшами.
Однако, времени на это за 3 дня у «специалистов Центрального Офиса» не нашлось.
Я считаю, что такое попустительство непозволительно для столь крупной международной компании.
Везде и у всех рано или поздно случаются ошибки, но профессионализм сотрудников определяется умением вовремя ошибки распознать, исправить и не допустить их повторного появления.
Надеюсь, что этот пост послужит хорошим пинком и форсирует исправление данной ситуации.
UPD:
Вижу, что многие считают 3 дня недостаточным сроком для исправления такой дыры.
Я не считаю, что 3 дня (пусть даже из них 2 выходных) — это мало для исправления такой ошибки.
Сужу по себе и своим знакомым: при обнаружении такой значительной дыры начальство подняло бы всех программистов на уши, не важно — выходной/не выходной. За 15-30 минут заплатка была бы поставлена, а уже разбирательство в причинах и исправление ошибки оставлены до понедельника. По крайней мере, до понедельника уже никто из случайных пользователей доступ к чужим личным данным не получил бы.
Я считаю это нормальным.
Я понимаю, что бюрократические проволочки внутри компании могли задержать передачу информации до конечных программистов. Но это не оправдание для такой дыры. Если это так, то пусть компания пересматривает политику оперативного уведомления разработчиков о серьезных проблемах, потому что это не должно становиться проблемой конечных пользователей сайта компании, чьи личные данные стали вдруг доступны посторонним людям.
UPD2:
По всей видимости, дыру закрыли. По ссылке отписки открывается пустая форма без данных. Видимо, потому что свой аккаунт я удалил, не желая разглашения своей информации третьим лицам. Уточню, что с утра открывалась форма с чужими данными, аккаунт на тот момент был уже удален.