Патч, закрывающий уязвимость Meltdown привел к более критичной уязвимости систем Windows 7X64 и Windows 2008R2. Уязвимости подвержены системы, обновленные патчами 2018-01 или 2018-02. Уязвимости не подвержены системы, не пропатченные с декабря 2017 года, либо если на них установлен кумулятивный патч 2018-03.

Патч Meltdown от Microsoft открыл еще большую брешь в безопасности в Windows 7/2008, позволяя любому пользовательскому приложению читать содержимое из ядра операционной системы и даже записывать данные в память ядра.

Шведский эксперт по ИТ-безопасности Ульф Фриск обнаружил эту уязвимость, работая над устройством PCILeech, созданном для проведения атак с прямым доступом к памяти (DMA) и дампу защищенной памяти операционной системы.

image

По словам эксперта, исправление Meltdown от Microsoft (для CVE-2017-5754), случайно перевернуло бит, который контролирует права доступа для памяти ядра.

Бит прав пользователя/ядра был установлен на пользователя в PML4 (карте страниц четвёртого уровня ). Это сделало таблицы страниц доступными для кода режима пользователя в каждом процессе. В штатном режиме таблицы страниц должны быть доступны только самому ядру. В Windows 7 состояние PML4 фиксируется в позиции 0x1ED, смещение 0xF68 (в Windows 10 это значение случайно). Это означает, что PML4 всегда будет отображаться по адресу: 0xFFFFF6FB7DBED000 в виртуальной памяти.

image

Значение в PML4e 0x0000000062100867 (из приведенного выше примера) указывает, что установлены биты 0, 1, 2, что означает, что он доступен для чтения и записи.

image

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


image



UPD: PoC эксплоит для проверки уязвимости.

Комментарии (22)


  1. ixolit
    28.03.2018 12:23
    +3

    Решето!


    1. Utopia
      28.03.2018 12:56
      -1

      Решето в решете!


  1. Mnemonik
    28.03.2018 12:46
    +5

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



    1. LukaSafonov Автор
      28.03.2018 12:59
      +1

      Ссылки на обсуждение: раз, два.


    1. khim
      28.03.2018 17:26

      Хоть маленькую, хоть небольшую, хоть на название чтобы погуглить можно было. Хоть какую-то зацепку.
      Однако. 0xFFFFF6FB7DBED000 прекрасно гуглится…


  1. navion
    28.03.2018 13:16
    +2

    либо если на них установлен кумулятивный патч 2018-03

    Который отозвали из-за кучи багов.


    1. h0t_max
      28.03.2018 19:40
      +3

      Немного веселья в тему: патч KB4088875 (благо винда успела его поймать) убирает проблему ТОЛЬКО ДЛЯ приложений с ПРАВАМИ АДМИНИСТРАТОРА (+х32 бита), обычные пользователи по прежнему могут читать PML4(!!!!!!!). На лицо ошибка в фиксе (инверсия условия скорее всего). Шикарный патч!


  1. ooprizrakoo
    28.03.2018 19:39

    Скажите офисным хомячкам, типа меня, что делать-то? :)


    1. sumanai
      29.03.2018 00:49

      Видимо, следовать рекомендациям Майкрософта и установить десяточку. Семёрку они явно не будут нормально поддерживать.


      1. Goodkat
        29.03.2018 08:37

        И купить новый процессор, ага


        1. aikixd
          29.03.2018 10:32

          От Интела уже есть камни без бага?


    1. Galamoon
      29.03.2018 10:16

      По большому счету ничего, «офисным хомячкам» тут никак не помочь. Пользуйтесь своим ноутбуком как и раньше и не забивайте голову глупостями, скоро выпустят патч на патч, просто обновитесь.


      1. sumanai
        29.03.2018 11:12

        ИМХО, офисным хомячкам, не хранящим на ПК кошелёк с 1000 биткоинов, бояться вообще нечего.



  1. Cheater
    28.03.2018 19:57
    +8

    99 little bugs in the code,
    99 little bugs in the code,
    Take one down, patch it around,
    127 little bugs in the code…


    1. MooNDeaR
      29.03.2018 08:56

      Мне одному этот стишок кажется нефига не ритмичным, если цифры в нём читать не на русском? Потому что 127 на англиском вообще никак не влазит в стихотворный размер.


      1. iamoverit
        29.03.2018 10:16
        +2

        'one two seven' в целом довольно сносно звучит


  1. YuriM1983
    29.03.2018 00:34
    -1

    <роскомнадзор/>!
    Перехожу на Ryzen и Ubuntu.


  1. BerliozNSK
    29.03.2018 10:16

    Так можно уже накатывать апдейт от Meltdown на винду?

    P.S. Я работаю в основном с unix, поэтому малость в отрыве от винды


  1. XogN
    29.03.2018 10:54
    +1

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

    Январский KB4056894 вызывал периодические BSOD-ы. Восстановил систему из бекапа, апдейт скрыл.
    Февральский KB4074598 тоже принес несколько неприятных глюков. И снова восстановился из бекапа и скрыл апдейт.
    Мартовский KB4088875 уже даже не пытался ставить — и как выяснилось, не зря.

    Переходить на Windows 10 не хочу. На дух не переношу эту систему со времен её навязывания всеми способами.

    Скорее всего, окончательно уйду на Arch Linux, а для игр есть PlayStation 4.


  1. Ostan
    30.03.2018 17:43

    Вот, как чувствовал, что так будет! И поэтому последние установленные мной обновления были за декабрь 2017. Думаю ещё пол-года можно рабочие сборки винды не обновлять, а там надеюсь и «правильные» патчи появятся.