В процессорах Intel, выпущенных в последнее десятилетие, нашли критическую «дыру». Для ее исправления потребуется существенное изменение ядра популярных настольных операционных систем, таких как Linux, Windows, macOS. Из-за этого производительность компьютеров на Intel может снизиться до 30%. Владельцам машин на AMD можно не волноваться.
Разработчики операционных систем уже вносят необходимые поправки. Microsoft планирует выпустить соответствующий патч во «вторник патчей» – традиционный с 2003 года день выпуска обновлений, который является вторым или четвертым вторником каждого месяца.
Точные детали найденной уязвимости пока не раскрываются, но известно, что она позволяет приложениям получать несанкционированный доступ к определенным данным в защищенной области памяти ядра. Доступ к ней позволяет приложениям выполнять недоступные в обычном режиме действия.
Предотвратить несанкционированный доступ можно, внедрив изоляцию памяти ядра (Kernel Page Table Isolation). Она сделает ядро «невидимым» для запущенных процессов, однако на него нужны серьезные вычислительные ресурсы. По предварительным оценкам, падение может достигать 30%. Меньшее падение производительности ощутят владельцы компьютеров с процессорами Intel с технологией PCID (идентификаторы контекста процесса).
В AMD уверяют, что в их процессорах нет такой «дыры». «Процессоры AMD не подлежат подобному типу атак, которые защищает KPTI. Микроархитектура чипов AMD не позволяет ссылки памяти, включая спекулятивные ссылки. Такие спекулятивные ссылки могут исполняться в режиме с меньшими привилегиями и в это время могут запрашивать доступ к данным с большими привилегиями. Подобное приведет к сбою страницы», – ответили представители компании на запрос журналистов The Register.
Инженер AMD Том Лендачки предполагает, что уязвимость в процессорах Intel появилась потому, что они спекулятивно выполняют код без выполнения необходимых проверок безопасности. За это на них можно выполнить инструкции, которые в нормальном режиме оказались бы заблокированными. Спекулятивность позволяет увеличить производительность: ядра процессора пытаются угадать, какой код нужно будет выполнять через мгновение, и начинают его обрабатывать раньше.