Патч от 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 56,69
    Информационная безопасность
    Поделиться публикацией
    Комментарии 28
    • +6
      Решето!
    • +10
      Блин, ну давайте хоть ссылку на источник на английском! Хоть маленькую, хоть небольшую, хоть на название чтобы погуглить можно было. Хоть какую-то зацепку.
      Такими новостями надо делиться с коллегами, и не у всех они русскоговорящие.
    • +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 месяца)

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

                          Самое читаемое
                          Интересные публикации