Нов клас хардуерни уязвимости в процесорите на Intel

       Intel.td_uid_42_5cdc0d1dd1cf2_rand.td-a-rec-img{text-align:left}.td_uid_42_5cdc0d1dd1cf2_rand.td-a-rec-img img{margin:0 auto 0 0}

Intel публикува информация за нов клас уязвимости в своите процесори, който получи името MDS (Microarchitectural Data Sampling). Както и хардуерните уязвимости Spectre, новите проблеми могат да доведат до изтичане на най-чувствителна информация от операционната система, виртуалните машини и чуждите процеси. Под заплаха са паролите, данните за онлайн банкирането и т.н. MDS уязвимостите са открити от специалистите и партньорите на Intel по време на вътрешен одит. През месец юни и август миналата година независими експерти са подали информация за възможни проблеми, след което почти цяла година съвместно с производителите и разработчиците на операционни системи са създадени пачове и са определени основните вектори за атака.

Официално, в процесорите на AMD и ARM тази уязвимост не съществува.

След внимателно изследване на новия клас уязвимости експертите от Грацкия технически университет (Австрия) представиха няколко практически атаки от външни канали.

.td_uid_41_5cdc0d1dd19f8_rand.td-a-rec-img{text-align:left}.td_uid_41_5cdc0d1dd19f8_rand.td-a-rec-img img{margin:0 auto 0 0} Видовете атакиZombieLoad (PDF, прототипи на експлойтите за Linux и Windows), Дава възможност за извличане на конфиденциална информация от чуждите процеси, от операционната система, виртуалните машини и защитените анклави (TEE, Trusted Execution Environment). Демонстрирана е възможността за определяне историята на отваряните страници в Tor browser, дори и да е стартиран във виртуална машина. Възможно е разкриването на паролите и ключовете за достъп при различните приложенияhttps://zombieloadattack.com/public/videos/demo_720.mp4RIDL (PDF, код за проверка) – позволява организирането на изтичане на информация между различните изолирани области в процесорите на Intel, като например буферите за съхранение на информация и портовете на зареждане. Демонстрирани са примери за провеждане на атаки, като един от тях прочита хеша на root паролата от /etc/shadow. Тази атака се осъществява за около 24 часа.

Освен това, показан е пример за осъществяване на атака с използването на JavaScript и WebAssembly при отварянето на вредоносна страница в енджина SpiderMonkey (в съвременните пълноценни браузъри тази атака е малко вероятна, поради ограничената точност на таймера с цел предпазване от Spectre). Представителите на проекта Chromium считат, че добавянето на допълнителна защита в браузъра не е необходимо и са достатъчни пачовете на ниво операционна система

Fallout (PDF) – дава възможност за четене на данните, неотдавна записани от операционната система и за определяне на разпределянето на паметта на ОС за провеждането на други атакиStore-To-Leak Forwarding – използва оптимизацията на процесора за работа с вътрешния буфер и може да се използва за заобикаляне на механизма за случайното разпределяне на адресното пространство на ядрото (KASLR). Може да се комбинира със SpectreMDS уязвимостите са класифицирани по следния начин:CVE-2018-12126 – MSBDS (Microarchitectural Store Buffer Data Sampling), възстановяване на информацията от вътрешните буфери. Използва се в атаката Fallout. Степен на опасност 6,5 точки (CVSS)CVE-2018-12127 – MLPDS (Microarchitectural Load Port Data Sampling), възстановяване на съдържанието на портовете. Използва се в RIDL атаката, CVSS 6.5 точкиCVE-2018-12130 – MFBDS (Microarchitectural Fill Buffer Data Sampling) – използва се в атаките ZombieLoad и RIDL. Степен на опасност CVSS 6.5CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), възстановяване информацията от паметта, която не е кеширана. Използва се в RIDL атаката. CVSS 3.8Начин на работа на MDS

Същността на новооткритите проблеми е възможността за използването на аналитични методи от външни канали за достъп до данните в самата структура на процесорната архитектура, до която приложенията нямат пряк достъп. Това са структури от съвсем ниско ниво, като буфера на запълване на реда (Line Fill Buffer), междинните буфери за данни (Store Buffer) и зареждащите портове (Load Port), които са много по-малки съставни блокове в сравнение с кеша от първо ниво.

       Intel

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

Предложените методи за достъп до информацията директно от процесорните архитектурни структури се базира на това, че и структури се използват при спекулативната обработка на изключенията (fault), както и операциите load и store. При спекулативното изпълнение на процесорните команди информацията от вътрешните структури – регистри и портове се предоставя за обработка в регистрите или кеша. Но когато спекулативните команди не приключват, резултатът се отхвърля, но остава и информацията може да бъде определена.

       Intel

Зареждащите портове се използват при получаването на данни от паметта или входно изходната система на чипа, за да се зареди тази информация в регистрите на процесора. Intel е реализирал процеса по такъв начин, че данните остават в портовете и не се променят до първото презаписване и могат да бъдат прочетени чрез манипулация с изключенията и инструкциите SSE/AVX/AVX-512, зареждащи над 64 бита данни.

Кои са засегнатите

Проблемът засяга процесорите на Intel, произведени след 2011 година, започвайки от 6-тото поколение. При това, този тип уязвимости хардуерно се блокира, започвайки от някои модели 8-мо и 9-то поколение Intel Core и 2-рото поколение Intel Xeon Scalable (проверката може да стане чрез флага ARCH_CAP_MDS_NO в IA32_ARCH_CAPABILITIES MSR). Уязвимостите са блокирани на ниво фърмуер, микрокод и операционни системи. Редица производители на сървъри вече предложиха обновяване на фърмуера (например Lenovo).

Производителност

Според Intel, намаляването на производителността с инсталирането на пачовете за повечето потребители не превишава 3%. При изключена Hyper-Threading технология и инсталиран MDS пач, понижаването на производителността достига 9% в SPECint_rate_base теста, до 11% при активни целочислени изчисления и до 19% в работата на сървърните Java приложения. Пачовете на практика не оказват влияние на входно изходните операции. Но в macOS производителността на многопоточните приложения пада с 40% при изключен hyper-threading режим.

Обновяванията

В Linux ядрото, защитата от MDS уязвимостите бе добавена в днешните обновявания 5.1.2, 5.0.16, 4.19.43, 4.14.119 и 4.9.176. Защитата се осъществява чрез изчистване на междинните архитектурни буфери чрез инструкцията VERW. Но за работата на тази защита е необходима поддръжката на режима MD_CLEAR, който бе реализиран в днешното обновяване на микрокода. За цялостна защита се препоръчва изключването на Hyper Threading. В Linux е добавена възможност за избор на различни режими за защита от MDS. За Linux ядрото е добавен параметъра „mds=“, който може да има значения „full“, „full, nosmt“ (изключен Hyper-Threads), „vmwerv“ и „off“.

Вече излязоха обновявания за Linux дистрибуциите RHEL и Ubuntu, но засега няма пачове за Debian, Fedora и SUSE. Блокирането на изтичането на данните от виртуалните машини е реализирано за хипервайзора Xen и за VMware. Излязоха обновявания и за NetBSD, FreeBSD, ChromeOS, Windows и macOS. Все още няма пачове за OpenBSD.

Коментари
Все още няма коментари
Статистика
Прегледи 13
Коментари 0
Рейтинг
Добавена на15 Май 2019
ИзточникKaldata

Тагове
Intel
Ние във фейсбук