Isolatie
Systemen isoleren processen op twee manieren. In de eerste, is het proces geconfronteerd met een omgeving die lijkt te zijn een computer met alleen dat proces of die processen worden geïsoleerd. In het tweede is een omgeving die in het proces die acties worden geanalyseerd om te bepalen of ze informatie lekken. Het eerste type van het milieu voorkomt dat het proces van toegang tot de onderliggende computersysteem en alle processen of middelen die geen deel uitmaken van die omgeving. Het tweede type van het milieu niet simuleert een computer. Het verandert alleen de interface tussen de bestaande computer en de proces (sen).
Virtuele Machines
Het eerste type van het milieu wordt een virtuele machine.
Een virtuele machine is een programma dat de hardware van een (eventueel abstract) computer systeem simuleert.
Een virtuele machine gebruikt een speciaal besturingssysteem heet een virtuele machine monitor om een virtuele machine waarop conventionele besturingssystemen kan draaien
Het belangrijkste voordeel van een virtuele machine is dat bestaande besturingssystemen niet hoeven te worden gewijzigd. Ze draaien op de virtuele machine te controleren. De virtuele machine monitor dwingt de gewenste veiligheidsbeleid. Dit is transparant voor de gebruiker. De virtuele machine monitor fungeert als een zekerheid kernel.
In termen van beleid, de virtuele machine monitor behandelt onderwerpen (de onderwerpen die de virtuele machines). Zelfs als een virtuele machine draait honderden processen, de virtuele machine monitor kent alleen over de virtuele machine. Zo kan veiligheidscontroles van toepassing op de onderwerpen en deze controles van toepassing op de processen die deze onderwerpen worden uitgevoerd. Deze voldoet aan de regel van transitieve opsluiting.
VOORBEELD: De KVM/370 was een beveiligde versie van de IBM VM/370 virtuele machine te controleren. Dit stelsel van virtuele machines voor de gebruikers, en een van de doelstellingen was om de communicatie tussen virtuele machines van verschillende klassen veiligheid te voorkomen, zodat gebruikers in de verschillende klassen kon de veiligheid van het systeem gebruik op hetzelfde moment. Net VM/370, mits zij virtuele machines met minidisks en liet systemen te delen sommige gebieden van de schijf. In tegenstelling tot VM/370, gebruikte het een veiligheidsbeleid te bemiddelen toegang tot gedeelde gebieden van de schijf te beperken communicatie tussen systemen. |
|
VOORBEELD: Karger en collega's bij Digital Equipment Corporation ontwikkelde een virtuele machine monitor (VMM) voor de DEC VAX. De monitor is een zekerheid kernel en kan zowel lopen het VMS of het Ultrix besturingssysteem. De VMM draait op de inheemse VAX-hardware en beroep wordt gedaan wanneer de virtuele machine voert een bevoorrechte instructie. De structuur is kenmerkend voor virtuele machines ontworpen om veiligheid te bieden. De VAX heeft vier niveaus van privilege: gebruiker, directie, executive, en kernel modes. Met het oog op een compatibele virtuele machine te bieden, moet de virtuele machines hebben ook vier niveaus van voorrecht. Echter, de kernel mode maakt het mogelijk een proces om bevoorrechte instructies op de VAX-hardware direct toegang. Alleen de VMM is toegestaan om dit te doen. De virtuele machines kunnen geen toegang tot de kernel mode. De oplossing is om virtuele modi. Deze modi worden VM gebruiker (overeenkomend met de user mode), VM promotor modus, uitvoerende en VM en VM kernel modi (zowel feitelijk uitvoerend modus). De VMM onderwerpen zijn gebruikers en de virtuele machines. VMM heeft een basis, plat bestand voor eigen gebruik en partities de resterende schijfruimte tussen de virtuele machines. Die machines kunnen gebruik maken van elk bestand structuur zij wensen, en elke virtuele machine heeft zijn eigen set van bestandssystemen. Elk subject en object heeft een multilevel veiligheid en integriteit label, en de veiligheid en integriteit niveaus vormen een toegang klasse. Twee entiteiten hebben de toegang tot dezelfde klasse als en slechts als hun veiligheid en integriteit labels zijn hetzelfde, en een geheel ander overheerst dan en slechts dan als zowel de veiligheid en integriteit klassen domineren. Een integraal onderdeel van de VMM is een controle mechanisme. Dit mechanisme worden de acties voor latere analyse.
|
Omdat de virtuele machines dezelfde interface voor communicatie met andere virtuele machines die computers bieden bieden, kunnen deze kanalen van communicatie worden gecontroleerd of doorgesneden. Zoals eerder vermeld, als een enkele host draait meerdere virtuele machines, die virtuele machines het aandeel van de materiële middelen van de ontvangende waarop zij lopen. (Ze kunnen ook delen logische middelen, afhankelijk van hoe het virtualiseren kernel wordt uitgevoerd.) Dit biedt een vruchtbare voedingsbodem voor geheime kanalen.
Sandboxes
Een speeltuin sandbox biedt een veilige omgeving voor kinderen om te verblijven inch Als de kinderen verlaten de zandbak zonder toezicht, kunnen ze doen dingen die ze niet moeten doen. De computer sandbox is vergelijkbaar. Het biedt een veilige omgeving voor programma's uit te voeren inch Als de programma's "verlaten" de zandbak, kunnen ze dingen doen die ze niet moeten doen. Beide soorten zandbakken beperken de acties van hun bewoners.
Een sandbox is een omgeving waarin de acties van een proces zijn beperkt op basis van een veiligheidsbeleid.
Systemen kunnen doen gelden beperkingen op twee manieren. Ten eerste kan de zandbak beperken de uitvoering milieu als nodig is. Dit wordt meestal gedaan door het toevoegen van extra beveiliging controle mechanismen om de bibliotheken of kernel. Het programma zelf is niet gewijzigd. Bijvoorbeeld, de VMM kernel eerder besproken is een zandbak, omdat het de toegangen van de (ongewijzigde intoomt) besturingssystemen die draaien op. De Java virtuele machine is een zandbak, omdat de security manager beperkt de toegang van gedownloade programma's om het systeem te middelen ingegeven door een veiligheidsbeleid.
|
VOORBEELD: De operationele kern van de Sidewinder firewall gebruikt type handhaving om processen te beperken. Dit is een voorbeeld van een sandbox ingebouwd in een kernel, en het heeft de eigenschap dat de zandbak wordt gedefinieerd door de verkoper. Het is niet bedoeld om te worden veranderd op de site. Een dergelijk ontwerp is typisch voor een turnkey-systeem, dat het beoogde gebruik is voor een Sidewinder firewall. De Java virtuele machine, waarin gedownload applets worden uitgevoerd, is een ander voorbeeld van een zandbak. De zandbak beperkt de set van bestanden die het applet kan de toegang tot en de gastheren die het applet kan aansluiten. Andere beveiligingsmechanismen verbetering van de zandbak. DTE, de aard handhavingsmechanisme voor DTEL, is een voorbeeld waarin kernel aanpassingen systeembeheerders in staat stellen om hun eigen zandbakken configureren. De kernel dwingt de beperkingen.
|
De tweede methode is om de handhaving van het programma (of proces) te wijzigen worden uitgevoerd. Dynamische debuggers en sommige profilers gebruik van deze techniek door het toevoegen van breekpunten om de code en, wanneer de val zich voordoet, het analyseren van de toestand van het lopende proces. Een variant, die bekend staat als software fout isolatie, voegt instructies die toegang tot het geheugen uit te voeren controles of andere controles, zoals het programma loopt, zodat elke poging om het veiligheidsbeleid schenden veroorzaakt een fout.
|
VOORBEELD: Janus implementeert een zandbak. Het is een omgeving waarin uitvoering systeem oproepen worden gevangen en gecontroleerd. Gebruikers uitvoeren ter beperking van de objecten en de wijze van toegang van een niet-vertrouwde programma. Janus bestaat uit een kader, dat de runtime de controle doet, en modules, die bepalen welke toegangen moeten worden toegestaan. Janus leest eerst een configuratiebestand. Dit bestand instrueert hij te laden bepaalde modules. Samen met de module identificatie is een lijst van beperkingen. Het volgende voorbeeld configuratie bestand definieert de omgevingsvariabele IFS voor het kind en beperkt de toegang van het kind om het bestandssysteem. Het kind kan geen toegang tot alle bestanden, behalve die hieronder worden genoemd. Het kind kan lezen of te schrijven naar een bestand in de map / usr bestandssysteem met uitzondering van die in de / usr / lib en / usr / local / lib directory (die alleen lezen) en in / usr / bin (lezen en uit te voeren). Het kind kan lezen een bestand in de / lib directory en kan lezen en uitvoeren van een bestand in de / sbin en / bin directory. In het configuratie bestand hieronder, het eerste woord in elke instructie lijn is de naam van de module en de andere woorden: zijn de argumenten doorgegeven aan de modules ( "#" begint een commentaar). # Basismodule basic # Define subproces omgevingsvariabelen putenv IFS = "\ t \ n" PATH = / sbin: / bin: / usr / bin TZ = PST8PDT # De toegang weigeren aan alles behalve bestanden onder / usr pad ontkennen lezen, schrijven * pad kunnen lezen, schrijven / usr / * # subproces mogelijk om bestanden te lezen in de bibliotheek van directories # nodig zijn voor de dynamische belasting pad kunnen lezen / lib / * / usr / lib / * / usr / local / lib / * # nodig opdat kind pad programma's kan uitvoeren laten lezen, exec / sbin / * / bin / * / usr / bin / * Elke module bedwingt system calls. Het kader maakt gebruik van de modules voor het bouwen van een gelinkte lijst voor elk gecontroleerd system call. De lijst wordt toegestaan en niet toegestaan acties. Zodra deze lijst is gebouwd, de Janus kader roept het programma op een zodanige wijze dat alle oproepen worden gecontroleerd systeem gevangen. Wanneer het programma een gecontroleerde system call wordt uitgevoerd, wordt het programma vallen en de Janus kader ingeroepen. Zij heeft toegang tot de argumenten die aan de sysem bellen. Het valideert dat de system call, met deze specifieke parameters, is toegestaan. Als het systeem oproep niet is toegestaan, stelt het kader omgeving van het kind, zodat het systeem oproep lijkt te zijn mislukt. Als het systeem gesprek is toegestaan, het kader terugkeert controle aan het kind, die op zijn beurt doorgeeft controle aan de kernel. Bij terugkeer, controle gaat om het kader, dat elke interne toestand updates en geeft de resultaten aan het kind. Een voorbeeld hiervan gebruik zou worden in het lezen van MIME-mail. Men zou kunnen hebben de mail lezen programma om controle door te geven aan een Postscript-display engine. Sommige van deze motoren hebben een mechanisme voor de uitvoering van systeem-level commando's ingebed in het PostScript-bestand. Vandaar, kan een aanvaller legde een bestand schrapping opdracht in het PostScript-bestand. De ontvanger zou lopen het display engine om het bestand lezen, en sommige van haar dossiers zou worden geschrapt. Toch kan de gebruiker (of de systeembeheerder) het opzetten van de Janus configuratiebestand met de uitvoering van een sub-programma's verbieden. Dan is de embedded commando zal worden gedetecteerd (op het system call om het uit te voeren) en afgewezen.
|
Net als een virtuele machine monitor, een zandbak maakt deel uit van de Trusted Computing basis. Als de sandbox niet lukt, biedt het minder bescherming dan het is geloofd te bieden. Vandaar dat ervoor zorgen dat de zandbak correct implementeert een gewenste veiligheidsbeleid is cruciaal voor de veiligheid van het systeem.
een artikel afkomstig van Fred Foster