Как миллионы приложений уязвимы для одного взлома системы безопасности
Безопасность

Как миллионы приложений уязвимы для одного взлома системы безопасности

OAuth – это открытый стандарт, позволяющий войти в стороннее приложение или на сайт, используя учетную запись Facebook, Twitter или Google, и он уязвим для хакеров

На конференции по безопасности Black Hat Europe в этом году два исследователя из Китайского университета Гонконга представили исследование, которое показало наличие эксплойта, влияющего на приложения Android, который потенциально может сделать более миллиарда установленных приложений уязвимыми для атак

Эксплойт основан на атаке ‘человек посередине’ на мобильную реализацию стандарта авторизации OAuth 2. 0. Это звучит очень технично, но что это означает на самом деле, и в безопасности ли ваши данные?

Что такое OAuth?

OAuth – это открытый стандарт, используемый многими веб-сайтами и приложениями для того, чтобы вы могли войти в стороннее приложение или веб-сайт, используя учетную запись одного из многочисленных провайдеров OAuth. Наиболее распространенными и известными примерами являются Google, Facebook и Twitter

Кнопка Single Sign On (SSO) позволяет вам предоставить доступ к информации вашей учетной записи. Когда вы нажимаете на кнопку Facebook, стороннее приложение или веб-сайт ищет маркер доступа, предоставляя ему доступ к вашей информации Facebook

Если этот маркер не найден, вам будет предложено разрешить сторонней организации доступ к вашей учетной записи Facebook. Как только вы разрешите это, Facebook получит сообщение от третьей стороны с просьбой предоставить маркер доступа

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

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

В чем проблема?

Последняя версия OAuth framework – OAuth 2. 0 – была выпущена в октябре 2012 года и не была предназначена для мобильных приложений. Это привело к тому, что многие разработчики приложений были вынуждены внедрять OAuth самостоятельно, не имея рекомендаций по тому, как это сделать безопасно

В то время как OAuth на веб-сайтах использует прямую связь между серверами третьей стороны и провайдера SSO, мобильные приложения не используют этот метод прямой связи. Вместо этого мобильные приложения взаимодействуют друг с другом через ваше устройство

При использовании OAuth на сайте Facebook передает маркер доступа и информацию об аутентификации непосредственно на сторонние серверы. Затем эта информация может быть проверена перед тем, как пользователь войдет в систему или получит доступ к каким-либо личным данным

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

Злоумышленник может войти в систему под своим именем, запустив запрос токена OAuth. После того как Facebook авторизует токен, он может вставить себя между серверами Facebook и приложением Facebook. Затем злоумышленник может изменить имя пользователя на маркере на имя жертвы. Имя пользователя обычно тоже является общедоступной информацией, поэтому для злоумышленника остается очень мало препятствий. После того, как идентификатор пользователя будет изменен, но авторизация все еще предоставлена, стороннее приложение войдет в систему под учетной записью жертвы

Этот тип атаки известен как атака ‘человек посередине’ (MitM). В этом случае злоумышленник может перехватывать и изменять данные, в то время как две стороны считают, что они общаются друг с другом напрямую

Как это влияет на вас?

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

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

Стоит ли беспокоиться?

Исследователи обнаружили, что 41,21% из 600 самых популярных приложений, поддерживающих SSO в Google Play Store, были уязвимы к MitM-атаке. Это потенциально может привести к тому, что миллиарды пользователей по всему миру окажутся незащищенными от такого типа атак. Команда провела свое исследование на Android, но они считают, что его можно повторить и на iOS. Это потенциально сделает миллионы приложений на двух крупнейших мобильных операционных системах уязвимыми к этой атаке

Image Credit: Bloomicon via Shutterstock.

На момент написания статьи не было никаких официальных заявлений со стороны рабочей группы по проектированию интернета (IETF), которая разработала спецификации OAuth 2. 0. Исследователи отказались назвать пострадавшие приложения, поэтому следует проявлять осторожность при использовании SSO в мобильных приложениях

Исследователи уже предупредили Google и Facebook, а также других провайдеров SSO об эксплойте. Кроме того, они работают вместе с пострадавшими сторонними разработчиками над устранением проблемы

Что вы можете сделать сейчас?

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

Полезно время от времени проводить собственную проверку безопасности.Google даже вознаградит вас облачным хранилищем за проведение проверки. Это идеальное время, чтобы проверить, каким приложениям вы дали разрешение на учетные записи SSO. Это особенно важно на таком сайте, как Facebook, где хранится огромное количество очень личной информации

Как вы думаете, пришло ли время отказаться от единого входа? Как вы считаете, какой метод входа в систему является лучшим? Пострадали ли вы от этого эксплойта? Дайте нам знать в комментариях ниже!

Image Credits: Marc Bruxelle/Shutterstock

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий