Plundervolt - SGX технологиясына таасир эткен Intel процессорлоруна чабуул жасоонун жаңы ыкмасы

Intel бошотулду оңдогон микрокодду жаңыртуу аялуу (CVE-2019-14607) уруксат берүү CPUдагы динамикалык чыңалууну жана жыштыкты башкаруу механизмин манипуляциялоо аркылуу маалымат клеткаларынын мазмунуна, анын ичинде обочолонгон Intel SGX анклавдарында эсептөөлөр үчүн колдонулган аймактарга зыян келтирет. Чабуул Plundervolt деп аталат жана жергиликтүү колдонуучуга системадагы артыкчылыктарын жогорулатууга, кызмат көрсөтүүдөн баш тартууга жана купуя маалыматтарга кирүү мүмкүнчүлүгүн берет.

Кол салуу SGX анклавдарындагы эсептөөлөр менен манипуляциялардын контекстинде гана коркунучтуу, анткени аны ишке ашыруу үчүн тутумда түпкү укуктар талап кылынат. Эң жөнөкөй учурда чабуулчу анклавда иштетилген маалыматты бурмалоого жетише алат, бирок татаалыраак сценарийлерде RSA-CRT жана AES-NI алгоритмдерин колдонуу менен шифрлөө үчүн колдонулган анклавда сакталган купуя ачкычтарды кайра түзүү мүмкүнчүлүгү жок. алынып салынган. Техника эстутум менен иштөөдө, мисалы, бөлүнгөн буфердин чегинен тышкаркы аймакка кирүү мүмкүнчүлүгүн уюштуруу үчүн, баштапкы туура алгоритмдерде каталарды жаратуу үчүн да колдонулушу мүмкүн.
Кол салуу үчүн прототип коду жарыяланган GitHub боюнча

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

Чыңалууну өзгөртүү менен, процессордун ичиндеги эстутум клеткасын калыбына келтирүү үчүн заряд жетишсиз болгон шарттарды түзө аласыз жана анын мааниси өзгөрөт. Кол салуудан негизги айырма RowHammer RowHammer сизге DRAM эс тутумундагы айрым биттердин мазмунун кошуна клеткалардан циклдик окуу менен өзгөртүүгө мүмкүндүк берет, ал эми Plundervolt эсептөө үчүн эстутумдан маалыматтар жүктөлүп алынганда CPU ичиндеги биттерди өзгөртүүгө мүмкүндүк берет. Бул функция эс тутумдагы маалыматтар үчүн SGXде колдонулган бүтүндүктү көзөмөлдөө жана шифрлөө механизмдерин айланып өтүүгө мүмкүндүк берет, анткени эстутумдагы маанилер туура бойдон калат, бирок натыйжа эстутумга жазылганга чейин алар менен иштөөдө бурмаланышы мүмкүн.

Эгерде бул өзгөртүлгөн маани шифрлөө процессинин көбөйтүү процессинде колдонулса, чыгаруу туура эмес шифрленген текст менен четке кагылат. Анын берилиштерин шифрлөө үчүн SGXдеги иштеткич менен байланышуу мүмкүнчүлүгүнө ээ болгон чабуулчу каталарды жаратып, чыгуучу шифрленген тексттеги өзгөрүүлөр жөнүндө статистиканы топтоп, бир нече мүнөттүн ичинде анклавда сакталган ачкычтын маанисин калыбына келтире алат. Түпнуска киргизилген текст жана туура чыгуучу шифрленген текст белгилүү, ачкыч өзгөрбөйт жана туура эмес шифрленген тексттин чыгышы кандайдыр бир биттин карама-каршы мааниге бурмаланганын көрсөтөт.

Ар кандай каталар учурунда топтолгон туура жана бузулган шифрленген тексттердин жуп баалуулуктарын анализдеп, дифференциалдык бузулуу анализинин ыкмаларын колдонуу менен (DFA, Дифференциалдык каталарды талдоо) алат алдын ала айтуу AES симметриялуу шифрлөө үчүн колдонулган ыктымал ачкычтар, андан кийин ар кандай топтомдордогу ачкычтардын кесилиштерин талдоо менен, керектүү ачкычты аныктайт.

Көйгөй Intel процессорлорунун ар кандай моделдерине, анын ичинде 6 менен Intel Core CPUларына таасирин тийгизет
10-муун, ошондой эле Xeon E3 бешинчи жана алтынчы муундары, Intel Xeon Scalable биринчи жана экинчи муундары, Xeon D,
Xeon W жана Xeon E.

Эске сала кетсек, SGX технологиясы (Программалык камсыздоонун кеңейтүүлөрү) алтынчы муундагы Intel Core процессорлорунда (Skylake) пайда болгон жана сунуштар Колдонуучу деңгээлиндеги тиркемелерге жабык эстутум аймактарын - анклавдарды бөлүштүрүүгө мүмкүндүк берген бир катар нускамалардын сериясы, алардын мазмунун ring0, SMM жана VMM режимдеринде иштеген ядро ​​жана код да окуй же өзгөртпөйт. Регистрлер жана стек менен салттуу секирүү функцияларын жана манипуляцияларды колдонуу менен анклавдагы кодго башкарууну өткөрүп берүү мүмкүн эмес, башкарууну анклавга өткөрүү үчүн ыйгарым укуктарды текшерүүнү жүзөгө ашырган атайын түзүлгөн жаңы инструкция колдонулат. Бул учурда анклавга жайгаштырылган код анклав ичиндеги функцияларга жетүү үчүн классикалык чакыруу ыкмаларын жана тышкы функцияларды чакыруу үчүн атайын нускамаларды колдоно алат. Энклавдык эс шифрлөө DRAM модулуна туташуу сыяктуу аппараттык чабуулдардан коргоо үчүн колдонулат.

Source: opennet.ru

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