HEIST позволяет получить зашифрованную информацию в HTTPS канале в виде открытого текста

4de69cf11bf538050437ef98cb8b25cc.png

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

Другими словами, эксплоит не требует использования MITM (man-in-the-middle) схемы. Вместо этого жертву атакуют при помощи невинного JavaScript файла, скрытого в рекламе или «вшитого» прямо в страницу вредоносного сайта. Вредоносный код после успешного выполнения может запрашивать ряд типов страниц, защищенных SSL или TSL протоколом и получать точный размер файлов с зашифрованными данными, которые передаются в защищенном режиме. Новый тип атаки получил название HEIST (HTTP Encrypted Information can be Stolen Through TCP-Windows).

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

Если точнее, то здесь используются эксплоиты BREACH (Browser Reconnaissance & Exfiltration via Adaptive Compression of Hypertext) и CRIME. BREACH позволяет получить тестовую информацию из защищенного файла всего за 30 секунд. CRIME не отстает от своего собрата. CRIME позволяет с помощью нескольких запросов побайтово подбирать содержимое cookies, наблюдая за значениями, которые выдаёт zlib. Эксплоит расшифровывает значение cookies по 4–6 запросов на каждый байт base64.

Технология HEIST была показана и объяснена на конференции Black Hat. По словам специалистов по информационной безопасности, HEIST позволяет проводить атаки быстрее и эффективнее, чем раньше. Тем более, что теперь не нужна схема MITM. Злоумышленники получают нужную информацию практически сразу после того, как жертва посещает зараженный сайт или сайт с зараженной рекламой.

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

HEIST может просчитывать количество фреймов и окон, путем взаимодействия с набором недавно одобренных API. Это Resource Timing и Fetch. В результате получается определить точный размер HTTPS ответа. А дальше, как уже говорилось выше, в дело вступают BREACH и CRIME. На выходе злоумышленник получает закрытую ранее информацию. Специалисты уже представили результаты своей работы Google и Microsoft. Так что представленный на Black Hat метод не стал сюрпризом для этих компаний. Злоумышленнику достаточно узнать CSRF токен жертвы, после чего аккаунт пользователя на определенном сайте можно скомпрометировать.

По словам авторов работы, представленной на Black Hat, пользователь может снизить вероятность успешного осуществления HEIST атаки, запретив в настройках браузера сторонние куки. С другой стороны, ряд сервисов просто не будет работать без сторонних куки.

e1fbecd0b1b6f878ff1183f6155af46e.png

При демонстрации атаки удалось измерить размер зашифрованных ответов для New York Times, используя сайт targetwebsite.com.

HEIST также эффективен против HTTP/2, обновленного стандарта HTTP. В некоторых ситуациях особенности HTTP/2 даже увеличивают эффективность работы HEIST. В частности, если используется HTTP/2, эксплоит может одновременно опрашивать несколько источников.

Сейчас, по мнению авторов работы, комбинированная атака с использованием BREACH и HEIST является одним из наиболее простых методов компрометации пользовательских аккаунтов самых разных ресурсов.

Другие наши публикации:

  • Аварии в дата-центрах, которые было (почти) невозможно предусмотреть
  • Рейтинг языков программирования в 2016 году
  • Uptime Institute представил новую систему сертификации дата-центров
  • Как Facebook сэкономил 75% энергии, которая требуется для хранения фоточек котиков и селфи пользователей

Комментарии (4)

  • 5 августа 2016 в 20:53

    +1

    «Расширение протокола HTTPS, которое защищает миллионы сайтов и сотни миллионов пользователей, уязвимо к новому типу атаки.» — мне так нравится это предложение…
  • 5 августа 2016 в 20:55

    +1

    Столько блаблабла, а в чём атака так и не понятно. Если вредный js подсадили, что мешает поменять что угодно?
    • 5 августа 2016 в 21:53

      0

      Многие используют CDN на своих сайтах, получается владельцы CDN могут использовать эту атаку.
      • 5 августа 2016 в 22:45 (комментарий был изменён)

        0

        Ну, не знаю. Так можно дойти и до того, что владельцы %package-manager%-registry могут атаковать проекты использующие в сборке хостящиеся либы…
        Страшно жить на белом свете становится.

© Habrahabr.ru