Речь про тот же Windows 10 Insider Preview Build 14316, который упоминался нами несколько раз в предыдущих постах, посвященных подсистеме Ubuntu Linux. В новом билде Windows 10 изменения не обошли и ядро. Microsoft добавила туда новый объект ядра под названием RegistryTransaction с соответствующими API-функциями работы с ним вроде [NtCommit/NtCreate/NtOpen/NtRollback]RegistryTransaction. Как не трудно догадаться, речь идет об атомарных операциях с данными реестра.
Другим улучшением стало появление долгожданной функции под названием Win32k syscalls filtering на уровне ядра Windows. Так как она все еще находится в предварительной сборке Windows 10, о ней известно не так много. Основное ее предназначение заключается в том, что она позволит полностью закрыть sandbox для процессов соответствующих приложений, типа браузеров и снимет вопрос эксплуатации LPE-уязвимостей в win32k.sys для них. На сегодняшний день такие уязвимости являются основной возможностью получения эксплойтом максимальных прав SYSTEM при проникновении в систему через веб-браузер.
Рис. Общая схема работы Win32k syscalls filtering на примере AppContainer-sandboxed веб-браузера Edge, который сможет полностью закрыть AppContainer от внешнего воздействия.
Стоит отметить, что авторы веб-браузера Google Chrome еще в прошлом году добавили в него функцию, которая защищает sandboxed-процессы (renderer-процессы по терминологии Google) от пагубного воздействия win32k.sys. Так как Chrome делегирует работу с графикой и окнами на основной родительский процесс, дочерние sandboxed-процессы полностью освобождаются от необходимости осуществления GUI-операций, например, прорисовки окон и прочего GUI. Ранее для этого использовалась настройка веб-браузера -enable_win32k_renderer_lockdown.
Полное отключение win32k.sys является достаточной мерой обеспечения безопасности только для такого веб-браузера как Chrome, который имеет четко определенную модель распределения функций между родительским и renderer-процессами (GUI-функции не пересекаются с sandboxed). Microsoft предлагает более гибкий путь, функция Win32k syscalls filtering (PsAttributeWin32kFilter) поможет выборочно фильтровать те функции, которые не нужны процессу, например, Edge, и оставлять только самые необходимые.
Функция Win32k syscalls filtering органично дополняет другую функцию безопасности Windows 10, которая впервые была добавлена Microsoft для защиты от LPE-эксплойтов. Речь идет о функции Block Untrusted Fonts, которая также появилась и в EMET (см. kernel32!SetProcessMitigationPolicy с аргументом ProcessFontDisablePolicy).
Рис. EMET позволяет принудительно включать функцию Block Untrusted Fonts для выбранного процесса, таким образов перекрыв другую поверхность атаки LPE-эксплойтами, которые используют specially crafted файлы шрифтов для эксплуатации уязвимостей в Win32k.sys.
Microsoft известна своим внимательным подходом к функциям защиты от эксплойтов, которые интегрированы в Windows. Там последовательно появлялись DEP, SEHOP, ASLR, IE11-EPM, IE11-64bit_tabs, HEASLR. Бесплатный инструмент EMET позволял принудительно включать такие настройки для процессов. В то же время, только с Windows 10 Microsoft стала предпринимать указанные выше шаги по закрытию уязвимых мест, которые используются LPE-эксплойтами.
Ранее мы писали и про новый веб-браузер Edge в Windows 10, в котором Microsoft отказалась от всех устаревших технологий типа COM или ActiveX, которые использовались для внедрения своего кода в веб-браузер вредоносными программами (то же постигнет и Flash Player). Она также закрыла другие возможные места внедрения (инжекции) вредоносного кода в run-time запущенный процесс, а также использует AppContainer и 64-битные вкладки по умолчанию. Использование функции Win32k syscalls filtering сделает этот веб-браузер еще более безопасным.
Другим улучшением стало появление долгожданной функции под названием Win32k syscalls filtering на уровне ядра Windows. Так как она все еще находится в предварительной сборке Windows 10, о ней известно не так много. Основное ее предназначение заключается в том, что она позволит полностью закрыть sandbox для процессов соответствующих приложений, типа браузеров и снимет вопрос эксплуатации LPE-уязвимостей в win32k.sys для них. На сегодняшний день такие уязвимости являются основной возможностью получения эксплойтом максимальных прав SYSTEM при проникновении в систему через веб-браузер.
Рис. Общая схема работы Win32k syscalls filtering на примере AppContainer-sandboxed веб-браузера Edge, который сможет полностью закрыть AppContainer от внешнего воздействия.
Стоит отметить, что авторы веб-браузера Google Chrome еще в прошлом году добавили в него функцию, которая защищает sandboxed-процессы (renderer-процессы по терминологии Google) от пагубного воздействия win32k.sys. Так как Chrome делегирует работу с графикой и окнами на основной родительский процесс, дочерние sandboxed-процессы полностью освобождаются от необходимости осуществления GUI-операций, например, прорисовки окон и прочего GUI. Ранее для этого использовалась настройка веб-браузера -enable_win32k_renderer_lockdown.
Полное отключение win32k.sys является достаточной мерой обеспечения безопасности только для такого веб-браузера как Chrome, который имеет четко определенную модель распределения функций между родительским и renderer-процессами (GUI-функции не пересекаются с sandboxed). Microsoft предлагает более гибкий путь, функция Win32k syscalls filtering (PsAttributeWin32kFilter) поможет выборочно фильтровать те функции, которые не нужны процессу, например, Edge, и оставлять только самые необходимые.
Функция Win32k syscalls filtering органично дополняет другую функцию безопасности Windows 10, которая впервые была добавлена Microsoft для защиты от LPE-эксплойтов. Речь идет о функции Block Untrusted Fonts, которая также появилась и в EMET (см. kernel32!SetProcessMitigationPolicy с аргументом ProcessFontDisablePolicy).
Рис. EMET позволяет принудительно включать функцию Block Untrusted Fonts для выбранного процесса, таким образов перекрыв другую поверхность атаки LPE-эксплойтами, которые используют specially crafted файлы шрифтов для эксплуатации уязвимостей в Win32k.sys.
Microsoft известна своим внимательным подходом к функциям защиты от эксплойтов, которые интегрированы в Windows. Там последовательно появлялись DEP, SEHOP, ASLR, IE11-EPM, IE11-64bit_tabs, HEASLR. Бесплатный инструмент EMET позволял принудительно включать такие настройки для процессов. В то же время, только с Windows 10 Microsoft стала предпринимать указанные выше шаги по закрытию уязвимых мест, которые используются LPE-эксплойтами.
Ранее мы писали и про новый веб-браузер Edge в Windows 10, в котором Microsoft отказалась от всех устаревших технологий типа COM или ActiveX, которые использовались для внедрения своего кода в веб-браузер вредоносными программами (то же постигнет и Flash Player). Она также закрыла другие возможные места внедрения (инжекции) вредоносного кода в run-time запущенный процесс, а также использует AppContainer и 64-битные вкладки по умолчанию. Использование функции Win32k syscalls filtering сделает этот веб-браузер еще более безопасным.
Комментарии (7)
Frankenstine
14.04.2016 10:28+1Microsoft известна своим внимательным подходом к функциям защиты от эксплойтов, которые интегрированы в Windows.
Построение фразы просто шик. Эксплойты, которые интегрированы в Windows :)
Pasha4ur
14.04.2016 16:24Если вин 10 сама отправляет собранные данные на сервера МС, то получается, что хакерам достаточно просто прослушивать сетевой трафик и расшифровать отправленные данные?
Например, так можно получить пароль от того же облака или почты и вытянуть все через веб-сайты этих же сервисов, не взламывая саму ОС.
dartraiden
15.04.2016 12:23+1Да, достаточно. Точно так же, как для извлечения файлов из RAR-архива, запароленного 100-символьным паролем, можно извлечь файлы. Достаточно подобрать пароль.
Вся сложность, как раз, в «расшифровать отправляемые данные», поскольку они отправляются по https.
denis_g
Кажется, Андройд будет недоволен, что ему нельзя, а эксплойту можно :D
dimka11
Поясните?
denis_g
Просто в интернете (да и на хабре тоже) у некоторых комментаторов порой случается истерика по поводу написания слова "Андроид" как "АндроЙд". Вот тут я сыронизировал по поводу слова "эксплойт", приведенного в статье.