AMD AMD Zen 3 процессорларының Spectre-STL шабуылына ықтимал осалдығын растады.

AMD Zen 3 сериялы процессорларында енгізілген PSF (Predictive Store Forwarding) оңтайландыру технологиясының қауіпсіздігін талдайтын есепті жариялады. Зерттеу 4 жылдың мамырында анықталған Spectre-STL (Spectre-v2018) шабуыл әдісінің қолданылуын теориялық түрде растады. PSF технологиясы, бірақ іс жүзінде шабуылға әкелуі мүмкін код үлгілері әлі табылған жоқ және жалпы қауіп елеусіз деп бағаланады.

Еске салайық, Spectre-v4 (Speculative Store Bypass) шабуылы жанама адрестеуді пайдалана отырып, ауыспалы жазу және оқу операцияларын өңдеу кезінде операциялардың алыпсатарлық орындалуының нәтижесін жойғаннан кейін процессор кэшінде орналасқан деректерді қалпына келтіруге негізделген. Оқу әрекеті жазу әрекетінен кейін (мысалы, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]) орындалып жатқан ұқсас операцияларға байланысты оқу мекенжайының ығысуы әлдеқашан белгілі болуы мүмкін (оқу операциялары әлдеқайда жиі орындалады және оқуды кэштен орындауға болады) және процессор жазудың жанама ығысуын есептеуді күтпей-ақ, жазу алдында оқуды алыпсатарлық түрде орындай алады.

Бұл мүмкіндік оқу нұсқаулығына дүкен әрекеті әлі аяқталмаған кезде кейбір мекенжайдағы ескі мәнге қол жеткізуге мүмкіндік береді. Болжау қатесі болса, сәтсіз алыпсатарлық операция жойылады, бірақ оның орындалу іздері процессор кэшінде қалады және қол жеткізудегі өзгерістерді талдау негізінде кэш мазмұнын анықтау әдістерінің бірімен алынуы мүмкін. кэштелген және кэштелмеген деректерге уақыт.

AMD Zen 3 процессорларына қосылған PSF оқу және жазу операциялары арасындағы қатынасты болжау арқылы оқу операцияларын алыпсатарлық түрде орындайтын STLF (Сақтау-Жүктеу-Жіберу) оңтайландырады. Классикалық STLF пайдаланған кезде процессор нәтиженің нақты жадқа жазылуын күтпей, алдыңғы «дүкен» пәрменінен тікелей жіберілген деректерге «жүктеу» операциясын орындайды, бірақ «жүктеуде» пайдаланылатын мекенжайлардың және «сақтау» пәрмендері сәйкес келеді. PSF оңтайландыру мекенжайды тексеруді алыпсатарлық етеді және егер бір мекенжайды басқаратын сақтау/жүктеу жұбы бұрын орындалған болса, мекенжай ақпараты есептелмес бұрын "жүктеу" әрекетін орындайды. Болжау сәтсіз болса, күй кері қайтарылады, бірақ деректер кэште қалады.

PSF-ге шабуыл тек бір деңгейдегі артықшылықтар шеңберінде мүмкін болады, тек ағымдағы процесс контекстін қамтиды және мекенжай кеңістігін оқшаулау әдістерімен немесе аппараттық құм жәшігінің механизмдерімен блокталады. Бұл жағдайда процестердегі бағдарламалық құралды құмсалғыш әдістеріне мәселе әсер етуі мүмкін. Шабуыл бір процесс ішінде үшінші тарап кодын орындайтын браузерлер, кодты орындайтын виртуалды машиналар және JIT сияқты жүйелерге қауіп төндіреді (шабуыл сенімсіз құм жәшігіндегі кодқа басқа процесс деректеріне қол жеткізуге мүмкіндік беруі мүмкін).

AMD PSF толық немесе таңдамалы түрде өшірудің бірқатар әдістерін ұсынды, бірақ көптеген қолданбалар үшін елеусіз тәуекелді ескере отырып, бұл оңтайландыруды әдепкі бойынша өшірмеуді ұсынды. Сенімсіз кодты орындайтындарды оқшаулайтын процестерді таңдамалы түрде қорғау үшін «SSBD» және «PSFD» MSR биттерін, соның ішінде жеке ағындар үшін орнату арқылы PSF өшіру ұсынылады. Linux ядросы үшін PSF қосу және өшіру жолын басқаратын «psfd» және «nopsfd» пәрмен жолы опцияларын енгізу арқылы патчтар дайындалды.

Ақпарат көзі: opennet.ru

пікір қалдыру