Автор работы: Пользователь скрыл имя, 02 Марта 2013 в 21:58, курсовая работа
Захищений режим (режим захищеного віртуального адресу) — режим роботи процесора. Розроблений фірмою Digital Equipment (DEC) для 32-розрядних комп'ютерів VAX-11, а також фірмою Intel для своїх процесорів, починаючи з 32-розрядних процесорів 80386. Хоча захищений режим частково було реалізовано вже у процесорі 80286, але там істотно відрізнявся спосіб роботи з пам'яттю, бо процесори ще були 16-бітні і не була реалізована сторінкова організація пам'яті. Використовується в процесорах інших виробників. Цей режим дозволив створити багатозадачні операційні системи, такі як Microsoft Windows, Unix тощо.
ТЕРМІНИ ТА ВИЗНАЧЕННЯ 3
КІЛЬЦЯ ЗАХИСТУ 5
РЕЖИМ РОБОТИ CPU – SUPERVISOR 7
INTEL SMEP -- SUPERVISOR MODE EXECUTION PREVENTION 9
АПАРАТНА СКЛАДОВА ТЕХНОЛОГІЇ INTEL SMEP 10
Контролюючі регістри 10
Режим вибору сторінок 11
Свопінг модифікатори 11
Перелік особливостей свопінгу в CPUID 12
Обробка винятків та переривань 12
ПРОГРАМНА ПІДТРИМКА ТЕХНОЛОГІЇ SMEP 13
СПОСОБИ ОБХОДУ SMEP НА ОС WINDOWS І ПРОТИДІЯ ЙОМУ 14
Недолік конфігурації 14
Практична реалізація 16
х64 17
Інші напрямки атак для обходу SMEP 18
ВИСНОВОК 19
ВИКОРИСТАНА ЛІТАРЕТУРА ТА РЕСУРСИ 20
НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ
ІНСТИТУТ
ІНФОРМАЦІЙНО-ДІАГНОСТИЧНИХ
КАФЕДРА КОМП’ЮТЕРИЗОВАНИХ СИСТЕМ ЗАХИСТУ ІНФОРМАЦІЇ
КУРСОВА РОБОТА
з дисципліні: “ Безпека інформаційних та комунікаційних систем ”
на тему: “ Аналіз захищеності технології INTEL SMEP
на базі OS Windows 8”
Виконав студент 442 групи, ІІДС
Ващук Володимир Олександрович
Прийняв:
Павлов Валерій Георгійович
Київ 2012
ЗМІСТ
ТЕРМІНИ ТА ВИЗНАЧЕННЯ 3
КІЛЬЦЯ ЗАХИСТУ 5
РЕЖИМ РОБОТИ CPU – SUPERVISOR 7
INTEL SMEP -- SUPERVISOR MODE EXECUTION PREVENTION 9
АПАРАТНА СКЛАДОВА ТЕХНОЛОГІЇ INTEL SMEP 10
Контролюючі регістри 10
Режим вибору сторінок 11
Свопінг модифікатори 11
Перелік особливостей свопінгу в CPUID 12
Обробка винятків та переривань 12
ПРОГРАМНА ПІДТРИМКА ТЕХНОЛОГІЇ SMEP 13
СПОСОБИ ОБХОДУ SMEP НА ОС WINDOWS І ПРОТИДІЯ ЙОМУ 14
Недолік конфігурації 14
Практична реалізація 16
х64 17
Інші напрямки атак для обходу SMEP 18
ВИСНОВОК 19
ВИКОРИСТАНА ЛІТАРЕТУРА ТА РЕСУРСИ 20
Режим супервізора -- привілейований режим роботи процесора, як правило використовується для виконання ядра операційної системи.
Захищений
режим (режим захищеного віртуального
адресу) — режим роботи процесора. Розроблений фірмою Digital Equipment (DEC) для 32-розрядних
комп'ютерів VAX-11, а також фірмою Intel для своїх процесорів, починаючи
з 32-розрядних процесорів 80386. Хоча захищений
режим частково було реалізовано вже у
процесорі 80286, але там істотно відрізнявся
спосіб роботи з пам'яттю, бо процесори
ще були 16-бітні і не була реалізована
сторінкова організація пам'яті. Використовується
в процесорах інших виробників. Цей режим
дозволив створити багатозадачні операці
Лінійна адресація пам'яті - схема адресації пам'яті комп'ютера в захищеному режимі (починаючи з Intel 80386 і інших сумісних x86-процесорах). Використовується більшістю сучасних багатозадачних ОС.
Завдяки
механізму лінійної адресації можна
створювати будь-яке (обмежене тільки
розмірами оперативної пам'яті) кількість
незалежних віртуальних адресних просторів.
Причому кожна сторінка лінійного
адресного простору може знаходитися
по будь-якій фізичній адресою або
навіть бути вивантажені на діск.Лінейная
адресація пам'яті - схема адресації
пам'яті комп'ютера в
Завдяки механізму лінійної адресації можна створювати будь-яке (обмежене тільки розмірами оперативної пам'яті) кількість незалежних віртуальних адресних просторів. Причому кожна сторінка лінійного адресного простору може знаходитися по будь-якій фізичній адресою або навіть бути вивантажені на диск.
Кільця захисту -- архітектура інформаційної безпеки та функціональної відмовостійкості, що реалізує апаратнsq поділ системного й користувацького рівнів привілеїв.
CPUID (CPU Identification) - асемблерна мнемоніка інструкції процесорів x86, використовується для отримання інформації про процесор. Використовуючи її, програма може визначити тип ЦП і його можливості (наприклад, можна визначити, які розширення підтримуються процесором).
Інструкція CPUID вперше з'явилася в процесорах i486. Потім вона почала підтримуватися всіма процесорами починаючи з Intel 486DX/SX/DX2 SL, AMD 486DX4, Cyrix 6x86 (M1), UMC U5S.
Intel SMEP -- режим захисту в режимі супервізора.
Шелл-код (англ. shellcode, код запуску оболонки) - це двійковий виконуваний код, який зазвичай передає управління командному процесору, наприклад '/ bin / sh' в Unix shell, command.com в MS-DOS і cmd.exe в операційних системах Microsoft Windows. Шелл-код може бути використаний як корисне навантаження експлойта, що забезпечує зломщикові доступ до командної оболонки (англ. shell) в комп'ютерній системі.
При експлуатації віддаленої уразливості шелл-код може відкривати заздалегідь заданий порт TCP уразливого комп'ютера, через який буде здійснюватися подальший доступ до командної оболонки, такий код називається прив'язуючий до порту (англ. port binding shellcode). Якщо шелл-код здійснює підключення до порту комп'ютера атакуючого, що проводиться з метою обходу брандмауера або NAT, то такий код називається зворотної оболонки (англ. reverse shell shellcode).
Сво́пінг (від англ. swap), або підкачка сторінок (англ. paging) — один з механізмів віртуальної пам'яті, при якому окремі фрагменти пам'яті (зазвичай неактивні) переміщуються з ОЗП на жорсткий диск, звільняючи ОЗП для завантаження інших фрагментів пам'яті. Такими фрагментами в сучасних ЕОМ є сторінки пам'яті.
Тимчасово вивантажені з пам'яті
сторінки можуть зберігатися на зовнішніх
запам'ятовуючих пристроях як у файлі,
так і в спеціальному розділі на жорсткому
диску (англ.partition), звані відповідно swap-файл і
swap-розділ. У разі відкачування сторінок,
що відповідають вмісту будь-якого файлу
(наприклад, англ. memory-
Коли додаток звернеться до відкачаної сторінки, відбудеться виняткова ситуація PageFault. Оброблювач цієї події повинен перевірити, чи була раніше відновлено запитана сторінка, і, якщо вона є в свопі, завантажити її назад в пам'ять.
Кільця захисту -- архітектура інформаційної безпеки та функціональної відмовостійкості, що реалізує апаратнsq поділ системного й користувацького рівнів привілеїв. Структуру привілеїв можна зобразити у вигляді кількох концентричних кіл. У цьому випадку системний режим (режим супервізора або нульове кільце, так зване «кільце 0»), що забезпечує максимальний доступ до ресурсів, є внутрішнім колом, тоді як режим користувача з обмеженим доступом - зовнішнім. Традиційно сімейство мікропроцесорів x86 забезпечує чотири кільця захисту.
Архітектурі кілець захисту зазвичай протиставляють системи, засновані на мандатній адресації, що забезпечує доступ до об'єкта за його опису (англ. Capability-based security).
В даному режимі процесор обслуговує всі переривання, немасковані переривання і виключення в режимі супервізора.
Режимі супервізора має повний необмежений доступ до всіх ресурсів системи процесора, включаючи ресурси емуляції, за умови, що не використовується CPLB, конфігурований відповідним чином. Тільки в режимі супервізора можливе використання альтернативного імені регістра USP, що визначає положення в пам'яті Покажчика Користувацького Стека. Використання цього альтернативного імені необхідно, так як в режимі супервізора по імені SP виконується звернення до покажчика стека ядра операційної системи, а не до покажчика користувальницького стека.
Нормальна робота процесора починається при переході зі стану Reset в режимі супервізора по зняттю активного рівня сигналу RESET. Процесор знаходиться в режимі супервізора до тих пір, поки емуляція або виклик команди повернення не змінять режим роботи. Перед викликом команди повернення в регістр RETI необхідно завантажити достовірний адрес повернення.
Цей режим по функціональності відповідає 0-му кільцю захисту (Ring 0) в x86 процесорах, тобто надає необмежений доступ до всіх можливостей процесора, роботі з периферією і так далі. Код, що працює в даному режимі, як правило, займається управлінням доступними апаратними ресурсами, поділом їх використання між окремими завданнями (процесами) і так далі, що і призвело до такої назви режиму.
Деякі фірми-розробники і виробники процесорів, наприклад ARM, не використовують класифікацію режимів роботи процесора у вигляді кілець захисту. Тим не менш, у більшості сучасних процесорів (крім найпростіших) як правило присутні декілька режимів роботи відрізняються один від одного доступними в даному режимі привілеями.
У багатьох типах процесорів це найбільш привілейований режим з усіх доступних режимів.
Відомо одне виключення з даного правила: у деяких сучасних процесорів може бути присутнім ще більш привілейований режим гіпервізора, як правило, використовуваний з метою віртуалізації тобто забезпечення паралельної роботи відразу декількох операційних систем на одному процесорі. У цьому випадку налаштування, зроблені з режиму гіпервізора можуть вносити деякі обмеження на прямий доступ до системних ресурсів і периферії з режиму супервізора з метою надати гіпервізора можливість арбітражу і розмежування доступу до системних ресурсів і периферії непомітно для працюючих паралельно операційних систем.
Як
правило при використанні даного
режиму повний доступ до всіх ресурсів
можливий саме з режиму гіпервізора.
У такому випадку режим супервізора
вже не є максимально привілейованим
і обмежує багато привілейовані
операції. При виконанні привілейованих
операцій операційними системами в
режимі супервізора управління передається
спеціальній програмі - гіпервізора.
Гіпервізор здійснює арбітраж використання
наявних апаратних ресурсів декількома
операційними системами аналогічно
тому як самі операційні системи здійснюють
розподіл ресурсів між кількома завданнями.
По суті, гіпервізор зазвичай є невеликим
ядром, яке управляє розподілом ресурсів
між декількома операційними системами
і працює рівнем нижче, ніж самі операційні
системи. В силу цього в термінології x86
даний режим як правило називають кільцем
-1 (Ring -1).
З приходом нового покоління процесорів Intel на базі архітектури Ivy Bridge було представлено новий засіб безпеки. Воно називається Intel SMEP, що розшифровується як "Supervisor Mode Execution Prevention" - запобігання виконання коду в режимі супервізора. Технологія полягає в запобіганні виконання коду, розташованого на користувацької сторінці, при поточному рівні привілеїв рівному 0. З точки зору атакуючого, даний засіб значно ускладнює експлуатацію вразливостей режиму ядра, тому як в даних умовах відсутнє місце для зберігання шелл-коду. Зазвичай при експлуатації уразливості режиму ядра атакуючий виділяє буфер з шелл-кодом в режимі користувача і потім активує уразливість, отримуючи контроль над виконанням коду і перевизначаючи точку виконання на вміст підготовленого буфера. Таким чином, якщо атакуючий не може виконати свій шелл-код, вся атака безглузда. Звичайно, існують різні техніки, такі як зворотно-орієнтоване програмування (ROP) для експлуатації вразливостей з корисним навантаженням. Однак бувають і такі випадки, коли середа виконання дозволяє обходити обмеження безпеки при некоректній конфігурації. Розглянемо докладніше технологію Intel SMEP, а також її програмну підтримку, заявлену в ОС Windows 8.
Даний розділ включає в себе огляд технології Intel SMEP на основі документації Intel. SMEP є частиною механізму захисту сторінок пам'яті. Насправді вона використовує вже існуючий прапор в записі таблиці сторінок - прапор U / S (прапор User / Supervisor, 2-й біт). Цей прапор указує на те, є дана сторінка сторінкою користувацького режиму або режиму ядра. Власник сторінки визначає наявність доступу до даної сторінки пам'яті, тобто, якщо сторінка належить ядру операційної системи, яка виконує код в привілейованому режимі, доступ до неї з користувальницького додатка неможливий. SMEP включається і вимикається за допомогою керуючого регістру CR4 (20-й біт). Установка даного біта змінює вплив прапора U / S на доступ до сторінок пам'яті. При спробі виконання коду, розташованого на користувацької сторінці, в привілейованому режимі апаратно генерується помилка сторінки (page fault) в результаті порушення прав доступу (права доступу описані в главі 4.6 томи 3 [1]). Як видно, SMEP генерує не виняток загального порушення захисту (# GP), але помилку сторінки (# PF). Таким чином, ОС повинна обробити порушення механізму SMEP в обробнику помилок сторінок. Ця деталь нам знадобиться надалі при аналізі програмної підтримки механізму SMEP.
Контролюючі регістри
WP захист від запису (біт 16 з CR0) - Коли встановленій, пригнічує процедуру Супервізора від написання на сторінках читання, коли пустий, дозволяє процедурі Супервізор запис в доступні тільки для читання сторінки (незалежно від того, біту U / S налаштування). Цей прапор сприяє здійсненню методу copy-onwrite, створення нового процесу (розгалуження), використовуючи операційні системи, таких як UNIX.
Включення і зміна режиму підкачки сторінок
CR0.WP дозволяє сторінкам бути захищеними від запису в режимі supervisor. Якщо CR0.WP = 0, в режимі супервізора доступ дозволяється лінійній адресації тільки для читання прав доступу, якщо CR0.WP = 1, їх немає. (У режимі користувача доступ для запису не надається лінійна адресація, тільки для читання прав доступу, незалежно від значення CR0.WP.).
CR4.SMEP дозволяє сторінкам бути захищеними від отримання інструкцій в режимі supervisor. Якщо CR4.SMEP = 1, програмне забезпечення працює в режимі супервізора не може отримати інструкції від лінійної адресації, яка доступна в режимі користувача.
SMEP:
в режимі супервізора
Якщо CPUID (EAX
= 07h, ECX = 0H). EBX.SMEP [біт 7] = 1, CR4.SMEP може бути
встановлений в 1, що дозволяє в режимі
супервізора запобіганню
Информация о работе Аналіз захищеності технології INTEL SMEP на базі Windows 8