Суть уязвимости: отключение Swizzle
Эксплойт, названный Skitter Creek Bath Salts (или просто Skitter), использует особенность архитектуры процессоров AMD 2011–2015 годов. В этих чипах контроллеры памяти используют Bank Interleaving (банковое чередование) для оптимизации производительности, что делает физическое расположение данных в DRAM нелинейным. Управление этим процессом осуществляется через регистр BankSwizzleMode.
Уязвимость заключается в том, что операционная система имеет доступ к инструкции, отключающей эту функцию. Выполнение всего одной команды:
xor dword [0xf80c2094], 0x00400000
позволяет злоумышленнику отключить перемещение банков памяти. Это «выравнивает» адресное пространство, делая видимым и доступным для записи/чтения весь объем DRAM, включая области, зарезервированные для системных нужд.
Что попадает под удар
Получив прямой доступ к физической памяти, атакующий может взаимодействовать с компонентами, которые должны быть изолированы:
- Platform Security Processor (PSP): сопроцессор безопасности, где выполняется встроенный TPM (fTPM).
- System Management Mode (SMM): режим ядра с наивысшими привилегиями.
- Microcode RAM: область хранения микрокода процессора.
Это дает полный аппаратный контроль над системой, позволяя читать ключи шифрования fTPM и модифицировать низкоуровневые процессы обработки данных.
Технические детали эксплуатации
Для реализации атаки требуется kernel-level доступ (возможность загрузки собственного драйвера). Процесс взлома включает следующие шаги:
- Калибровка: Атакующий записывает значение-маркер (canary, например, 0xDEADBEEF) в память, отключает Swizzle, проверяет физический адрес, куда попало значение, и включает Swizzle обратно. Повторяя это, он строит карту соответствия виртуальных и физических адресов.
- Эксплуатация: Используя карту, злоумышленник отключает Swizzle и обращается к защищенным областям памяти, зная их точное физическое расположение.
- Стабильность: Чтобы избежать сбоя системы (BSOD) при отключении Swizzle, перед операцией отключаются прерывания (interrupts) и выполняются другие подготовительные меры. Сбой возможен только на этапе сбора карты, после чего система работает стабильно.
Затронутые платформы и реакция AMD
Уязвимы только процессоры семейств 15h и 16h. Это включает:
- Серии FX (desktop) и некоторые Opteron.
- Мобильные SoC на базе Jaguar/Puma (использовались в PlayStation 4 и Xbox One).
- Отдельные модели Athlon, Sempron и Opteron-X.
| Параметр | Значение / Описание |
|---|---|
| Название эксплойта | Skitter Creek Bath Salts (Skitter) |
| Автор | Christopher Domas |
| Уровень доступа | Kernel-level (Ring 0) |
| Ключевая инструкция | xor dword [0xf80c2094], 0x00400000 |
| Затронутые семейства | AMD 15h, 16h (примерно 2011–2015 гг.) |
| Статус поддержки | AMD выпустила бюллетень безопасности, отметив, что данные чипы больше не получают обновлений безопасности |
Почему это важно
Хотя уязвимость требует наличия прав ядра (что уже подразумевает компрометацию системы), она демонстрирует критическую слабость изоляции аппаратных компонентов в старых архитектурах AMD. Доступ к PSP и fTPM позволяет обходить механизмы защиты целостности системы. Для владельцев консолей PS4 и Xbox One, использующих эти чипы, это может иметь последствия в контексте модификации прошивок, хотя AMD официально заявила, что данные процессоры вышли из цикла поддержки безопасности.
Источник: Tom's Hardware ↗
