Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компонент PatchGuard




Целостность ядра

 

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

Операционная система Windows построена на гибридном ядре, недостатком которого является то, что все драйвера работают в едином с ядром адресном пространстве на том же самом уровне привилегий, из-за чего драйвера могут вмешиваться в работу ядра, модифицируя его по своему усмотрению. Что создает угрозу безопасности системы. Технологии, направленные на устранение этой уязвимости используются только в 64-разрядной версии ОС Windows.

 

Основная политика PatchGuard — запрет любой модификации ядра. PatchGuard в случайные промежутки времени (раз в 5-10 минут) запускает процедуру проверки целостности ядра. PatchGuard следит за следующими компонентами системы:

· таблица дескрипторов системных сервисов — SSDT (происходит проверка с таблицей, хранящейся в образе NTOSKRNL.EXE). Ее изменение позволяет злоумышленнику подменять адреса сервисных функций;

· таблица глобальных дескрипторов — GDT (считается контрольная сумма по алгоритму CRC). Она используется для описания сегментов памяти, используемых ядром, поэтому ее модификация позволяет изменять память, используемую ядром;

· таблица дескрипторов прерываний — IDT(считается контрольная сумма по алгоритму CRC). Изменение этой таблицы может привести к тому, что злоумышленник сможет перехватывать прерывания и ставить на них свои обработчики;

· образы следующих системных файлов: NTOSKRNL.EXE, NDIS.SYS, HAL.DLL(считается контрольная сумма по алгоритму CRC). Изменение этих компонентов позволяет злоумышленнику изменять функции ядра;

· служебные MSR регистры STAR/LSTAR/CSTAR/SFMASK (значения этих регистров кэшируются). Изменение этих регистров позволяет изменять обработчик системных вызовов.

При попытке изменения этих частей ядра ОС генерирует bug check, появляется т.н. синий экран смерти (Blue Screen of Death) (BSOD) и завершаетcя работа системы. Соответственно, для своей корректной работы приложения и драйверы не должны изменять структуру данных частей ядра. PatchGuard не включается, если к системе подключен отладчик.

Ядро может изменяться официальными патчами от Microsoft.

Несмотря на то, что по заявлениям Microsoft PatchGuard отключить невозможно, существуют несколько способов его обхода.

 

Технология Code Integrity (проверка целостности кода)

Руткиты режима ядра работают на самом низком уровне, поэтому они сложны в обнаружении и представляют серьезную опасность для системы.

Данная технология предоставляет защиту от таких руткитов и небезопасных драйверов. Согласно политике этой технологии, загружающийся в ядро код должен иметь цифровую подпись, полученную от Microsoft, или одного из центров сертификации, признанного им как доверенный.

На выпускающей код стороне, код хэшируется, хэш подписывается закрытым ключом, открытый ключ распространяется с помощью сертификатов, выданных доверенным центром сертификации.

Когда код пытается загрузиться, хэш, предоставленный вместе с кодом, расшифровывается с помощью открытого ключа, хранящегося в сертификате, затем проверяется хэш на совпадение с хэшем, входящим в код. Подлинность сертификата проверяется этим же способом, но с использованием открытого ключа, предоставляемого вместе с ОС Windows. Проверка сертификатов происходит по цепочке, пока издателем сертификата не станет Microsoft Code Verification Root. Этот процесс изображен на рисунке 8.1.

 

Рис. 8.1. Процесс установления подлинности сертификата.

 

С цифровой подписью создать анонимное программное обеспечение сложно, поэтому почти всегда можно найти автора продукта.

Отключить подпись кода можно, выбрав специальный вариант загрузки системы или изменив соответствующим образом базу BCD.

Существует механизм обхода цифровой подписи, связанный с тем, что при нехватке памяти система выгружает драйвера на диск в файл подкачки.

 




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 553; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.