Новая атака на уязвимость во всех версиях SSL и TLS версии 1.0, известная с 2001 года, позволяет злоумышленникам в одной сети шпионить за файлами cookie, передаваемыми по протоколу HTTPS.
Атака через веб-браузер
При атаке «поблочно с выбранным открытым текстом» злоумышленник может зашифровать любой открытый текст по своему выбору в блоках. Используемая энтропия затем может быть выведена из известного ему открытого текста и наблюдаемого ключевого текста.
Это значительно снижает усилия, необходимые для взлома шифрования.
BEAST состоит из двух частей: кода JavaScript или Java-апплетов, которые внедряются в браузер жертвы и вводят подготовленные данные в зашифрованное соединение, и сниффера, который подслушивает данные, передаваемые, например, через WLAN.
Блочные шифры, такие как DES или AES, работают в разных режимах. В этом случае атаке подвергается рабочий режим «Связывание блоков шифров» (CBC), который используется с AES. В этом «блочном шифре с цепочкой блоков» перед шифрованием каждого блока, кроме первого, зашифрованный текст предыдущего блока добавляется к открытому тексту модульным образом и соответствующим образом вычитается во время расшифровки.
Это не позволяет злоумышленнику обнаружить шифрование двух одинаковых блоков открытого текста. Поскольку для первого блока нет предшествующего зашифрованного текста, злоумышленник может определить, начинаются ли два открытых текста с одних и тех же блоков. Чтобы предотвратить это, кеш инициализируется случайным значением.
При атаке «поблочно выбранный открытый текст» открытый текст других блоков выводится путем вставки подготовленных блоков открытого текста. В частности, BEAST нацелен на сеансовые файлы cookie, которые автоматически отправляются на веб-сервер при каждом запросе. Вставляя соответствующие блоки простого текста один за другим, cookie можно постепенно определять посимвольно.
Для нападения должен быть соблюден ряд предпосылок:
- Злоумышленник должен иметь возможность наблюдать за сетевым подключением жертвы, например, в открытой WLAN.
- Злоумышленник должен иметь возможность внедрить свой код в браузер жертвы.
- Внедренный злоумышленником код должен иметь возможность отправлять HTTPS-запросы.
- После прослушивания сгенерированного запроса должна быть возможность прикрепить к этому запросу дополнительные данные.
С помощью BEAST можно шпионить за файлами cookie, которые уже присутствуют при вводе кода в браузер. Сам внедренный код не имеет к ним доступа, поскольку они помечены как доступные только для HTTP.
По данным экспертов, за файлом cookie сеанса BEAST можно отследить менее чем за 3 минуты. И речь идет не просто о чтении каких-либо данных в браузере: файл cookie извлекается из передаваемых зашифрованных данных.
Контрмеры проблематичны
Простейшей контрмерой было бы прекратить использование SSL и TLS 1.0. В TLS 1.1 атака предотвращается за счет использования индивидуальных векторов инициализации. К сожалению, это не так просто ни на стороне клиента, ни на стороне сервера, поскольку многие веб-серверы по-прежнему используют эти старые версии, а у некоторых браузеров также возникают проблемы с более новыми версиями.
Даже при реализации альтернативных решений, например, вставке пустых блоков, всегда возникают проблемы совместимости с некоторыми веб-сайтами, как обнаружили Opera и Google в своих решениях. Разработчики Firefox рассматривают возможность обойти симптомы и заблокировать плагин Java.
Конечно, это не решает реальную проблему, а просто блокирует вектор атаки, используемый BEAST. Microsoft работает над обновлением и первоначально опубликовала рекомендации по безопасности, в которых предлагаются различные обходные пути, такие как определение приоритета алгоритма RC4 и активация TLS 1.1 и/или 1.2. Для последнего доступны инструменты Fix it.
Эксперты также предлагают, чтобы серверы использовали в качестве набора шифров RC4-SHA вместо AES или Triple-DES. Тогда режим CBC не используется и атака неэффективна.
Общая проблема всех мер противодействия, как на стороне клиента, так и на стороне сервера, заключается в большом количестве существующих версий протоколов и параметров конфигурации. Любое изменение существующего статуса может привести к прекращению поддержки частей браузера или веб-сайта. И, конечно же, ни производители браузеров, ни операторы веб-сайтов не хотят рисковать.
Насколько велика опасность?
Как уже говорилось, это не новая уязвимость, а «всего лишь» новая атака на давно известную уязвимость (и фактически уже давно исправленную). Однако ранее такая атака считалась неосуществимой, поэтому обновление TLS 1.1 или выше не считалось необходимым.
Сейчас все по-другому. По словам экспертов, риск успешной атаки невелик, но он существует. Злоумышленник, который может внедрить код в браузер жертвы, может нанести больший ущерб в другом месте. BEAST интересен только в том случае, если необходимо отследить существующий файл cookie, и BEAST можно выполнить только при соблюдении требований.
Тем не менее, контрмеры, конечно, следует принимать. Было бы лучше, если бы все серверы были «обновлены» как минимум до TLS 1.1 — и тогда все веб-браузеры также поддерживали бы этот стандарт. До тех пор вам придется обходиться экстренными решениями, такими как использование RC4 вместо AES/Triple-DES в режиме CBC.
Компания Mainton - разработка и тестирование программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.