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

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

На база установените проблеми, изследователи от Техническия университет в Грац (Австрия) са разработили няколко практични атаки чрез странични канали:

  • ZombieLoad (PDF) — позволява извличане на конфиденциална информация от други процеси, операционната система, виртуални машини и защитени анклави (TEE, Trusted Execution Environment). Например, демонстрира се възможността за определяне на историята на отваряне на страници в Tor браузъра, стартиран в друга виртуална машина, както и за определяне на използваните в приложенията ключове за достъп и пароли;


  • RIDL (PDF) — позволява организиране на изтичане на информация между различни изолирани области в процесорите Intel, като буфери за попълване, буфери за съхранение и портове за зареждане. Примери за провеждане на атаки са показани за организиране на изтичания от други процеси, операционната система, виртуални машини и защитени анклави. Например, демонстрирано е как да се узнае съдържанието на хеша на паролата root от /etc/shadow при периодични опити за удостоверяване (атаката е отнела 24 часа);

    Пуснете видеото

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

    Пуснете видеото
  • Fallout (PDF) — дава възможност за четене на данни, наскоро записани от операционната система, и за определяне на разположението на паметта на ОС за улесняване на провеждането на други атаки;
  • Store-To-Leak Forwarding — експлоатира оптимизации на CPU по работата с буфера за съхранение и може да бъде използван за заобикаляне на механизма за рандомизация на адресното пространство на ядрото (KASLR), за мониторинг на състоянието на операционната система или за организиране изтичания в комбинация с устройства, базирани на методите Spectre.

Идентифицирани уязвимости:

  • 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.5;
  • CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), възстановяване на съдържанието на некеширана памет. Използва се в атаката RIDL. CVSS 3.8.

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

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

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

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

Зареждащите портове се използват от процесора за получаване на данни от паметта или подистемата за вход/изход и предоставяне на получената информация в регистрите на CPU. Поради спецификата на реализиране, данните от стари операции за зареждане остават в портовете до повторно записване с нови данни, което позволява косвено определяне на състоянието на данните в зареждащия порт чрез манипулиране с изключения (fault) и инструкции SSE/AVX/AVX-512, които зареждат повече от 64 бита данни. В такива условия операциите за зареждане спекулативно осветяват остарели стойности от вътрешни структури в зависими операции. Подобен начин се организира за течове през буфера за съхранение, използван за ускоряване на записите в кэша на CPU и включващ таблица с адреси, стойности и флагове, както и през буфера за запълване, който съдържа данни, които все още не са налични в кеша L1 (cache-miss), за времето на зареждане от кешовете на другите нива.

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

Проблема засяга модели на процесори Intel, произвеждани от 2011 година (от 6-то поколение насам). При това хардуерните уязвимости се блокират, започвайки от определени модели на 8-мо и 9-то поколение Intel Core и 2-ро поколение Intel Xeon Scalable (може да се провери чрез бит ARCH_CAP_MDS_NO в IA32_ARCH_CAPABILITIES MSR). Уязвимостите вече са отстранени на ниво фърмуер, микрокод и операционни системи. Според оценките на Intel загубата на производителност след активиране на корекцията за повечето потребители не надвишава 3%. При деактивиране на технологията Hyper-Threading намалението на производителността може да достигне до 9% в теста SPECint_rate_base, до 11% при активни цели изчисления и до 19% при изпълнение на сървърни Java-приложения (при включено HT намалението на производителността е почти незабележимо). Корекциите практически не влияят на производителността на операции, свързани с вход/изход.

В ядрото на Linux защитата от MDS е добавена в днешните актуализации 5.1.2, 5.0.16,
4.19.43, 4.14.119 и 4.9.176. Методът на защита е изградена при почистване на съдържанието на микроархитектурните буфери в момент на връщане от ядрото в пространството на потребителя или при предаване на управление на гост-системата, за което се използва инструкцията VERW. За работа на защитите е необходима поддръжка на режим MD_CLEAR, реализиран в най-новото обновление на микрокода. За пълна защита също се препоръчва да се деактивира Hyper Threading. За проверка на уязвимостта на системата в ядрото на Linux е добавен обработчик «/sys/devices/system/cpu/vulnerabilities/mds». За управление на активирането на различни режими за блокиране на уязвимости в ядрото е добавен параметърът «mds=», който може да приема стойности «full», «full,nosmt» (деактивация на Hyper-Threads), «vmwerv» и «off».

Актуализациите на пакетите вече са издадени за RHEL и Ubuntu, но все още остават недостъпни за Debian, Fedora и SUSE.
Поправките за блокиране на течове на данни от виртуални машини също са създадени за хипервизора Xen. За защита на виртуализационните системи, извършващи повикване на командата L1D_FLUSH преди предаване на управление на друга виртуална машина, и за защита на анклавите Intel SGX е достатъчно обновление на микрокода.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster