Intel процессорлорунун алсыздыгы үчүнчү тараптын каналдары аркылуу маалыматтардын агып кетишине алып келет

Кытай жана Америка университеттеринин изилдөөчүлөрүнүн тобу Intel процессорлорунун жаңы кемчилигин аныкташты, ал спекулятивдүү операциялардын натыйжасы тууралуу маалыматтын үчүнчү тарапка агып кетишине алып келет, аны, мисалы, процесстер же процесстер ортосунда жашыруун байланыш каналын уюштуруу үчүн колдонсо болот. Meltdown чабуулдары учурунда агып кетүүлөрдү аныктоо.

Алсыздыктын маңызы – EFLAGS процессорунун реестриндеги инструкцияларды алып-сатарлык түрдө аткаруунун натыйжасында келип чыккан өзгөрүү КБК нускамаларынын кийинки аткарылуу убактысына таасирин тийгизет (белгиленген шарттар аткарылганда секирүү). Спекуляциялык операциялар бүтпөйт жана натыйжа жокко чыгарылат, бирок жокко чыгарылган EFLAGS өзгөрүүсүн ЖКК көрсөтмөлөрүнүн аткарылуу убактысын талдоо аркылуу аныктоого болот. Өткөөлдүн алдында алып-сатарлык режимде аткарылган салыштыруу операциялары, эгер ийгиликтүү болсо, анда өлчөнгөн жана мазмунду тандоо үчүн белги катары колдонула турган бир аз кечигүү пайда болот.

Intel процессорлорунун алсыздыгы үчүнчү тараптын каналдары аркылуу маалыматтардын агып кетишине алып келет

Башка ушул сыяктуу каптал-канал чабуулдарынан айырмаланып, жаңы ыкма кэштелген жана кэштелбеген маалыматтарга жетүү убакытындагы өзгөрүүлөрдү талдабайт жана EFLAGS реестрин баштапкы абалына кайтаруу үчүн этапты талап кылбайт, бул чабуулду аныктоону жана бөгөт коюуну кыйындатат. Демонстрация катары изилдөөчүлөр алып-сатарлык операциянын натыйжасы жөнүндө маалымат алуу үчүн жаңы ыкманы колдонуп, Meltdown чабуулунун вариантын ишке ашырышты. Meltdown чабуулу учурунда маалыматтын агып чыгышын уюштуруу ыкмасынын иштеши Ubuntu 7 жана Linux ядросу 6700 менен чөйрөдө Intel Core i7-7700 жана i22.04-5.15 CPU менен системаларда ийгиликтүү көрсөтүлдү. Intel i9-10980XE CPU менен системада чабуул жарым-жартылай гана ишке ашырылган.

Meltdown алсыздыгы инструкцияларды спекулятивдүү аткаруу учурунда процессор жеке маалымат аймагына кирип, андан кийин натыйжаны жокко чыгара ала турганына негизделген, анткени белгиленген артыкчылыктар колдонуучунун процессине мындай кирүүгө тыюу салат. Программада спекуляциялык түрдө аткарылган блок негизги коддон шарттуу бутак аркылуу бөлүнөт, ал реалдуу шарттарда дайыма күйүп турат, бирок шарттуу оператор алдын ала аткарууда процессор билбеген эсептелген маанини колдонгондугуна байланыштуу. коду, бардык филиалдык варианттары алып-сатарлык менен жүзөгө ашырылат.

Meltdown классикалык версиясында, адаттагыдай аткарылуучу инструкциялардагыдай эле кэш спекулятивдүү аткарылуучу операциялар үчүн колдонулгандыктан, спекулятивдүү аткаруу учурунда кэшке жабык эстутум аймагындагы айрым биттердин мазмунун чагылдырган маркерлерди коюуга болот, андан кийин демейде аткарылуучу коддо алардын маанисин кэштелген жана кэштелбеген маалыматтарга кирүү убактысын талдоо аркылуу аныктоо. Жаңы вариант EFLAGS реестриндеги өзгөртүүнү агып кетүү маркери катары колдонот. Жашыруун канал демонстрациясында бир процесс EFLAGS реестринин мазмунун өзгөртүү үчүн шарттарды түзүү үчүн берилүүчү маалыматтарды модуляциялаган, ал эми экинчи процесс биринчи процесс аркылуу берилген маалыматтарды кайра жаратуу үчүн JCC инструкциясын аткаруу убакытынын өзгөрүшүн талдаган.

Source: opennet.ru

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