Представлен новый вид атаки по перехвату данных, передаваемых через HTTPS-соединения
На прошедшей конференции Black Hat была обнародована информация о новом виде атаки BREACH, позволяющем восстановить содержимое отдельных секретных идентификаторов (например, сессионные cookie и CSRF-токены), передаваемых внутри зашифрованного HTTPS-соединения. Метод атаки BREACH практически идентичен представленной в прошлом году атаке CRIME (Compression Ratio Info-leak Made Easy), за тем исключением, что атака оперирует особенностью изменения характера потока при сжатии на уровне HTTP, а не при сжатии на уровне TLS/SSL, как в случае с CRIME.
Для организации атаки требуется получение контроля за трафиком на промежуточном шлюзе и выполнение на стороне браузера клиента JavaScript-кода злоумышленника (в случае получения контроля над транзитным шлюзом, осуществить подстановку JavaScript-кода в незащищённый трафик не составляет труда). Атака строится на возможности выделения в отслеживаемом зашифрованном трафике блоков данных с метками, отправляемыми подставным JavaScript-кодом на сайт, для которого требуется перехватить идентификационные данные, в рамках общего шифрованного канала связи.
Так как содержимое отправляемых JavaScript-кодом помеченных пакетов известно, за исключением секретного идентификатора, и известен размер всех данных, то путем повторной отправки подставных запросов атакующий может символ за символом угадать содержимое искомых данных, сопоставляя свои попытки изменением размера сжатых данных (восстановление CSRF-токена было продемонстрировано за 30 секунд, потребовав отправки примерно 4000 пробных запросов). Точность восстановления оценивается в 95%.
Если для защиты от CRIME уже повсеместно отключено сжатие на уровне TLS/SSL, то в случае BREACH требуется отключение сжатия gzip/deflate на уровне HTTP. В качестве метода защиты на уровне web-приложений, предлагается случайным образом менять представление секретных идентификаторов при каждом запросе, например, через операцию XOR со случайной маской.