Злоумышленники стали чаще использовать бреши в имплементации OAuth для получения финансовой выгоды. Хотя OAuth и считается надёжным протоколом, его степень защищённости зависит от настроек. Недостаточно просто внедрить протокол, необходимо правильно его настроить.
- Введение
- Что такое атака с использованием OAuth-приложения?
- Способы и механизмы защиты от атак на OAuth
- Выводы
Введение
OAuth — это протокол авторизации, описывающий путь получения безопасного доступа к ресурсам. Он освобождает пользователей от ввода паролей, сводя весь процесс к нажатию кнопки. Самый яркий пример использования этого протокола — авторизация через социальные сети.
Рисунок 1. Примеры авторизации с использованием протокола OAuth
OAuth оценили как пользователи, так и бизнесмены. Поэтому он быстро превратился в популярный инструмент безопасного доступа к широкому спектру ресурсов.
Заинтересовались OAuth и злоумышленники. Они изучили протокол и обнаружили, что из-за неправильных настроек или по недосмотру администраторов часто возникают ошибки, которые можно использовать для получения доступа к данным пользователей.
Некоторые хакеры уже пробовали атаковать PayPal, Microsoft и другие известные компании, используя бреши в имплементации OAuth 2.0. В результате кибератак организации понесли убытки, средний размер которых составил около 100 000 долларов США.
Что такое атака с использованием OAuth-приложения?
Сам протокол OAuth безопасен, но неверная реализация процедур может стать причиной появления уязвимостей. Хакеры используют бреши в имплементации протокола, чтобы обманом заставить людей предоставить вредоносному приложению доступ ко своей личной информации и (или) ввести учётные данные в поддельную форму. Далее злоумышленники применяют полученные сведения для своих целей, чаще всего — в финансовых преступлениях.
Различают три вида атак с использованием OAuth-приложений.
Фишинг
Хакеры создают поддельные страницы входа в знакомые клиентам приложения с аутентификацией OAuth. На первый взгляд всё выглядит достоверно, поэтому клиент сразу даёт согласие на обработку своих данных. После этого вредоносное приложение получает доступ к персональной информации.
Известен случай, когда хакеры создали и использовали якобы официальное приложение известного банка с целью получить личные данные их клиентов. Внешне всё выглядело очень убедительно: атрибутика, цветовые решения, имена руководства и прочее.
Рисунок 2. Вредоносная имитация официального банковского сайта
Люди переходили на мошеннический сайт, скачивали и устанавливали приложение. В процессе регистрации они вводили личные данные и давали согласие на их обработку.
Рисунок 3. Получение согласия при помощи вредоносного OAuth-приложения
По завершении регистрации с клиентами связывались «специалисты», которые инструктировали жертв — якобы по вопросам инвестирования через банковскую систему. Люди следовали рекомендациям, предоставляли дополнительную личную информацию о своих счетах и сразу лишались сбережений.
Использование OAuth для обхода фильтров контента
Корпоративный контент-фильтр или межсетевой экран часто настраивается таким образом, чтобы OAuth от определённого поставщика работал в компании беспрепятственно. Поэтому мошенники создают собственные учётные записи OAuth у тех же самых провайдеров.
Допустим, компания хранит какие-то сведения в облачном сервисе Google. Тогда хакер зарегистрируется в том же облачном сервисе и создаст точку входа (URL) для обратного вызова приложения, которая будет немного отличаться от настоящей. Обойдя средства сетевой безопасности, злоумышленник сможет использовать свой новый аккаунт под видом учётной записи сотрудника для импорта вредоносного кода и его выполнения.
Другой пример использования OAuth для обхода фильтров контента — случай, когда хакеры применяют украденные учётные данные для авторизации на популярных сайтах (например, в соцсетях) и публикуют от лица жертв запрещённый контент: фейковые новости либо материалы с провокационным содержанием.
Использование OAuth для криптомайнинга
Взломанные учётные данные могут применяться для создания новых OAuth-приложений, которым предоставляются широкие полномочия. Это позволяет скрывать вредоносную активность и обеспечивать непрерывный доступ к данным даже когда исходная учётная запись уже потеряна.
Такие приложения использовала группировка Storm-1283, которая с помощью взломанного аккаунта смогла развернуть виртуальные машины для криптомайнинга. Данные учётной записи позволили злоумышленникам через VPN создать новое OAuth-приложение с доменным именем наподобие идентификатора Microsoft Entra, а затем добавить в него несколько секретов. После этого они создали несколько виртуальных машин в облаке жертвы и инициировали майнинг криптовалюты. Позднее хакеры возвратились и развернули ещё больше машин.
Рисунок 4. Схема использования OAuth-приложения для криптомайнинга
Способы и механизмы защиты от атак на OAuth
Способы защиты от атак можно рассматривать как с позиции клиента, так и с точки зрения администратора или специалиста по безопасности. Сразу отметим, что во втором случае необходимо понимать, как OAuth работает на фундаментальном уровне в качестве протокола аутентификации и авторизации. Без этих знаний эффективно внедрить методы защиты от всех форм атак будет трудно.
Перечисленные ниже способы и механизмы защиты минимизируют риск возникновения угроз и обеспечивают бесперебойное взаимодействие между владельцем ресурса и его конечным пользователем.
Рекомендации пользователям приложений
Кражи данных можно избежать, если следовать правилам безопасного поведения в сети:
- Проверяйте адреса электронной почты отправителя и ссылки, по которым вас просят перейти.
- Убедитесь, что программа использует протокол HTTPS для передачи информации.
- Не используйте одинаковых логинов и паролей для разных сайтов и приложений.
- Не раскрывайте онлайн или по телефону личные данные, включая пароли и коды подтверждения, третьим лицам, даже если они представляются сотрудниками правоохранительных органов, банков и пр.
- Если данные учётных записей стали кому-то известны или попали в общий доступ, измените их на тех сайтах, где они использовались. При необходимости срочно сообщите о своей ситуации администратору программы или веб-портала.
- Следите за тем, чтобы приложение не запрашивало у вас доступ к ненужным ресурсам.
- Периодически обновляйте пароли от важных аккаунтов.
- Используйте двухфакторную аутентификацию.
Рекомендации администратору
Для защиты приложений и пользовательских данных администратору необходимо придерживаться следующих рекомендаций.
Использовать протокол SSL (TLS)
SSL (с версии 3.0 — TLS) представляет собой криптографический протокол для безопасной связи. Передаваемые данные защищаются с помощью шифрования. Для обмена информацией требуется подлинный сертификат. Применение SSL / TLS предотвращает перехват и модификацию данных.
Рисунок 5. Схема формирования защищённого соединения с использованием протокола SSL
Шифровать важные данные клиента
Не следует хранить информацию в виде открытого текста. Для шифрования можно использовать разные системы. Например, решения класса CIAM защищают данные при их передаче и в состоянии покоя. CIAM гарантирует сохранность данных даже в том случае, если они будут украдены или перехвачены.
Использовать токены обновления
Токены обновления автоматически завершат сеанс работы с информационной системой или приложением, если активность пользователя прекратится. Длительность периода бездействия задаётся заранее. Такой подход снизит риск взлома, поскольку злоумышленник не сможет перехватить сеанс.
Установить короткий срок службы токенов
Срок службы токенов должен быть коротким — не более минуты. При настройке системы OAuth можно установить время жизни токена, после истечения которого он станет недействительным и клиенту придётся повторно запросить доступ к ресурсам.
Защитить от атак методом перебора
Необходимо настроить блокирование учётной записи клиента после определённого числа неудачных попыток аутентификации.
Обеспечить проверку URL перенаправления
При каждом запросе токена доступа необходимо получать подтверждение того, что URL перенаправления полностью совпадает с зарегистрированным.
Разрешить пользователям отзывать доступ к своим данным
OAuth-приложения предоставляют пользователям полный контроль над личными данными. Администратору следует продумать и внедрить механизм отзыва токенов, чтобы можно было блокировать нежелательный доступ.
Внедрить механизм двухфакторной аутентификации
Пользователю понадобится дополнительно удостоверять личность при помощи дополнительного фактора. Это может быть код из СМС-сообщения, совокупность биометрических данных и пр. В результате повысится защищённость учётной записи.
Защитить от подделки межсайтовых запросов
Необходимо использовать параметр «state» при инициировании запроса на авторизацию, а также выполнять проверку возвращаемого состояния на соответствие исходному значению.
Обеспечить надёжное хранение токена доступа
Например, можно использовать механизм идентификационных файлов (cookie) с дополнительными флагами, включая «HttpOnly» и «Secure». Это уменьшит вероятность кражи токена доступа с использованием уязвимостей, позволяющих хакерам внедрять вредоносный код через сайт в браузеры других пользователей.
После внедрения способов защиты необходимо снова провести тестирование и проверить реализацию на разных сервисах авторизации и клиентских приложениях.
Выводы
В фокус внимания хакеров могут попасть любые организации: от финансового сектора до нефтегазовой отрасли. В то же время конечному пользователю трудно понять, правильно ли он авторизовывается на сайте. Поэтому каждой компании необходимо регулярно проверять разрешения OAuth и своевременно информировать своих клиентов о возможных кибератаках. Конечно, лучший вариант защиты — автоматизировать мониторинг OAuth.