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

    QR-аутентификация не так безопасна, как принято считать



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

    Метод, показанный Басетом, включает в себя как технологии, как и социальную инженерию. Такие гибридные методы атаки применяются злоумышленниками довольно часто. Для того, чтобы атаковать пользователя интернет-мессенджера, злоумышленник должен каким-либо образом заставить жертву просканировать специальный QR-код. Легче всего здесь использовать фишинг.



    Метод состоит из следующих этапов:

    1. Злоумышленник инициирует клиентскую QR-сессию и клонирует код QR-логина на фишинговую страницу;
    2. Жертве отправляется ссылка на эту страницу. Выглядит страничка вполне безопасно;
    3. Жертва сканирует поддельный QR-код, а приложение отправляет секретный токен, завершающий процесс аутентификацию;
    4. Злоумышленник получает подтверждение и теперь может контролировать аккаунт жертвы.

    Для того, чтобы метод оказался более-менее эффективным, атакующий должен создать скрипт, клонирующий временные QR-коды с обновлением их на фишинговом сайте. Дело в том, что QR-Login ограничивает время валидности QR-кодов. Главное условие атаки — и жертва, и злоумышленник должны находиться в онлайн-режиме одновременно.

    QRLJacking уже тестировался на ряде мессенджеров, включая QRLJacking на WhatsApp, WeChat, Line, Weibo, QQ Instant Messaging, QQ Mail, Alibaba. Все атаки, по словам разработчика, были завершены успешно.



    Исходный код proof-of-concepp опубликован Басетом на GitHub.

    Для того, чтобы опробовать скрипт в работе, нужно настроить серверную часть:

    1. Загружаем «qrHandler.php» на сервер. Этот скрипт конвертирует строку base64 QR-code в валидное изображение в формате jpg. Имя файла изображения по умолчанию — tmp.jpg. Располагается он в корневой папке файлов скрипта и обновляется каждый раз при запросе php-файла. Для привлечения пользователей можно подделать страницу WhatsApp, можно создать сайт с каким-либо привлекательным приложением для пользователей мессенджера и т.п.
    2. Обновляем файл «phishing.html», который и является исходником фишинговой веб-страницы.

    Настройка клиента (браузер злоумышленника)

    1. Открываем Firefox
    2. Прописываем «about:config» и, конечно, соглашаемся быть осторожными;
    3. Ищем строку «security.csp.enable» и меняем значение на false. После того, как скрипт будет опробован, лучше вернуть все обратно;
    4. Устанавливаем add-on Greasemonkey, убеждаемся в том, что файл «WhatsAppQRJackingModule.js» загружен и работает.
    5. Теперь все готово. Попробуйте открыть пример «web.whatsapp.com», ждем, пока загружается сессия WhatsApp. Greasemonkey начинет работать, используя WhatsApp модуль;
    6. Отправляем прямую ссылку на фишинговую страницу жертве.

    Смотрим на результат:



    Какие ресурсы уязвимы?


    По мнению разработчика, метод QRLJacking можно применять не только для интернет-мессенджеров, но и для прочих сервисов. Список уязвимых ресурсов и сервисов ниже:

    Чаты : WhatsApp, WeChat, Line, Weibo, QQ Instant Messaging
    Почтовики : QQ Mail, Yandex Mail
    eCommerce: Alibaba, Aliexpress, Taobao, Tmall, 1688.com, Alimama, Taobao Trips
    Online-банкинг: AliPay, Yandex Money, TenPay
    Сервисы идентификации: Yandex Passport (Yandex Mail, Yandex Money, Yandex Maps, Yandex Videos, etc...)
    Мобильное ПО: AirDroid
    Другие сервисы: MyDigiPass, Zapper & Zapper WordPress Login by QR Code plugin, Trustly App, Yelophone, Alibaba Yunos
    King Servers
    77.26
    Хостинг-провайдер «King Servers»
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 10

      +1
      Вполне обычный MITM + фишинг, ничего нового или удивительного.
      Для более *убедительного* способа стоило привести пример со ссылкой типа
      https://whatsapp.com....seekurity.net/, и тогда даже на скриншоте не было бы ничего подозрительного.
        0
        Такой атаке подвержены и простой пароль и одноразовый.
        Защитой от фишинга может быть, если браузер будет генерировать QR на основании информации, полученной от сервера и текущего URL или доменного имени.
          0
          А в чем разница, если злоумышленник отдает уже сгенерированый QR?
            0
            я имею в виду, что если бы браузер мог в своем интерфейсе отображать QR(данные_полученные_от_сервера+URL/domain), то выводить QR на самой станице не надо было бы. То есть это конечно возможно, если станет стандартом.
            Например, рядом с адресной строкой предусмотреть поле для QR, при наведении мышкой на которое отображается QR.
            image
              0
              Тогда, с технической точки зрения — злоумышленнику пришлось бы отображать qr также в интерфейсе браузера, ведь qr не имеет какой либо цифровой подписи, которая исключала бы возможность показывать его на другом домене.
                0
                Суть в том, чтобы QR рассчитывал и рисовал сам браузер.
            0
            А чем это отличается от обычного фишинга с просьбой ввести пароль?
              +1

              Пора перестать называть атакой то, что делается руками пользователя или по невнимательности/низкой квалификации. Каждый раз читаешь такие заголовки, вздрагиваешь, перечисляешь в голове пароли, которые следует сменить, переходишь к тексту, а там опять ловушка для дураков.

                0

                Атака на невнимательность пользователя — это тоже атака. Вспомните, сколько malware так распространяется.


                А квалификации у пользователя может не быть вообще никакой — на то он и пользователь

                  +1
                  Я с вами согласен — охота бывает и с ружьем, и на капкан, но от способа она не перестает быть охотой.
                  Но все же хотелось бы в заголовках видеть что-то в роде ловушки, а не атаки, ведь стрельба ведется по конкретно определенной цели, а капкан ставится на кого попадется (не на вот этого конкретного медведя, а на медведя).

                  Мне кажется примерно такую мысль хотел донести товарищ rumkin.

              Only users with full accounts can post comments. Log in, please.