Цена ускоренного развития памяти CXMTСкрытая уязвимость памяти в старых чипах AMD

Проблема затрагивает процессоры семейств 15h и 16h, выпускавшиеся в период с 2011 по 2015 год. Спектр затронутых устройств оказался неожиданно широким: от настольных решений серии FX и серверных Opteron до чипов Jaguar и Puma, которые стали сердцем консолей Sony PlayStation 4 и Microsoft Xbox One, а также ряда моделей Athlon и Sempron. Уязвимость, получившая название Skitter Creek Bath Salts (или сокращенно Skitter), позволяет злоумышленнику выйти за пределы выделенного операционной системе пространства и получить доступ к закрытым сегментам памяти и программным компонентам.
В основе безопасности любой современной ОС лежит принцип изоляции: система не имеет полного доступа ко всем физическим адресам оперативной памяти, так как часть ресурсов резервируется для критически важных системных данных. Без этого механизма любой вредоносный драйвер мог бы бесконтрольно вмешиваться в работу процессора на самом низком уровне. Для оптимизации производительности современные контроллеры памяти используют метод чередования физических банков, при этом для операционной системы данные представляются как единая линейная последовательность адресов.
Критический изъян заключается в том, что параметр BankSwizzleMode (Swizzle), управляющий этим процессом сопоставления, оказался доступен на уровне ОС в указанных моделях процессоров. Манипуляция этим параметром осуществляется с помощью одной простой инструкции xor dword [0xf80c2094], 0x00400000. Именно эта лазейка превращает теоретическую возможность в реальный инструмент атаки.
Процесс эксплуатации уязвимости напоминает картографирование неизвестной территории. Сначала злоумышленник запускает цикл, который позволяет отследить физическое расположение данных по известному системному адресу. Это достигается путем многократного переключения режима Swizzle: параметр помещается в память, режим отключается для определения физического адреса, а затем включается снова. Повторив эту операцию достаточное количество раз, атакующий создает точную карту сопоставления системных и физических адресов.
Обладая такой картой, можно принудительно отключить Swizzle и осуществлять чтение или запись данных в областях памяти, которые должны быть абсолютно недоступны для ОС. Это открывает путь к самым глубоким секретам системы, включая чтение кодов подписи fTPM и выполнение любых низкоуровневых операций с оборудованием.
Техническая реализация этого процесса сопряжена с определенными рисками: на этапе построения карты памяти система может завершиться критическим сбоем. Чтобы избежать этого, требуется тщательная подготовка процессора, включая отключение прерываний и ряд других синхронизирующих мер. Однако после того как карта адресов составлена, вероятность краха системы становится минимальной.
Возможность управления такими глубокими настройками через одну инструкцию стала возможной благодаря стандарту Memory-Mapped Configuration Space (MMCONFIG). В рамках этого стандарта определенные области памяти используются не для хранения данных, а для взаимодействия с конфигурациями оборудования. Именно эта архитектурная особенность стала «дверью», через которую была реализована атака Skitter.
Реакция AMD на данную находку была сдержанной. Компания подчеркнула, что поддержка указанных процессоров давно прекращена. Более того, для реализации эксплойта требуется доступ на уровне ядра (kernel level), что фактически означает полный контроль злоумышленника над машиной и возможность запуска собственных драйверов. С точки зрения производителя, если атакующий уже обладает такими привилегиями, дальнейшее проникновение в скрытую память не представляет критической ценности. Тем не менее, с точки зрения информационной безопасности, обнаружение подобного механизма подчеркивает хрупкость доверенных зон в аппаратном обеспечении прошлых лет.

