Мой основной блог ZLONOV.ru (RSS-лента) | Презентации и документы: SlideShare | Ссылка на Twitter: @zlonov

2 августа 2016 г.

Атака QRLJacking доказывает небезопасность авторизации с использованием SQRL

Исследователь из Египта Мохамед Басет (Mohamed Baset) опубликовал подробную информацию о новом векторе атак на SQRL (Secure QR Logins, или Secure, Quick, Reliable Logins). Данный метод аутентификации на базе QR-кодов применяется во многих приложениях, к примеру, WeChat, Line и WhatsApp, и до недавнего времени он считался весьма надежным. Басет доказал, что безопасность SQRL переоценивают.

Басет назвал свой метод QRLJacking (Quick Response code Login Jacking). Фактически данная атака опирается на социальную инженерию, то есть для ее использования понадобится применить фишинг или другую сходную тактику, чтобы заставить жертву просканировать поддельный QR-код.
Суть меда проста: сначала злоумышленник должен сам инициировать клиентскую QR-сессию и клонировать код QR-логина на фишинговую страницу. Затем ссылку на данную страницу нужно прислать жертве и убедить ее, что ссылка ведет на легитимный и безопасный ресурс. 

Как только пользователь, попавшийся на удочку злоумышленника, отсканирует поддельный QR-код на странице, приложение отправит секретный токен, который должен завершить процесс аутентификации. Так как исходную клиентскую сессию инициировал хакер, подтверждение получит именно он и перехватит контроль над аккаунтом жертвы. То есть, по сути, для реализации атаки нужна добротно сделанная фишинговая страница и рефрешинг скрипт для QR-кода.
«Чтобы инициализировать QRLJacking, атакующему нужно будет написать скрипт, который будет регулярно клонировать временные QR-коды и обновлять их на фишинговом сайте, ведь как известно, процесс QR Login должен иметь четкие интервалы истечения срока действия для QR-кодов», — пишет исследователь.
Реализация атаки немного усложняется тем, что жертва и злоумышленник должны одновременно находиться в онлайне, плюс QR-коды некоторых сервисов, возможно, понадобится модифицировать, для чего потребуются соответственные навыки.
Басет рассказал, что он протестировал QRLJacking на WhatsApp, WeChat, Line, Weibo, QQ Instant Messaging, QQ Mail, Alibaba и так далее. Во всех случаях атака завершилась успехом. Ниже можно увидеть видеодемонстрацию работы QRLJacking.

Технические подробности можно найти на OWASP, а proof-of-concept Басет опубликовал на GitHub.

Источник: «Хакер»