SEV (Secure Encrypted Virtualization) қорғау механизмін айналып өтуге мүмкіндік беретін AMD процессорларындағы осалдық

Helmholtz ақпараттық қауіпсіздік орталығының (CISPA) зерттеушілері виртуалды машиналарды гипервизор немесе хост жүйесінің әкімшісінің кедергілерінен қорғау үшін виртуалдандыру жүйелерінде қолданылатын AMD SEV (Secure Encrypted Virtualization) қауіпсіздік механизмін бұзу үшін 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 (шифрланған күй) кеңейтімі CPU регистрлерін қорғайды. Тек ағымдағы қонақ жүйесі шифры шешілген деректерге қол жеткізе алады және басқа виртуалды машиналар мен гипервизор бұл жадқа кіруге әрекеттенгенде, олар шифрланған деректер жинағын алады.

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

Ұсынылған шабуыл әдісінің мәні INVD нұсқаулығын кэште жинақталған деректерді жадыға түсірмей (қайта жазу) ластанған беттер кэшіндегі блоктарды (жолдарды) жарамсыз деп тану болып табылады. Осылайша, әдіс жад күйін өзгертпестен өзгертілген деректерді кэштен шығаруға мүмкіндік береді. Шабуыл жасау үшін виртуалды машинаның жұмысын екі жерде үзу үшін бағдарламалық жасақтаманың ерекшеліктерін (қателік инъекциясын) пайдалану ұсынылады: біріншіден, шабуылдаушы «wbnoinvd» ішінде жинақталған барлық жады жазу операцияларын қалпына келтіру үшін «wbnoinvd» нұсқаулығын шақырады. кэш, ал екінші орында жадта көрсетілмеген жазу операцияларын ескі күйге қайтару үшін «invd» нұсқаулығын шақырады.

Жүйелерде осалдықтарды тексеру үшін AMD SEV арқылы қорғалған виртуалды машинаға ерекше жағдайды енгізуге және жадқа қалпына келтірілмеген VM өзгерістерін кері қайтаруға мүмкіндік беретін эксплуатация прототипі жарияланды. Өзгерістерді кері қайтару стекке ескі қайтару мекенжайын қайтару арқылы бағдарлама ағынын өзгерту үшін немесе аутентификация төлсипатының мәнін қайтару арқылы бұрын аутентификацияланған ескі сеанстың кіру параметрлерін пайдалану үшін пайдаланылуы мүмкін.

Мысалы, зерттеушілер ipp-крипто кітапханасында RSA-CRT алгоритмін енгізуге Bellcore шабуылын жасау үшін CacheWarp әдісін қолдану мүмкіндігін көрсетті, бұл сандық есептеу кезінде қатені ауыстыру арқылы жеке кілтті қалпына келтіруге мүмкіндік берді. қол қою. Сондай-ақ, ол қонақтық жүйеге қашықтан қосылу кезінде сеансты тексеру параметрлерін OpenSSH-ге қалай өзгертуге болатынын, содан кейін Ubuntu 20.04 жүйесінде түбірлік құқықтарды алу үшін sudo утилитасын іске қосқан кезде тексеру күйін қалай өзгертуге болатынын көрсетеді. Эксплойт AMD EPYC 7252, 7313P және 7443 процессорлары бар жүйелерде сыналған.

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

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