LVI - орталық процессордағы алыпсатарлық орындау механизміне жасалған шабуылдардың жаңа класы

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

Шабуылдардың жаңа класы шабуылдарда қолданылатын бірдей микроархитектуралық құрылымдарды манипуляциялауға негізделген MDS (Микроархитектура деректерін іріктеу), Spectre және Meltdown. Сонымен қатар, жаңа шабуылдар Meltdown, Spectre, MDS және басқа ұқсас шабуылдардан қорғаудың қолданыстағы әдістерімен бұғатталмайды. Тиімді LVI қорғауы процессорға аппараттық өзгерістерді қажет етеді. Қорғауды бағдарламалық түрде ұйымдастырған кезде, жадтан әрбір жүктеу операциясынан кейін компилятордың LFENCE нұсқаулығын қосу және RET нұсқаулығын POP, LFENCE және JMP-ге ауыстыру арқылы тым көп үстеме шығындар жазылады - зерттеушілердің пікірінше, бағдарламалық жасақтаманы толық қорғау төмендейді. өнімділігі 2-19 есе.

Мәселені блоктаудағы қиындықтардың бір бөлігі шабуылдың қазіргі уақытта практикалық емес теориялық болуымен өтеледі (шабуыл теориялық тұрғыдан мүмкін, бірақ жүзеге асыру өте қиын және тек синтетикалық сынақтарда қайталанады).
Intel бөлінген мәселенің қауіптілік деңгейі орташа (5.6-нан 10) және босатылды SGX ортасы үшін микробағдарламаны және SDK жаңартуы, онда ол уақытша шешім арқылы шабуылды блоктауға тырысты. Ұсынылған шабуыл әдістері қазіргі уақытта тек Intel процессорларына қолданылады, бірақ Meltdown класындағы шабуылдар қолданылатын басқа процессорлар үшін LVI бейімдеу мүмкіндігін жоққа шығаруға болмайды.

Мәселені өткен сәуірде Левен университетінің зерттеушісі Джо Ван Булк анықтады, содан кейін басқа университеттердің 9 зерттеушісінің қатысуымен шабуылдың бес негізгі әдісі әзірленді, олардың әрқайсысы нақтырақ болуына мүмкіндік береді. опциялар. Тәуелсіз, осы жылдың ақпан айында Bitdefender зерттеушілері де ашты LVI шабуыл нұсқаларының бірі және бұл туралы Intel компаниясына хабарлады. Шабуыл нұсқалары бұрын қолданылған сақтау буфері (SB, Store Buffer), толтыру буфері (LFB, Line Fill Buffer), FPU контекстік ауыстырып-қосқыш буфері және бірінші деңгейлі кэш (L1D) сияқты әртүрлі микроархитектуралық құрылымдарды пайдаланумен ерекшеленеді. сияқты шабуылдарда ZombieLoad, RIDL, Түсу, LazyFP, Болжау и Meltdown.

LVI - орталық процессордағы алыпсатарлық орындау механизміне жасалған шабуылдардың жаңа класы

Негізгі құрмет грамоталары MDS шабуылдарына қарсы LVI - бұл MDS алыпсатарлық ақауларды өңдеу немесе жүктеу және сақтау операцияларынан кейін кэште қалған микроархитектуралық құрылымдардың мазмұнын анықтауды манипуляциялайды.
LVI шабуылдары жәбірленушінің кодының кейіннен алыпсатарлық орындалуына әсер ету үшін шабуылдаушы деректерін микроархитектуралық құрылымдарға енгізуге мүмкіндік береді. Осы манипуляцияларды пайдалана отырып, шабуылдаушы мақсатты процессор өзегінде белгілі бір кодты орындау кезінде басқа процестердегі жеке деректер құрылымдарының мазмұнын шығарып алады.

LVI - орталық процессордағы алыпсатарлық орындау механизміне жасалған шабуылдардың жаңа класы

