Эксперты продемонстрировали атаку на примере Gmail и чата Facebook.
HTTP компрессия, используемая на большинстве сайтов для уменьшения размера передаваемых данных, может стать серьезной угрозой безопасности, если сайт использует HTTPS. Об этом заявили эксперты по безопасности Димитрис Каракостас (Dimitris Karakostas) и Дионисис Зиндрос (Dionysis Zindros). Исследователям удалось усовершенствовать эксплуатацию давно известной бреши, позволяющей ускорить расшифровку HTTPS трафика, и применить атаку против блочных шифров в SSL/TLS соединении.
Атака, получившая название BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext), использует недочеты алгоритма сжатия gzip/DEFLATE. Впервые об атаке стало известно еще в 2013 году. На конференции Black Hat USA исследователи Ангело Прадо (Angelo Prado), Нил Херрис (Neal Harris) и Йоел Глюк (Yoel Gluck) рассказали об атаках на SSL/TLS потоковые шифры, например RC4.
Демонстрация нового подхода к эксплуатации реализована в фреймворке с открытым исходным кодом Rupture, представленном на конференции Black Hat Asia на прошлой неделе.
Во время доклада эксперты продемонстрировали две успешные атаки на Gmail и чат Facebook.
Для осуществления BREACH атаки злоумышленник должен иметь возможность перехвата сетевого трафика жертвы. Это может быть осуществлено посредством Wi-Fi сети, или через доступ к оборудованию Интернет-провайдера. Атакующему также потребуется обнаружить уязвимую часть приложения, принимающую входные данные посредством URL параметров, и возвращающую эти данные в зашифрованном ответе.
В случае с Gmail таким приложением оказался поиск на сайте для мобильных устройств. Если поисковый запрос осуществляется от имени авторизованного пользователя, к ответу также присоединяется аутентификационный токен. Этот токен будет зашифрован внутри ответа. Однако каждый раз, когда искомая строка будет совпадать с частью токена, размер ответа клиенту будет меньше, поскольку одинаковые строки в ответе будут сжиматься.
Злоумышленник может заставит клиентское приложение отправить большое количество запросов и, таким образом, угадать все символы аутентификационного токена.
Фреймворк Rupture позволяет внедрить специальный код в каждый незашифрованный HTTP запрос, открытый браузером жертвы. Внедренный код заставляет браузер клиента осуществлять подключения к уязвимому HTTPS приложению в фоновом режиме. Это требуется для проведения успешной атаки на блочные шифры, создающие много «шума» при шифровании данных. Для устранения мусора исследователи отправляли одни и те же запросы несколько раз подряд и анализировали разницу в размерах полученных ответов. Экспертам также удалось использовать параллелизацию на стороне браузера, что значительно ускорило атаку против блочных шифров в TLS подключениях.