Известный гуру внутреннего устройства 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 в новом большом обновлении ОС.

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


  1. fareloz
    29.04.2016 16:03
    +2

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

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

    Я думаю мысль понятна и с первого раза.


  1. maksqwe
    29.04.2016 18:18
    -7

    Чуствую у многих контор которые пишут специфический секьюрный софт, типа мониторингов, а возможно и антивирусы отвалятся после обновления на данный билд. Или я не прав?


    1. bibliary
      29.04.2016 21:09
      +3

      Почему они должны отвалиться?


      1. VANSCoder
        30.04.2016 22:00

        Индусы, сэр.


        1. bibliary
          01.05.2016 01:03
          +2

          Не индусами едины :)


  1. atomAltera
    30.04.2016 06:25

    Я так понимаю, что эти случайные адреса будут одинаковыми для всех процессов? Т.е. всё ещё можно будет, например, подцеплять библиотеку из чужого процесса (CreateRemoteThread и LoadLibrary)?


    1. IRainman
      02.05.2016 13:18

      В общем то да. Но тут надо учитывать, что у приложений тоже может быть включён ASLR, насколько я понимаю он как раз и должен избавлять от части уязвимостей при вызовах указанных функций API.


  1. Temtaime
    30.04.2016 06:29
    +2

    Ещё пожирнеем и потормозим.
    MSVC при включённом ASLR генерирует экзешки процентов на 10 жирнее.


  1. sweetbrick
    30.04.2016 06:30

    Пользую EMET на 7 и добавил ff.
    Вопрос: есть ли смысл ставить 10?


    1. vasili111
      01.05.2016 17:41

      Что вы подразумеваете под ff?


      1. sweetbrick
        01.05.2016 17:49

        добавленное приложение firefox v 44.0b9


    1. IRainman
      02.05.2016 13:16

      С точки зрения безопасности 10 конечно будет получше 7, но слишком сильно заморачиваться на эту тему не стоит в принципе, лучше акцентируйте внимание на совместимости приложений и куче странностей в поведении ядра, часть из которых тянется ещё с Win 8.

      Советую сперва потестировать 10 хорошенько на реальном железе, например поставив рядом, ибо меня после 7 просто вымораживают постоянные подвисания новомодной части интерфейса то там то тут особенно это заметно при полностью загруженном процессоре (баг оформлен уже несколько раз). Однако когда это будет исправлено не понятно.


      1. sweetbrick
        02.05.2016 16:12

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


        1. IRainman
          03.05.2016 11:39

          А что там ещё тестировать именно относительно этого изменения? Ведь если эксплоит полагается на константные адреса то он просто не отработает, а значит функциональность в таких случаях будет работать, если же во вредоносном софте применены какие то механизмы для обхода 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 (даже для проверки файлопомойки по базам) кот наплакал, а мощных инструментов с облачной защитой и подобной функциональностью по моему так вообще нет. В общем везде в итоге свои заморочки.


          1. sweetbrick
            03.05.2016 16:28

            На счет тестирования — резонно, я не сомневаюсь в работоспособности, просто примеры и демонстрации оставляют чувство «глубокого удовлетворения», а не просто предвкушения удовольствия)
            Спасибо за подсказку herd'a, давно уже практиковал периодически сканить машину (уж не помню каким). А сейчас, если вдруг( начинаю параноить, запускаю sfc/scannow, для процессов запускал чо то, уж не помню)
            Он такой злой): неподписанные adb.exe, installapk.exe, ....kms.exe и пр. даже хромовские js и attsetap ругает) avira даже неподписанные микрософтовские длл -ки нашел)
            В общем я убедился в правильном, запланированном еще раньше, установом 10. Жаль что старая бучка не подделживает vt-d(
            А за линуксы… и сейчас стоит деби, но он под рутом, и не по этим делам) и wifislax, но в настройки selinux и прочая втыкаться действительно нет смысла, да и с картинками-баннерами под вином привычней
            Кстати, вчера на гике было — сайт компании Maisto International подсаживал криптовымогатель.


          1. sweetbrick
            03.05.2016 19:05

            кстати, уже есть на торренте
            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