AMD AMD Zen 3 процессорлорунун Spectre-STL чабуулуна мүмкүн болгон аялуулугун тастыктады

AMD Zen 3 сериясындагы процессорлордо ишке ашырылган PSF (Predictive Store Forwarding) оптималдаштыруу технологиясынын коопсуздугун талдоочу отчетун жарыялады. 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 ядросу үчүн “psfd” жана “nopsfd” буйрук сабынын варианттарын ишке ашыруу менен PSF кантип күйгүзүлүп жана өчүрүлгөнүн көзөмөлдөгөн тактар ​​даярдалган.

Source: opennet.ru

Комментарий кошуу