Новая уязвимость в процессорах Intel поставила под угрозу весь мир
Многие помнят о нашумевших уязвимостях Meltdown и Spectre, которым оказались подвержены едва ли не все массовые чипы — и для ноутбуков, и для смартфонов, и для настольных компьютеров и для серверов. Проблема заключалась в том, что при определенных условиях один из базовых элементов структуры современных процессоров позволял злоумышленнику перехватить данные, обрабатываемые на нем. Оказалась, что такой очень удобный и повышающий производительность механизм, как спекулятивное (упреждающее) выполнение команд, при обработке специально составленного кода открывает доступ к другим процессам, которые считаются надежно защищенными от перехвата.
На самом деле, два вышеназванных эксплойта являются лишь наиболее известными примерами из целого списка уязвимостей, которые основаны на особенностях блока «предсказания» в процессорах. Спекулятивное выполнение команд подразумевает, что чип постоянно анализирует свою работу и на основе особых алгоритмов «заранее» обсчитывает участки кода, не дожидаясь результатов выполнения той его части, которая, по плану, предшествует «предугаданным» командам. Еще одна такая лазейка для злоумышленников была обнаружена более чем в пяти десятках популярнейших процессоров Intel и получила название CrossTalk («Перекрестные помехи») и номер CVE-2020-0543.
Суть проблемы заключается в одном из элементов общей памяти вычислительных ядер чипа — Line Fill Buffer (LFB). Его беда в том, что во время своей работы он обращается к еще одному, ранее незадокументированному буферу (Staging Buffer), данные в котором могут быть считаны любым процессом, выполняемым даже на том ядре, которому они «не принадлежат». Потенциально, таким образом злоумышленник может перехватить результаты работы генератора случайных чисел (важно для криптографии) или даже сразу готовые ключи шифрования от специальных встроенных в процессов механизмов защиты данных Intel SGX.
Как пишет журнал «Хакер», уязвимость была обнаружена учеными из Амстердамского свободного университета и Швейцарской высшей технической школы Цюриха еще осенью 2018 года. Столь долгий срок информация не публиковалась, так как специалисты тесно работали с Intel над инструментами, нейтрализующими брешь в этой защите. Микрокоды для исправления уже выпущены производителем процессора, их пакет называется Special Register Buffer Data Sampling (SRBDS, CVE-2020-0543, Intel-SA-00320). Большинство распространенных систем получат соответствующее обновление в ближайшее время (или уже получили).
Исследователи не только выявили критический недостаток архитектуры процессоров, но и составили пример кода, который эту брешь использует. В ходе демонстрации были «украдены» как раз те самые ключи Intel SGX, что полностью компрометирует выполнение значительной части программного обеспечения, работающего с личными данными и обеспечивающего безопасность информации. Гипотетический злоумышленник получал возможность считывать конфиденциальную информацию из памяти в незашифрованном виде. Подтверждений реализации такой атаки пока не обнаружено, однако эффективно противодействовать ей невозможно. Единственный вариант защиты — «заплатка», которая, к счастью, почти никогда не влияет на производительность.