Технические Детали. Уязвимость Краха — Cve-2017-5754

От автора Важный! Уязвимость на самом деле 3 уязвимости — Meltdown, Spectre 1, Spectre 2. Привет Хабр! Сегодня у нас перевод примечания об уязвимости Meltdown (CVE-2017-5754).

Для понимания этой уязвимости переведена только первая страница и основная часть заметки.

Крах



Общий

Безопасность современной компьютерной системы (прим.

автора: Смартфоны, компьютеры, практически любые носимые устройства с возможностью запуска кода не от производителя) основана на изоляции адресного пространства, например, память ядра помечается как недоступная и защищены от доступа пользователя.

В этом посте мы представляем вам Meltdown. Meltdown использует побочный эффект внеочередного выполнения в современных процессорах для чтения данных из ядра, включая личную информацию и пароли.

Выполнение вне порядка оказывает сильное влияние на производительность и включено в большинство современных процессоров.

Атака не зависит от операционной системы и не использует уязвимости программного обеспечения.

Meltdown нарушает всю систему безопасности, основанную на изоляции адресного пространства, в том числе паравиртуализированную.

Meltdown позволяет читать часть памяти других процессов и виртуальных машин.

Мы покажем, что система KAISER имеет важный побочный эффект в виде блокировки Meltdown (но является костылем).

Мы настаиваем на немедленном включении KAISER, чтобы предотвратить утечку информации.



Введение

Безопасность современной компьютерной системы основана на изоляции адресного пространства.

Операционные системы обеспечивают изоляцию отдельных процессов.

В современных процессорах разделение состояний между процессами ядра и пользовательскими процессами обеспечивается битом гипервизора.

Вся концепция заключается в том, что этот бит очищается в пользовательском процессе и устанавливается в процессе ядра.

Процессы изменяются прерываниями и системными вызовами (system call/syscall).

В настоящее время адресация памяти не меняется во время системных вызовов и прерываний.

Meltdown работает на процессорах Intel 2010-х годов, а также потенциально может повлиять на процессоры других производителей (примечание автора: AMD, VIA).

Meltdown использует побочный эффект внеочередного выполнения в современных процессорах для чтения данных из ядра, включая личную информацию и пароли.

Процессор вместо того, чтобы с большой задержкой ждать данных от внешних шин и простаивать, начинает выполнять инструкции и заполнять простаивающие части ядра.

Но у этих действий есть побочный эффект — разница во времени выполнения инструкций.

Уязвимые процессоры позволяют непривилегированному процессу выполнять код вне очереди и загружать данные из памяти ядра во временный регистр.

Более того, процессор выполняет вычисления на основе значения этого регистра, например, загружая данные из массива данных в зависимости от значения регистра.

Процессор обеспечивает правильное выполнение кода, сбрасывая результат выполнения, например записанный регистр, если результат прогнозирования неверен.

Таким образом, никаких проблем на архитектурном уровне не возникает. Но, как уже отмечалось, выполнение вне очереди имеет побочный эффект заполнения кеша в зависимости от кода, выполняемого вне очереди.

Таким образом, злоумышленник может прочитать все данные в адресном пространстве ядра, используя особенность микроархитектуры.

Meltdown работает на современных персональных компьютерах и ноутбуках, а также на серверах в облаках.

Также в песочницах на основе совместного использования ядра — паравиртуализация и песочница внутри процесса.

Контрмера KAISER предотвращает атаки, направленные на KASLR, и непреднамеренно защищает от атаки Meltdown.

Абстрактный пример

   

raise_exception(); access(probe_array[data * 4096])

Вторая строка никогда не будет выполнена.

Что бы ни вызвало ошибку, оно перемещает состояние нарушения порядка выполнения в контекст ошибки — чаще всего ядро.



Технические детали.
</p><p>
 Уязвимость краха — CVE-2017-5754

Несмотря на то, что вторая строка кода не выполнилась на архитектурном уровне , но это изменило состояние кэша на мировом архитектурном уровне .



Технические детали.
</p><p>
 Уязвимость краха — CVE-2017-5754

.

Как видите, время доступа к разным областям массива различно, так как в процессе выполнения кеш загружал часть памяти, к которой имел доступ, вне очередности.

Таким образом, мы можем передавать данные из состояния выполнения вне очереди, в котором инструкции выполняются в привилегированном режиме, в пользовательский процесс злоумышленника.

Далее, исходя из того, что доступ к данным, уже находящимся в кэше, меньше времени, необходимого процессору для отката действия, выполненного вне последовательности, злоумышленник считывает значение части памяти ядра процессора, расположенной в кэш.

Иногда попытка чтения заканчивается неудачей, потому что.

Процессор успевает сбросить конвейер выполнения вне очереди до того, как он прочитает данные (0,003%), и позволяет читать данные со скоростью 503 КБ/с на i7 6700K. Поток, использующий эту уязвимость, завершится с ошибкой, поэтому для использования этой уязвимости процесс должен иметь возможность создать дочерний поток с доступом к памяти дочернего потока.



Обнаружение уязвимостей



Линукс

Мы успешно воспользовались этой уязвимостью в версиях ядра с 2.6.32 по 4.13.0. Патч KAISER устраняет эту уязвимость.



Окна

Мы успешно воспроизвели эту уязвимость в Windows 10 (прим.

версия не указана)

Контейнеры

Атаку можно воспроизвести в таких контейнерах, как OpenVZ, Docker, LXC.

Ограничения в AMD и ARM.

Нам не удалось воспроизвести эту уязвимость на ARM и AMD, но наша реализация может быть слишком медленной.

НО! Нам удалось воспроизвести уязвимость выполнения вне очереди на обоих процессорах.

Важный! Патчи операционной системы предотвращают Meltdown, но не Spectre Важный! Эта уязвимость может присутствовать и в других процессорах! Извините за короткую заметку! Больше этого делать не буду :).

Теги: #security os #Meltdown #уязвимость #информационная безопасность #JavaScript #Assembler

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.