
Компания Intel опубликовала сведения о новом классе уязвимостей в своих процессорах - MDS (Microarchitectural Data Sampling). Как и прошлые атаки класса Spectre новые проблемы могут привести к утечке закрытых данных операционной системы, виртуальных машин и чужих процессов. Утверждается, что проблемы сперва были выявлены сотрудниками и партнёрами Intel в ходе внутреннего аудита. В июне и августе 2018 года информацию о проблемах в Intel также передали независимые исследователи, после чего почти год велась совместная работа с производителями и разработчиками операционных систем по определению возможных векторов атак и доставке исправлений. Процессоры AMD и ARM проблеме не подвержены.
На основе выявленных проблем исследователями из Грацского технического университета (Австрия) разработано несколько практических атак по сторонним каналам:
- ZombieLoad (PDF, прототип эксплоитов для Linux и Windows) - позволяет извлечь конфиденциальную информацию из других процессов, операционной системы, виртуальных машин и защищённых анклавов (TEE, Trusted Execution Environment). Например, продемонстрирована возможность определения истории открытия страниц в Tor browser, запущенном в другой виртуальной машине, а также извлечения используемых в приложениях ключей доступа и паролей;
https://zombieloadattack.com/public/videos/demo_720.mp4
- RIDL (PDF, код для проверки) - позволяет организовать утечку информации между различными изолированными областями в процессорах Intel, такими как буферы заполнения, буферы хранения и порты загрузки. Примеры проведения атаки показаны для организации утечек из других процессов, операционной системы, виртуальных машин и защищённых анклавов. Например, показано как узнать содержимое хэша пароля root из /etc/shadow при периодических попытках аутентификации (атака заняла 24 часа);
- Fallout (PDF) - даёт возможность читать данные, недавно записанные операционной системой и определять раскладку памяти ОС для упрощения проведения других атак;
- Store-To-Leak Forwarding - эксплуатирует оптимизации CPU по работе с буфером хранения и может применяться для обхода механизма рандомизации адресного пространства ядра (KASLR), для мониторинга состояния операционной системы или для организации утечек в комбинации с гаджетами на базе методов Spectre.
Суть выявленных проблем в возможности применения методов анализа по сторонним каналам к данным в микроархитектурных структурах, к которым приложения напрямую не имеют доступа. Речь ведётся о таких низкоуровневых структурах, как буферы заполнения (Line Fill Buffer), буферы хранения (Store Buffer) и порты загрузки (Load Port), которые являются более мелкими составными блоками, чем кэш первого уровня (L1D), кэш загрузки данных (RDCL) или L1TF (L1 Terminal Fault), и соответственно включают меньше информации и обновляются более интенсивно.
Обновления пакетов уже выпущены для RHEL и Ubuntu, но пока остаются недоступны для Debian, Fedora и SUSE. Исправление для блокирования утечек данных из виртуальных машин сформировано для гипервизора Xen и VMware. Для защиты систем виртуализации, выполняющих вызов команды L1D_FLUSH перед передачей управления другой виртуальной машине, и для защиты анклавов Intel SGX достаточно обновления микрокода. Исправления также доступны для NetBSD, FreeBSD, ChromeOS, Windows и macOS (для OpenBSD исправлений ещё нет).
P.S. Не забывайте обновить свои ОС.
@black_triangle_tg