Поразява се нова уязвимост на спекулативно изпълнение AMD, ARM и Intel

„Изстрел IntelSkylake die shot, построен с помощта на 14nm процеса.Intel

Нова атака, която използва спекулативно изпълнение на процесори възможности за изтичане на данни, наречен Speculative Store Bypass (SSB), е публикувана, след като е била открита независимо от Център за реакция на сигурността на Microsoft и нула на Google Project. Процесори от Intel и AMD, заедно с някои от тези, които използват ARM всички проекти са засегнати.

Допълнителна информация

“Meltdown” и “Spectre:” Всеки модерен процесор има непоправим пропуски в сигурността, тъй като бяха обявени недостатъците на стопяването и призракът по-рано тази година, спекулативните и прогнозиращи способности на съвременните микропроцесори са внимателно разгледани, разкривайки няколко нови атаки.

Всички атаки следват общ набор от принципи. всеки процесор има архитектурно поведение (документираното поведение което описва как работят инструкциите и това програмистите зависят от това да напишат своите програми) и микроархитектурна поведение (начинът на действително изпълнение на архитектурата се държи). Те могат да се разминават по фини начини. Например, в архитектурно отношение програма, която зарежда стойност от определена адресът в паметта ще изчака, докато адресът е известен преди опитва се да изпълни натоварването. Микроархитектурно обаче процесор може да се опита да гадае спекулативно на адреса, така че може да започне да зарежда стойността от паметта (която е бавна) дори преди да е абсолютно сигурно кой адрес трябва да използва.

Ако процесорът предположи грешно, той ще игнорира предположенията стойност и изпълнете натоварването отново, този път с правилното адрес. Така архитектурно определеното поведение е запазено. Но това погрешно предположение ще смути другите части на процесора – в по-специално съдържанието на кеша. Тези микроархитектурни смущения могат да бъдат открити и измерени, което позволява злонамерено програма за извършване на изводи за стойностите, съхранявани в паметта.

Атаките на Meltdown и Spectre използват тази разлика. Така също и SSB. От преписването на проблема на Microsoft, Най- Проблемната последователност на събитията е следната:

  1. Съхранявайте стойност на място в паметта “бавно”.
  2. Заредете стойността на същото място в паметта “бързо”.
  3. Използвайте току-що прочетената стойност, за да нарушите кеша в откриваем начин.

Тук “бавно” и “бързо” се отнасят до това колко бърз може процесорът определете мястото на паметта, от което да се чете и пише. Най- трик е да направите първата стъпка, магазина, зависи от резултатите от предишни инструкции; това означава, че процесорът трябва да изчака преди да знае къде да съхранява стойността. Втората стъпка, Напротив, зареждането е конструирано по такъв начин, че адресът може да се определи бързо, без да чакате. В тази ситуация спекулативното изпълнение на процесора ще „игнорира“ или „заобикаля“ магазин (защото все още не знае къде всъщност е стойността се съхранява) и просто приемете, че данните в момента се съхраняват в местоположението в паметта е валидно. Това дава на атаката името му: магазина е спекулативно заобиколен, което позволява на процесора да бъде измамен в четене на стойности, които не бива.

В крайна сметка процесорът ще разбере, че магазина и load използва същия адрес на паметта, като по този начин натоварването вдигна грешна стойност. Спекулативното изпълнение се изхвърля и правилното изчисление, извършено с правилните стойности. Архитектурната следователно поведението се запазва правилно. Но в този момент на микроархитектурното състояние на процесора вече е променено. Тези промени могат да бъдат открити и нападателят може да ги използва промени, за да разбера коя стойност е прочетена.

Добри новини и лоши новини

Както при Spectre и Meltdown, SSB изисква нападателя да бъде в състояние да стартира код по жертва система. Това го прави особено загриженост за доставчиците на облачни услуги (където може да има злонамерена страна опитайте се да атакувате хипервизора и да се измъкнете от тяхната виртуална машина) и за JavaScript двигатели на браузъра (където е злонамерено скриптове може да се опитат да излязат от тяхната среда за пясък), но обратно, това означава, че извън тези сценарии обхватът е ограничен. Като цяло, необходимостта да бъде в състояние да изпълнява произволен код за атака в първо място означава, че един или повече други недостатъци вече трябва да съществуват. По подобен начин тази атака позволява само да се четат данни. Докато понякога самите данни са полезни (например пароли или ключове за криптиране), по-често той просто ще предоставя допълнителни информация (като подробности за оформлението на паметта на ядрото) до помогнете да извършите друга атака, използвайки някакъв друг недостатък.

По отношение на риск и експлоатация, тази атака е подобна на тази първият вариант Spectre. Първият вариант на Spectre, байпас на масива, използва подобен модел на две операции в последователност (за SSB, магазин след това зареждане; за Spectre v1, клон след това натоварване), където първата операция архитектурно променя резултат от натоварването, но се изпълнява спекулативно, сякаш не го прави. Това структурно сходство означава, че същото ниво на приложение модификации, които адресират Spectre v1, също адреси SSB. По-конкретно, заявленията за риск трябва да добавят допълнително инструкция между първата операция и операцията за натоварване до не позволяват натоварването да се извършва спекулативно. Това не е непременно единственият начин да направите приложение безопасно, но това е a последователна и сравнително лесна за прилагане. Блокиране на спекулативното изпълнение ще намали донякъде ефективността на програмата, но ако се прилага разумно – тъй като не всеки товар е изложен на риск – въздействието може да бъде незначителен.

Ще видим също бараж от операционна система, микрокод и актуализации на фърмуера, точно както направихме за втората Вариант на призрак. Последните процесори на AMD включват функция за деактивиране този специфичен вид спекулативно изпълнение и Microsoft е ще пуснат Windows кръпки, които позволяват тази функция да бъде използва. Intel пуска актуализации за микрокодове, които я осигуряват процесори с подобно съоръжение за деактивиране на този вид спекулации. В крайна сметка те ще бъдат разпространени като фърмуер и актуализации на операционната система.

И в двата случая обаче дружествата препоръчват това потребителите не включват тази опция за цялата система. Въздействието на изпълнението може да бъде доста висока – казва Intel между два и осем процента намаляване на показатели като SYSmark и SPECint – и така модификации на приложения с риск е по-доброто решение. TheПромяната в цялата система е резервен, ако това не е възможно.

Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: