Недавно в M-серии процессоров Apple выявили уязвимость, позволяющую злоумышленникам извлечь закрытые ключи на компьютерах с macOS. Вектор атаки получил имя GoFetch.
Это классическая проблема утечки информации по сторонним каналам, которая в этом случае допускает сквозное извлечение ключей в момент, когда процессор запускает имплементации широко используемых криптопротоколов.
Причём, как отмечают в опубликованном отчёте специалисты, уязвимость не так просто закрыть, поскольку она связана с микроархитектурой самого чипа.
В результате «патчинг» сводится к введению дополнительных слоёв защиты в стороннем софте для криптографических операций, что может резко снизить производительность хвалёных «яблочных» чипов (особенно касается поколений M1 и M2).
Уязвимость можно использовать при выполнении вредоносного приложения и целевой криптографической операции на одном кластере CPU. При этом условному атакующему не требуется root-доступ, хватит обычных привилегий, которым пользуется весь софт в macOS.
GoFetch работает как против классических алгоритмов шифрования, так и против так называемого нового поколения, которое якобы более устойчиво к атакам квантовых компьютеров.
2048-битный ключа RSA новый метод может извлечь менее чем за час, а с 2048-битным ключом Диффи-Хеллмана придётся повозиться дольше — чуть более двух часов.
Особенность вектора атаки заключается в том, что он учитывает поведение функции DMP (уменьшает задержку между основной памятью и процессором) в процессорах M-серии. Иногда DMP путает содержимое памяти со значением указателя, в результате чего часто считываются данные, которые рассматриваются как адрес для доступа к памяти.