Безопасность в системе Windows Vista. Основные службы и механизмы безопасности
Множество современных процессоров поддерживают ту или иную форму NX, и Microsoft, в свою очередь, начиная с Windows XP SP2, включила поддержку процессоров с NX-технологией посредством инструмента Data Execution Prevention. Windows Vista обеспечивает дополнительную поддержку NX, позволяя производителям ПО встраивать защиту NX в свои программные продукты. Независимые продавцы ПО могут помечать св
ои продукты как NX-совместимые, что позволит повысить безопасность при загрузке программы. Данный подход позволяет значительно увеличить количество программных продуктов, поддерживающих защиту NX. Особенно это актуально для 32-битных платформ, поскольку в них стандартная политика совместимости для NX сконфигурирована только для защиты компонентов ОС. На 64-битных версиях Windows защита NX – стандарт.
Случайное расположение адресного пространства
(Address Space Layout Randomization (ASLR)) – это еще один вид защиты в ОС Windows Vista, который затрудняет использование системных функций вредоносным ПО. Каждый раз, когда компьютер перезагружается, ASLR в случайном порядке назначает 1 из 256 возможных вариантов адреса для расположения ключевых системных DLL и EXE файлов. Это осложняет эксплоиту задачу поиска нужных файлов, а, следовательно, противодействует выполнению его функций. ASLR лучше использовать в связке с Data Execution Prevention, потому что в некоторых случаях компонент Data Execution Prevention можно обойти путем построения эксплоита, который сам по себе не выполняется (он вызывает системные функции для атаки).
Windows Vista также содержит в себе ряд улучшений по сравнению с Windows XP SP2, связанный с определением переполнения «кучи» (области памяти, выделяемой программе для динамически размещаемых структур данных). При вмешательстве в буфер «кучи» к ОС поступает сигнал, и она, в свою очередь, может немедленно завершить скомпрометированную программу, тем самым сократив ущерб от вмешательства. Эта технология используется для защиты компонентов ОС, включая встроенные системные службы, хотя может использоваться и сторонними производителями ПО через специальный одиночный API-вызов.
Защита ядра для x64
64-битные версии Windows Vista поддерживают технологию защиты ядра (иногда используется термин PatchGuard), которая запрещает неавторизованному ПО изменять ядро Windows.
Для того чтобы разобраться в сути данной технологии, необходимо понять, что означает термин kernel patching (изменение ядра).
Kernel patching – это техника, использующая внутренние системные вызовы, а также различные неподдерживаемые ОС механизмы, с целью изменения или замены кода, а, возможно, и критических структур данных ядра Windows на другой «неизвестный» код или данные, которые могут быть и вредоносными. Под понятием «неизвестный» имеется в виду код, не авторизованный Microsoft как часть ядра Windows.
Производители ПО иногда патчат ядро для своих целей, изменяя адрес функции-обработчика системного вызова (указатель функции) в таблице системных вызовов (system service table, SST), которая представляет собой массив из указателей функций, находящихся в памяти. Такая процедура изменения адреса называется хуком (hook). Когда выполняется любой системный вызов (например, NtCreateProcess), диспетчер системных вызовов по номеру вызова восстанавливает адрес функции-обработчика данного системного вызова. Соответственно, если поменять адрес функции-обработчика, на адрес начала «неизвестного» кода, диспетчер системных вызовов перейдет по этому адресу, и «неизвестный» код будет исполнен. Именно по этой причине модификация ядра запрещена в 64-битных версиях Windows Vista. Конкретнее запрещена модификация следующих компонентов ядра:
– Таблицы системных вызовов (system service tables, SST)
– Таблица прерываний (interrupt descriptor table (IDT))
– Таблица глобальных дескрипторов (global descriptor table (GDT))
– Изменение любой части ядра (работает только на AMD64-системах)
При попытке изменения вышеописанных частей ядра операционная система генерирует bug check и завершает свою работу. Соответственно, для своей корректной работы приложения и драйверы не должны изменять структуру данных частей ядра. Со временем, список защищаемых компонентов ядра может быть увеличен.
По заявлениям Microsoft, систему защиты ядра отключить нельзя. Защита ядра автоматически отключается лишь в случае работы в системе отладчика ядра. Ядро может изменяться и официальными патчами от Microsoft.
Подписывание драйверов для x64
Для того чтобы пользователи могли видеть поставщиков драйверов и других программных продуктов, начиная с Windows 2000, в ОС присутствует механизм проверки цифровой подписи драйверов. Хотя раньше и была возможность запретить установку неподписанных драйверов, в конфигурации по умолчанию пользователь лишь предупреждался о том, что собирается устанавливать неподписанный драйвер. Системные администраторы, однако, могли заблокировать установку неподписанных драйверов посредством Групповой политики (Group Policy), но, поскольку, количество нужных неподписанных драйверов было достаточно велико, администраторы не пользовались этой возможностью. Вредоносное программное обеспечение обычно устанавливается скрытно от пользователя, и, поскольку никаких проверок изменения ядра до появления Windows Vista не было, вредоносное ПО успешно устанавливалось (имеется в виду, что установка производилась от имени пользователя с административными привилегиями).
При установке Windows Vista на 64-битные системы их безопасность на уровне ядра значительно возрастает в случае, если все драйверы режима ядра (kernel mode) имеют цифровую подпись. Цифровая подпись обеспечивает подлинность и целостность кода. Поврежденный модуль ядра не загрузится. Любой драйвер, не имеющей соответствующей цифровой подписи не получит доступа к ядру и не загрузится.
Хотя подписанный драйвер и не является гарантией безопасности, все равно он помогает определить и предотвратить множество злонамеренных атак, в тоже время позволяя Microsoft помочь разработчикам улучшить общее качество драйверов и сократить число сбоев по вине последних.
Обязательное подписывание драйверов также помогает повысить надежность Windows Vista, потому что большинство сбоев ОС – уязвимости в драйверах режима ядра. Принуждая авторов этих драйверов идентифицировать себя, Microsoft облегчает себе задачу определения причин сбоя ОС и позволяет работать с производителями с целью разрешения возникших проблем. На основе вышеизложенного, можно сделать такой вывод: неподписанные драйверы на Windows Vista установить не удастся.
WindowsServiceHardening
Системные службы это фоновые процессы, которые загружаются для поддержки ключевых функций ОС. Они всегда были целью злонамеренных атак, потому что обычно загружаются с самыми высокими привилегиями в системе, то есть под учетной записью LocalSystem. Атаки, направленные на системные службы могут вызвать серьезные проблемы, поскольку позволяют исполнять произвольный код с административными полномочиями на машинах пользователей (черви Slammer, Blaster и Sasser атаковали именно системные службы).
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности