Xakep #305. Многошаговые SQL-инъекции
Почти месяц назад специалист по безопасности Бодо Мёллер (Bodo Möller) с коллегами из компании Google опубликовал подробности об уязвимости в дизайне протокола SSL 3.0 при использовании шифрования в режиме сцепления блоков (CBC mode). Поскольку в этом режиме SSL 3.0 не говорит, какими должны быть байты «набивки» криптопакетов до нужного размера (padding), то реализация не может проверить их и допускает атаку с оракулом (padding oracle attack).
Уязвимость под кодовым названием POODLE («пудель», Padding Oracle On Downgraded Legacy Encryption, CVE-2014-3566) позволяет расшифровать содержимое защищённого канала коммуникации.
Злоумышленник может умышленно принудить клиента подключиться именно по SSL 3.0, эмулируя разрывы связи, и после этого эксплуатировать уязвимость с расшифровкой канала. Google пишет, что для защиты достаточно отключить поддержку SSL 3.0 или шифрования в режиме сцепления блоков (CBC mode).
Разработчики браузеров довольно успешно справились с этой бедой, отключив принуждение клиента к переходу на SSL 3.0 в Chrome 39 (вышел 18 ноября) и полностью отключив этот устаревший протокол в Chrome 40 {выйдет в декабре на стабильном канале) и Firefox 34 (1 декабря).
Но теперь выяснилась ещё одна неприятная деталь. Поскольку метод набивки байтами пакетов TLS является подмножеством набивки SSL 3.0, технически, вы можете использовать декодер SSL 3.0 с TLS. В этом случае атака POODLE становится эффективной и на соединениях TLS! Уязвимость классифицирована как CVE-2014-8730.
Разработчики из Google написали сканер, чтобы проверить наличие этой уязвимости на крупных сайтах интернета. К сожалению, ситуация оказалась не самой приятной. Баг проявляет себя у довольно крупных и популярных хостеров. Некоторые уже выпустили патчи.
Соответствующий модуль проверки добавлен и в онлайновый сканер SSL Server Test.
Специалисты считают уместным повторить, что все протоколы ниже TLS 1.2 криптографически неуместны, потому что шифр RC4 имеет фундаментальный изъян.