Специалисты Технологического университета Тампере и Технологического университете Гаваны обнаружили в процессорах Intel Skylake и Kaby Lake новый баг, связанный с работой технологии одновременной многопоточности (Simultaneous Multithreading, SMT), она же Hyper-Threading в проприетарной имплементации Intel.
Проблема получила название PortSmash и идентификатор CVE-2018-5407. Исследователи объясняют, что это еще одна атака по стороннему каналу (side-channel) для которой уязвимы решения компании Intel.
Напомню, что SMP позволяет превратить физическое ядро процессора в два логических ядра, позволяет работать с несколькими потоками и увеличить производительность. Суть проблемы PortSmash заключается в том, что на всех процессорах с поддержкой SMT вредоносный процесс, работающий бок о бок с процессом легитимным, может «сливать» небольшие порции данных из этого соседнего легитимного процесса. Таким образом, атакующий может извлечь и реконструировать зашифрованные данные какого-либо легитимного процесса.
Исследователи рассказывают, что их метод не имеет ничего общего с подсистемами памяти и кешированием, имея в виду обнаруженные ранее side-channel атаки, которые так же затрагивали SMT и Hyper-Threading.
На GitHub уже опубликован proof-of-concept эксплоит для PortSmash, который демонстрирует атаку на процессоры Intel Skylake и Kaby Lake. Сейчас эксплоит настроен таким образом, чтобы похищать приватный ключ OpenSSL (<= 1.1.0h) P-384 с сервера TLS, но он может быть модифицирован для выполнения иных задач. Кроме того, для успешной эксплуатации проблемы PoC должен работать на том же физическом ядре, что и целевой процесс, но исследователи пишут, что организовать это не так уж сложно.
«Один из возможных сценариев атаки — IaaS [Infrastructure-as-a-Service], он позволит сделать атаку более “удаленной”. Кроме того, для работы PortSmash определенно не требуются root-привилегии, только user space», —рассказывают специалисты.
Кроме того, специалисты Технологического университета Тампере и Технологического университете Гаваны предупреждают, что PortSmash, скорее всего, представляет опасность и для других архитектур, применяющих SMT. То есть процессоры AMD (в частности, AMD Ryzen), вероятно, тоже подвержены проблеме.
Инженеров Intel уведомили о проблеме еще месяц назад, однако патч для проблемы появился лишь вчера, после того как специалисты публично заявили об уязвимости. Детальный отчет о PortSmash будет опубликован на портале Cryptology ePrint Archive в ближайшие дни.
Стоит сказать, что технологию одновременной многопоточности, hyper-threading и инженеров Intel критикуют далеко не впервые. К примеру, в прошлом месяце довольно резко высказался на эту тему Тео де Раадт, лидер проекта OpenBSD. Он заявил, что после недавнего обнаружения новых уязвимостей класса Spectre, получивших название Foreshadow, разработчики приняли решение вовсе отказаться от использования SMT после релиза OpenBSD 6.4.
«SMT фундаментально сломана, так как делит ресурсы между двумя CPU-инстансами и этим инстансам не хватает дифференциаторов безопасности. Некоторые из таких атак по стороннему каналу нетривиальны, но можно ожидать, что со временем большинство из них будут работать в самых обычных условиях (например, посредством JavaScript в браузере) и сливать данные ядра или данные между виртуальными машинами.
Будет раскрыто больше аппаратных багов и артефактов. С учетом того, как SMT взаимодействует со спекулятивными вычислениями на процессорах Intel, я ожидаю, что SMT только усугубит большинство этих грядущих проблем», — писал Тео де Раадт.