SEV (Коопсуз Шифрленген Виртуализация) коргоо механизмин айланып өтүүгө мүмкүндүк берген AMD процессорлорундагы аялуу

Helmholtz Маалыматтык Коопсуздук Борборунун (CISPA) изилдөөчүлөрү виртуалдаштыруу системаларында колдонулган AMD SEV (Коопсуз Шифрленген Виртуализация) коопсуздук механизмин бузуу үчүн CacheWarp чабуулунун жаңы ыкмасын басып чыгарышты, бул виртуалдык машиналарды гипервизордун же хост тутумунун администраторунун кийлигишүүсүнөн коргоо. Сунушталган ыкма гипервизорго мүмкүнчүлүгү бар чабуулчуга үчүнчү тараптын кодун аткарууга жана AMD SEV аркылуу корголгон виртуалдык машинада артыкчылыктарды жогорулатууга мүмкүндүк берет.

Чабуул INVD процессорунун инструкциясын аткарууда кэштин туура эмес иштешинен улам келип чыккан (CVE-2023-20592) аялуулугун колдонууга негизделген, анын жардамы менен эстутумда жана кэште маалыматтардын дал келбестигине жетишүүгө болот. , жана SEV-ES жана SEV-SNP кеңейтүүлөрүнүн негизинде ишке ашырылган виртуалдык машинанын эс тутумунун бүтүндүгүн сактоо механизмдерин айланып өтүү. Аялуу AMD EPYC процессорлоруна биринчиден үчүнчү муунга чейин таасир этет.

Үчүнчү муундагы AMD EPYC процессорлору үчүн (Zen 3) маселе кечээ AMD тарабынан чыгарылган ноябрдагы микрокод жаңыртуусунда чечилет (оңдоо эч кандай майнаптуулуктун начарлашына алып келбейт). AMD EPYC (Zen 1 жана Zen 2) биринчи жана экинчи муундары үчүн коргоо камсыз кылынбайт, анткени бул процессорлор виртуалдык машиналар үчүн бүтүндүгүн көзөмөлдөөнү камсыз кылган SEV-SNP кеңейтүүсүн колдобойт. "Zen 4" микроархитектурасына негизделген AMD AMD EPYC "Genoa" процессорлорунун төртүнчү мууну алсыз эмес.

AMD SEV технологиясы Amazon Web Services (AWS), Google Cloud, Microsoft Azure жана Oracle Compute Infrastructure (OCI) сыяктуу булут провайдерлери тарабынан виртуалдык машинаны изоляциялоо үчүн колдонулат. AMD SEV коргоо виртуалдык машинанын эс тутумун аппараттык деңгээлде шифрлөө аркылуу ишке ашырылат. Кошумчалай кетсек, SEV-ES (Encrypted State) кеңейтүүсү CPU регистрлерин коргойт. Учурдагы конок системасы гана шифрленген маалыматтарга кире алат жана башка виртуалдык машиналар жана гипервизор бул эстутумга кирүүгө аракет кылганда, алар шифрленген маалыматтардын топтомун алышат.

AMD EPYC процессорлорунун үчүнчү мууну кошумча кеңейтүүнү киргизди, SEV-SNP (Secure Nested Paging), ал уяланган эс тутум баракчаларынын таблицаларынын коопсуз иштешин камсыз кылат. Жалпы эстутумду шифрлөө жана регистрди изоляциялоодон тышкары, SEV-SNP эстутумдун бүтүндүгүн коргоо үчүн кошумча чараларды ишке ашырат, бул гипервизордун VMге өзгөртүүлөрүнүн алдын алуу менен. Шифрлөө ачкычтары ARM архитектурасынын негизинде ишке ашырылган чипке орнотулган өзүнчө PSP (Платформа коопсуздук процессору) процессорунун тарабында башкарылат.

Сунушталган чабуул ыкмасынын маңызы INVD инструкциясын кэште топтолгон маалыматтарды эстутумга таштабастан (кайра жазуу) кир беттердин кэшиндеги блокторду (сызыктарды) жараксыз деп табуу болуп саналат. Ошентип, ыкма эстутум абалын өзгөртпөстөн, өзгөртүлгөн маалыматтарды кэштен чыгарууга мүмкүндүк берет. Чабуул жасоо үчүн виртуалдык машинанын ишин эки жерде үзгүлтүккө учуратуу үчүн программалык камсыздоодон өзгөчөлүктөрдү (ката инъекциясын) колдонуу сунушталат: биринчиден, чабуулчу “wbnoinvd” инструкциясын чакырып, эстутумда топтолгон бардык жазуу операцияларын баштапкы абалга келтирет. кэш, экинчиден, эстутумда чагылдырылбаган жазуу операцияларын эски абалга кайтаруу үчүн "invd" инструкциясын чакырат.

Системаларыңыздын алсыздыктарын текшерүү үчүн, AMD SEV аркылуу корголгон виртуалдык машинага өзгөчө учурду киргизүүгө жана эстутумга кайтарылбаган VMдеги өзгөрүүлөрдү артка кайтарууга мүмкүндүк берген эксплуатациянын прототиби жарыяланды. Өзгөртүүлөрдү артка кайтаруу стектеги эски кайтаруу дарегин кайтаруу аркылуу программанын агымын өзгөртүү үчүн же аутентификация атрибутунун маанисин кайтаруу менен мурда аутентификацияланган эски сессиянын кирүү параметрлерин колдонуу үчүн колдонулушу мүмкүн.

Мисалы, изилдөөчүлөр ipp-крипто китепканасында RSA-CRT алгоритмин ишке ашырууда Bellcore чабуулун жүргүзүү үчүн CacheWarp ыкмасын колдонуу мүмкүнчүлүгүн көрсөтүштү, бул санариптик эсептөөдө катаны алмаштыруу аркылуу купуя ачкычты калыбына келтирүүгө мүмкүндүк берди. кол коюу. Ал ошондой эле конок тутумуна алыстан туташып жатканда сеанстын текшерүү параметрлерин OpenSSHге кантип өзгөртүүгө жана Ubuntu 20.04'те тамыр укуктарына ээ болуу үчүн sudo утилитасын иштетип жатканда текшерүү абалын кантип өзгөртүүгө болорун көрсөтөт. Эксплойт AMD EPYC 7252, 7313P жана 7443 процессорлору бар системаларда сыналган.

Source: opennet.ru

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