Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Безпека.docx
Скачиваний:
130
Добавлен:
31.08.2019
Размер:
6.2 Mб
Скачать

10.6.3. Привілейовані команди

Процесори х86 надають право на виконання деяких команд лише програмам, що мають визначений рівень привілеїв CPL. Такі команди називають привілейова­ними. Цей механізм дає змогу реалізувати захист структур операційної системи від дій процесів користувача.

До команд, які можуть виконуватися лише за умови, що CPL = 0, тобто з най­вищим рівнем привілеїв, належать:

  • команди роботи з регістрами керування (сг0...сг4);

  • команди завантаження регістрів системних адрес (gdtr, Idtr, idtr, tr);

  • команда зупинення процесора (HALT).

Є також команди, які стосуються операцій введення-виведення і вимагають, аби рівень привілеїв поточного процесу CPL був вищим, аніж рівень привілеїв введення-виведення IOPL (тобто CPL < IOPL). Такі команди іноді ще називають чутливими. До них належать:

  • команди заборони-дозволу маскованих переривань (CLI, SLI);

  • команди введення-виведення (IN, INS, OUT, OUTS).

Рівень привілеїв команд введення-виведення (IOPL) зберігається у спеціаль­ному полі регістра eflags. Якщо під час виконання команди введення-виведення за­значена умова не виконується, можливість доступу до порту з конкретною адресою визначається відповідним бітом у карті введення-виведення (карта має розмір 8 Кбайт для опису доступу до 65 536 портів). Коли біт дорівнює нулю, операцію введення-виведення дозволено. Це дає змогу відкрити прямий доступ до окремих портів програмам із низьким рівнем привілеїв. Докладно про можливості роботи з картою введення-виведення в Microsoft Windows можна прочитати в [95].

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

Висновки

  1. 1. До апаратного забезпечення засобів захисту (АЗЗЗ) належать засоби підтримки функцій захисту операційних систем, вбудовані в процесор та (або) в мікро­схеми системної плати (чіпсети). Ці засоби визначаються архітектурою проце­сора і обчислювальної системи. їх реалізація може бути частково апаратною, частково програмною. Склад АЗЗЗ визначається не за ознакою апаратної реа­лізації, а за колом завдань, що вирішуються такими засобами:

♦ підтримка керування пам'яттю;

  • підтримка керування процесами (задачами);

  • підтримка взаємодії між процесами.

2. Віртуальна пам'ять — це комплекс заходів, які дають змогу процесам викори­стовувати адресний простір, що перевищує обсяг фізичної пам'яті в комп'ю-

тері. Віртуальна пам'ять використовує сегментний, сторінковий або сегмент но-сторінковий розподіл пам'яті. Сегменти — це типізовані області пам'яті, які дають змогу організувати контроль доступу до них за мандатним принципом.

Сторінки — це порівняно невеликі не типізовані області пам'яті, які застосовують насамперед для організації ефективного обміну між фізичною і зовнішньою пам'яттю.

  1. Захист сегментів і сторінок пам'яті організовано на апаратному рівні. Перед зверненням до сегментів і сторінок здійснюється звернення до відповідних дескрипторів і перевіряється сумісність типів (для сегментів) і атрибутів доступу. У разі виявлення спроби забороненої операції генерується виняткова ситуація, яку обробляють обробники переривань ОС.

  2. Для керування процесами застосовуються дві структури — дескриптор і контекст процесу. ОС використовує дескриптор для планування процесів і перевірки дозволу на виклик одним процесом іншого. Контекст використовується під час диспетчеризації процесу — для збереження стану всіх регістрів і прапорців процесора та їх відновлення задля продовження виконання процесу.

  3. У процесорах х86 кожний процес має дві таблиці дескрипторів сегментів: локальну та глобальну. Перша дає змогу звертатися до програмного коду і структур даних цього процесу, а друга — до бібліотек і структур даних, спільних для всіх процесів (зокрема, до даних і процедур ОС).

6. У процесорах х86 підтримується чотири рівні виконання процесів (кілець за хисту). Під час звернення до кожного сегмента контролюється дозвіл на цю операцію відповідно до мандатного принципу шляхом порівняння рівнів виконання поточного процесу (CPL), зазначеного у селекторі сегмента рівня (RPL) і рівня дескриптора сегмента (DPL). Рівень 0 — найвищі привілеї, рівень З найнижчі.

7. Звернення до програмного коду з інших сегментів (для виконання процедур і для переключення на новий контекст виконання) може бути здійснене в один із таких способів:

♦ прямий виклик із підпорядкованого сегмента (стає можливим, якщо CPL = DPL);

♦ прямий виклик із підпорядкованого сегмента (можливий, якщо CPL > DPL, при

цьому новий код успадковує рівень CPL того процесу, що викликає);

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

Контрольні запитання та завдання

1. Які завдання покладено на апаратне забезпечення засобів захисту?

2. Які задачі вирішуються ОС для керування пам'яттю?

3. Що таке віртуальна пам'ять? Які задачі, що вирішуються під час реалізації віртуальної пам'яті, пов'язані із забезпеченням захисту областей пам'яті від несанкціонованого доступу?

4. Чим відрізняються сегменти від сторінок? Які можливості керування досту­пом

існують для сегментів, а які — для сторінок?

5. Які структури даних використано у процесорах х86 для доступу до сегментів

пам'яті? Які атрибути захисту в них передбачено?

6. Які таблиці дескрипторів використовує процес у процесорі х86? Яким чином

відбувається звернення до цих таблиць?

7. Які задачі вирішуються ОС для керування процесами? Які з них виконуються

програмними засобами, а які — апаратними?

8. Які способи міжсегментних викликів підтримує процесор х86? Які співвід­ношення

рівнів CPL і DPL дозволені для кожного з них, і які обмеження для них встановлені?

9. Що таке шлюз і як його влаштовано?

10. Що таке TSS?

Розділ 11

Захищені операційні системи

♦ Загрози безпеці операційних систем

  • Підходи до створення захищених операційних систем

  • Адміністративні заходи захисту

  • Адекватна політика безпеки

♦ Типова архітектура комплексу засобів захисту операційних систем