Home | | | Short News | | | Long News | | | Long Reads | | | Support | | | Library |
Брешь возникла из-за того, что разработчики ОС не разобрались в инструкциях производителей процессоров.
Аналитики Ник Петерсон (Nick Peterson) из Everdox Tech и Неманжа Муласмажич (Nemanja Mulasmajic) из triplefault.io опубликовали отчет о критической уязвимости, которую они обнаружили во всех популярных операционных системах, разработанных под чипсеты Intel и AMD.
Угроза была обнаружена в Windows, macOS, некоторых сборках Linux, FreeBSD, Red Hat, а также гипервизорах VMware и Xen. Она позволяет злоумышленникам выполнять вредоносный код в режиме ядра и контролировать низкоуровневые функции ОС. Расширенный список вендоров и статус уязвимости на их устройствах можно найти на сайте координационного центра CERT.
Уведомление о баге производители получили 30 апреля, и уже на следующий день начали выпускать первые исправления. На экстренное внедрение патчей ушла вся первая неделя мая.
По словам исследователей, баг затронул такое количество продуктов в связи с неточностями в документации по использованию инструкций MOV SS и POP SS. Они отвечают за обработку отладочных прерываний, в том числе немаскируемых (NMI). Из-за непонятного и, возможно, неполного описания этих функций разработчики ОС не смогли правильно настроить процесс взаимодействия с семантикой шлюза прерывания (Interrupt Gate).
Задача POP SS не допустить ситуации, когда запрошенный стек программы оказался в противоречивом состоянии (inconsistent state), что может быть вызвано прерыванием. Помимо этого, современные системы используют инструкцию Int, чтобы позволять пользовательским приложениям обращаться к ядру. Вызов поступает в процессор в виде стека, который содержит идентификатор целевой программы.
Эксплойт уязвимости заключается в запуске Int, инициирующей прерывание, сразу после POP SS, которая его запрещает. В этой ситуации процессор начинает процедуру устранения ошибки, и чтобы не потерять идентификатор приложения, система пытается выдать ему статус исключения.
Однако, вместо того чтобы делать это до попадания стека в шлюз прерывания, отладчик производит эту операцию после. Баг нарушает работу системы, в некоторых случаях заставляя супервизор ОС (OS supervisor software) использовать данные сторонних программ.
Уязвимость получила идентификатор CVE-2018-8897. Ей нельзя воспользоваться удаленно, — для того, чтобы запустить код, необходимо предварительно заразить целевое устройство вредоносным ПО или войти в пользовательский аккаунт.
Процесс эксплуатации бага несколько отличается на устройствах под управлением Linux. Злоумышленник может существенно повысить свои привилегии, используя гостевую учетную запись KVM (Kernel-based Virtual Machine). Более того, вмешательство в работу прерываний может вызвать аварийный отказ операционной системы.
19:45 |
||
17:45 |
||
14:45 |
||
12:45 |
||
11:45 |
||
09:45 |
||
09:45 |
||
19:45 |
||
18:45 |
||
16:45 |
||
15:45 |
||
14:45 |
||
13:45 |
||
10:45 |
||
10:45 |
||
09:45 |
||
19:45 |
||
19:45 |
Home | | | Short News | | | Long News | | | Long Reads | | | Support | | | Library | | | Blogs | | | Links |