Нова вразливість Skitter Creek Bath Salts: Чи становить небезпеку для старих процесорів AMD?
Відомий дослідник з питань безпеки Крістофер Домас виявив серйозну вразливість, що стосується процесорів AMD, випущених в період з 2011 по 2015 роки. Ця вразливість потенційно надає доступ до захищених областей оперативної пам’яті та системних компонентів, які зазвичай приховані від операційної системи. Проте, практична цінність цієї знахідки для зловмисників є обмеженою, оскільки для її використання потрібен доступ до операційної системи на рівні ядра.
Джерело зображень: amd.com
Вразливість стосується процесорних сімейств AMD 15h та 16h, які вироблялися приблизно з 2011 по 2015 рік. До першого сімейства належать настільні процесори серії FX та деякі моделі Opteron. Друге сімейство охоплює чіпи Jaguar та Puma, що знайшли своє застосування у ігрових консолях Sony PlayStation 4 та Microsoft Xbox One, а також кілька моделей Athlon, Sempron та Opteron-X.
Експлойт, що отримав назву Skitter Creek Bath Salts (Skitter), вимагає доступу на рівні ядра. Це означає, що для успішної атаки зловмисник повинен мати можливість запускати власні драйвери. За таких умов він отримує повний контроль над оперативною пам’яттю, включаючи ті її частини, які зазвичай недоступні для операційної системи.
Компанія AMD відреагувала на виявлення проблеми, зазначивши, що підтримка старих моделей процесорів вже припинена. Крім того, зважаючи на необхідний рівень доступу для експлуатації цієї вразливості, фактично це означає, що зловмисник вже має повний контроль над системою.
Технічні аспекти вразливості
Операційні системи не мають необмеженого доступу до всіх ділянок оперативної пам’яті; частина пам’яті резервується для системних даних. Цей механізм забезпечує безпеку, запобігаючи вільному втручанню шкідливих драйверів у роботу процесора на низькому рівні.
Для оптимізації продуктивності контролери пам’яті в сучасних процесорах використовують техніку чергування фізичних банків пам’яті (interleaving). Проте, на рівні операційної системи це представлено як суцільна послідовність адрес. Суть уразливості полягає в тому, що параметр процесора, який керує цією функцією – BankSwizzleMode (Swizzle) – у згаданих моделях доступний операційній системі. Його можна вмикати та вимикати за допомогою інструкції `xor dword [0xf80c2094], 0x00400000`, що й може бути використано у шкідливих цілях.
Як працює атака Skitter?
На першому етапі атаки потенційний зловмисник запускає цикл, який дозволяє визначити фізичне розташування даних за відомою адресою в операційній системі. Для цього в пам’ять записується певний параметр, після чого функція Swizzle вимикається, щоб визначити фізичну адресу цього параметра. Далі Swizzle знову вмикається.
Повторивши цей процес достатню кількість разів, можна створити карту відповідності між системними та фізичними адресами. Маючи таку карту, зловмисник може вимкнути Swizzle і примусово читати або записувати дані у фізичні області пам’яті, які зазвичай недоступні для операційної системи. Це відкриває доступ до прихованого коду та даних, дозволяючи виконувати будь-які низькорівневі операції, включно зі зчитуванням коду підпису fTPM.
Під час процесу створення карти пам’яті комп’ютер може працювати нестабільно. Щоб уникнути цього, перед кожним вимкненням та ввімкненням Swizzle необхідно підготувати процесор, зокрема, відключити переривання та вжити інших заходів.
Після успішного складання карти ймовірність збою системи значно знижується. Можливість виконання цих дій за допомогою однієї інструкції пов’язана зі стандартом Memory-Mapped Configuration Space (MMCONFIG). Це спеціальний простір в адресах пам’яті, операції в якому спрямовуються на налаштування обладнання, а не безпосередньо на оперативну пам’ять.
Порада від Soft Portal:
Хоча ця вразливість виявлена і стосується відносно старих процесорів AMD, вона вимагає глибокого розуміння роботи системи та доступу на рівні ядра. Для пересічного користувача ризик стати жертвою такої атаки є мінімальним. Однак, це нагадування про важливість своєчасного оновлення програмного забезпечення та апаратного забезпечення для забезпечення максимальної безпеки.
