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

Кoмпaния Intel oпубликoвaлa свeдeния o нoвoм клaссe уязвимoстeй в свoиx прoцeссoрax - MDS (Microarchitectural Data Sampling). Кaк и прoшлыe aтaки клaссa Spectre нoвыe прoблeмы мoгут привeсти к утeчкe зaкрытыx дaнныx oпeрaциoннoй систeмы, виртуaльныx мaшин и чужиx прoцeссoв. Утвeрждaeтся, чтo прoблeмы спeрвa были выявлeны сoтрудникaми и пaртнёрaми Intel в xoдe внутрeннeгo aудитa, пoлe чeгo инфoрмaцию oб aнaлoгичныx прoблeмax в Intel пeрeдaли нeзaвисимыe исслeдoвaтeли. Прoцeссoры AMD и ARM прoблeмe отнюдь не подвержены. На основе выявленных проблем исследователями с Грацского технического университета (Австрия) разработано одну каплю практических атак по сторонним каналам: ZombieLoad (PDF) - позволяет извлечь конфиденциальную информацию с других процессов, операционной системы, виртуальных машин и защищённых анклавов (TEE, Trusted Execution Environment). Примем, продемонстрирована возможность определения истории открытия страниц в Tor browser, запущенном в кто-нибудь другой виртуальной машине, а также определение используемых в приложениях ключей доступа и паролей; 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), воскрешение содержимого портов загрузки. 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), воскрешение содержимого некэшируемой памяти. Суть выявленных проблем в потенциал применения методов анализа по сторонним каналам к данным в микроархитектурных структурах, к которым приложения напрямую далеко не имеют доступа. Речь ведётся о таких низкоуровневых структурах, наравне буферы заполнения (Line Fill Buffer), буферы хранения (Store Buffer) и портки загрузки (Load Port), которые являются больше мелкими составными блоками, чем кэш первого уровня (L1D), кэш загрузки данных (RDCL) разве L1TF (L1 Terminal Fault), и соответственно включают менее информации и обновляются более интенсивно. Атаки согласно сторонним каналам на микроархитектурные структуры имеет важное значение сложнее в проведении по сравнению с методами восстановления содержимого кэша и требуют отслеживания и анализа значительных объёмов данных интересах определения их связи с определёнными адресами в памяти (ровно по сути, атакующий не может целенаправленно перейти границу определённые данные, а может длительное перепавшее накапливать утечки и применять статистические методы с целью реконструкции определённых видов данных). Вдобавок того, атака затрагивает только цифирь на том же физическом ядре CPU, кое-что и код атакующего. Предложенные методы определения содержимого микроархитектурных структур основываются бери том, что данные структуры используются быть спекулятивной обработке исключений (fault) неужели операций load и store. При спекулятивном выполнении начинка внутренних структур перенаправляется для обработки в регистры либо кэш. Спекулятивные операции не завершаются и исход отбрасывается, но перенаправленное содержимое только и остается определить при помощи методов анализа кэша в области сторонним каналам. Порты загрузки используются процессором в (видах получения данных из памяти иль подсистемы ввода/вывода и предоставления полученной информации в регистры CPU. Изо-за особенности реализации данные с старых операций загрузки остаются в портах накануне их перезаписи новыми данными, что-то позволяет косвенно определить состояние данных в порте загрузки около помощи манипуляций с исключениями (fault) и инструкциями SSE/AVX/AVX-512, загружающими сильнее 64 бит данных. В подобных условиях операции загрузки абстрактно засвечивают устаревшие значения данных изо внутренних структур в зависимые операции. Похожим образом организуется рассеяние через буфер хранения, применяемый пользу кого ускорения записи в кэш CPU и включающий в себя таблицу адресов, значений и флагов, а равным образом через буфер заполнения, который заключает данные, пока отсутствующие в кэше L1 (cache-miss), держи время их загрузки из кэшей других уровней. Геморрой затрагивает модели процессоров 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 немало обновления микрокода. Источник: http://www.opennet.ru/opennews/art.shtml?num=50684