Кільця захисту — архітектура інформаційної безпеки та функціональної відмовостійкості, що реалізує апаратний поділ системного й користувацького рівнів привілеїв. Структуру привілеїв можна зобразити у вигляді кількох концентричних кіл. У цьому випадку системний режим (режим супервізора або нульове кільце, так зване «кільце 0»), що забезпечує максимальний доступ до ресурсів, є внутрішнім колом, тоді як режим користувача з обмеженим доступом — зовнішнім. Традиційно сімейство мікропроцесорів x86 забезпечує чотири кільця захисту.
Архітектурі кілець захисту зазвичай протиставляють системи, засновані на мандатній адресації, що забезпечує доступ до об'єкта за його описом (англ. [en]).
Реалізація
Підтримка декількох кілець захисту була однією з революційних концепцій, включених в операційну систему Multics, попередника сьогоднішніх UNIX-подібних операційних систем. Однак, більшість UNIX-систем використовують тільки 2 кільця, навіть якщо апаратні засоби підтримують більше режимів центрального процесора.
Багато сучасних архітектур центральних процесорів (включаючи популярну архітектуру x86) включають деякі форми захисту. Але незважаючи на це, операційна система Windows NT, також як і UNIX, повністю не використовують ці можливості. Попередниця Windows NT операційна система (OS/2) використовувала три кільця: кільце 0 код ядра , драйверів пристроїв, кільце 2 для привілейованого коду (програми з доступом до операцій (введення-виведення)), і кільце 3 для непривілейованого коду (майже всі користувальницькі програми).
Оригінальна система Multics мала вісім кілець захисту, але багато сучасних систем мають, як правило, менше. Процесор завжди знає, в якому кільці виконується код, завдяки спеціальним машинним регістрам. В деяких системах області віртуальної пам'яті також пов'язані з номерами кілець, і більш привілейованому кільцю даються спеціальні права (такі, як адресація реальної пам'яті в обхід механізму віртуальної пам'яті).
Механізм кілець суворо обмежує шляхи, за допомогою яких керування можна передати від одного кільця до іншого, а також передбачає обмеження на операції доступу до пам'яті, які можуть бути зроблені всередині кільця. Зазвичай існує деяка інструкція (шлюз), що передає контроль із менш захищеного більш захищене (з меншим номером) кільце; це відомо як запит супервізора у багатьох операційних системах, що використовують кільцеву архітектуру. Цей механізм розроблений для того, щоб обмежити можливості випадкового або навмисного порушення безпеки.
Захист кільця може поєднуватися з режимами процесора (режим master/kernel/privileged проти режиму slave/user/unprivileged) в деяких системах. Операційні системи, що виконуються на апаратному забезпеченні, підтримують такі режими, можуть використовувати обидва способи захисту або тільки один з них.
Ефективне використання архітектури кілець захисту вимагає тісної взаємодії між апаратними засобами і операційною системою. Операційні системи, що розробляються так, щоб вони працювали на великій кількості платформ, можуть мати різну реалізацію механізму кілець на кожній платформі. Часто модель безпеки спрощують до двох рівнів доступу: рівня «ядра» і рівня «користувача», навіть якщо апаратні засоби забезпечують більший ступінь деталізації рівнів виконання.
Режим супервізора
Терміном режим супервізора (Supervisor mode) розробники і виробники процесорів як правило називають найбільш привілейований режим роботи процесора. Найчастіше цей режим використовується для виконання коду ядра операційної системи. Зазвичай цей режим по функціональності відповідає 0-го кільця захисту (Ring 0) на x86 процесорах, тобто надає необмежений[] доступ до всіх можливостей процесора, роботи з периферією і так далі. Код, що працює в цьому режимі, як правило, керує доступними апаратними ресурсами, здійснює поділ їх використання між окремими задачами (процесами) і так далі, що і призвело до такої назви режиму.
Деякі фірми-розробники і виробники процесорів, наприклад ARM, не використовують класифікацію режимів роботи процесора у вигляді кілець захисту. Тим не менш, у більшості сучасних процесорів (крім найпростіших) як правило присутні кілька режимів роботи, які відрізняються один від одного доступними в автономному режимі привілеями.
Режим гіпервізора
Деякі сучасні процесори можуть надавати додатковий режим роботи, відомий як режим гіпервізора (Hypervisor mode). Як правило цей режим реалізується з метою підтримки технологій віртуалізації на рівні апаратного забезпечення. Це дозволяє досягти не тільки одночасного виконання декількох завдань, але й одночасного виконання декількох операційних систем на одному процесорі без істотних втрат продуктивності та без зміни самих операційних систем. Як правило при використанні даного режиму повний доступ до всіх ресурсів можливий саме з режиму гіпервізора. В такому випадку, режим супервізора вже не є максимально привілейованими і обмежує багато привілейовані операції. Кожна привілейована інструкція процесора призводить до «виходу» (англ. exit) до гіпервізора, що здійснює арбітраж використання наявних апаратних ресурсів декількома операційними системами аналогічно до того, як самі операційні системи здійснюють розподіл ресурсів між декількома задачами. По суті, гіпервізор зазвичай є невеликим ядром, яке керує розподілом ресурсів між декількома операційними системами і працює рівнем нижче, ніж самі операційні системи. У силу цього в термінології x86 даний режим часто умовно називають кільцем -1 (Ring -1).
Режим системного керування (SMM)
Режим системного керування (System Management Mode) — найбільш привілейований режим виконання на процесорах архітектури x86/x86-64 (вперше з'явився в 386SL). Режим SMM (умовно званий «Кільце -2») більш привілейований, ніж «Кільце 0» і апаратний гіпервізор (VT/AMD-v) «Кільце -1». У цьому режимі припиняється нормальне виконання коду, і починається виконання спеціального коду зі особливої пам'яті (SMRAM, System Management RAM), недоступної в інших режимах. Цей код одержує доступ до всієї системної пам'яті, включаючи ядро і пам'ять гіпервізора.
опублікувала інформацію про уразливості «», що дає змогу виконати довільний код у режимі SMM.
Модель взаємодії між ЦП і рівнями абстракції ОС
Вперше режим SMM був реалізований у процесорі 80386SL і i486SL. Починаючи з Intel-486, цей режим став обов'язковим елементом архітектури IA-32. Режим SMM призначений для виконання певних дій із можливістю їх повної ізоляції від операційної системи. Процесор переходить у режим тільки апаратно за сигналом SMI#. Ніякого програмного способу для переходу в цей режим не передбачено. При виникненні SMI код відповідного переривання виконується в окремому адресному просторі (SMRAM). На час переходу в SMI режим контекст перерваного процесу зберігається. Під час виконання SMM обробника всі переривання заблоковано. Код SMI обробника може виконуватися тільки в SMRAM пам'яті.
У 2006 році Лоїк Дюфло (Loïc Duflot) представив дуже цікаву атаку проти механізму рівнів безпеки OpenBSD, яка використовувала режим SMM. У той час SMM режим не був захищений і існувала можливість записати в SMRAM довільний код. Але потім виробники систем почали захищати режим SMM. Для зберігання виконуваного в SMM коду була виділена спеціальна область пам'яті, названа SMRAM, яка отримала особливий захист з боку чипсету (Memory Controller Hub, якщо бути точним). На більшості сучасних систем вже досить нетривіально виконати код з привілеями SMM. Для цього потрібно знайти «дірку» в чипсеті або BIOS (навіть якщо у нас є доступ на рівні ядра).
На конференції Black Hat 2008 у Лас-Вегасі Шеррі Спаркс (Sherri Sparks) і Шон Емблтон (Shawn Embleton) зробили презентацію про руткіти SMM, але при цьому ясно дали зрозуміти, що їх руткіти можна завантажити тільки на старих системах (до 2006 року). Також на конференції обговорювалася «діра» в BIOS Intel, яка дозволяла виконувати довільний код у режимі SMM. Потім були виявлені ще два способи пробитися в режим SMM на різних системах. Інша атака, яку виявили в кінці 2008 року, спрацьовувала на великій кількості систем Intel (і потенційно на машинах зі старими BIOS).
Руткіти SMM (або руткіти кільця -2) вимагають доступу до сильно захищеної пам'яті SMM, і на більшості сучасних систем атакувальнику доведеться використовувати «дірки» (знайти їх досить нетривіально).
Атаки SMM розробляються під конкретну версію BIOS (або лінійку BIOS) і сімейство чипсетів, наприклад, для лінійок 3-ї або 4-ї серії чипсетів Intel (тобто атаки на Q35 і Q45, або атаки на AMI і AWARD BIOS різні).
Intel vPro / Active Management Technology
Invisible Things Lab запропонувала називати функціональність технології Intel vPro / Intel AMT кільцем -3. У рамках цієї технології чипсети, що підтримують технологію vPro, містять незалежний мікропроцесор, мають окремий інтерфейс до мережевої карти, ексклюзивний доступ до виділеної ділянки оперативної пам'яті (16 МБ), DMA-доступ до основної пам'яті. Програми на ньому виконуються незалежно від центрального процесора, прошивка зберігається спільно з кодами BIOS або на аналогічній флеш-пам'яті SPI (код має криптографічний підпис). Частиною прошивки є вбудований вебсервер.[] За умовчанням AMT вимкнений, але частина коду все ж працює в цьому режимі навіть при вимкненому AMT. Код кільця -3 активний навіть в режимі включення S3 Sleep ([en]).
Див. також
Джерела
- Intel® 64 and IA-32 Architectures Software Developer's Manual. Volume 3B: System Programming Guide. Chapter 26.PDF (3.93 MB)PDF (3.93 MB)
- Introducing Ring -3 Rootkits [ 6 січня 2019 у Wayback Machine.] // Alexander Tereshkin, Rafal Wojtczuk; BH 29.07.2009
Посилання
- Blue pill/red pill - the matrix has windows longhorn. InsidePro Software. Архів оригіналу за 25 лютого 2012. Процитовано 25 березня 2010.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Kilcya zahistu arhitektura informacijnoyi bezpeki ta funkcionalnoyi vidmovostijkosti sho realizuye aparatnij podil sistemnogo j koristuvackogo rivniv privileyiv Strukturu privileyiv mozhna zobraziti u viglyadi kilkoh koncentrichnih kil U comu vipadku sistemnij rezhim rezhim supervizora abo nulove kilce tak zvane kilce 0 sho zabezpechuye maksimalnij dostup do resursiv ye vnutrishnim kolom todi yak rezhim koristuvacha z obmezhenim dostupom zovnishnim Tradicijno simejstvo mikroprocesoriv x86 zabezpechuye chotiri kilcya zahistu Arhitekturi kilec zahistu zazvichaj protistavlyayut sistemi zasnovani na mandatnij adresaciyi sho zabezpechuye dostup do ob yekta za jogo opisom angl en RealizaciyaPidtrimka dekilkoh kilec zahistu bula odniyeyu z revolyucijnih koncepcij vklyuchenih v operacijnu sistemu Multics poperednika sogodnishnih UNIX podibnih operacijnih sistem Odnak bilshist UNIX sistem vikoristovuyut tilki 2 kilcya navit yaksho aparatni zasobi pidtrimuyut bilshe rezhimiv centralnogo procesora Bagato suchasnih arhitektur centralnih procesoriv vklyuchayuchi populyarnu arhitekturu x86 vklyuchayut deyaki formi zahistu Ale nezvazhayuchi na ce operacijna sistema Windows NT takozh yak i UNIX povnistyu ne vikoristovuyut ci mozhlivosti Poperednicya Windows NT operacijna sistema OS 2 vikoristovuvala tri kilcya kilce 0 kod yadra drajveriv pristroyiv kilce 2 dlya privilejovanogo kodu programi z dostupom do operacij vvedennya vivedennya i kilce 3 dlya neprivilejovanogo kodu majzhe vsi koristuvalnicki programi Originalna sistema Multics mala visim kilec zahistu ale bagato suchasnih sistem mayut yak pravilo menshe Procesor zavzhdi znaye v yakomu kilci vikonuyetsya kod zavdyaki specialnim mashinnim registram V deyakih sistemah oblasti virtualnoyi pam yati takozh pov yazani z nomerami kilec i bilsh privilejovanomu kilcyu dayutsya specialni prava taki yak adresaciya realnoyi pam yati v obhid mehanizmu virtualnoyi pam yati Mehanizm kilec suvoro obmezhuye shlyahi za dopomogoyu yakih keruvannya mozhna peredati vid odnogo kilcya do inshogo a takozh peredbachaye obmezhennya na operaciyi dostupu do pam yati yaki mozhut buti zrobleni vseredini kilcya Zazvichaj isnuye deyaka instrukciya shlyuz sho peredaye kontrol iz mensh zahishenogo bilsh zahishene z menshim nomerom kilce ce vidomo yak zapit supervizora u bagatoh operacijnih sistemah sho vikoristovuyut kilcevu arhitekturu Cej mehanizm rozroblenij dlya togo shob obmezhiti mozhlivosti vipadkovogo abo navmisnogo porushennya bezpeki Zahist kilcya mozhe poyednuvatisya z rezhimami procesora rezhim master kernel privileged proti rezhimu slave user unprivileged v deyakih sistemah Operacijni sistemi sho vikonuyutsya na aparatnomu zabezpechenni pidtrimuyut taki rezhimi mozhut vikoristovuvati obidva sposobi zahistu abo tilki odin z nih Efektivne vikoristannya arhitekturi kilec zahistu vimagaye tisnoyi vzayemodiyi mizh aparatnimi zasobami i operacijnoyu sistemoyu Operacijni sistemi sho rozroblyayutsya tak shob voni pracyuvali na velikij kilkosti platform mozhut mati riznu realizaciyu mehanizmu kilec na kozhnij platformi Chasto model bezpeki sproshuyut do dvoh rivniv dostupu rivnya yadra i rivnya koristuvacha navit yaksho aparatni zasobi zabezpechuyut bilshij stupin detalizaciyi rivniv vikonannya Rezhim supervizoraTerminom rezhim supervizora Supervisor mode rozrobniki i virobniki procesoriv yak pravilo nazivayut najbilsh privilejovanij rezhim roboti procesora Najchastishe cej rezhim vikoristovuyetsya dlya vikonannya kodu yadra operacijnoyi sistemi Zazvichaj cej rezhim po funkcionalnosti vidpovidaye 0 go kilcya zahistu Ring 0 na x86 procesorah tobto nadaye neobmezhenij utochniti dostup do vsih mozhlivostej procesora roboti z periferiyeyu i tak dali Kod sho pracyuye v comu rezhimi yak pravilo keruye dostupnimi aparatnimi resursami zdijsnyuye podil yih vikoristannya mizh okremimi zadachami procesami i tak dali sho i prizvelo do takoyi nazvi rezhimu Deyaki firmi rozrobniki i virobniki procesoriv napriklad ARM ne vikoristovuyut klasifikaciyu rezhimiv roboti procesora u viglyadi kilec zahistu Tim ne mensh u bilshosti suchasnih procesoriv krim najprostishih yak pravilo prisutni kilka rezhimiv roboti yaki vidriznyayutsya odin vid odnogo dostupnimi v avtonomnomu rezhimi privileyami Rezhim gipervizoraDeyaki suchasni procesori mozhut nadavati dodatkovij rezhim roboti vidomij yak rezhim gipervizora Hypervisor mode Yak pravilo cej rezhim realizuyetsya z metoyu pidtrimki tehnologij virtualizaciyi na rivni aparatnogo zabezpechennya Ce dozvolyaye dosyagti ne tilki odnochasnogo vikonannya dekilkoh zavdan ale j odnochasnogo vikonannya dekilkoh operacijnih sistem na odnomu procesori bez istotnih vtrat produktivnosti ta bez zmini samih operacijnih sistem Yak pravilo pri vikoristanni danogo rezhimu povnij dostup do vsih resursiv mozhlivij same z rezhimu gipervizora V takomu vipadku rezhim supervizora vzhe ne ye maksimalno privilejovanimi i obmezhuye bagato privilejovani operaciyi Kozhna privilejovana instrukciya procesora prizvodit do vihodu angl exit do gipervizora sho zdijsnyuye arbitrazh vikoristannya nayavnih aparatnih resursiv dekilkoma operacijnimi sistemami analogichno do togo yak sami operacijni sistemi zdijsnyuyut rozpodil resursiv mizh dekilkoma zadachami Po suti gipervizor zazvichaj ye nevelikim yadrom yake keruye rozpodilom resursiv mizh dekilkoma operacijnimi sistemami i pracyuye rivnem nizhche nizh sami operacijni sistemi U silu cogo v terminologiyi x86 danij rezhim chasto umovno nazivayut kilcem 1 Ring 1 Rezhim sistemnogo keruvannya SMM Rezhim sistemnogo keruvannya System Management Mode najbilsh privilejovanij rezhim vikonannya na procesorah arhitekturi x86 x86 64 vpershe z yavivsya v 386SL Rezhim SMM umovno zvanij Kilce 2 bilsh privilejovanij nizh Kilce 0 i aparatnij gipervizor VT AMD v Kilce 1 U comu rezhimi pripinyayetsya normalne vikonannya kodu i pochinayetsya vikonannya specialnogo kodu zi osoblivoyi pam yati SMRAM System Management RAM nedostupnoyi v inshih rezhimah Cej kod oderzhuye dostup do vsiyeyi sistemnoyi pam yati vklyuchayuchi yadro i pam yat gipervizora opublikuvala informaciyu pro urazlivosti sho daye zmogu vikonati dovilnij kod u rezhimi SMM Model vzayemodiyi mizh CP i rivnyami abstrakciyi OS Vpershe rezhim SMM buv realizovanij u procesori 80386SL i i486SL Pochinayuchi z Intel 486 cej rezhim stav obov yazkovim elementom arhitekturi IA 32 Rezhim SMM priznachenij dlya vikonannya pevnih dij iz mozhlivistyu yih povnoyi izolyaciyi vid operacijnoyi sistemi Procesor perehodit u rezhim tilki aparatno za signalom SMI Niyakogo programnogo sposobu dlya perehodu v cej rezhim ne peredbacheno Pri viniknenni SMI kod vidpovidnogo pererivannya vikonuyetsya v okremomu adresnomu prostori SMRAM Na chas perehodu v SMI rezhim kontekst perervanogo procesu zberigayetsya Pid chas vikonannya SMM obrobnika vsi pererivannya zablokovano Kod SMI obrobnika mozhe vikonuvatisya tilki v SMRAM pam yati U 2006 roci Loyik Dyuflo Loic Duflot predstaviv duzhe cikavu ataku proti mehanizmu rivniv bezpeki OpenBSD yaka vikoristovuvala rezhim SMM U toj chas SMM rezhim ne buv zahishenij i isnuvala mozhlivist zapisati v SMRAM dovilnij kod Ale potim virobniki sistem pochali zahishati rezhim SMM Dlya zberigannya vikonuvanogo v SMM kodu bula vidilena specialna oblast pam yati nazvana SMRAM yaka otrimala osoblivij zahist z boku chipsetu Memory Controller Hub yaksho buti tochnim Na bilshosti suchasnih sistem vzhe dosit netrivialno vikonati kod z privileyami SMM Dlya cogo potribno znajti dirku v chipseti abo BIOS navit yaksho u nas ye dostup na rivni yadra Na konferenciyi Black Hat 2008 u Las Vegasi Sherri Sparks Sherri Sparks i Shon Emblton Shawn Embleton zrobili prezentaciyu pro rutkiti SMM ale pri comu yasno dali zrozumiti sho yih rutkiti mozhna zavantazhiti tilki na starih sistemah do 2006 roku Takozh na konferenciyi obgovoryuvalasya dira v BIOS Intel yaka dozvolyala vikonuvati dovilnij kod u rezhimi SMM Potim buli viyavleni she dva sposobi probitisya v rezhim SMM na riznih sistemah Insha ataka yaku viyavili v kinci 2008 roku spracovuvala na velikij kilkosti sistem Intel i potencijno na mashinah zi starimi BIOS Rutkiti SMM abo rutkiti kilcya 2 vimagayut dostupu do silno zahishenoyi pam yati SMM i na bilshosti suchasnih sistem atakuvalniku dovedetsya vikoristovuvati dirki znajti yih dosit netrivialno Ataki SMM rozroblyayutsya pid konkretnu versiyu BIOS abo linijku BIOS i simejstvo chipsetiv napriklad dlya linijok 3 yi abo 4 yi seriyi chipsetiv Intel tobto ataki na Q35 i Q45 abo ataki na AMI i AWARD BIOS rizni Intel vPro Active Management TechnologyInvisible Things Lab zaproponuvala nazivati funkcionalnist tehnologiyi Intel vPro Intel AMT kilcem 3 U ramkah ciyeyi tehnologiyi chipseti sho pidtrimuyut tehnologiyu vPro mistyat nezalezhnij mikroprocesor mayut okremij interfejs do merezhevoyi karti eksklyuzivnij dostup do vidilenoyi dilyanki operativnoyi pam yati 16 MB DMA dostup do osnovnoyi pam yati Programi na nomu vikonuyutsya nezalezhno vid centralnogo procesora proshivka zberigayetsya spilno z kodami BIOS abo na analogichnij flesh pam yati SPI kod maye kriptografichnij pidpis Chastinoyu proshivki ye vbudovanij vebserver dzherelo Za umovchannyam AMT vimknenij ale chastina kodu vse zh pracyuye v comu rezhimi navit pri vimknenomu AMT Kod kilcya 3 aktivnij navit v rezhimi vklyuchennya S3 Sleep en Div takozhZahishenij rezhimDzherelaIntel 64 and IA 32 Architectures Software Developer s Manual Volume 3B System Programming Guide Chapter 26 PDF 3 93 MB PDF 3 93 MB Introducing Ring 3 Rootkits 6 sichnya 2019 u Wayback Machine Alexander Tereshkin Rafal Wojtczuk BH 29 07 2009PosilannyaBlue pill red pill the matrix has windows longhorn InsidePro Software Arhiv originalu za 25 lyutogo 2012 Procitovano 25 bereznya 2010