Ученые, ранее участвовавшие в обнаружении нашумевших проблем Spectre и Meltdown, разработали новую side-channel атаку, которая может привести к утечке данных и работает против практически любых современных процессоров.
В исследовательскую группу вошли специалисты Грацского технического университета, а также Центра информационной безопасности имени Гельмгольца в Германии (CISPA).
Новую атаку, получившую название Collide+Power, сравнивают с проблемой Meltdown и относят к уязвимостям типа Microarchitectural Data Sampling (MDS).
Collide+Power представляет собой универсальную софтверную атаку, которая применима к любому приложению, любому типу данных и работает против устройств на базе процессоров Intel, AMD и Arm. Проблема получила идентификатор CVE-2023-20583 и ожидается, что исходный код скоро будет размещен на GitHub.
При этом исследователи подчеркивают, что Collide+Power сложно назвать фактической уязвимостью. По сути, атака просто злоупотребляет тем фактом, что некоторые компоненты ЦП предназначены для обмена данными из разных защищенных областей.
Это позволяет атакующему использовать эти общие компоненты для объединения своих данных с данными пользовательских приложений. Для этого злоумышленник измеряет энергопотребление процессора, изменяя подконтрольные ему данные и выявляя данные, связанные с пользовательскими приложениями.
Collide+Power основывается на анализе энергопотребления процессора для выявления содержимого кэш-памяти процессора. Атака может быть полезна, к примеру, для раскрытия ключей шифрования, если злоумышленник имеет постоянный доступ к оборудованию жертвы или к среде облачных вычислений, которая предоставляет оборудование разным тенантам.
Так, непривилегированный злоумышленник, используя вредоносное ПО, установленное на целевом устройстве, может использовать атаку Collide+Power для получения конфиденциальных данных, включая пароли и ключи шифрования. Также исследователи отметечают, что их атака позволяет усугубить другие известные side-channel проблемы, включая PLATYPUS и Hertzbleed.
«Предыдущие софтверные side-channel атаки, такие как PLATYPUS и Hertzbleed, были нацелены на криптографические алгоритмы и требовали точного знания алгоритма или программы-жертвы, выполняемой на целевой машине. В отличие от них Collide+Power нацелена на подсистему памяти процессора, что позволяет абстрагироваться от точных имплементаций, поскольку все программы в той или иной мере используют подсистему памяти. Более того, любой сигнал, отражающийся на энергопотреблении, может использоваться Collide+Power», — пишут эксперты.
Специалисты описывают два варианта атаки Collide+Power. В первом варианте, MDS-Power, требующем включения гиперпоточности, атака направлена на информацию, связанную с приложением, которое постоянно обращается к секретным данным, например, к ключу шифрования.
Так как в ходе этого процесса «жертва» постоянно перезагружает секрет и обращается к определенным компонентам процессора, злоумышленник, имеющий поток на том же физическом ядре, может использовать Collide+Power, чтобы вызвать коллизии между секретными и контролируемыми им самим данными.
Во втором варианте атаки, Meltdown-Power, гиперпоточность и постоянное обращение к секретным данным не требуется.
«В данном случае злоумышленник эксплуатирует так называемый prefetch-gadget в операционной системе. Этот prefetch-гаджет может быть использован для доставки произвольных данных в shared-компонент процессора, что вновь вызовет коллизии и позволит воссоздать данные», — объясняют исследователи.
Хотя теоретически такие атаки могут иметь серьезные последствия, на практике уровень утечки данных относительно невысок, и эксперты признают, что Collide+Power вряд ли будет использоваться против конечных пользователей в ближайшем будущем.
Так, специалистам удалось добиться «слива» данных со скоростью 4,82 бит в час, при условии, что целевое приложение постоянно обращалось к секретной информации, а злоумышленник мог напрямую считывать данные об энергопотреблении процессора через интерфейс Running Average Power Limit (RAPL).
При такой скорости атакующему потребуется несколько часов для получения пароля, несколько дней для получения ключа шифрования, и больше месяца, чтобы узнать чей-то 4096-битный ключ RSA.
В более специфических обстоятельствах злоумышленник может достичь более высокой скорости «слива» данных — до 188 бит в час. Все зависит от целевого приложения и секрета в памяти. Такая скорость возможна, например, «если ключ или пароль представлены в кэш-строке несколько раз».
Отмечается, что защиту от Collide+Power и коллизий весьма сложно реализовать на аппаратном уровне, однако защититься от таких атак можно попросту гарантировав, что злоумышленник не может отслеживать данные об энергопотреблении целевой машины.
Сообщается, что специалисты AMD отслеживают проблему как AMD-SB-7006, но оценивают ее серьезность как низкую. Собственный бюллетень безопасности Arm отсылает к общим рекомендациям по безопасности архитектуры. Intel так же сообщает, что не планирует публиковать специфический бюллетень и просто адресует своих клиентов к предыдущим рекомендациям, связанным с атаками на энергопотребление.