По состоянию на 2 июля 2019 года число систем, подверженных уязвимости BlueKeep, превышало 805 000 устройств.
На GitHub опубликован подробный технический анализ критической уязвимости (CVE-2019-0708), получившей название BlueKeep, а также незавершенный PoC-код для атак на системы под управлением Windows XP. Согласно статистике компании BitSight, по состоянию на 2 июля 2019 года число систем, подверженных уязвимости BlueKeep, превышало 805 000 устройств.
Баг затрагивает службы удаленного рабочего стола (Remote Desktop Services), ранее известные как службы терминалов (Terminal Services). Данная уязвимость не требует авторизации или какого-либо взаимодействия с пользователем. Другими словами, она «червеподобна», то есть позволяет вредоносному ПО распространяться от компьютера к компьютеру подобно тому, как вредоносная программа WannaCry распространилась по всему миру в 2017 году.
Уязвимости позволяет открыть соединение с уязвимым RDP-сервером и через канал MS_T120/00 отправить вредоносный код, а затем разорвать соединение. Для удаленного задействования кода потребуется так называемое распыление кучи (heap spraying). В своей презентации (на китайском языке) её автор 0xeb_bp описывает этапы эксплуатации уязвимости, за исключением некоторых подробностей, в частности без указания кода. Также представленная техника фокусируется на версии Windows XP и может быть неэффективна для атак на более поздние релизы операционной системы.
По словам бывшего разработчика эксплоитов для АНБ Джейка Уильямса (Jake Williams), презентация подробно рассказывает о реализации атаки heap spraying. Она является одной из наиболее трудных задач при создании эксплоита. Специалисты считают, что это самый детальный технический разбор уязвимости на данный момент.
Heap spraying — атака, использующая ошибки в работе с памятью приложения, основана на предсказуемости положения кучи в адресном пространстве процесса. Атакуя при помощи heap spraying, злоумышленник заставляет приложение выделить память под большое количество объектов, содержащих вредоносный код. При этом повышается вероятность успеха эксплоита, который переносит поток исполнения на некоторую позицию внутри кучи.
Разбираем кейсы, делимся опытом, учимся на чужих ошибках