AMD открывает некоторые особенности своих процессорных инструкций, которые могут пригодиться хакерам

В канун официальной пре­зен­та­ции AMD про­цес­сор­ных но­ви­нок, c ко­то­ры­ми свя­за­ны боль­шие ожи­да­ния, об­но­вил­ся ряд тех­ни­че­ских до­ку­мен­тов на сай­те ком­па­нии. В част­нос­ти, вы­яс­ни­лось на­знач­ен­ие двух ра­нее не­до­ку­мен­ти­ро­ван­ных би­тов в бло­ке ре­зуль­та­тов ас­сем­б­лер­ной ин­ст­рук­ции CPUID. Она при­ме­ня­ет­ся в 32 и 64-бит­ных x86-про­цес­со­рах для до­сту­па к сис­тем­ной ин­фор­ма­ции и спис­ку оп­ци­о­наль­но под­дер­жи­ва­е­мых тех­но­ло­гий (feature bitmaps).

Теперь стало ясно, что функция 80000008h в бите 4 регистра EBX возвращает информацию о поддержке про­цес­со­ром ин­ст­рук­ции RDPRU. Битовое поле EDX[31-16] определяет набор допустимых параметров ин­ст­рук­ции (спи­сок ре­гист­ров, до­ступ­ных для чте­ния). Инструкция RDPRU позволяет в режиме привилегий пользователя (ring 3), по­лу­чить до­с­туп к не­ко­то­рым сис­тем­ным ре­сур­сам, для доступа к которым ранее требовался уровень при­ви­ле­гий яд­ра опе­ра­ци­он­ной системы (ring 0).

Функция 80000008h в регистре EBX возвращает информацию о поддержке процессором инструкции RDPRU

 

Пользовательским приложениям открывается доступ к двум Model-Specific регистрам (MPERF, APERF), по­зво­ля­ю­щим из­ме­рить ис­тин­ную так­то­вую частоту процессора, динамически изменяемую в сеансе ОС при работе ме­ха­низ­мов оверклокинга, термоконтроля и управления электропитанием. Ранее, мы отмечали не­до­ступ­ность этих регистров в ring 3. До официальных разъяснений со стороны AMD по поводу осо­бен­но­с­тей применения инструкции RDPRU, в ре­жи­ме поль­зо­ва­тель­ских при­ви­ле­гий был до­сту­пен толь­ко счет­чик TSC (Time Stamp Counter), ра­бо­та­ю­щий на не­из­мен­ной час­то­те. Это стало одним из ар­гу­мен­тов для постановки на платформе MSI с процессором Ryzen опы­тов по мо­ни­то­рин­гу процессорного разгона в среде UEFI без участия операционной системы.

Информация о поддержке процессором AMD инструкции RDPRU

 

Возможно авторы утилит овер­кло­кин­га и мониторинга также были недовольны не­об­хо­ди­мо­стью за­груз­ки под­пи­сан­ного Kernel Mode драйвера для измерения истинной динамически изменяемой тактовой частоты про­цес­сора. Теперь в Protected Mode появилась своеобразная лазейка. На первый взгляд, доступ к этим ре­гист­рам не не­сет пря­мой опас­но­с­ти с точки зрения вредоносных сценариев прямо разрушающих системный кон­текст. С другой стороны, бо­лее тон­кие тех­но­ло­гии, основанные на детектировании эффектов в спе­ку­ля­тив­ных вет­вях исполнения теперь смо­гут вы­пол­нить не­об­хо­ди­мые для них измерения более точно, чем это делалось ранее с использованием счетчика TSC.

Теги