AMD ја потврди потенцијалната ранливост на AMD Zen 3 процесорите на нападот Specter-STL

AMD објави извештај во кој се анализира безбедноста на технологијата за оптимизација на PSF (Predictive Store Forwarding) имплементирана во процесорите од серијата Zen 3. Студијата теоретски ја потврди применливоста на методот за напад Spectre-STL (Spectre-v4), идентификуван во мај 2018 година, до Технологијата PSF, но во пракса, сè уште не се пронајдени шаблони за кодови способни да доведат до напад и севкупната опасност се оценува како незначителна.

Да потсетиме дека нападот Specter-v4 (Speculative Store Bypass) се заснова на враќање на податоците што се населиле во кешот на процесорот откако ќе се отфрли резултатот од шпекулативно извршување на операциите при обработка на наизменични операции за пишување и читање користејќи индиректно адресирање. Кога операцијата за читање следи по операцијата за запишување (на пр., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), поместувањето на адресата за читање може веќе да биде познато поради слични операции што се вршат (операциите за читање се се изведува многу почесто и читањата може да се вршат од кешот) и процесорот може шпекулативно да врши читања пред запишување без да чека да се пресмета поместувањето на индирекцијата на запишувањето.

Оваа функција овозможува инструкција за читање да пристапи до стара вредност на некоја адреса додека операцијата за складирање сè уште не е завршена. Ако има грешка во предвидувањето, неуспешната шпекулативна операција ќе биде отфрлена, но трагите од нејзиното извршување ќе останат во кешот на процесорот и може да се вратат со еден од методите за одредување на содржината на кешот врз основа на анализа на промените во пристапот. време за кеширани и некеширани податоци.

Додадено во AMD Zen 3 процесорите, PSF го оптимизира STLF (Store-To-Load-Forwarding), кој ги извршува операциите за читање шпекулативно со предвидување на врската помеѓу операциите за читање и запишување. Кога користи класичен STLF, процесорот врши операција „оптоварување“ на податоците директно препратени од претходната команда „зачувај“, без да чека резултатот навистина да биде запишан во меморијата, но внимавајќи да се користат адресите во „оптоварувањето“ и командите „зачувај“ се совпаѓаат. Оптимизацијата на PSF го прави проверката на адресата шпекулативна и врши операција „оптоварување“ пред да се пресметаат информациите за адресата, доколку претходно бил извршен пар за складирање/оптоварување кој манипулира со една адреса. Ако предвидувањето не успее, состојбата се враќа назад, но податоците остануваат во кешот.

Нападот на PSF е можен само во рамките на едно ниво на привилегии, го покрива само тековниот процесен контекст и е блокиран со методи за изолација на просторот за адреси или механизми за хардверски песок. Во овој случај, софтверските методи за песок во процесите може потенцијално да бидат засегнати од проблемот. Нападот претставува закана за системи како што се прелистувачи, виртуелни машини за извршување кодови и JIT кои извршуваат код од трета страна во еден процес (нападот може да дозволи недоверливиот код со песок да добие пристап до други процесни податоци).

AMD обезбеди голем број методи за целосно или селективно оневозможување на PSF, но со оглед на занемарливиот ризик за повеќето апликации, препорача оваа оптимизација да не биде стандардно оневозможена. За селективно заштита на процесите што ги изолираат оние што извршуваат недоверлив код, предложено е да се оневозможи PSF со поставување на битови MSR „SSBD“ и „PSFD“, вклучително и за поединечни нишки. Подготвени се закрпи за кернелот Линукс со имплементација на опциите на командната линија „psfd“ и „nopsfd“ кои контролираат како PSF се вклучува и исклучува.

Извор: opennet.ru

Додадете коментар