Нова вразливість у процесорах Apple призводить до витоку ключів шифрування і не піддається простому виправленню

Нова вразливість у процесорах Apple призводить до витоку ключів шифрування і не піддається простому виправленню
ПРОДОВЖЕННЯ ПІСЛЯ РЕКЛАМИ

Нова вразливість у чіпах Apple може дозволити зловмиснику отримати доступ до даних користувача, вкравши криптографічні ключі. Найгірше, її усунення може значно вплинути на продуктивність шифрування.

Дослідники виявили вразливість у чіпах Apple серії M, пов’язану з тим, як вони обробляють криптографічні операції, такі як шифрування файлів. Однак оскільки ця проблема пов’язана з архітектурним дизайном чіпа, її вкрай складно виправити.

Як повідомила група дослідників, про яку пише ArsTechnica, проблема криється в префетчері даних, що залежить від пам’яті (DMP), який передбачає адреси даних у пам’яті, до яких, швидше за все, буде звертатися код, що виконується в даний момент. В результаті попередньої вибірки даних вони стають мішенню для шкідливого коду.

ПРОДОВЖЕННЯ ПІСЛЯ РЕКЛАМИ

Це тому, що префетчери використовують попередні шаблони доступу визначення своїх прогнозів щодо наступного біта даних вибірки. Зловмисник може використовувати цей спосіб роботи, щоб вплинути на дані, отримані в результаті попередньої вибірки, та отримати доступ до конфіденційної інформації.

Атака GoFetch може вкрасти ключі шифрування

Атака, яку дослідники називають GoFetch, використовує особливості використання DMP у чіпах Apple. Зокрема, DMP може плутати вміст пам’яті зі значеннями покажчиків, що використовуються для завантаження додаткових даних, причому перший іноді використовується як другий.

Розповідаючи про атаку, дослідники підтверджують, що можна зробити дані «схожими» на покажчик, який DMP сприйматиме як адресу і, у свою чергу, витягуватиме ці дані в кеш. Зовнішній вигляд адреси в кеші є видимим, отже, шкідливий код може його переглядати.

Атака маніпулює даними в алгоритмі шифрування, щоб вони виглядали як покажчик, використовуючи атаку з вибраним входом. DMP, бачачи, що значення даних виглядає як адреса, потім витягує дані з цієї адреси, при цьому відбувається витік самої адреси.

Атака не дозволяє миттєво зламати ключ шифрування. Однак вона може проводитися неодноразово, що дозволяє розкрити ключ із плином часу.

GoFetch використовує ті ж привілеї користувача, що і багато інших сторонніх програм macOS, а не root-доступ. Це знижує вхідний бар’єр здійснення атаки.

Дослідники стверджують, що атака працює як проти класичних алгоритмів шифрування, так і проти нових квантово-зміцнених версій.

Що стосується ефективності атаки, то тестовий додаток дослідників зміг витягти 2048-бітний ключ RSA менш ніж за годину, а 2048-бітний ключ Діффі-Хеллмана – трохи більше ніж за дві години. Для захисту ключа Dilithium-2 потрібно десять годин вилучення даних, крім часу автономної обробки.

Складність виправлення

Основна проблема атаки полягає в тому, що її неможливо усунути у самому чіпі, оскільки вона є центральною частиною архітектури. Для того, щоб уникнути проблеми, розробникам криптографічного програмного забезпечення необхідно внести зміни.

Проблема полягає в тому, що будь-які зміни, пов’язані зі пом’якшенням, призведуть до збільшення робочого навантаження, необхідного для виконання операцій, що, у свою чергу, позначиться на продуктивності.

Компанія Apple відмовилася від коментарів щодо цього питання. Дослідники стверджують, що вони відповідально підійшли до розкриття інформації перед публікацією інформації, повідомивши про це 5 грудня 2023 року.

Деякі з дослідників раніше працювали над іншим відкриттям 2022 року, що також стосується використання DMP у чіпах Apple.

Історія повторюється

Уразливості в чіпах можуть стати великою проблемою для виробників пристроїв, особливо якщо їм доводиться вносити зміни до операційних систем та програмного забезпечення для підтримки безпеки.

У 2018 році були виявлені вразливості Meltdown та Spectre, які торкнулися всіх пристроїв Mac та iOS, а також майже всі пристрої X86, випущені з 1997 року.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.