5 мая 2014

Сохраняйте спокойствие и бдительность, OpenID и OAuth уязвимы

Советы Угрозы

Сегодня, когда прошло меньше месяца с обнаружения опасной уязвимости Heartbleed, обычный посетитель Интернета вроде вас или меня сразу напряжется, услышав об очередном широко распространенном баге, который нелегко исправить. Увы, именно это описание подходит к уязвимости «Скрытая переадресация», о которой недавно написал Вон Цзинь, аспирант кафедры математики Сингапурского технологического университета в Нанъянге. Проблемы были обнаружены в популярных интернет-протоколах OpenID и OAuth. Первый применяется, когда вы входите на какие-то веб-сайты с помощью своего логина и пароля от Google, Facebook, «ВКонтакте» и так далее. Второй играет важную роль, когда вы разрешаете приложениям, сайтам или сервисам доступ к своему профилю в соцсети, не отправляя при этом в сторонние сервисы своего имени и пароля от соцсети. Эти две технологии обычно используются вместе и, как выясняется, могут передать ваши данные в чужие руки.

 oauth-openid-feat

Угроза

Наши коллеги с сайта Threatpost описали уязвимость во всех технических подробностях, но мы опустим ненужные пользователю детали и лишь опишем типичный сценарий атаки и возможные последствия. Сначала пользователя заманивают на фишинговый сайт, который оснащен типичными кнопками «Войти через Facebook» или «Авторизоваться через Google». Поддельный сайт может напоминать популярный сторонний сервис или выдавать себя за совершенно новый. При нажатии на кнопку «Войти» появляется всплывающее окно от настоящего Facebook или «ВКонтакте», предлагающее ввести логин и пароль или (если пользователь уже вошел в соцсеть) просто дать доступ к своему профилю. При этом во всплывающем окне указано, что доступ запрошен настоящим сайтом, то есть все выглядит чинно и благородно. Но затем авторизация и разрешение на доступ к профилю отправляются на неверный (фишинговый) сайт с помощью той самой переадресации. В итоге злоумышленник получает ключ доступа (токен OAuth) к пользовательскому профилю, причем у него будут те же права, которые имеет оригинальное приложение/сервис, сайт которого был подделан. В лучшем случае это будут только базовые данные о пользователе, а в худшем — возможность считывать контакты жертвы, рассылать им сообщения и так далее.

Дыра залатана? Увы, нет

Данная угроза, вероятно, не скоро исчезнет с горизонта, поскольку решать проблему нужно одновременно и у провайдера авторизации (Facebook/LinkedIn/Mail.ru и пр.), и у сайта, который ею пользуется. Протокол OAuth до сих пор не вышел из бета-версии, и разные провайдеры используют разные его варианты, которые отличаются по своей способности противостоять атаке. LinkedIn был в лучшей позиции и смог решить проблему радикально, заставив разработчиков, сотрудничающих с платформой, создать «белый список» ссылок переадресации. Сегодня любое приложение или сайт, использующие профиль LinkedIn для входа, либо безопасны, либо вовсе не работают, поскольку LinkedIn отключил от системы сервисы, которые не обновились. В Facebook дела обстоят иначе, поскольку и сторонних приложений на порядок больше, и версия OAuth, вероятно, менее свежая. Поэтому представители Facebook ответили Цзиню, что введение подобного доверенного списка — «не то, чего можно достичь за короткое время».

Технологии OpenID используются не только упомянутыми провайдерами, но и многими другими. Цзинь протестировал самые популярные сайты, с помощью которых можно подключиться к другим сервисам, и определил, что многие из них уязвимы. Если вы пользуетесь одним из сервисов с картинки, необходимо принять меры.

vuln-oauth

Что делать

Для самых осторожных наиболее надежным решением будет отказаться от использования OpenID и удобных кнопок «Войти с помощью…» на несколько месяцев. Заодно этот способ повышает степень вашей конфиденциальности, поскольку через удобные кнопки соцсетям проще следить за вашими перемещениями по разным сайтам, а самим сайтам — получать от соцсетей демографические данные о вас.

Чтобы избежать хлопот с запоминанием десятков (а то и сотен) паролей от различных сайтов, можно наконец начать пользоваться эффективным менеджером паролей. Многие сервисы такого рода сегодня многоплатформенны и поддерживают облачную синхронизацию, благодаря чему ваша база паролей доступна на любом вашем устройстве.

Но если вы планируете продолжить пользование OpenID, в этом нет прямой и немедленной угрозы. Вам лишь придется быть очень бдительными и избегать любых фишинговых схем, которые обычно начинаются с тревожного письма во входящих или провокационной ссылки в FB или иной соцсети. Если вы входите в какой-то сервис при помощи Facebook/Google/»ВКонтакте», убедитесь, что вы открываете сайт сервиса вручную или через закладки, а не по ссылке, которая прислана в почту или «Входящие» мессенджера. Дважды проверяйте адресную строку и не посещайте сомнительные сайты. Не подписывайтесь на новые приложения и сайты через FB/ВК и другие OpenID-сервисы, если вы уверены в репутации сайта/приложения меньше чем на 100% или неточно знаете правильный веб-адрес сайта. Также пользуйтесь приложением для защищенного веб-просмотра, например Kaspersky Internet Security для всех устройств, которое предотвращает посещение опасных сайтов, в том числе фишинговых.

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