Новая уязвимость получила громкое название Ticketbleed (CVE-2016-9244), в честь знаменитой проблемы Heartbleed, обнаруженной в 2014 году. К счастью, в случае Ticketbleed масштабы происходящего не так велики, ведь баг был обнаружен только в решениях BIG-IP, производства компании F5 Networks. Полный список уязвимых продуктов можно найти на сайте компании.
В чем же проблема? Дело в том, что отправляя уязвимым сайтам специально созданные пакеты, атакующий может извлекать небольшие куски данных из памяти веб-серверов (не более 31 байта за раз). Повторив эту операцию многократно, злоумышленник в итоге сможет извлечь секретные ключи и другие «тайны», которые хранят HTTPS-сессии.
«Удаленный атакующий может эксплуатировать уязвимость с целью извлечения сессионных ID Secure Sockets Layer (SSL). Кроме того, возможно извлечение других данных из неинициализированных областей памяти», — пишут представители F5 Networks.
Проблему обнаружил специалист компании Cloudflare Филиппо Валсорда (Filippo Valsorda), и на его сайте можно найти не только подробный рассказ о проблеме, но и инструмент для проверки любого сервера на предмет уязвимости перед Ticketbleed.
Специалист пишет, что тестирование миллиона топовых сайтов из рейтинга Alexa показало, что уязвимы 949 из них. Если же использовать рейтинг Cisco Umbrella, уязвимость перед Ticketbleed демонстрируют уже 1602 ресурса.
У себя в блоге эксперт объясняет, что баг связан с использованием Session Ticket. Валсорда обнаружил уязвимость практически случайно, когда вместе с коллегами пытался решить проблему одного из клиентов Cloudflare. На первый взгляд проблема выглядела как несовместимость между F5 TLS и Go TLS. Собрав достаточно данных для анализа, исследователь пришел к выводу, что клиент предоставляет Session Ticket, сервер принимает их, но клиент этого не понимает и продолжает пытаться.
«Когда клиент предоставляет сессионный ID (Session ID) вместе с Session Ticket, сервер должен вернуть ему сессионный ID, чтобы просигнализировать, что Session Ticket принят. Длина сессионных ID может составлять от 1 до 31 байт. Стек F5 всегда возвращает 32 байта памяти, даже если сессионный ID был короче. Если атакующий предоставит сессионный ID длиной 1 байт, он также получит 31 байт информации из неинициализированных областей памяти», — рассказывает Валсорда.
Специалисты F5 Networks уже подготовили патчи почти для всех уязвимых устройств, список версий для миграции можно найти на сайте компании. Если же обновить ПО по какой-то причине невозможно, специалисты рекомендуют немедленно отключить Session Ticket – это тоже поможет устранить проблему.