үшін пайдалану мәселесі жәбірленуші процесінің кодексінде кездесуі керек шабуылдаушы басқаратын мән жүктелетін кодтың (гаджеттердің) арнайы тізбегі және бұл мәнді жүктеу ерекше жағдайларды (қателік, тоқтату немесе көмек) тастап, нәтижені алып тастайды және нұсқауды қайта орындайды. Ерекшелік өңделген кезде, гаджетте өңделген деректер ағып кететін алыпсатарлық терезе пайда болады. Атап айтқанда, процессор алыпсатарлық режимде код бөлігін (гаджет) орындауды бастайды, содан кейін болжамның ақталғанын анықтайды және операцияларды бастапқы күйіне қайтарады, бірақ алыпсатарлық орындау кезінде өңделген деректер L1D кэшінде сақталады. және микроархитектуралық буферлер және үшінші тарап арналары арқылы қалдық деректерді анықтаудың белгілі әдістерін пайдалана отырып, олардан алу үшін қол жетімді.

«Көмек» ерекшелігі, «қателік» ерекшелігінен айырмашылығы, бағдарламалық құрал өңдеушілерін шақырмай-ақ процессормен ішкі өңделеді. Көмек көрсету, мысалы, жад беті кестесіндегі A (қолданылған) немесе D (кір) битін жаңарту қажет болғанда орын алуы мүмкін. Басқа процестерге шабуыл жасаудағы негізгі қиындық - жәбірленушінің процесін манипуляциялау арқылы көмектің пайда болуын қалай бастау керек. Қазіргі уақытта мұны істеудің сенімді жолдары жоқ, бірақ болашақта олар табылуы мүмкін. Шабуыл жасау мүмкіндігі әзірге тек Intel SGX анклавтары үшін расталды, басқа сценарийлер теориялық немесе синтетикалық жағдайларда қайталануы мүмкін (кодқа белгілі бір гаджеттерді қосу қажет)

LVI - орталық процессордағы алыпсатарлық орындау механизміне жасалған шабуылдардың жаңа класы

LVI - орталық процессордағы алыпсатарлық орындау механизміне жасалған шабуылдардың жаңа класы

Ықтимал шабуыл векторлары:

  • Деректердің ядро ​​құрылымдарынан пайдаланушы деңгейіндегі процеске ағып кетуі. Linux ядросының Specter 1 шабуылдарынан қорғауы, сондай-ақ SMAP (Supervisor Mode Access Prevention) қорғау механизмі LVI шабуылының ықтималдығын айтарлықтай төмендетеді. Болашақта қарапайым LVI шабуыл әдістері анықталса, ядроға қосымша қорғаныс қосу қажет болуы мүмкін.
  • Әртүрлі процестер арасында деректердің ағып кетуі. Шабуыл қолданбада белгілі бір код бөліктерінің болуын және мақсатты процесте ерекше жағдайды шығару әдісін анықтауды талап етеді.
  • Хост ортасынан қонақ жүйесіне деректердің ағуы. Шабуыл тым күрделі болып жіктеледі, әртүрлі орындау қиын қадамдар мен жүйедегі белсенділікті болжауды талап етеді.
  • Әртүрлі қонақ жүйелеріндегі процестер арасындағы деректердің ағуы. Шабуыл векторы әртүрлі процестер арасында деректердің ағып кетуін ұйымдастыруға жақын, бірақ қонақ жүйелері арасындағы оқшаулауды айналып өту үшін қосымша күрделі манипуляцияларды қажет етеді.

Зерттеушілер шығарған бірнеше прототиптер шабуылды жүзеге асыру принциптерін көрсетумен, бірақ олар нақты шабуылдарды жүзеге асыру үшін әлі жарамсыз. Бірінші мысал қайтаруға бағытталған бағдарламалауға ұқсас, құрбандық процесінде алыпсатарлық кодтың орындалуын қайта бағыттауға мүмкіндік береді (ROP,Қайтаруға бағытталған бағдарламалау). Бұл мысалда жәбірленуші қажетті гаджеттерді қамтитын арнайы дайындалған процесс (шақты үшінші тарап процестеріне шабуылды қолдану қиын). Екінші мысал бізге Intel SGX анклавындағы AES шифрлау кезінде есептеулерге кірісуге және шифрлау үшін пайдаланылатын кілттің мәнін қалпына келтіру үшін нұсқауларды алыпсатарлық орындау кезінде деректердің ағып кетуін ұйымдастыруға мүмкіндік береді.


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

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