Ціна стрімкого розвитку CXMT у сфері пам'яті
Прихована вразливість пам'яті у застарілих чипах AMD

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

