Microsoft совершенствует механизмы безопасности ядра Windows 10

    Известный гуру внутреннего устройства Windows, Alex Ionescu, раскрыл новые особенности ядра Windows 10, которые появились в новом билде Windows 10 Insider Preview 14332. Ранее в нашем блоге мы неоднократно упоминали Insider Preview версии Windows 10, которые используются разработчиками программ и драйверов для тестирования. Появляющиеся в них обновления затем будут выпущены для всех пользователей Windows 10 в качестве одного большого обновления этой ОС.



    На сей раз речь идет об ASLR в режиме ядра (Kernel ASLR), о котором известно не так много, в отличие от его аналога для Ring3 компонентов Windows. До Windows 10 14332 Windows использовала лишь частичную реализацию KASLR только для системных образов (драйверов) и начиная с Windows Vista SP1. Теперь с каждой перезагрузкой Windows будет изменять виртуальные адреса размещения не только драйверов, но и, практически, всех структур ОС и компонентов, работающих в системном виртуальном адресном пространстве.

    Главная цель, которую преследует Windows (как и Apple OS X, iOS, Google Android) при реализации ASLR заключается в перемещении важных структур данных и системных образов в системной части виртуального адресного пространства по новым адресам с каждой перезагрузкой. Кроме этого, структуры данных ядра Windows, которые она, в том или ином виде, может передавать в Ring3, не должны содержать прямых или косвенных указателей на объекты ядра. Это также является требованием к реализации ASLR.


    Рис. По данным Ионеску, для диспетчера виртуальной памяти Windows произойдет ранее невиданное, адреса проецирования каталогов и таблиц страниц будут динамическими. Эксплойты Local Privilege Escalation (LPE), которые опирались на фиксированные адреса в системном виртуальном адресном пространстве перестанут корректно работать. Исключение составят только используемые HAL регионы памяти, а также все еще актуальные указатели в PEB.GdiSharedHandleTable. Данная лазейка все еще может быть использована для частичного обхода KASLR в эксплойтах.

    Начиная с Win10 14332, Windows сможет менять виртуальные адреса базирования таких критичных структур данных диспетчера виртуальной памяти как каталог таблиц страниц (PDE), таблицы страниц (PTE), адреса системных PTE, гиперпространства, базы данных PFN и т. д. В концепциях распределения виртуального адресного пространства ядра Windows всегда подразумевался базовый стартовый адрес начала таблиц страниц и вышеперечисленных структур, адреса были зашиты еще на этапе компиляции ядра и могли различаться только в случае 32-битного или 64-битного виртуального адресного пространства, а также использования PAE-адресации.

    Новая мера Microsoft существенно повысит иммунитет Windows к LPE-эксплойтам, которые опираются на фиксированные виртуальные адреса в виртуальном адресном пространстве ядра. Ранее мы писали про добавленную Microsoft меру по защите от LPE-эксплойтов, которая разрешит приложениям фильтровать доступ к системным сервисам Win32k ( Win32k syscalls filtering), часто используемым эксплойтами при срабатывании уязвимостей в win32k.sys. Обе эти функции станут доступны пользователям Windows 10 в новом большом обновлении ОС.
    ESET NOD32
    107,00
    Компания
    Поделиться публикацией

    Комментарии 16

      +2
      Теперь с каждой перезагрузкой Windows будет изменять виртуальные адреса размещения не только драйверов, но и, практически, всех структур ОС и компонентов, работающих в системном виртуальном адресном пространстве

      Главная цель, которую преследует Windows (как и Apple OS X, iOS, Google Android) при реализации ASLR заключается в перемещении важных структур данных и системных образов в системной части виртуального адресного пространства по новым адресам с каждой перезагрузкой

      Я думаю мысль понятна и с первого раза.
        –7
        Чуствую у многих контор которые пишут специфический секьюрный софт, типа мониторингов, а возможно и антивирусы отвалятся после обновления на данный билд. Или я не прав?
          +3
          Почему они должны отвалиться?
            0
            Индусы, сэр.
              +2
              Не индусами едины :)
          0
          Я так понимаю, что эти случайные адреса будут одинаковыми для всех процессов? Т.е. всё ещё можно будет, например, подцеплять библиотеку из чужого процесса (CreateRemoteThread и LoadLibrary)?
            0
            В общем то да. Но тут надо учитывать, что у приложений тоже может быть включён ASLR, насколько я понимаю он как раз и должен избавлять от части уязвимостей при вызовах указанных функций API.
            +2
            Ещё пожирнеем и потормозим.
            MSVC при включённом ASLR генерирует экзешки процентов на 10 жирнее.
              0
              Пользую EMET на 7 и добавил ff.
              Вопрос: есть ли смысл ставить 10?
                0
                Что вы подразумеваете под ff?
                  0
                  добавленное приложение firefox v 44.0b9
                  0
                  С точки зрения безопасности 10 конечно будет получше 7, но слишком сильно заморачиваться на эту тему не стоит в принципе, лучше акцентируйте внимание на совместимости приложений и куче странностей в поведении ядра, часть из которых тянется ещё с Win 8.

                  Советую сперва потестировать 10 хорошенько на реальном железе, например поставив рядом, ибо меня после 7 просто вымораживают постоянные подвисания новомодной части интерфейса то там то тут особенно это заметно при полностью загруженном процессоре (баг оформлен уже несколько раз). Однако когда это будет исправлено не понятно.
                    0
                    В том то и дело, что интересует именно? безопасности. Я нигде не видел анализ эффективности линуксовых систем контроля доступа на предмет устойчивости к эксплойтам и по куче причин? переход на него «напостоянку» не стоит. Хотя для некоторых задач пользую. Я легкомысленно) не пользуюсь ав т.к. полагаюсь на свою осмотрительность, и (относительную) безопасность постоянно посещаемых сайтов и форумов. Но вот на некоторых специализ блогах и сайтах (тематики seo, трафика или там джумлы) кагбэ слегка очкую), полагая, что если там чо) и подсадят, то не siskikabaeva.exe из-под noscript'a & ublock'a.
                    Вообще, даже одного только анонса билда 14332. достаточно, что б озадачиться его установкой, вопрос в реальной эффективности объявленных механизмов. Я на winaero.com бывает посматриваю инфу о новых билдах, а аспект безопасности там обойден.
                    И вот интересно, тестилась ли эта сборка с новыми механизмами на известных сплойтах?
                      0
                      А что там ещё тестировать именно относительно этого изменения? Ведь если эксплоит полагается на константные адреса то он просто не отработает, а значит функциональность в таких случаях будет работать, если же во вредоносном софте применены какие то механизмы для обхода ASLR (обычно это довольно дорогие для злоумышленника эксплойты для уязвимостей 0 дня), то соответственно и этот механизм обойдут.

                      На счёт безопасности и вирусов: у меня тоже штатно антивируса не установлено в системе, даже «защитник» (антируткит ПО) отключён по тем же причинам. При этом правда есть некоторая отгороженность в виде SRP и EMET в системе, ublock и mywot в браузере (у меня Firefox, у домашних Chrome ибо его через GPO настроить можно в значительной мере), а также домашнего шлюза с KerioControl, в котором антивирусы Sophos и ClamAV проверяют трафик, ах да, поскольку ClamAV уже проверяет сайты по базе Google Safe Browsing, то в браузерах эта фича отключена. Правда на всякий случай я раз в месяц (во время процедуры установки апдейтов) проверяю системы (свою и домашних, у них тоже отгороженность настроена и тоже админ прав нет) с помощью HerdProtect. В общем именно потому и советую протестировать 10 в аспектах удобства, совместимости и прочего ибо в плане безопасности все системы хороши если хоть немного их настроить и если дыры в них латаются (если поддержка не прекращена).

                      На счёт Linux, он не менее и не более безопасен для того кто понимает как оно работает, да и хотя бы просто потому что там слишком многое сделано совсем по другому, но из коробки для простого пользователя он действительно более безопасно сконфигурирован, как минимум если сравнивать отчасти сравнимое, то в Linux эквивалент виндового SRP уже настроен сразу, что отсекает очень многие атаки на браузер, на флешки и т.д. Также там очень удобно сделана возможность запускать приложение под пользователем «никто» (nogroup nobody), в тоже время есть сложности централизованного управления из-за отсутствия GPO, да и антивирусного ПО для Linux (даже для проверки файлопомойки по базам) кот наплакал, а мощных инструментов с облачной защитой и подобной функциональностью по моему так вообще нет. В общем везде в итоге свои заморочки.
                        0
                        На счет тестирования — резонно, я не сомневаюсь в работоспособности, просто примеры и демонстрации оставляют чувство «глубокого удовлетворения», а не просто предвкушения удовольствия)
                        Спасибо за подсказку herd'a, давно уже практиковал периодически сканить машину (уж не помню каким). А сейчас, если вдруг( начинаю параноить, запускаю sfc/scannow, для процессов запускал чо то, уж не помню)
                        Он такой злой): неподписанные adb.exe, installapk.exe, ....kms.exe и пр. даже хромовские js и attsetap ругает) avira даже неподписанные микрософтовские длл -ки нашел)
                        В общем я убедился в правильном, запланированном еще раньше, установом 10. Жаль что старая бучка не подделживает vt-d(
                        А за линуксы… и сейчас стоит деби, но он под рутом, и не по этим делам) и wifislax, но в настройки selinux и прочая втыкаться действительно нет смысла, да и с картинками-баннерами под вином привычней
                        Кстати, вчера на гике было — сайт компании Maisto International подсаживал криптовымогатель.
                          0
                          кстати, уже есть на торренте
                          windows-10-insider-preview-redstone-1-build-100143321000-2016-rus
                          а ms все еще раздает
                          Windows 10 Enterprise, Version 1511, Build 10586 | 64-bit ISO
                          Windows 10 Enterprise, Version 1511, Build 10586 | 32-bit ISO
                          Windows 10 Enterprise LTSB, Build 10240 | 64-bit ISO
                          Windows 10 Enterprise LTSB, Build 10240 | 32-bit ISO

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

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