Аналіз захищеності технології INTEL SMEP на базі Windows 8

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Курсач_БИКС Ващук В.О..docx

— 542.72 Кб (Скачать файл)

НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ

ІНСТИТУТ  ІНФОРМАЦІЙНО-ДІАГНОСТИЧНИХ СИСТЕМ

КАФЕДРА КОМП’ЮТЕРИЗОВАНИХ  СИСТЕМ ЗАХИСТУ ІНФОРМАЦІЇ

 

 

 

 

 

 

 

 

 

 

КУРСОВА РОБОТА

 

 

 

з дисципліні: “ Безпека інформаційних та комунікаційних систем ”

на тему: “ Аналіз захищеності технології 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-бітні і не була реалізована сторінкова організація пам'яті. Використовується в процесорах інших виробників. Цей режим дозволив створити багатозадачні операційні системи, такі як Microsoft Windows, Unix тощо.

Лінійна адресація пам'яті - схема адресації пам'яті комп'ютера в захищеному режимі (починаючи з Intel 80386 і інших сумісних x86-процесорах). Використовується більшістю сучасних багатозадачних ОС.

Завдяки механізму лінійної адресації можна  створювати будь-яке (обмежене тільки розмірами оперативної пам'яті) кількість  незалежних віртуальних адресних просторів. Причому кожна сторінка лінійного  адресного простору може знаходитися  по будь-якій фізичній адресою або  навіть бути вивантажені на діск.Лінейная адресація пам'яті - схема адресації  пам'яті комп'ютера в захищеному режимі (починаючи з 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-mapped files), вони можуть вилучатися. При запиті такої сторінки вона може бути прочитана з оригінального файлу.

Коли додаток звернеться до відкачаної сторінки, відбудеться виняткова ситуація PageFault. Оброблювач цієї події повинен перевірити, чи була раніше відновлено запитана сторінка, і, якщо вона є в свопі, завантажити її назад в пам'ять.

 

 

 

КІЛЬЦЯ ЗАХИСТУ

Кільця захисту -- архітектура інформаційної  безпеки та функціональної відмовостійкості, що реалізує апаратнsq поділ системного й користувацького рівнів привілеїв. Структуру привілеїв можна зобразити у вигляді кількох концентричних кіл. У цьому випадку системний режим (режим супервізора або нульове кільце, так зване «кільце 0»), що забезпечує максимальний доступ до ресурсів, є внутрішнім колом, тоді як режим користувача з обмеженим доступом - зовнішнім. Традиційно сімейство мікропроцесорів x86 забезпечує чотири кільця захисту.

  1. Режим супервізора
  2. Режим гіпервізора
  3. Режим системного управління
  4. Режим користувача

Архітектурі кілець захисту зазвичай протиставляють системи, засновані на мандатній адресації, що забезпечує доступ до об'єкта за його опису (англ. Capability-based security).

 

 

РЕЖИМ РОБОТИ CPU – SUPERVISOR

В даному режимі процесор обслуговує всі переривання, немасковані переривання і виключення в режимі супервізора.

Режимі  супервізора має повний необмежений  доступ до всіх ресурсів системи процесора, включаючи ресурси емуляції, за умови, що не використовується CPLB, конфігурований відповідним чином. Тільки в режимі супервізора можливе використання альтернативного імені регістра USP, що визначає положення в пам'яті Покажчика Користувацького Стека. Використання цього альтернативного імені необхідно, так як в режимі супервізора по імені SP виконується звернення до покажчика стека ядра операційної системи, а не до покажчика користувальницького стека.

Нормальна робота процесора починається при  переході зі стану Reset в режимі супервізора по зняттю активного рівня сигналу RESET. Процесор знаходиться в режимі супервізора до тих пір, поки емуляція або виклик команди повернення не змінять режим роботи. Перед викликом команди повернення в регістр RETI необхідно завантажити достовірний адрес повернення.

Цей режим по функціональності відповідає 0-му кільцю захисту (Ring 0) в x86 процесорах, тобто надає необмежений доступ до всіх можливостей процесора, роботі з периферією і так далі. Код, що працює в даному режимі, як правило, займається управлінням доступними апаратними ресурсами, поділом їх використання між окремими завданнями (процесами) і так далі, що і призвело до такої  назви режиму.

Деякі фірми-розробники і виробники процесорів, наприклад ARM, не використовують класифікацію режимів роботи процесора у вигляді  кілець захисту. Тим не менш, у більшості  сучасних процесорів (крім найпростіших) як правило присутні декілька режимів  роботи відрізняються один від одного доступними в даному режимі привілеями.

У багатьох типах процесорів це найбільш привілейований режим з усіх доступних  режимів.

Відомо  одне виключення з даного правила: у  деяких сучасних процесорів може бути присутнім ще більш привілейований режим гіпервізора, як правило, використовуваний з метою віртуалізації тобто  забезпечення паралельної роботи відразу  декількох операційних систем на одному процесорі. У цьому випадку  налаштування, зроблені з режиму гіпервізора можуть вносити деякі обмеження на прямий доступ до системних ресурсів і периферії з режиму супервізора з метою надати гіпервізора можливість арбітражу і розмежування доступу до системних ресурсів і периферії непомітно для працюючих паралельно операційних систем.

Як  правило при використанні даного режиму повний доступ до всіх ресурсів можливий саме з режиму гіпервізора. У такому випадку режим супервізора  вже не є максимально привілейованим і обмежує багато привілейовані  операції. При виконанні привілейованих операцій операційними системами в  режимі супервізора управління передається  спеціальній програмі - гіпервізора. Гіпервізор здійснює арбітраж використання наявних апаратних ресурсів декількома операційними системами аналогічно тому як самі операційні системи здійснюють розподіл ресурсів між кількома завданнями. По суті, гіпервізор зазвичай є невеликим  ядром, яке управляє розподілом ресурсів між декількома операційними системами  і працює рівнем нижче, ніж самі операційні системи. В силу цього в термінології x86 даний режим як правило називають кільцем -1 (Ring -1). 

INTEL SMEP -- SUPERVISOR MODE EXECUTION PREVENTION

З приходом нового покоління процесорів Intel на базі архітектури Ivy Bridge було представлено новий засіб безпеки. Воно називається Intel SMEP, що розшифровується як "Supervisor Mode Execution Prevention" - запобігання виконання коду в режимі супервізора. Технологія полягає в запобіганні виконання коду, розташованого на користувацької сторінці, при поточному рівні привілеїв рівному 0. З точки зору атакуючого, даний засіб значно ускладнює експлуатацію вразливостей режиму ядра, тому як в даних умовах відсутнє місце для зберігання шелл-коду. Зазвичай при експлуатації уразливості режиму ядра атакуючий виділяє буфер з шелл-кодом в режимі користувача і потім активує уразливість, отримуючи контроль над виконанням коду і перевизначаючи точку виконання на вміст підготовленого буфера. Таким чином, якщо атакуючий не може виконати свій шелл-код, вся атака безглузда. Звичайно, існують різні техніки, такі як зворотно-орієнтоване програмування (ROP) для експлуатації вразливостей з корисним навантаженням. Однак бувають і такі випадки, коли середа виконання дозволяє обходити обмеження безпеки при некоректній конфігурації. Розглянемо докладніше технологію Intel SMEP, а також її програмну підтримку, заявлену в ОС Windows 8.


 

АПАРАТНА СКЛАДОВА ТЕХНОЛОГІЇ INTEL SMEP

Даний розділ включає в себе огляд технології 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, програмне забезпечення працює в режимі супервізора не може отримати інструкції від лінійної адресації, яка доступна в режимі користувача.

Перелік особливостей свопінгу в CPUID

SMEP: в режимі супервізора запобігання  виконання.

Якщо CPUID (EAX = 07h, ECX = 0H). EBX.SMEP [біт 7] = 1, CR4.SMEP може бути встановлений в 1, що дозволяє в режимі супервізора запобіганню виконання.

Информация о работе Аналіз захищеності технології INTEL SMEP на базі Windows 8