Beskyttelsesringe er en informationssikkerheds- og funktionel fejltolerancearkitektur, der implementerer en hardwareadskillelse af system- og brugerrettigheder. Strukturen af privilegier kan afbildes som flere koncentriske cirkler. I dette tilfælde er systemtilstanden ( supervisortilstand eller ring nul, såkaldt "ring 0"), som giver maksimal adgang til ressourcer, den inderste cirkel, mens den begrænsede brugertilstand er den ydre. Traditionelt har x86- mikroprocessorfamilien fire beskyttelsesringe.
Arkitekturen af beskyttelsesringe er normalt i modsætning til systemer baseret på obligatorisk adressering, som giver adgang til et objekt i henhold til dets beskrivelse ( kapacitetsbaseret sikkerhed ).
Understøttelse af flere beskyttelsesringe var et af de revolutionerende koncepter inkluderet i Multics -operativsystemet , forløberen for nutidens UNIX-lignende operativsystemer. De fleste UNIX-systemer bruger dog kun 2 ringe, selvom hardwaren understøtter flere CPU-tilstande .
Mange moderne CPU- arkitekturer (inklusive den populære x86 -arkitektur ) indeholder en form for beskyttelse. Men på trods af dette bruger Windows NT -operativsystemet , såvel som UNIX , ikke fuldt ud disse funktioner. Windows NTs forgænger, OS/2 , brugte tre ringetoner: ring 0 for kernekode og enhedsdrivere, ring 2 for privilegeret kode (programmer med I/O-adgang) og ring 3 for uprivilegeret kode (næsten alle brugerprogrammer).
Det originale Multics-system havde otte beskyttelsesringe, men mange moderne systemer har en tendens til at have færre. Processoren ved altid, i hvilken ring koden udføres, takket være specielle maskinregistre. På nogle systemer er områder af virtuel hukommelse også forbundet med ringenumre, og den mere privilegerede ring får særlige rettigheder (såsom adressering af reel hukommelse, omgåelse af den virtuelle hukommelsesmekanisme).
Ringmekanismen begrænser i høj grad de veje, hvorved kontrol kan overføres fra en ring til en anden, og pålægger også begrænsninger på hukommelsesadgangsoperationer, der kan udføres i ringen. Der er normalt en instruktion (gateway), der overfører kontrol fra en mindre sikker til en mere sikker (lavere nummereret) ring; dette er kendt som en supervisor-anmodning i mange operativsystemer, der bruger en ringarkitektur. Denne mekanisme er designet til at begrænse muligheden for utilsigtede eller bevidste sikkerhedsbrud.
Ringbeskyttelse kan kombineres med processortilstande (master/kerne/privilegeret tilstand versus slave/bruger/uprivilegeret tilstand) på nogle systemer. Operativsystemer, der kører på hardware, der understøtter disse tilstande, kan bruge begge beskyttelsesmetoder eller kun én af dem.
Effektiv brug af beskyttelsesringens arkitektur kræver tæt interaktion mellem hardwaren og operativsystemet. Operativsystemer, der er designet til at køre på et stort antal platforme, kan have en forskellig implementering af ringmekanismen på hver platform. Ofte er sikkerhedsmodellen forenklet til to adgangsniveauer: "kerne"-niveauet og "bruger"-niveauet, selvom hardwaren giver mere granulære udførelsesniveauer.
Udtrykket supervisor mode ( Supervisor mode ) udviklere og producenter af processorer refererer som regel til den mest privilegerede driftstilstand for processoren. Oftest bruges denne tilstand til at udføre operativsystemets kernekode. Typisk svarer denne tilstand i funktionalitet til den 0. beskyttelsesring (Ring 0) i x86-processorer, det vil sige, at den giver ubegrænset adgang til alle processorkapaciteter, arbejder med periferiudstyr og så videre. Koden, der fungerer i denne tilstand, styrer som regel de tilgængelige hardwareressourcer, deler deres brug mellem separate opgaver (processer) og så videre, hvilket førte til dette tilstandsnavn.
Nogle udviklere og producenter af processorer, såsom ARM, bruger ikke klassificeringen af processordriftstilstande i form af beskyttelsesringe. Ikke desto mindre har de fleste moderne processorer (undtagen de enkleste) normalt flere driftsformer, der adskiller sig fra hinanden i de privilegier, der er tilgængelige i denne tilstand.
Nogle moderne processorer kan give en ekstra driftstilstand kendt som Hypervisor -tilstand . Som regel er denne tilstand implementeret til at understøtte virtualiseringsteknologier på hardwareniveau. Dette gør det muligt at opnå ikke kun den samtidige udførelse af flere opgaver, men også den samtidige udførelse af flere operativsystemer på en enkelt processor uden væsentlige ydelsestab og uden at ændre selve operativsystemerne. Som regel, når du bruger denne tilstand, er fuld adgang til alle ressourcer mulig fra hypervisortilstanden. I et sådant tilfælde er supervisortilstand ikke længere den mest privilegerede og begrænser mange privilegerede operationer. Når operativsystemer udfører privilegerede operationer i supervisortilstand, overføres kontrollen til et specielt program - hypervisoren . Hypervisoren arbitrerer brugen af tilgængelige hardwareressourcer af flere operativsystemer på samme måde, som operativsystemer selv arbitrerer ressourcer mellem flere opgaver. Grundlæggende er en hypervisor normalt en lille kerne, der styrer ressourceallokering på tværs af flere operativsystemer og kører på et lag under selve operativsystemerne. På grund af dette, i x86-terminologi, kaldes denne tilstand ofte betinget ring −1 (Ring −1).
System Management Mode er den mest privilegerede eksekveringstilstand på x86 / x86-64 [1] arkitekturprocessorer (opkom først i 386SL ). SMM-tilstanden (betinget kaldet "Ring -2") er mere privilegeret end "Ring 0" og hardwarehypervisoren ( VT/AMD-v ) "Ring -1". Denne tilstand suspenderer normal kodeudførelse og begynder at udføre specialkode fra system-RAM (SMRAM), som ikke er tilgængelig i andre tilstande. Denne kode får adgang til al systemhukommelse, inklusive kerne- og hypervisorhukommelsen.
Joanna Rutkowska har offentliggjort information om Blue Pill- sårbarheden , som tillader udførelse af vilkårlig kode i SMM-tilstand.
SMM-tilstanden blev først implementeret i 80386SL og i486SL MP'erne. Fra og med Intel-486 er denne tilstand blevet et obligatorisk element i IA-32-arkitekturen. SMM-tilstand er designet til at udføre nogle handlinger med mulighed for fuldstændig isolering fra operativsystemet. Processoren går kun ind i denne tilstand af hardware på SMI#-signalet. Der er ingen software-måde at skifte til denne tilstand. Når der opstår en SMI-afbrydelse, udføres handlerens SMI-kode i et separat adresserum (SMRAM). I løbet af overgangen til SMI-tilstand bevares konteksten af den afbrudte proces. Under udførelsen af SMM-handleren er alle afbrydelser deaktiveret. SMI-handlerkode kan kun køre i SMRAM.
I 2006 introducerede Loïc Duflot et meget mærkeligt angreb mod OpenBSD-sikkerhedslagsmekanismen, der brugte SMM-tilstanden. På det tidspunkt var SMM-tilstanden ikke beskyttet, og det var muligt at skrive vilkårlig kode til SMRAM. Men så begyndte systemproducenterne at forsvare SMM-regimet. For at gemme den eksekverbare kode i SMM blev der tildelt et særligt hukommelsesområde, kaldet SMRAM, som modtog særlig beskyttelse fra chipsættet (Memory Controller Hub, for at være præcis). På de fleste moderne systemer er det allerede ret ikke-trivielt at udføre kode med SMM-privilegier. For at gøre dette skal du finde et "hul" i chipsættet eller BIOS (selvom vi har adgang på kerneniveau). Faktisk lavede Sherri Sparks og Shawn Embleton til Black Hat 2008 i Las Vegas en præsentation om SMM rootkits , men gjorde det klart, at deres rootkits kun kan indlæses på ældre systemer (før 2006). Også diskuteret på konferencen var et "hul" i Intel BIOS, der gjorde det muligt at udføre vilkårlig kode i SMM-tilstand. Derefter blev der opdaget yderligere to måder at bryde ind i SMM-tilstand på forskellige systemer. Et andet angreb, opdaget i slutningen af 2008, virkede på et stort antal Intel-systemer (og potentielt maskiner med ældre BIOS'er).
SMM-rootkits (eller ring-2-rootkits) kræver adgang til meget sikker SMM-hukommelse, og på de fleste moderne systemer bliver en angriber nødt til at udnytte "huller" (ikke trivielt at finde).
SMM-angreb er designet til en specifik BIOS-version (eller BIOS-linje) og chipsætfamilie, for eksempel til 3. eller 4. serie af Intel-chipsæt (dvs. angreb på Q35 og Q45 eller angreb på AMI og AWARD BIOS er forskellige).
Invisible Things Lab foreslog at kalde funktionaliteten af Intel vPro/ Intel AMT -teknologi ring -3. [2] Inden for rammerne af denne teknologi indeholder chipsæt, der understøtter vPro-teknologi en uafhængig mikroprocessor ( ARC 4-arkitektur), har en separat grænseflade til netværkskortet, eksklusiv adgang til et dedikeret RAM-område (16 MB), DMA-adgang til hoved VÆDDER. Programmer på den udføres uafhængigt af den centrale processor, firmwaren gemmes sammen med BIOS-koder eller på en lignende SPI-flashhukommelse (koden har en kryptografisk signatur). En del af firmwaren er en indlejret webserver. AMT er deaktiveret som standard, men noget af koden fungerer stadig i denne tilstand, selv når AMT er deaktiveret. Ringekode -3 er aktiv selv i S3 dvaletilstand.
af operativsystemer | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Nucleus |
| ||||
Procesledelse _ |
| ||||
Hukommelseshåndtering og adressering | |||||
Indlæsnings- og initialiseringsværktøjer | |||||
skal | |||||
Andet | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |
processorteknologier | Digitale|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionssæt arkitektur | |||||||||
maskinord | |||||||||
Parallelisme |
| ||||||||
Implementeringer | |||||||||
Komponenter | |||||||||
Strømstyring |