Plundervolt - SGX технологиясына әсер ететін Intel процессорларына шабуылдың жаңа әдісі

Intel босатылды түзететін микрокодты жаңарту осалдық (CVE-2019-14607) мүмкіндік беру орталық процессордағы динамикалық кернеу мен жиілікті басқару механизмімен манипуляциялау арқылы деректер ұяшықтарының мазмұнына, соның ішінде оқшауланған Intel SGX анклавтарында есептеулер үшін пайдаланылатын аумақтарға зақым келтіруді бастау. Шабуыл Plundervolt деп аталады және жергілікті пайдаланушыға жүйедегі артықшылықтарын арттыруға, қызмет көрсетуден бас тартуға және құпия деректерге қол жеткізуге мүмкіндік береді.

Шабуыл тек SGX анклавтарындағы есептеулермен манипуляциялар контекстінде қауіпті, өйткені оны жүзеге асыру үшін жүйеде түбірлік құқықтар қажет. Ең қарапайым жағдайда, шабуылдаушы анклавта өңделген ақпараттың бұрмалануына қол жеткізе алады, бірақ күрделі сценарийлерде RSA-CRT және AES-NI алгоритмдерін пайдаланып шифрлау үшін пайдаланылатын анклавта сақталған жеке кілттерді қайта жасау мүмкіндігі жоқ. алынып тасталды. Бұл әдіс жадпен жұмыс істеу кезінде осалдықтарды тудыру үшін бастапқы дұрыс алгоритмдерде қателерді генерациялау үшін де пайдаланылуы мүмкін, мысалы, бөлінген буфер шекарасынан тыс аймаққа кіруді ұйымдастыру.
Шабуыл жасауға арналған прототиптік код жарияланған GitHub арналған

Әдістің мәні анклавта шифрлауды және жадтың аутентификациясын қолдану қорғамайтын SGX-те есептеулер кезінде күтпеген деректер бүлінулерінің орын алуына жағдай жасау болып табылады. Бұрмалауды енгізу үшін жиілік пен кернеуді басқаруға арналған стандартты бағдарламалық интерфейстерді қолдануға болатыны белгілі болды, әдетте жүйенің бос тұрып қалуы кезінде қуат тұтынуды азайту және қарқынды жұмыс кезінде максималды өнімділікті белсендіру үшін қолданылады. Жиілік және кернеу сипаттамалары оқшауланған анклавтағы есептеулердің әсерін қоса алғанда, бүкіл чипті қамтиды.

Кернеуді өзгерту арқылы процессор ішіндегі жад ұяшығын қалпына келтіру үшін заряд жеткіліксіз болатын және оның мәні өзгеретін жағдайларды жасауға болады. Шабуылдан негізгі айырмашылығы RowHammer RowHammer көрші ұяшықтардан деректерді циклдік оқу арқылы DRAM жадындағы жеке биттердің мазмұнын өзгертуге мүмкіндік береді, ал Plundervolt есептеу үшін деректер жадтан жүктелген кезде процессор ішіндегі биттерді өзгертуге мүмкіндік береді. Бұл мүмкіндік жадтағы деректер үшін SGX-те қолданылатын тұтастықты басқару және шифрлау механизмдерін айналып өтуге мүмкіндік береді, өйткені жадтағы мәндер дұрыс болып қалады, бірақ нәтиже жадқа жазылмай тұрып олармен жұмыс істеу кезінде бұрмалануы мүмкін.

Егер бұл өзгертілген мән шифрлау процесінің көбейту процесінде пайдаланылса, шығыс қате шифр мәтінімен қабылданбайды. Деректерді шифрлау үшін SGX жүйесіндегі өңдеушімен байланысу мүмкіндігіне ие бола отырып, шабуылдаушы сәтсіздіктерді тудырып, шығыс шифрленген мәтіндегі өзгерістер туралы статистиканы жинақтай алады және бірнеше минут ішінде анклавта сақталған кілттің мәнін қалпына келтіре алады. Түпнұсқа кіріс мәтіні және дұрыс шығыс шифрлық мәтіні белгілі, кілт өзгермейді және дұрыс емес шифр мәтінінің шығысы кейбір биттің қарама-қарсы мәнге бұрмаланғанын көрсетеді.

Дифференциалды сәтсіздіктерді талдау әдістерін (DFA, Дифференциалды ақауларды талдау) Болады болжау AES симметриялық шифрлау үшін пайдаланылатын ықтимал кілттер, содан кейін әртүрлі жиындардағы кілттердің қиылысуын талдау арқылы қажетті кілтті анықтайды.

Мәселе Intel процессорларының әртүрлі үлгілеріне, соның ішінде 6 бар Intel Core процессорларына әсер етеді
10-шы буын, сондай-ақ Xeon E3 бесінші және алтыншы ұрпақтары, Intel Xeon Scalable бірінші және екінші буындары, Xeon D,
Xeon W және Xeon E.

Естеріңізге сала кетейік, SGX технологиясы (Бағдарламалық жасақтама кеңейтімдері) алтыншы буын Intel Core процессорларында (Skylake) және пайда болды ұсыныстар пайдаланушы деңгейіндегі қолданбаларға жабық жад аймақтарын – анклавтарды бөлуге мүмкіндік беретін нұсқаулар қатары, олардың мазмұны тіпті ring0, SMM және VMM режимдерінде жұмыс істейтін ядро ​​және код арқылы оқылмайды немесе өзгертілмейді. Дәстүрлі секіру функцияларын және регистрлер мен стекпен манипуляцияларды пайдалана отырып, анклавтағы кодқа басқаруды беру мүмкін емес, басқаруды анклавқа беру үшін өкілеттіктерді тексеруді жүзеге асыратын арнайы құрылған жаңа нұсқау қолданылады. Бұл жағдайда анклавқа орналастырылған код анклав ішіндегі функцияларға қол жеткізу үшін классикалық шақыру әдістерін және сыртқы функцияларды шақыру үшін арнайы нұсқауларды пайдалана алады. Анклав жады шифрлауы DRAM модуліне қосылу сияқты аппараттық шабуылдардан қорғау үшін пайдаланылады.

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

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