Реализация DDIO в чипах Intel допускает сетевую атаку по определению нажатий клавиш в сеансе SSH

Группа исследователей из Амстердамского свободного университета и Швейцарской высшей технической школы Цюриха разработала технику сетевой атаки NetCAT (Network Cache ATtack), позволяющую применяя методы анализа данных по сторонним каналам удалённо определять клавиши, нажимаемые пользователем в процессе работы в сеансе SSH. Проблема проявляется только на серверах, в которых применяются технологии RDMA (Remote direct memory access) и DDIO (Data-Direct I/O).

Компания Intel считает, что атаку сложно реализовать на практике, так как она требует доступа атакующего к локальной сети и организации связи хостов с использованием технологий RDMA и DDIO, которые обычно применяются в изолированных сетях, например, в которых работают вычислительные кластеры. Проблеме присвоен незначительный уровень опасности (CVSS 2.6, CVE-2019-11184) и дана рекомендация не включать DDIO и RDMA в локальных сетях, в которых не обеспечен периметр безопасности и допускается подключение не заслуживающих доверие клиентов. DDIO применяется в серверных процессорах Intel, начиная с 2012 года (Intel Xeon E5, E7 и SP). Системы на базе процессоров AMD и других производителей не подвержены проблеме, так как не поддерживают сохранение передаваемых по сети данных в кэше CPU.

Применяемый для атаки метод напоминает уязвимость «Throwhammer«, позволяющую изменять содержимое отдельных битов в ОЗУ через манипуляцию с сетевыми пакетами в системах с RDMA. Новая проблема является следствием работы по минимизации задержек при применении механизма DDIO, обеспечивающего прямое взаимодействие сетевой карты и других периферийных устройств с кэшем процессора (если данные есть в кэше CPU, то они, в процессе обработки пакетов сетевой карты, сохраняются в кэш и извлекаются из кэша, без обращения к памяти).

Благодаря DDIO в кэш процессора попадают в том числе и данные, сгенерированные в процессе вредоносной сетевой активности. Атака NetCAT отталкивается от того, что сетевые карты активно кэшируют данные, а скорость обработки пакетов в современных локальных сетях достаточна для того, что влиять на заполнение кэша и определять наличие или отсутствие данных в кэше через анализ задержек при передаче данных.

При использовании интерактивных сеансов, например через SSH, сетевой пакет отправляется непосредственно после нажатия клавиши, т.е. задержки между пакетами коррелируют с задержками между нажатиями клавиш. Используя методы статистического анализа и учитывая, что задержки между нажатиями обычно зависят от положения клавиши на клавиатуре, можно с определённой вероятностью воссоздавать вводимую информацию. Например, большинство людей обычно набирают «s» после «a» значительно быстрее, чем набор «g» после «s».

Оседающая в процессорном кэше информация в том числе позволяет судить о точном времени пакетов, отправленных сетевой картой при обработке таких соединений как SSH. Генерируя определённый поток трафика атакующий может определять момент появления новых данных в кэше, связанных с определённой активностью в системе. Для анализа содержимого кэша используется метод Prime+Probe, подразумевающий заполнение кэша эталонным набором значений и измерение времени доступа к ним для определения изменений при повторном заполнении.

Не исключается применение предложенной техники для определения не только нажатий клавиш, но и других типов конфиденциальных данных, возможно даже когда RDMA отключен, но без RDMA атака существенно усложняется. Так же возможно использование DDIO для организации скрытого канала связи, для передачи данных после компрометации сервера в обход систем для обеспечения безопасности.

Источник: http://www.opennet.ru/opennews/art.shtml?num=51467