Патч от Meltdown привел к более критичной уязвимости Windows 7x64/2008R2


     
    Патч, закрывающий уязвимость 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 эксплоит для проверки уязвимости.

    Pentestit

    87,43

    Информационная безопасность

    Поделиться публикацией
    Комментарии 28
      +6
      Решето!
        +1
        Решето в решете!
        +10
        Блин, ну давайте хоть ссылку на источник на английском! Хоть маленькую, хоть небольшую, хоть на название чтобы погуглить можно было. Хоть какую-то зацепку.
        Такими новостями надо делиться с коллегами, и не у всех они русскоговорящие.
            +2
            Ссылки на обсуждение: раз, два.
              +8
              Хоть маленькую, хоть небольшую, хоть на название чтобы погуглить можно было. Хоть какую-то зацепку.
              Однако. 0xFFFFF6FB7DBED000 прекрасно гуглится…
              +7
              либо если на них установлен кумулятивный патч 2018-03

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

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

                      0

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

                    +1
                    По большому счету ничего, «офисным хомячкам» тут никак не помочь. Пользуйтесь своим ноутбуком как и раньше и не забивайте голову глупостями, скоро выпустят патч на патч, просто обновитесь.
                      +1
                      ИМХО, офисным хомячкам, не хранящим на ПК кошелёк с 1000 биткоинов, бояться вообще нечего.
                      +14
                      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
                        Мне одному этот стишок кажется нефига не ритмичным, если цифры в нём читать не на русском? Потому что 127 на англиском вообще никак не влазит в стихотворный размер.
                          +2
                          'one two seven' в целом довольно сносно звучит
                        –5
                        <роскомнадзор/>!
                        Перехожу на Ryzen и Ubuntu.
                          0
                          Так можно уже накатывать апдейт от Meltdown на винду?

                          P.S. Я работаю в основном с unix, поэтому малость в отрыве от винды
                            +2
                            Обновления для Windows 7 последнее время вызывают больше проблем чем пользы.

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

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

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

                              Можно пользоваться решетом, не покидая Arch, если использовать VGA passthrough в Qemu, но придётся держать два видеоадаптера в системе — один для Arch (можно встроенный), другой — для Windows. Захотели поиграть — запустили виртуалку. Потери производительности несущественные благодаря аппаратной виртуализации.

                                +1
                                Жаль, не всё железо это поддерживает. Мой i7-3770K из-за буковки K не умеет в проброс устройств, да и видеокарту там нужно подбирать.
                              +1
                              Вот, как чувствовал, что так будет! И поэтому последние установленные мной обновления были за декабрь 2017. Думаю ещё пол-года можно рабочие сборки винды не обновлять, а там надеюсь и «правильные» патчи появятся.
                                0
                                Хм… Вот интересно, по ссылке «PoC эксплоит для проверки уязвимости», написано что код для Cygwin. Но в коде просто указатель по конкретному адресу. Интересно, оно для других компиляторов работать аналогично будет в случае наличия уязвимости?

                                Компилил 2007-м C++ Builder'ом, при запуске вылетает с ошибкой.
                                  0
                                  А у меня винда обновляться отказывается. Говорит — несовместимое оборудование, юзайте Windows 10 с таким то процессором…
                                  0
                                  Господи! Как же я вовремя перешёл на LinuxMint! (4 месяца)

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

                                  Самое читаемое