Патч, закрывающий уязвимость Meltdown привел к более критичной уязвимости систем Windows 7X64 и Windows 2008R2. Уязвимости подвержены системы, обновленные патчами 2018-01 или 2018-02. Уязвимости не подвержены системы, не пропатченные с декабря 2017 года, либо если на них установлен кумулятивный патч 2018-03.
Патч Meltdown от Microsoft открыл еще большую брешь в безопасности в Windows 7/2008, позволяя любому пользовательскому приложению читать содержимое из ядра операционной системы и даже записывать данные в память ядра.
Шведский эксперт по ИТ-безопасности Ульф Фриск обнаружил эту уязвимость, работая над устройством PCILeech, созданном для проведения атак с прямым доступом к памяти (DMA) и дампу защищенной памяти операционной системы.
По словам эксперта, исправление Meltdown от Microsoft (для CVE-2017-5754), случайно перевернуло бит, который контролирует права доступа для памяти ядра.
Бит прав пользователя/ядра был установлен на пользователя в PML4 (карте страниц четвёртого уровня ). Это сделало таблицы страниц доступными для кода режима пользователя в каждом процессе. В штатном режиме таблицы страниц должны быть доступны только самому ядру. В Windows 7 состояние PML4 фиксируется в позиции 0x1ED, смещение 0xF68 (в Windows 10 это значение случайно). Это означает, что PML4 всегда будет отображаться по адресу: 0xFFFFF6FB7DBED000 в виртуальной памяти.
Значение в PML4e 0x0000000062100867 (из приведенного выше примера) указывает, что установлены биты 0, 1, 2, что означает, что он доступен для чтения и записи.
PML4 является базой 4-уровневой иерархии таблиц страниц в памяти, используемой модулем управления памятью процессора (MMU) для преобразования виртуальных адресов процесса в адреса физической памяти в ОЗУ.
Эта проблема затронула только 64-разрядные версии Windows 7 и Windows Server 2008 R2. Microsoft исправила ошибку, переопределив бит разрешения PML4 обратно в исходное значение в патче 2018-3.
Для проверки своей системы можно воспользоваться утилитой pcileech, выгрузив память в файл:
pcileech.exe dump -out memorydump.raw -device totalmeltdown -v -force
Для удобства можно воспользоваться Dokany, — смонтировать запущенные процессы и виртуальную память ядра как файлы и папки. Чтобы смонтировать процессы необходимо выполнить следующую команду:
pcileech.exe mount -device totalmeltdown
UPD: PoC эксплоит для проверки уязвимости.
Комментарии (22)
Mnemonik
28.03.2018 12:46+5Блин, ну давайте хоть ссылку на источник на английском! Хоть маленькую, хоть небольшую, хоть на название чтобы погуглить можно было. Хоть какую-то зацепку.
Такими новостями надо делиться с коллегами, и не у всех они русскоговорящие.khim
28.03.2018 17:26Хоть маленькую, хоть небольшую, хоть на название чтобы погуглить можно было. Хоть какую-то зацепку.
Однако. 0xFFFFF6FB7DBED000 прекрасно гуглится…
navion
28.03.2018 13:16+2h0t_max
28.03.2018 19:40+3Немного веселья в тему: патч KB4088875 (благо винда успела его поймать) убирает проблему ТОЛЬКО ДЛЯ приложений с ПРАВАМИ АДМИНИСТРАТОРА (+х32 бита), обычные пользователи по прежнему могут читать PML4(!!!!!!!). На лицо ошибка в фиксе (инверсия условия скорее всего). Шикарный патч!
ooprizrakoo
28.03.2018 19:39Скажите офисным хомячкам, типа меня, что делать-то? :)
Galamoon
29.03.2018 10:16По большому счету ничего, «офисным хомячкам» тут никак не помочь. Пользуйтесь своим ноутбуком как и раньше и не забивайте голову глупостями, скоро выпустят патч на патч, просто обновитесь.
sumanai
29.03.2018 11:12ИМХО, офисным хомячкам, не хранящим на ПК кошелёк с 1000 биткоинов, бояться вообще нечего.
Cheater
28.03.2018 19:57+899 little bugs in the code,
99 little bugs in the code,
Take one down, patch it around,
127 little bugs in the code…
BerliozNSK
29.03.2018 10:16Так можно уже накатывать апдейт от Meltdown на винду?
P.S. Я работаю в основном с unix, поэтому малость в отрыве от винды
XogN
29.03.2018 10:54+1Обновления для Windows 7 последнее время вызывают больше проблем чем пользы.
Январский KB4056894 вызывал периодические BSOD-ы. Восстановил систему из бекапа, апдейт скрыл.
Февральский KB4074598 тоже принес несколько неприятных глюков. И снова восстановился из бекапа и скрыл апдейт.
Мартовский KB4088875 уже даже не пытался ставить — и как выяснилось, не зря.
Переходить на Windows 10 не хочу. На дух не переношу эту систему со времен её навязывания всеми способами.
Скорее всего, окончательно уйду на Arch Linux, а для игр есть PlayStation 4.
Ostan
30.03.2018 17:43Вот, как чувствовал, что так будет! И поэтому последние установленные мной обновления были за декабрь 2017. Думаю ещё пол-года можно рабочие сборки винды не обновлять, а там надеюсь и «правильные» патчи появятся.
ixolit
Решето!
Utopia
Решето в решете!