Ryzen Zen 2 процесорите имаат безбедносен пропуст

Avatar img-thumbnail img-circle

во Хардвер

Безбедносни експерти пронајдоа безбедносен пропуст во AMD Zen 2 процесорите. Тавис Орманди, безбедносен експерт од Google, откри пропуст кој ги зафаќа сите AMD процесори од Zen 2 генерацијата. Пропустот се однесува на процесорите за десктоп компјутери, но и на процесорите за сервери EPYC.

Пропустот им овозможува на потенцијалните напаѓачи пристап до податоци вклучувајќи ги и клучевите за криптирање и лозинките. Детали за потенцијалната злоупотреба и како напаѓачите би можеле да дојдат до податоците може да прочитате на блогот на Орманди.

За нападот не е потребен физички пристап до компјутерите и може да се изведе со JavaScript, вели Tom’s Hardware. Брзината на трансфер на податоците е 30kb/s по јадро на процесорот. Тоа е доволно за да се украдат чувствителни податоци на корисниците.

„Испадна дека намерното погрешно предвидување е тешко да се оптимизира! Требаше малку работа, но најдов варијанта што може да протекува околу 30 kb по јадро, во секунда.

Ова е доволно брзо за следење на клучевите и лозинките за шифрирање додека корисниците се најавуваат!“, објави Орманди.

Пропустот е наречен „Zenbleed“ или генерички CVE-2023-20569. Орманди прв пат го пријави до AMD на 15 мај, сепак производителот во тој период не беше воопшто подготвен. Дел од безбедносните закрпи се објавени денес, што е една од причините за јавно објавување на пропустот. Ако сте сопственик на Zen2 десктоп процесор, безбедносна закрпа во моментов не е достапна. Она што е достапно се однесува на EPYC-процесорите, останатите ќе почекаат до ноември. Со оглед на тоа дека пропустот може да се користи за шпионирање на корисниците на сервисите во облакот во различни инстанци на облакот, веројатно е разбирливо зошто приоритет имаа овие процесори.

Засега сѐ уште е нејасно што се случува со процесорите во конзолите. Четвртата генерација на Xbox-конзоли, Xbox Series X и Xbox Series S и PlayStation 5 доаѓаат со процесори со Zen2 архитектура, но нема податоци дали се зафатени со пропустот.

Како функционира Zenbleed

За да разбереме како функционира овој пропуст мора да знаеме отприлика како функционираат процесорите. Секој процесор содржи единица за аритметичко процесирање – ALU. Тука се извршуваат операции како собирање и множење. За да можат податоците да стигнат до ALU поминуваат низ повеќе системи за чување на податоци, примарна, секундарна, кеш меморија и регистрите на процесорот. Во овој пропуст податоците се достапни од регистрите на процесорот.

Во регистрите може да се чуваат 32 или 64-битни информации и ALU има пристап до нив. За побрзо процесирање на овие податоци процесорите на Intel и AMD користат Advanced Vector Extensions (AVX). AVX се екстензии на x86 архитектурата кои овозможуваат побрза компресија на податоци, процесирање на слики и слично.

Вектор податоците кои се користат од AVX инструкциите се чуваат во 16 YMM+-регистри. Регистрите се 256-битни и претставуваат суперсет на XMM регистрите кои се 128-битни регистри. YMM се користат за подобри перформанси кај SIMD (single instruction, multiple data) операциите. YMM регистрите се именувани од YMM0 до YMM15. Се наоѓаат на иста локација со XMM-регистрите. Втората половина од секој YMM-регистар е иста како и соодветниот XMM-регистар. Ова значи дека кодот што е напишан за XMM регистри може да се користи и со YMM регистрите, без никакви промени.

Интересно исто како и во случајот со Spectre она што го овозможува пропустот е шпекулативното извршување. Шпекулативно извршување е метод кој се користи за намалување на времето на процесирање. Процесорот шпекулативно ги извршува инструкциите предвреме без да „знае“ дали ќе се извршат. Ако нема потреба од инструкцијата, податоците се отфрлаат.

Податоците од различни процеси можат да се запишат во YMM-регистрите. Во специфични услови регистарот не е запишан правилно на 0, ова е суштината на пропустот.

Нападот со манипулирање на регистрите го предизвикува погрешно предвидена команда. Најпрво се активира XMM Register Merge Optimization2 (ова оригинално е креирано како заштита од напади кои напаѓаат шпекулативно извршување). По ова следи преименување на регистарот и по ова инструкцијата vzeroupper, која запишува нули во горната половина на YMM-регистарот. Инструкциите мора да се извршат во исклучително прецизно одреден период. Со следење на операции како strlenmemcpy или strcmp напаѓачот доаѓа до податоците.

Регистерот во исто време го користат сите процеси на јадрото, па пропустот може да се користи за „прислушкување“ на операциите преку следење на податоците кои се префрлаат од процесорот до остатокот од компјутерот.

Ако ве интересира детално како изгледа пропустот посетете го блогот на Орманди.

Стани премиум член и доби пристап до сите содржини, специјален попуст на над 2.200 производи во ИТ маркет, верификуван профил и можност за огласување на ИТ Огласник. Плус ќе го поддржиш медиумот кој го градиме цели 16 години!

basic

членство

42 ден./мес

зачлени се

1337

членство

125 ден./мес

зачлени се
* плаќањето е на годишно ниво

Доколку веќе имаш премиум членство, најави се тука.

Subscribe
Notify of
guest
0 Коментари
Newest
Oldest Most Voted
Inline Feedbacks
View all comments