[recovery mode] Небезопасная авторизация

Я пытался привлечь внимание к проблеме, но у меня не получилось. Как вы знаете на разных сайтах существует способ авторизации через аккаунты соц. сетей. Я считаю его не безопасным и хотел бы услышать мнение других людей. Поддержка наиболее крупных российских компаний игнорирует проблему и ссылается на вебмастеров, что имхо не верное решение. Освещение проблемы под катом.Когда я перехожу на сервис N, и мне лень вводить в поля свое мыло, потом его подтверждать, вводить пароли и все прочее, я регистрируюсь, к примеру через mail.ru, для этого мне достаточно иметь там свой аккаунт, их сервер сам придумает мне логин и пароль, отдаст это сервису N и я благополучно войду на сервис и в будущем если мне нужно будет снова на него войти, мне нужно будет залогинится на mail.ru, потом перейти на сервис N и снова войти, как мы видим алгоритм прост и даже с некоторой точки зрения более безопасен, так как пароль, который придумает мне сервер аунтификации mail.ru будет более безопасным, чем мой, он составляется по случайному алгоритму.

Вроде бы все хорошо. Но в очередной раз вечером мне было скучно, я писал модуль авторизации для своего сайта, параллельно читал про api сервисов, которые предоставляют автоматическую аутентификацию и мне лично не нравиться один момент. Он происходит тогда когда пользователь уже зарегистрировался на сервисе через, к примеру mail.ru, что-то там сделал и вышел с него, куки сервиса N удались автоматически, но не куки mail.ru, в момент повторного входа, нас в браузере есть куки к mail.ru, мы заходим на сервис N, они отправляются на сервер аутентификации mail.ru, а в ответ на сервер N приходит зарастание подготовленные данные для входа меня на сервис N, он их смотрит и если все прошло хорошо, отдает мне куку, по которой я уже вхожу на сервис N. Все было бы хорошо если бы не такая распространенная уязвимость или не уязвимость, как xss. Подвержены ей почти все сайты, статистика говорит, что более 90% сайтов подвержены xss.

Когда мы со всем разобрались давайте взламывать.

Нам нужен сервис N, xss на нем, и сервис N должен быть подключен к системе аутентификации к примеру mail.ru. Жертва в нашем случае становиться жертвой автоматически если у неё есть куки mail.ru.

Это работает довольно просто берем пустую страничку, вставляем на неё

И все снифер принял куки стороннего сервиса.

Я обращался к mail.ru, к vk.com, к yandex.ru с целью, что бы они поменяли алгоритм авторизации, меня либо игнорируют, либо говорят, что это проблема вебмастеров, а тем временем возможно сотни аккаунтов могут уже быть слиты. Почему? Любому хакеру хватит взломать посещаемую страничку, вставить туда скрытых фреймов и ждать жертв, все автоматизированно.

Ради эксперимента для составления статистики я нашел xss на одном посещаемом сервисе 50 тыс. посещений в день. Написал простенький эксплоит (с разрешения администрации естественно) и за первый час получил 150 куки невинных жертв.

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

© Habrahabr.ru