Специалисты Амстердамского свободного университета опубликовали подробности об уязвимости NetCAT (Network Cache ATtack, CVE-2019-11184), которая угрожает всем процессорам Intel, поддерживающим Data-Direct I/O Technology (Intel DDIO) и Remote Direct Memory Access (RDMA). Если две эти функции активны, при помощи удаленной атаки можно перехватить некоторые данные в кеше CPU.
NetCAT представляет собой атаку по стороннему каналу (side-channel attack) и относится к типу атак по времени: основывается на наблюдении за тем, сколько времени требуется процессору на обработку тех или иных данных. Основываясь на этой информации, возможно угадать, какие именно данные обрабатываются. Intel DDIO и RDMA значительно облегчают такую атаку, производимую через сетевые пакеты.
Исследователи объясняют, что корень проблемы связан с механизмом Intel DDIO, который был создан для серверных процессоров и был призван оптимизировать их работу. При помощи DDIO периферийные дейвасы, вроде сетевой карты, могут получить прямой доступ для записи данных в кеш процессора (вместо ОЗУ, как это происходит обычно). В первую очередь данный механизм был создан для крупных дата-центров и облачных платформ, где серверы работают с высокоскоростными сетевыми соединениями, а оперативной памяти не всегда хватает. Функциональность DDIO включена по умолчанию для всех серверных процессоров Intel с 2012 года (таких как семейства Intel Xeon E5, E7 и SP).
Как выяснилось теперь, включение DDIO может быть на руку и киберпреступникам. Так, отправка специально подготовленных сетевых пакетов процессору с поддержкой DDIO позволит злоумышленнику следить за тем, что еще обрабатывает CPU. Атаку NetCAT нельзя использовать для хищения произвольных данных с удаленного CPU, но возможно похитить информацию, которая поступает в виде сетевых пакетов и попадает в общий кэш DDIO.
В частности, исследователи обнаружили, что NetCAT помогает с большой точность перехватывать нажатия клавиш на целевой машине во время SSH-сессии. Включение RDMA сделают такую атаку еще более эффективной.
«Во время интерактивной SSH-сессии каждый раз, когда вы нажимаете на клавишу, сетевые пакеты передаются напрямую. В итог, в ходе зашифрованной SSH-сессии, каждый раз, когда жертва вводит символ в консоли, NetCAT может раскрыть время этого события, раскрыв время прибытия соответствующего сетевого пакета, — объясняют специалисты. — Дело в том, что у людей есть выраженные стили печати. К примеру, набрать “S” после “A” будет быстрее, чем набрать “G” после “S”. В результате NetCAT может применить статический анализ времени поступления пакетов, осуществив timing-атаку для перехвата нажатий клавиш, чтобы раскрыть, что именно набирает цель».
Эксперты Амстердамского свободного университета уведомили инженеров Intel о данной проблеме еще в июле текущего года, но вместо патчей компания опубликовала бюллетень безопасности, в котором описывает методы снижения рисков и смягчения последствий. Так, Intel рекомендует отключение DDIO и RDMA на уязвимых процессорах или ограничение прямого доступа к уязвимым системам из внешних ненадежных сетей.
Представители Intel сообщают, что проблема имеет низкий уровень серьезности (лишь 2,6 балла по шкале CVSS), а эксплуатация бага сложна и маловероятна, так как в сценариях, где обычно используются Intel DDIO и RDMA (например, кластеры массово-параллельных вычислений) злоумышленники обычно не имеют прямого доступа из недоверенных сетей.