Sunteți pe pagina 1din 26

Abstract Mrfii sisteme nsrcinate cu asigurarea sensibile din punct de operare Datele sunt extrem de mari i complexe, i, n consecin,

fre- ulterior predispuse la compromis. Pentru a aborda aceast limitare, am n- troduce un sistem virtualmain, denumit umbri faptul c protejeaz confidenialitatea i integritatea datelor aplicare, chiar i n cazul unui compromis total de sistem de operare. Pune n umbr prezint o cerere TION, cu o vedere normal a resurselor sale, dar sistemul de operare cu un en- criptat vedere. Acest lucru permite sistemului de operare s efectueze sarcini complexe de gestionare a resurselor unei cereri, fr al- toarele-l pentru a citi sau de a modifica lor. Astfel, pune n umbr ofer o ultima Linia de aprare pentru date aplicare. Pune n umbr se bazeaz pe multi-shadowing, un mecanism nou care prezint puncte de vedere diferite de "fizice" de memorie, n funcie de contextul efectuarea de acces. Acest lucru ofer un primitiv-plus dimensiune suplimentare de protecie dincolo de protejarea ierarhic domenii puse n aplicare de ctre sistemele de operare tradiionale i proces- SOR arhitecturi. Va prezentam proiectarea i punerea n aplicare a umbri i arat modul n care sa semantica noi de protecie pot fi integrate cu ex- isting sisteme. Design-ul nostru a fost pe deplin pus n aplicare i utilizate pentru a proteja o gam larg de aplicaii motenite nemodificat de funcionare pe un sistem de operare Linux nemodificat. Noi evalua perfor- performan de punere n aplicare noastre, care s demonstreze c aceast abordare este practice. Categorii i Descriptorii Sub rezerva D.4.6 [Sisteme de operare]: Securitate i protecie Condiii generale de proiectare, de securitate, performan Monitoare Cuvinte cheie Virtual Machine, VMM, hypervisori, Opera- Sisteme de bre, Protecia memorie, Multi-shadowing, Deghizare 1. Introducere Sisteme de operare mrfii sunt omniprezente n casa, comercialfinanciare, guvern, i setrile militare. n consecin, aceste siste- temelor sunt nsrcinat cu manipularea tot felul de date sensibile, de la parole individuale i chei criptografice, la bazele de date ale securitii sociale, numere de securitate, la documente sensibile i traficul de voce. Din pcate, de securitate oferite de operare de mrfuri sisteme este de multe ori inadecvate. Sigura componente OS nu includ doar kernel-ul, ci, de asemenea, drivere i de servicii de sistem, care rula cu privilegiu (de exemplu, daemon care ruleaz ca root n Linux). Aceste componente cuprind, n general, un corp mare de cod, cu larg suprafeele de atac care sunt frecvent

vulnerabile la bug-uri exploatabile sau greite. Odat ce un astfel de cod privilegiate este compromis, o Atacatorul a obine accesul complet la datele sensibile de pe un sistem. n timp ce unele aspecte de securitate i de aceste sisteme vor continua s se mbunteasc, credem c presiunile concureniale pentru a oferi functionalitate mai bogat i s pstreze compatibilitatea cu aplicatiile deja existente vor pstra complexitatea unor astfel de sisteme de nalt, precum i asigurarea lor sraci. Pentru a ameliora aceast problem, muli au ncercat s reabilitare mai mare de asigurare de medii de execuie pe baz sys- temelor. Eforturile anterioare au explorat cereri de executare Han- manipularea datelor sensibile n maini separate virtuale [10, 29, 8], utiliznd sigur co-procesoare [7], sau schimbarea procesor arhitectura s introduc mecanisme de protecie care protejeaz ortogonal apli- publicrii datelor din sistemul de operare [6, 13, 16, 19, 27]. Din pcate, aceste cererii, n general, schimbri majore n modul n care aplicaiile sunt scris [7, 8, 16, 18, 28] i folosite [8, 10], i modul n care sistemul de operare a resurselor sunt gestionate [10, 29]. Plecri att de radicale prezint un substanial obstacol n calea adoptrii. Va oferim o alternativ ntr-un sistem numit umbri. Peste- umbra protejeaz aplicatii mai vechi de marf de operare- Sisteme de ING-le n funciune. Spre deosebire de alte abordri, nu necesita schimbri la sistemele de operare existente sau aplicaii, nici ad- vicii hardware sprijin. n schimb, acesta funcioneaz prin extinderea iso- capacitile regulament a stratului de virtualizare pentru a permite protecia entiti n interiorul unei masini virtuale. Pune n umbr adaug aceast protecie printr-o tehnic nou numit multishadowing, care echilibreaz nivelul suplimentar de indirec- pentru aduli, oferit de virtualizare de memorie ntr-o main virtual mon- itor (VMM). Conceptual, o VMM tipic menine un unu-la- o cartografiere de la clienilor "fizice" se adreseaz n main real adrese. Multi-shadowing nlocuiete acest lucru cu un unu-la-mai-muli, context-dependente de cartografiere, oferind mai multe vizualizri ale clienilor de memorie. Pune n umbr foloseste acest mecanism s prezinte un AP- multiplicare cu scopul de text clar a paginilor sale, precum i sistemul de operare cu un Vedere criptate, o tehnica numim cloaking. Criptare pe baz de de protecie a resurselor permite s rmn accesibile pentru sistemul de operare, dar sigur, se permite de a gestiona resurse, fr a compromite cerere de confidenialitate sau integritatea. Cloaking este o primitiv low-level, care funcioneaz pe baz mem- pagini ORY. Cu toate acestea, aproape toate resursele superior nivel de aplicaie inclusiv cod, date, fiiere, chiar i fluxurile de IPC - sunt deja de om n vrst de memorie ca-mapate obiecte de sisteme de operare moderne, sau pot fi adaptate ca atare. Ca rezultat, cloaking este suficient de generale pentru a proteja toate resursele unei cereri majore.

Utilizarea cloaking pentru a proteja o aplicaie care ruleaz pe o motenire nemodificat OS necesit unele modificri la executarea normal en- vironment. Pentru a face aceste schimbri mentinand in acelasi timp com- patibility, eclipseze introduce un shim la timpul de ncrcare n ad- spaiu rochie de fiecare cerere de a media toate nvluite comunicare TION cu sistemul de operare. Cu asisten din partea VMM, a shim inter- pune la evenimente, cum ar fi apelurile de sistem i de livrare de semnal, modificarea semantica lor pentru a permite partajarea resurselor n condiii de siguran ntre un nvluit cerere i o ncredere sistem de operare. Urmtoarea seciune prezint obiectivele noastre de design i modelul de ameninare pentru umbri. Seciunea 3 clieni sistemelor virtualizate de memorie, i descrie extensii pentru a sprijini multi-shadowing i cloaking. Seciunea 4 prezint provocrile care apar atunci cnd se aplic cloak- ING a proteja aplicatii reale, i ofer o privire de ansamblu asupra Umbri arhitectura. Seciunea 5 descrie modul n care shim i VMM adapteze cererile pentru un mediu de mascat, i seciunea 6 explic modul n special, apelurile de sistem sunt mediate. Seciunea 7 dis- cusses cum metadate criptografic este gestionat i de stocat, la pro- protecia mpotriva atacurilor reordonare i reluarea. Seciunea 8 evalueaz noastre punerea n aplicare n VMM folosind VMware mari nemodificat AP- plications care ruleaz pe un kernel Linux nemodificat. Seciunea 9 dis- cusses activitatea viitoare. Lucrrile conexe este examinat n seciunea 10, i ne rezuma concluziile noastre n seciunea 11. 2. Proiectare goluri Pune n umbr ofera o ultima linie de aprare a datelor n aplicare caz de un compromis sistem de operare. Vom ncepe cu o discuie de ce Umbreasc obiective ntregului cerere de protecie, precum i ameninrile se ncearc s le abordeze. 2.1 Total-Aplicaie pentru Protecia Am fost motivai de a construi un sistem practic care ar putea fi adoptate pur, desfurat treptat, i utilizate pentru diverse aplicaii. Ca urmare, am conceput pentru a proteja ntregul eclipseze existente aplicaii in situ, n sistemele existente de operare de mrfuri. Acest abordare are mai multe avantaje: Uurina de adoptare. Lucrrile anterioare privind protecia aplicaiilor renelegat de partiionare o cerere n protejate i neprotejate Piese de schimb fornd dezvoltatorii pentru a modifica aplicaiile lor puternic [8, 28] sau port la un nou sistem de operare [29]. Modificri la modul n care software-ul este ambalat i utilizate pot fi necesare, de asemenea, [10, 29]. Suport pentru diverse aplicaii. Soluii pentru furnizarea superior de asigurare sunt deseori limitate la un set limitat de aplicaii sau de date, cum ar fi parole

[8, 7]. Cu toate acestea, datele sensibile este remarcabil diverse, de la bazele de date de numere de card de credit, la fiiere care conin medical pacientului informaii. Date sensibile in aplicatii reale adesea nu se preteaz a fi plasat ntr-o separat ngrijit aplicaii container, precum i de restructurare este adesea imposibil. Cale elementare care Assurance Superior. Chiar i dup luarea sistem de operare din baza cererii de calcul sigura, aplicatii mari, complexe vor avea n continuare de asigurare semnificativ preocupri. Aplicaii Refactorizare n mai critice i mai puin piese critice de funcionare n domeniile de protecie separat [8, 28] este n cele din urm un gol convingtoare. Pune n umbr ofer o elementare calea de a atinge acest lucru, astfel cum deghizare poate fi folosit pentru ntreaga apli- TION protecie, precum i cu granulatie fina compartimentarea. 2.2 Modelul Amenintare Pune n umbr mpiedic sistemul de operare al clienilor de la lectur sau modificarea codul aplicatiei, de date i registrele, dar nu face nici la- ispiti s ofere disponibilitate n faa unei ostil sistem de operare cerere de acces la date ascuns, inclusiv de la DMA virtuale I / O dispozitive, dezvluie numai date n form criptat. Secretului de date, ntegrity, comandarea i prospeime sunt protejate pn la rezistena de criptografie utilizate. n cazul n care sistemul de operare sau un alt cod ostil ncearc s moderni- ify datele criptate, cererea va fi reziliat. Transferuri de control ctre i de la o cerere de autorizare sunt nvluite- TED numai la bine-definite punctele de intrare i de ieire prin mecanisme cum ar fi apelurile de sistem i de livrare de semnal. Registrele de aplicare sunt de asemenea, protejate de sistemul de operare, i sunt salvate i restaurate n siguran la intrarea i ieirea din contextul unei cereri de executare lui. Pesteumbra pot proteja, de asemenea, informaii comun ntre nvluite apli- cererile prin sistemul de fiiere, memoria partajat sau alte forme de IPC. Un nucleu ru intenionat poate observa nc de memorie o cerere de modele de acces, i se msoar momentul n care cererea cod sec- tions s ia pentru a finaliza. n cazuri extreme, astfel de canal lateral informaii informaii se poate scurge informaii private, inclusiv aplicarea crypto tastele [15]. Pune n umbr nu protejeaz mpotriva acestor lateral-canal atacuri. Cu toate acestea, cele mai multe contemporan criptografice aplicare Codul (cum ar fi OpenSSL) este conceput pentru a rezista atacurilor cu canal lateral. Securitatea este n cele din urm limitat de aplicarea a fi protejate. Deficiene logice sau semantice n cerere, cum ar fi un ex- buffer overflow ploitable, sau o comand DumpMyMemory, ar putea permite unui sistem de operare ru intenionat s-l pcleasc s dezvluie datele sale, sau altfel exploata aceasta. Implicaiile rea intenie de schimbare a comportamentului de piese

aparent inofensive ale apelului de sistem API, cum ar fi cele pentru gestionarea identitii i de concurenta, sunt nc n mare msur nestudiate. Asigurarea Calitii n umbr este n cele din urm limitate prin VMM. n timp ce punerea n aplicare noastre actuale utilizeaz VMM VMware, o mult simple, de nalt asigurare hypervisor-ar putea fi utilizate pentru a rula un VM unic n siguran. Indiferent, eclipseze ofer un valoros strat suplimentar de aprare n profunzime. Ca model de protecie este ortogonal la faptul c a OS oaspete, aplicaii protejate necesit nu privilegii suplimentare n clienilor. Ne face nici o ncercare de a proteja reeaua de I / O, astfel cum aceasta se adreseaz de tehnologiile existente, cum ar fi SSL. Dei o cale sigura pentru introduse de utilizator i afiarea sigur este, de asemenea, de dorit [8], i ar putea fi facilitat de umbr, nu am ncercat s susin acest lucru n sistemul actual. 3. Multi-Shadowed Deghizare n aceast seciune vom examina modul tradiional virtualizate de memorie sistem- melor de munc, i explic modul n care acestea pot fi extinse pentru a sprijini multi- shadowing. Multi-shadowing este apoi cuplat cu criptare a punerea n aplicare a cloaking, oferind att criptate si necriptate punctul de vedere al memoriei. 3.1 clasic de memorie de virtualizare Sistemele convenionale de operare utilizeaz tabele pagina in harta virtual adrese de adrese fizice cu granularitate pagina. Un virtuale numr de pagin (VPN) este mapat la un numr de pagin fizic (PPN), i VPN-la-PPN traducerile sunt memorate n cache de ctre un scris n Biblie: hardware. Un monitor clasic main virtual (VMM) prevede fiecare vir- tractuale main (VM), cu iluzia de a fi un fizic dedicat masina care este pe deplin protejat i izolat de alte virtuale ma- Spinali [24]. Pentru a sprijini aceast iluzie, memoria fizic este virtualizat prin adugarea unui nivel suplimentar de translatare de adrese. Termenii main adresa i numrul paginii main (MPN) sunt de obicei utilizate pentru a se refer la hardware-ul de memorie real [4, 30]. n contrast, "fizic" Memoria este o abstracie software care prezint iluzia de hard- Articole de memorie la un VM. Ne referim la adresa obinute efectuate printr-un sistem de operare oaspete ntr-un VM ca maparea unei clienilor virtual Numrul paginii (GVPN) la un numr clienilor pagina fizic (GPPN). The VMM menine o structur de date pentru fiecare pmap VM la magazin GPPN-la-MPN traduceri. The VMM, de asemenea, de obicei, de om vrstele tabele separate pagina umbra, care conin GVPN-la-MPN mappings, i pstreaz-le n concordan cu GVPN-la-GPPN maprile gestionate de sistemul de operare al clienilor [1]. Deoarece TLB hardware-ul cache directe GVPN-la-

MPN mapri, memorie ordinare consultai- ences executa fr aeriene de virtualizare suporta. 3.2 Multi-shadowing Sistemelor existente de virtualizare prezint o imagine unic a clienilor "Fizice" de memorie, emularea fidel proprietile reale hardware-ul. One-launu-la-GPPN MPN mapri sunt de obicei le- omeri, suport fiecare pagina clienilor fizice cu o main de distinct pagina. Unele sisteme de punerea n aplicare multe-la-unu maprile spri- Port memorie partajata; harti de exemplu, transparent schimbul de pagini multiple GPPNs copia-on-a scrie ntr-o singur MPN [4, 30]. Cu toate acestea, existente sisteme de virtualizare nu ofer suport flexibil pentru cartografierea GPPN un singur MPNs multiple. Multi-shadowing este un mecanism nou care accept de context dependente, unu-la-mai-muli-la-GPPN MPN mapri. Conceptual, mai multe mese pagina umbra sunt folosite pentru a oferi puncte de vedere diferite de Comentariile memorie fizic n contexte diferite umbr. "Contextul" care determin care vizualiza (umbr n tabelul de pagini) de a utiliza pentru a-anu Acces de memorie specifice cu pot fi definite n termeni de orice stat accesibile la VMM, cum ar fi inelul de protecie actuale, n tabelul de pagini, n- indicatorul de construcie, sau alte criterii. Sistemele tradiionale de operare si arhitecturi de procesoare im- plement domenii ierarhice de protecie, cum ar fi inele de protecie [25]. Multishadowing ofer o dimensiune suplimentar de protecie ortogonale a ierarhiilor existente, care s permit o gam larg de uncon- politicilor de protecie convenionale. 3.3 Memorie Deghizare Cloaking combina mai multe umbre, cu criptare, care prezint puncte de vedere diferite de memorie - plaintext i criptate - pentru diferite Comentariile contexte. Utilizarea noastr de criptare este similar cu XOM [19, 18], care a modificat sys-att arhitectura de procesor i de funcionare tem pentru a cripta i izola memorie aplicare. Termenul de "cloak- ING "a fost de asemenea folosit de ctre Intel LaGrande Tehnologie (LT) [13], care a introdus un mecanism arhitecturale diferite pentru a crea domenii ortogonale de protecie. n contrast cu XOM i LT, ne virtualizare bazate pe deghizare nu necesit modificri ale arhitectura de procesor, sistem de operare, sau aplicaii. De fapt, deghizare pe baza multi-shadowing reprezint o modificare relativ mic la funcionalitatea de baz MMU deja puse n aplicare de ctre un VMM. Am descrie iniial utiliznd o deghizare la nivel nalt model. Detalii privind gestionarea metadatelor i integrare cu sistemele existente sunt prezentate n seciunile mai trziu.

Pagina single, criptate / necriptate Vizualizri. Noi reprezentm fiecare GPPN folosind doar un singur NCP, dinamic i criptarea i de- cripta coninutul su, n funcie de punctul de vedere accesarea n prezent pagina. Aceasta funcioneaz bine, din moment ce cteva pagini sunt accesate simultan att de cerere i kernel-ul n practic. Ca-optimizarea TION, sistemul ar putea pstra dou read-only copii ale paginii, o criptate, i un text clar, pentru pagini care sunt citite simultan din ambele puncte de vedere. Cnd o pagin este nvluit accesat din afara umbr contextul din care face parte, a VMM cripteaza prima pagina, folosind un vector proaspete, initializare aleatoriu-generate (IV), apoi ia o H securizat hash a acestui text cifrat. Perechea (IV, H) este stocat siguran, pentru o utilizare viitoare. n timpul decriptare, hash corect este, n primul verificate. Dac verificarea eueaz, cererea este ncheiat. n cazul n care reuete, pagina nvluite este decriptat, i ncasrile de execuie 1 Unele VMMs x86 face o hart static GPPN singur MPNs multiple emula linia A20 motenire, pentru compatibilitate cu aplicaiile n mod real. Linia A20 forelor de bii adresa fizic de la 20 la zero, aliasing 1MB adiacente regiuni de memorie Figura 1. De baz Deghizare protocol. Diagrama de stare de tranziie pentru meninerea secretului i integritii unei pagini nvluit singur. Apli- TION afiri R A i scrie W A manipula plaintext coninutul paginii, n timp ce citete nucleu R K i scrie W K utilizai o versiune criptat a paginii. A H sigure la hash este calculat i stocat imediat dup pagina de criptare, i verificate imediat nainte de decriptare pagina. ca de obicei. Prin verificarea hash nainte de decriptare, orice ncercare de a paginile corupte ascuns vor fi detectate. Pune n umbr folosete n prezent o singur cheie secret K VMM gestionate de VMM pentru a cripta toate paginile, a se vedea seciunea 7.7 pentru detalii. Criptare AES-128 folosete n modul CBC, i hashing foloseste SHA- 256; ambele sunt constructii standard. Un integritii-ar putea doar modul de fi susinute cu uurin, dar nu este parte a punerii n aplicare actuale. De baz Deghizare protocol. Luai n considerare o singur clienilor "fizic" pagina (GPPN). n orice moment, pagina este mapat n numai o tabelul de la pagina umbra - fie o umbr cerere protejate utilizate de ctre un utilizator nvluite-spaiu proces, sau umbra sistemul utilizat pentru toate celelalte acces. n cazul n care pagina este mapat n aplicare umbra, coninutul su sunt plaintext obinuite, i aplicarea citete i scrie proceda n mod normal. Figura 1 prezint de baz diagrama de tranziie de stat pentru om mbtrnire pagini ascuns. n cazul n care pagina ascuns este accesat prin intermediul

Sistemul de umbr (de tranziie 1), VMM unmaps pagina din umbra cerere, cripteaz pagina, genereaz un hash de integritate, i hri pagina in umbra sistemului. Kernel-ul poate apoi citi coninutul criptat, de exemplu, pentru a schimba pagina de pe disc, i poate suprascrie, de asemenea, coninutul su, de exemplu, s schimbe ntr-o anterior criptate Pagina de pe disc. n cazul n care pagina este criptat ulterior accesat prin intermediul AP- umbra multiplicare (tranziiile 2 sau 3), VMM unmaps pagina din umbra sistemului, verific hash sale de integritate, decripteaza pagin, i hri pagina in umbra cererea. Pentru o-AP citete multiplicare (de tranziie 3), pagina este mapat read-only i a (IV, H) este reinut. n cazul n care pagina este mai trziu scris prin aplicarea (De tranziie 4), (IV, H) este eliminat, iar protecia este pagina actualizat la citire / scriere. Dac pagina este n schimb accesat de nucleu (De tranziie 5), VMM procedeaz ca i cum n tranziie 1, cu excepia faptului c hash pentru pagina (nemodificat) nu este recalculat. Read-only de stat plaintext, n cazul n care (IV, H) este reinut, este necesare pentru a gestiona n mod corect n cazul n care kernel-ului n mod legitim cache o copie a coninutului paginii criptate. De exemplu, aceast ar putea aprea n cazul n care o pagin de nucleu swap nvluit de disc, care este mai trziu, n paginate ca urmare a unei cereri de citire, iar apoi schimbat n din nou, nainte de aplicarea se modific. Nucleu pot optimiza a doua paginaout, observnd c pagina nu este murdar, i sim- unmap ply pagina fr a citito, din moment ce de pe disc interschimba Figura 2. Arhitectura umbri. VMM impune dou vir- Bariere tualization (linii de gri). Un izoleaz clienilor de la gazd, i alte tulpini criptografice aplicaii nvluit de la sistemul de operare al clienilor. Shim coopereaz cu VMM s intervin cu privire la toate debit ntre cererea de ascuns i de sistemul de operare. copie este nc valabil. n cazul n care (IV, H) au fost aruncate, nu ar fi posibil s se decripta pagini dup ce este schimbat napoi in ch Cloaking este compatibil cu o copie-on-write (COW) tehnici de pentru schimbul de pagini identice n cadrul sau ntre mainile virtuale. Plaintext pagini pot fi partajate n mod transparent, i criptare pagina manipulate ca un COW vina. Virtual DMA. Cloaking este, de asemenea, compatibil cu dispozitive virtuale faptul c memoria clienilor acces folosind DMA. De exemplu, s presupunem c nucleu clienilor efectueaz disc I / O pe o pagin de memorie mascat printro virtuale SCSI adaptor. Pentru un disc citit, coninutul ascuns pagina deja se cripteaza pe disc, i VMM permite pur i simplu kernel-ului de a emite o cerere DMA pentru a citi pagina.

Pentru o scriere pe disc, msurile luate de ctre VMM depinde de starea actual a paginii ascuns. Dac pagina este deja criptat, the VMM permite DMA s fie efectuate n mod direct. Cnd pagina este in plaintext read-only de stat, VMM cripteaza prima pagina cu coninutul su existente (IV, H) ntr-o pagin separat, care este utilizat pentru operaiunea DMA. n mod similar, n cazul n care pagina este in plaintext citire-scriere de stat, VMM cripteaz coninutul su ntr-o pagin separat utilizate pentru funcionarea DMA. Pagina de ascuns apoi tranziii la starea read-only plaintext, si este asociat cu nou- generat (IV, H). Reinei c, n ambele state plaintext, n original Pagina clienilor este nc accesibile n form plaintext la cererea introductiv, deoarece o copie tranzitorie criptat este utilizat n timpul real DMA. 4. Prezentare umbri Cloaking este o primitiv low-level, care protejeaz intimitatea i integritatea de pagini de memorie individuale. Umbri valorific aceast mecanism de baz la aplicaii mantie ntregi, criptografic izolarea resurse cerere din partea sistemului de operare. Figura 2 ofer o privire de ansamblu asupra arhitecturii umbri. Un singur VM este reprezentat, constnd dintr-un sistem de operare oaspete, mpreun cu aplicatii multiple, dintre care unul este ascuns. The VMM impune o barier de virtualizare ntre cererea i nvluit de operare, similare cu bariera se impune ntre sistemul de operare gazd i clienilor hardware-ul. Pune n umbr introduce un shim n spaiul de adrese a cererii de ascuns, care coopereaz cu VMM la medieze toate interaciunile cu sistemul de operare. Dndu-i seama obiectivul de proiectare umbri a ntregului aplicare de protecie pentru aplicaii care ruleaz pe nemodificate nemodificat com sisteme de operare modity sa dovedit a fi o provocare. n aceast seciune, vom descrie o serie de provocri-cheie, schi la nivel nalt de soluii, i explica n cazul n care mai multe detalii tehnice complete pot fi gsite n subseciunile ulterioare. Contextul de identificare. The VMM trebuie s identifice con-clienilor accesarea textului o resurs nvluit precis si sigur, n vederea pentru a utiliza n tabelul de pagini cu umbra corect GPPN-la-MPN vizualiza. Seciunea 5 explic modul n umbr foloseste shim pentru a ajuta la identifica contexte cerere, fr a se baza pe un sistem de operare nu este de ncredere. Secure de transfer de control. Cererile trebuie s interacioneze cu Sistem de operare pentru a efectua o munc util, i trebuie s fie adaptate pentru nvluite execuie. Pune n umbr efectueaz aceast adaptare prin injectarea unei shim n spaiul de adrese de fiecare cerere ascuns. The VMM coopereaz cu shim s pun n aplicare o trambulin transparent care se interpune pe toate transferurile de control ntre aplicarea i sistem de operare. Mecanica

detaliat a shim pe baz de interpunere pentru ntreruperi, defecte, i apeluri de sistem sunt discutate n seciunea 5. Sistem de apel de adaptare. Cele mai multe apeluri de sistem necesit doar simple Argumentul de triaj ntre memorie i nvluit uncloaked. Altele, cum ar fi fiier Operaii I / O, nevoie de emulare mai complexe. De exemplu, scrie i s citeasc apelurile de sistem sunt puse n aplicare folosind mmap pentru criptate I / O. Seciunea 6 explic modul n special, apelurile de sistem sunt adaptate pentru executarea ascuns. Mapping Resurse ascuns. Pune n umbr trebuie s urmrirea corescoresponden ntre adresele virtuale i aplicarea nvluite re- surse. Plcii de adaos este responsabil pentru pstrarea o list complet a hrii- ping-uri, care este memorat n cache de VMM. Plcii de adaos se afl n aceeai adresa clienilor virtual cu cererea, i se interpune pe toate apelurile c l modifice, cum ar fi mmap i mremap. O mai detaliat dis- cussion este prezentat n seciunea 7. Gestionarea Metadate de protecie. VMM trebuie s menin pro- metadate protecie, cum ar fi (IV, H) perechi, pentru fiecare pagin criptate, pentru a asigur confidenialitatea i integritatea. Pentru maprile activ, VMM mainmuni un cache n memorie metadate care nu este accesibil clienilor. Metadatele asociate cu resurse persistente ascuns, cum ar ca fiier sprijinit de regiuni de memorie, sunt stocate n siguran n cadrul clienilor sistem de fiiere. Seciunea 7 conine o tratare detaliat a umbri de gestionare a metadatelor. 5. Integrare cu SO cu Deghizare The VMM interpune pe perioada de tranziie ntre nvluite user-mode cerere i kernel-ul clienilor, folosind tabele distincte umbra pagina pentru fiecare. Privilege-mode includ tranziiile asincron inter- rupts, defecte, i de semnale, precum i apeluri de sistem emise de ascuns aplicaie. Medierea aceste interaciuni ntr-un sigur, spate- mod compatibil impune adaptarea protocoalele utilizate pentru a interaciona cu sistemul de operare, precum i unele apeluri de sistem. Acest lucru este fa- cilitated de un shim mici, care este ncrcat ntr-o aplicaie de nvluit spaiu de adrese la pornire. Vom descrie shim n contextul nostru Linux imple- TION, dei credem c aceast abordare ar putea fi aplicat n alte sisteme de operare, inclusiv Microsoft Windows. n timp ce sis- Interfaa TEM apel variaz n funcie de kernel, low-level mecanisme pentru Vectorizare apel de sistem, de manipulare vina, i partajarea de memorie sunt legate mai strns pentru a arhitectura de procesor dect la un anumit sistem de operare. Vom ncepe prin a discuta funcionarea de baz a shim, cum l ajut pe VMM

gestionarea identitii, precum i interaciunea acestuia cu nucleu i VMM de a se adapta cererii de executare ascuns. Suport pentru defecte de manipulare, ntrerupe, i solicit sistem este prezentat n detaliu. O discuie a modului n care solicit, n special a sistemului sunt mediate este amnat pn la urmtoarea seciune. 5.1 Shim Prezentare Plcii de adaos este responsabil pentru gestionarea tranziii ntre ascuns n aplicare i sistemul de operare. Acesta utilizeaz o explicit Interfata hypercall pentru a interaciona cu VMM, i anume, un loc sigur mecanism de comunicare ntre clieni i VMM. Acest aranjament permite operaiuni relativ complexe, cum ar fi OS- sistem specific apel proxy, care urmeaz s fie amplasate n usermode shim cod, n loc de VMM. Aceasta faciliteaz, de asemenea, extensibilitate, dotare, ING un loc convenabil pentru a aduga personalizate sau OS-specifice funcionalitatea fr modificarea VMM. Shim de memorie. n memorie, shim este format din ambele ascuns i uncloaked regiuni, fiecare cu propriul su cod distinct, date si stiva spaiu. Fiecare fir de aplicare a acesteia exemplu shim proprii, precum i toate Detalii de fir-specifice utilizate de shim este pstrat n fir-locale de depozitare, prevenirea conflictelor ntre instane diferite. Shim nvluite este multi-umbr la fel ca restul de apli- cationi. Acesta este responsabil de sarcini n cazul n care ncrederea este necesar pentru a menine de protecie, cum ar fi furnizarea de bine definite punctele de intrare i de ieire pentru transferuri de control, i de date se deplaseaz ntre ascuns i uncloaked de memorie n siguran. Shim ascuns include, de asemenea, un fir nvluit context (CTC) pagina, care este pus deoparte pentru VMM pentru a stoca sen- Detalii de sensibil folosite pentru transferuri de control. Aceasta include zone pentru a economisi coninutului registrului, un tabel de puncte de intrare la funcii shim, i identitatea de contextul umbra care conine shim. Plcii de adaos uncloaked conine spaiu tampon care ofer o neu- Zona Central pentru kernel-ul i punerea n aplicare a schimbului de date uncloaked. Acesta conine, de asemenea, codul de trambulin simplu pentru a facilita tranziia de la kernel-ului la codul ascuns. Nimic din shim uncloaked este sigura sau necesare pentru protecie. n cazul n care codul sau de date este corupt, acesta va doar cauza cderea aplicaiei. Hypercall Interface. The VMM export o hypercall mic inter- fa shim. Codul Uncloaked este permis s invoce operaiunilor pentru a initializa un context nou nvluit (folosite pentru a bootstrap). Se poate, de asemenea, a efectua apeluri de a intra i a relua executarea ascuns. Deoarece de control pot fi transferate numai ctre un context nvluite existent, aceste apeluri pot fi iniiate n condiii de siguran de cod nu este de ncredere. Codul de ascuns

poate face hypercalls pentru regiunile mantie de memorie noi, desigilarii ascuns existente de date, crea contexte noi umbr, i de acces utile alte interse confrunt, cum ar fi operaiunile cache metadate. Se incarca Aplicatii ascuns. Pentru a porni o aplicaie mascat, o Programul minimal frontal este rulat cu shim legate ntr-o distinct poriune de spaiu de adrese sale. Frontal real este o parte a shim; nainte de a lua msuri pentru a ncrca programul, trebuie s shim bootstrap nvluit ntr-un context. Pentru a crea un context umbr nou, shim emite un hypercall cu un pointer la el nsui i de metadate de protecie care conin hashes pentru toate paginile asociate cu cod ascuns i a datelor; a se vedea seciunea 7 pentru detalii. The VMM foloseste aceste metadate pentru a verifica integritatea sa, ca shim ascuns vor avea acces la spaiu de adrese a ascuns cerere. Astfel, pentru procesul de bootstrap un sistem sigur de protecie domeniu de aplicare, shim trebuie s fie sigura, adic nu, ru intenionat la cererea. Cererea de a crea un context nou, de asemenea, are un pointer la o parte din fir-locale de stocare n care se poate seta un VMM noi CTC. Odat ce aceast configurare este complet, VMM transferuri de control pentru a ncepe executarea n shim ascuns. Shim ascuns ruleaza apoi rutina sa de ncrcare, care prevede binar cerere, i hri n seciunile corespunztoare de memorie. La crearea regiunilor anonime de memorie sau de mapare protejate fiiere, shim efectueaz hypercalls la mascarea lor cores- corespunztoare variaz de memorie virtual. Dupa aplicarea a ascuns fost ncrcate, se pot lansa programe suplimentare. Pe o ulterioar execve, n cazul n care programul int este ascuns, programul ncrctor este prefixate la apel exec, astfel c noul program va fi, de asemenea, ascuns Identity Management. Pentru a comuta ntre tabele pagina umbra n mod corespunztor, trebuie s angajeze VMM unor proceduri de ncredere pentru identificarea contexte umbra unic. Precise de identificare a este o provocare contexte sunt asociate cu clienilor la nivel de proces abstracii, iar programarea este controlat de sistemul de operare, nu VMM. De exemplu, kernel-ul clienilor poate schimba n timp ce contexte de manipulare o defeciune sau un sistem de apel. Abordrile existente pentru VMM urmrire a clienilor la nivel de pro- procese, cum ar fi misiuni de monitorizare pentru tabelul de pagina curent rdcin n Antfarm [14], lucru destul de bine, dar nu sunt foarte simplu de manevrat. Alte sisteme, cum ar fi accesarea clienilor de stat sistem de operare de la nucleu fix adrese (De exemplu, Linux indicatorul circulante), sau avnd n magazin VMM identifica- Informaii ING la unele adrese virtuale fixe, sunt n general fragile, sau i asum pagini de cerere pot fi fixate n memoria fizic. Cel mai

important, aceste abordri nu poate fi garantat la locul de munc n prezena unui sistem de operare contradictorii. Umbreasc nevoie de o alterna- tiva pan de fixare pe baz de abordare, care s evite aceste probleme. The VMM menine un context umbra separat pentru fiecare AP- spaiu de adrese multiplicare, pentru care se atribuie o adres unic Spaiu de identificare (ASID). Fiecare spaiu de adrese poate conine mai multe fire, fiecare cu propriul su context distinct fir ascuns. n cazul n care shim ncepe executare, ea face o hypercall pentru a iniializa CTC sale. n timpul acestei iniializare, VMM scrie ASID i un sondaj valoarea n CTC, i se ntoarce la ASID apelantului. ASID Valoarea nu este protejat, i poate fi utilizat de ctre shim uncloaked. Cu toate acestea, din moment ce CTC este ascuns, valoarea aleatorie este protejat, i nu pot fi citite de ctre shim uncloaked. Hypercalls Shim c tranziia de la uncloaked la nvluite exe- cution sunt autoidentificare. Shim uncloaked trece argumente la VMM care conin ASID sale, i adresa de CTC sale. incarcatoare hypercall verific c CTC conine ateptate fugit- Dom valoare, i, de asemenea, c ASID su se potrivete cu valoarea specificat. Not c se afl n CTC ordinar, cererea unpinned virtuale memORY. n cazul n care handler hypercall constat c GVPN pentru CTC nu este n prezent, cartografiate, ea returneaz un cod de lipsa shim uncloaked, care atinge pur i simplu paginii pentru a vina-l napoi n fizic mem- ncercri ORY, i apoi hypercall. 5.2 Defeciuni i ntreruperi n timp ce o cerere este nvluit de executare, sistem de operare de intervenie este re- quired la erori de servicii sau ntrerupe, cum ar fi defecte pagina aplicarea i ntrerupe virtuale timer. Figura 3 ilustreaz fluxul de control pentru manipularea unui defect dintr-o aplicaie mascat, care implic APmultiplicare, shim asociate acesteia, kernel-ul clienilor, i VMM. Procedura pentru manipularea o ntrerupere virtual este n esen, identice. Defectul apare la pasul 1, iar controlul este transferat la VMM. La pasul 2, VMM salveaz coninutul tuturor aplicare Registrele la CTC n shim ascuns. The VMM apoi zerouri stele aplicaiei de uz general registrele pentru a preveni coninutul lor de la care se scurg n sistemul de operare. Apoi, ntoarcerea de instruciuni indicatorul (IP) i pointerul de stiv (SP), registre sunt modificate de la punctul de se adreseaz n shim uncloaked, nfiinarea o trambulin simplu pentru manipulare de la care kernel-ul va reveni dup service din vina. n cele din urm, transferurile VMM de control pentru a kernel-ului. Kernel-ul se ocup de vina, ca de obicei n pasul 3, i apoi se ntoarce la handler trambulina n programul de configurare shim uncloaked la pasul 2. n pasul 4, aceast manipulare realizeaz o hypercall auto-identificarea n VMM pentru a relua executarea ascuns. n pasul 5, VMM restabilete registrelor

salvat la pasul 2, i ntoarce de control la faulting instruire n cererea de ascuns. Reinei c tabelul de la pagina activ alternativi trebuie s fie pornit atunci cnd tranziia ntre contexte uncloaked i ascuns. Dou Pagina ntreruptoare tabelul umbra sunt obligate s se ocupe de un defect, n trepte 2 i 5. 5.3 Sistemul de Apel Redirecionare Spre deosebire de defecte i ntreruperi, care sunt destinate s fie transparente la cerere, apelurile de sistem reprezint o interaciune explicit ntre cererea de ascuns i kernel-ului. Un apel de sistem este emise de ctre aplicaia folosind standardul OS convenia de asteptare. Figura 4 descrie fluxul de control pentru tratarea unui apel de sistem dintr-o aplicaie mascat, care implic aplicarea, asociat acesteia shim, kernel-ul clienilor, i VMM. Reinei c tranziiile implicate n efectuarea unui apel sistem sunt un superset strict a tranziiile a prezentat pentru manipularea o defeciune n Figura 3. n pasul 1, cererea de ascuns efectueaz un apel de sistem, i controlul este transferat la VMM. La pasul 2, VMM salveaz coninutul tuturor registrelor aplicare la CTC n shim ascuns. IP-ul este setat la un punct de intrare n shim ascuns corespunztoare un apel sistem de manipulare de expediere, n mod similar, SP este setat la un privat stiv n shim nvluit de executare acest handler. The VMM apoi redirecioneaz de control pentru a handler expediere n shim ascuns. n pasul 3, pentru manipulare de expediere ascuns ndeplinete orice operaiuni necesare pentru a proxy apelul de sistem, n numele a cererii. Pentru unele apeluri de sistem, acest lucru poate implica argumente de triaj, copiindu-le intr-un buffer n shim uncloaked. Expediere incarcatoare emite din nou, apoi apelul de sistem, substituind marshalled argumente n loc de originalul cererii specificate valori. Ca nainte, VMM intercepteaza din nou apel de sistem. n pasul 4, VMM salveaz coninutul tuturor cereri nregis- minitrii n CTC. Reinei c CTC conine dou registru distincte memora zone: una pentru aplicarea registrele salvat mai devreme n pasul 2, i unul pentru shim registrele salvate n acest pas. The VMM apoi scrubs coninutul de pe orice registre aplicaie care nu sunt necesare de ctre sistemul de apel nucleu de interfa. IP ntoarcere i SP sunt modificate ficat punct la adrese din shim uncloaked, nfiinarea unui simplu trambulin pentru manipulare de la care kernel-ul va reveni dup executare sistemul de apel. n cele din urm, transferurile VMM de control pentru a kernel-ului. Kernel-ul execut apelul de sistem, ca de obicei n pasul 5, i apoi revine la rutina de tratare trambulina n programul de configurare shim uncloaked n

pasul 4. n pasul 6, aceast manipulare realizeaz o hypercall autoidentificarea n VMM pentru a intra executare ascuns. n pasul 7, VMM restabilete shim registrele salvat n pasul 4, i CV-uri de execuie n conductorul de expediere ascuns. Manipulare de expediere nvluit n continuare de executare n pasul 8, percare fac orice operaiunile necesare pentru a termina proxy apelul de sistem. Pentru unele apeluri, acest lucru poate implica unmarshalling valori rezultat, i copiindu-le n memorie pentru aplicaii ascuns. Expediere Han- dler face apoi o hypercall n VMM, solicitant resump- aplicare a cererii ascuns. n pasul 9, VMM restaureaz cerere registrele salvat la pasul 2, i ntoarce de control la nconstrucii dup apelul de sistem original, n cererea. Ca i n cazul de manipulare vina, doar dou tranziii necesit n tabelul de pagini umbr comut ntre uncloaked i nvluite con- texte, n timpul paii 4 i 7. 6. Adaptarea solicit Sistem Cloaking schimb neaprat modul n care sistemul de operare poate gestiona procesul de memorie - aceasta nu se poate modifica sau introduce orice fel de a mprti cu- n aplicare de ajutor. Se schimba, de asemenea, modul n care transferurile OS con- trol - aceasta ramura poate doar la bine-definite punctele de intrare i de ieire n termen de cererea. Adaptarea la aceste schimbri necesit o adaptare a semantica de o varietate de apeluri de sistem. 6.1 Pass-through i triaj O majoritate de apeluri de sistem poate fi transmis pn la OS cu nici o speciale de manipulare. Acestea includ apeluri cu argumente scalar faptul c nu au efecte secundare interesante, cum ar fi frumos getpid, i sincronizare. Plcii de adaos nu trebuie argumente pentru a modifica aceste apeluri sistem, astfel shim ascuns este ocolit cu totul, rezultnd n controlul curg la fel ca faptul c, n Figura 3. Reinei c VMM n sine nu este contient de de semantic apel de sistem; n timpul iniializrii, shim pur i simplu indic ce numr de apel de sistem pot fi ocolite. Solicit Multe alte non-scalare argumentele pe care n mod normal re- corul sistemul de operare pentru a citi sau modifica datele din cererea de nvluite de ad- spaiu rochie, de exemplu, nume de cale i sockaddrs struct. Astfel de argumente sunt marshalled ntr-un tampon n shim uncloaked, i registrele sunt modificate astfel nct apelul de sistem folosete acest tampon ca surs nou (sau destinaie) pentru non-scalare de date. Dup ce sistemul de apel completeaz, rezultatele sunt copiate napoi n aplicarea ascuns, dac este necesar. De punere n aplicare toate acest manual ar fi plictisitor i predispusa la erori, asa ca am genera loc acest cod n mod automat de la un caietul de

sarcini simple, precum i codul de rezultat este utilizat de ctre shim. 6.2 Exemple mai complexe Mai multe apeluri sistem necesit modificri pentru a rezolva incompatibiliti semantic ntre ascuns i semantica normal OS. Mai nti descrie apelurile de sistem, care necesit non-triviale emulare, i apoi discuta despre crearea de fir si de tratare a semnalelor. Emulare. Suntem obligai s imite semantica a mai multor Sistemul de apeluri. De exemplu, conducta creeaz n mod normal, o list de ateptare n nucleu pentru octei comunicare. Nu putem proteja cu uurin acest lucru, astfel nct n schimb emulam o conduct ntre aplicaii ascuns cu o coad n memorie partajat ascuns. Pentru a pstra n mod normal bloc- Semantica ING de apeluri, cum ar fi citi, scrie, i de sondaj, citete i scrie sunt efectuate peste eav n mod normal, cu excepia faptului c expeditorul trimite zerouri n loc de date reale. Pentru receptor, zerouri sunt citite, apoi date reale sunt copiate din coada protejate. Sprijin pentru futex (Linux rapid mutex) solicit este un alt exemplu de unde emu- regulament este necesar, astfel cum n mod normal implic punerea n aplicare sistemul de operare directe acces la procesul de memorie. Fir fondarii. Manipularea apeluri de sistem clon i furculi este deosebit de interesant, deoarece acestea sunt strns legate de modul n care shim gestioneaz resursele. Un apel clona incepe prin alocarea fir-locale Depozit pentru firul noi. n continuare, copilului ascuns context fir (CTC), este de configurare de a face o copie a lui mam CTC, i de stabilire toi indicii firlocale pentru copil. n sfrit, schimbri de anchet i SP pentru intrarea n modul ascuns n a copilului CTC, amenajarea pentru copil s nceap de executare ntr-un child_start Funcia situat n shim copilului, care va finaliza iniial- izare. n mod normal, CTC-ar fi modificat de VMM la un comutator de la ascuns la modul uncloaked. Cu toate acestea, n acest caz, al copilului CTC nu este utilizat n prezent. Astfel, pe o clona sistem de apel, numai societii-mam CTC este modificat. Noi, de asemenea, de configurare uncloaked stiva care vor fi utilizate de ctre firul clonate atunci cnd se ntorc de la apelul de sistem, astfel nct acesta vor ncepe s ruleze noul context ascuns. Dup ntoarcerea de la apelul de sistem, firul revine la mam originalul de executare context. Firul copilul ncepe executarea n child_start, aa cum este descris mai sus. Semnal de manipulare. Normal Unix semnal de manipulare semantica sunt ncompatibil cu cloaking, dup cum nu putem permite ca sistemul de operare pentru a transfera controlul ntr-o seciune de cod arbitrar ascuns. Pstrai- ING poriuni de shim non-preemptible simplific, de asemenea, punerea n ei n aplicare.

n cazul n care cererea nregistreaz un handler de semnal cu semnal, shim se emuleaz, nregistrarea conductorul n propria sa mas. Toate Stivuitoare real semnal (cele nregistrate cu kernel-ul) utiliza un singur handler situat n shim uncloaked. Acest lucru face ca pentru manipulare de semnal o hypercall la VMM imediat la primirea unui semnal, indicnd care contextul umbra a primit semnalul, semnalul c au avut loc, precum i orice parametri suplimentari de semnal. VMM analizeaz contextul ascuns i verific-sem Starea intern, pentru a stabili n ce context a avut loc semnalul: shim ascuns, shim uncloaked, aplicarea ascuns, sau alte ne- cod ascuns. n cazul n care semnalul a avut loc atunci cnd cererea ascuns a fost de executare, a VMM transferurile de control ntr-o bine-definit sem- punctul de intrare n nal shim, cu informaii relevante semnal. n cazul n care Semnalul a avut loc n timp ce shim a fost de executare, VMM continuare controalele un steag n CTC pentru a stabili dac n condiii de siguran la rollback execuie a sistemului de ultima aplicare apel la punctul de intrare, sau s amne livrarea semnalului pn la ieirea shim, atunci cnd n mod eficient de executare a a revenit la cerere. 6.3 fiiere I / O Extinderea proteciei pune n umbr de criptografice pentru fiierele de pe disc necesit interpune pe I / O apeluri de sistem aferente. Fiiere neprotejate sunt tratate folosind triaj argument simplu, n timp ce protejate fiierele trebuie s fie adaptate pentru a utiliza cloaking. Fiier criptat I / O pentru aplicaii nvluit este pus n aplicare n plcii de adaos folosind mmap. De exemplu, scrie i s citeasc apeluri sistem sunt emulat prin copierea datelor de la / de la memorie-mapate tampoane. Fiier de date este ntotdeauna mapat utiliznd pavilion MAP_SHARED, pentru a se asigura care alte procese care pot deschide acelai fiier obine o coe- cort vedere. Prin transformarea tuturor fiier I / O n memorie mapate-I / O, Detalii de fisier este decriptat n mod automat atunci cnd este citit de un nvluite AP- multiplicare, i criptat automat cnd este splat de pe disc ASID SHIM SH CTC ASID SHIM SH CTC Aplicaie (SID) Oaspete evacua sarcin pierde Daemon VMM VA GAMA RESURSE gsi MDC (De-VM) MLB (De-ASID) RESURSE METADATE (nceput, sfrit) (RID, RPN) (RID, RPN) (IV, H) osfd ASID SHIM SH CTC Figura 5. Metadate de Management pentru Protecia nucleu. Pentru a permite VMM pentru a proteja integritatea i ordonarea fiier de date, a shim ar putea avea nevoie s ncrcai metadate protecie de pe hard atunci cnd fiierul este deschis, aceasta este descris n detaliu n seciunea 7.6. Pentru eficiena, shim menine un cache de regiuni fiierul mapat; noastre punerea n aplicare actuale harti regiuni, utiliznd 1MB buci la amor- tize costul mmap de baz i solicit munmap. Utilizarea mmap pentru fiier I / O, nltur necesitatea de a pune n aplicare orice criptografiei n shim. De asemenea, criptarea i decriptarea sunt

efectueaz numai atunci cnd este necesar. O aplicaie poate citi i a scrie poriuni ale unui fiier n mod repetat, fr a provoca suplimentare decryptions. n mod similar, datele sunt criptate doar atunci cnd sistemul de operare bufeuri l pe disc. Un antet cu o singur pagin umbri este inaintea fiecarui ascuns fiier. Acest antet conine dimensiunea fiierului real, care poate diferi de la actuale de pe disc din cauza granularitate cartografiere 1MB dimensiune. Fiecare shim folosirea unui singur fiier antet hrile sale utiliznd o mmap comun, n mod corespunztor pentru a emuleaz operaiuni cum ar fi fstat i lseek. Pan de fixare, de asemenea, piese toate operaiunile care creeaz sau manipula descriptori fiier, cum ar ca DUP, i menine un tabel cu toate fiierele deschise, offseturi lor, i dac acestea sunt nvluite. Acest tabel este pstrat ntr-un anonim comun regiune pentru a urmri n mod corespunztor i a cotei de descriptori n procesul de furculie. 7. Gestionarea Metadate pentru Protecia Umbreasc introduce sistemul de operare neutre din punct de abstractiuni pentru deghizare, att resurse persistent i non-persistente, cum ar fi fiiere i private memorie regiuni. Pentru fiecare resurs, metadate de protecie, cum ar fi (IV, H) perechi, trebuie s fie a reuit s pun n aplicare vieii private i a integritii, prin care se dispune, i prospeime (pentru a preveni rollback). Figura 5 prevede o imagine de ansamblu a componentelor implicate n protecia metadate. Vom ncepe prin examinarea modului de metadate este stocat i mapat la obiecte protejate, apoi ia n considerare modul n care este folosit pentru a pune n aplicare de protecie. 7.1 Resurse protejate Fiecare resursa ascuns, cum ar fi un fiier sau memorie anonim re- Gion, este asociat cu un identificator unic de resurse pe 64 de bii (RID). Fiecare RID are un obiect de metadate corespunztoare a resurselor (RMD) faptul c metadatele stocheaz necesare pentru a decripta, verifica integritatea, i pre- servi comanda. Concret, o RMD este un set ordonat de (IV, H) perechi, cte una pe fiecare pagin criptat, adresat de ctre o pagin de resurse pe 32 de bii Numrul (RPN). n sistemul nostru actual, fiecare RMD este pus n aplicare cu o structur de date similar cu un tabel de pagin pe trei niveluri de eficient suport spatiile mari, potenial-rare adresa, de pn la 256GB. Atunci cnd o resurs este mapat n memorie, RMD su este ncrcat n cache-ul de metadate (MDC) n VMM. O singur MDC metadate cache pentru toate resursele nvluit trasate de ctre clienilor. Acest design asigur coerena metadate pentru obiecte comune, cum ar ca fiiere i regiunile memorie partajata. Atunci cnd o resurs nu este n utilizarea de ctre orice proces, RMD su este stocat pe disc ntr-un fiier de metadate. MDC ofer operaiuni de primitive pentru a obine, set, i invalida intrri de metadate,

precum i de nivel superior pentru operaiuni de clonare i persist metadate, descrise mai trziu n aceast seciune. 7.2 Spaii protejate Adresa Control acces i de partajare de resurse nvluit sunt determinate strict de un identificator unic de securitate (SID), care identific o supra- umbr de protecie domeniu. La punerea n aplicare actuale, SID este asociat cu un exemplu de cerere, care pot conine multi- procesele PLE. Procesele cu aceeai SID au acces comun la resurse ascuns. Spaiul de adrese pentru un proces este nvluit identificate printr-un identificator unic spatiu de adrese (ASID), care definete sale umbra context. Portiuni de mai multe resurse sunt nvluite Typ- soane, mapate n spaiul de adrese virtuale clienilor asociate cu o anumit ASID. VMM menine un cache per-ASID maprile de resurse n spaiul su de adrese virtuale, numita buffer-ul de metadate lookaside (MLB). The MLB este utilizat pentru harta o adres virtual la o resurs. O intrare MLB are forma (nceput, sfrit) (RPN RID,), n cazul n care ncepe i la sfritul indica intervalul de adrese virtuale n care resursa este denot cartografiate, RID resursei fi mapat, i denot RPN RPN prima cartografiere. De exemplu, dac fiierul a foo.txt 4 RID, iar pagina a treia este mapat n GVPN prima dat n spaiu de adrese virtuale, acest lucru este modelat ca (0, 4096) (4, 2). Plcii de adaos este responsabil pentru pstrarea o list complet a resurselor mapri de memorie att nvluite i uncloaked, actualizarea MLB cu privire la orice schimbare. Plcii de adaos se afl n aceeai clienilor virtuale spaiu de adrese, i se interpune cu privire la toate apelurile pe care-l modifice, cum ar fi mmap, munmap, i mremap n Linux; apar mai multe detalii n Seciunea 5. Prin delegarea aceast responsabilitate de a shim user-mode, punerea n aplicare VMM este pstrat simplu i OS-neutru. Pe un dor MLB, a VMM efectueaz o upcall n shim pentru a obine de cartografiere necesar, i instaleaz-l n MLB, ilustreaz concentrate de aciunea pierdei n Figura 5. Maprile pentru shim n sine sunt fixate n MLB, prevenind recursivitate. Reinei c, chiar dac unele bug cauzat MLB de a avea o cartografiere incorect, ea gen- oral nu-nchis, gama adresa gresita sau statutul de deghizare va cauza decriptare s eueze, sau aplicaia se va termina accesarea cifrat, determinnd-o s eueze. 7.3 Pagina Decriptarea Cand un proces acceseaz o pagin de nvluit n contextul umbra ei, sa ASID i GVPN sunt cunoscute. Dac pagina este necriptat, atunci Acces memorie veniturile n mod normal, fr nici o intervenie VMM. n cazul n care pagina este criptat, accesul va vina in VMM, deoarece GVPN nu este mapat n umbr pentru c ASID. The VMM caut adresa faulting din MLB, si foloseste indicele rezult (RID, RPN) pentru a MDC n i descrca (IV, H) este necesar pentru a decripta i integritatea

verificai coninutul paginii; a se vedea operaiunea gsi n Figura 5. Verificarea hash, i decripta pai sunt efectuate folosind protocolul descris anterior. n cazul n care decriptarea reuete, iar pagina este marcat scriere, (RID, RPN) este invalidat n MDC. Pagina este apoi zapped, i anume, eliminat din toate umbre, i cartografiat n umbra curente pentru ASID. Accesul cererea iniial este apoi permis s continue. Exist un caz special. Sistem de operare zero, de obicei coninutul unei pagini nainte de cartografiere-l n spaiul utilizator, i apli- tions depind de aceast iniializare. Dac un acces se face la un GVPN c nu este mapat n umbra actuale, precum i pentru (RID, RPN) faptul c pagina nu este n MDC, atunci acest lucru trebuie s fie apli-prima TION acces la pagina, si nu decriptare este necesar. Noi verificam c coninutul paginii sunt ntr-adevr zero umplut, i presupunnd c acest suc- ceeds, pagina este pur i simplu zapped i apoi mapat n curent umbr, i accesul la memoria original este permis pentru a continua. n sfrit, VMM stocheaz (RID, RPN), utilizate pentru fiecare decryp- TION cu GPPN asociate n structura existent pmap VMM care stocheaz GPPN-la-MPN traduceri. 7.4 Pagina de criptare Cnd kernel-ul clienilor (sau orice alt context, c nu se potriveste cu Cererea SID) acceseaz o pagin mascat, GPPN su este cunoscut, dar ASID sale i GVPN nu poate fi cunoscut. Accesul ar putea proveni din orice context clienilor, de exemplu, n timpul unei operaiuni virtuale DMA. Dac Pagina este deja criptat, apoi veniturile memorie cu acces n mod normal, fr nici o intervenie VMM. n cazul n care pagina este necriptat, accesul va vina in VMM, deoarece nu este mapat n umbra curent. n cazul n care pagina este inscriptibil, the VMM genereaz o IV aleatorii noi, pentru o pagin de readonly, a existente IV este refolosit. The VMM cripteaz apoi coninutul paginii, i calculeaz o H securizat hash asupra coninutului criptat. Aceasta magazine rezultat (IV, H) n MDC, la anterior (RID, RPN) asociate cu GPPN n pmap timpul de decriptare ultimele sale. Pagina se apoi zapped i cartografiat n umbra actuale, i Acces pentru kernel-ul original este permis pentru a continua. 7.5 Clonarea Metadate MDC ofer, de asemenea, pentru a facilita operaiunile de sprijin pentru adspaiu clonarea rochie, cum ar fi clona sau furculi n Linux. Presupune un proces ascuns furcile un copil. Imediat dup bifurcaie, echivalentul- procesele de ORL i copilul cota lor de regiuni privat memorie copy- pe-a scrie (COW). Pune n umbr trebuie s se asigure c metadatele ca- sociated cu toate

paginile COW nemodificate rmn accesibile i sincronizate ntre printe i copil. Atunci cnd are loc furca, fiecare dintre RMDs societii-mam privat este clonate cu nerbdare pentru copil, prin copierea tuturor de metadate existente intrrile, i atribuirea un nou RID. Acest lucru asigur c metadatele pentru toate paginile criptate nainte de furc rmn la dispoziia copilului, chiar dac mai trziu mam le modific. Cu toate acestea, s presupunem c societatea-mam cripteaz o pagin de cow-partajate dup furca; un acces ulterior de ctre copil nu ar gsi metadatele necesare pentru decriptare. O abordare este de a cripta cu fora toate paginile din mam n timpul bifurcaie, dar acest lucru ar fi extrem de ineficient, deoarece cteva pagini privat rmn criptate n practic, excepia cazului n care sistemul este schimbarea puternic. O alt opiune este de a stoca o backmap complete pentru fiecare GPPN, care conine toate (ASID, GVPN) perechile care aceasta harta, dar acest lucru ar fi extrem de complex. Soluia am implementat este, s reflecte cererea de Procesul de copac n MSD; fiecare RMD are pointeri la mam, n primul rnd copil, i lng RMDs frate, dac este cazul. MDC menine de asemenea, o la nivel mondial pe 64 de bii numrul de versiune, care este incrementat la fiecare RMD crearea i decriptare pagina. O versiune sunt stocate mpreun cu fiecare RMD, setat la versiunea global atunci cnd este creat. n mod similar, o versiune este stocate mpreun cu (RID, RPN) n pmap pentru fiecare GPPN, i setat la versiunea global de fiecare dat cnd este decriptat. Ori de cte ori o pagin este criptat, (IV, H) este stocat la asociate (RPN RID,) cu GPPN, i, de asemenea, recursiv propagat la orice RMDs copil cu versiuni mai mare dect versiunea GPPN lui. Astfel, metadate este propagate la toi copiii cu pagini al cror coninut a existat nainte de la furculi, dup cum dorii. Un punct subtil demn de remarcat este c, atunci cnd mam modific o pagin de vaca, acesta va fi criptate (i metadatele propagate asupra copilului), nainte de modificarea sa, deoarece clienilor OS trebuie s citeasc mai nti pagina de a face o copie privat pentru mam n timpul vina COW. 7.6 Persistena Metadate RMDs asociate cu regiunile de memorie nonpersistente (de exemplu, apli- stiva de cationi, date, sau de memorie partajat anonime), poate fi aruncat atunci cnd nu mai este n uz. Cu toate acestea, RMDs asociate cu persistenta coninut, cum ar fi regiunile de memorie fiier garantate, trebuie s fie salvate pe disc. Fiecare fiier ascuns are un fiier de metadate asociate n clienilor pentru stocarea RMD sale persistent. Fiier integritatea metadate este protejat de un cod de autentificare mesaj (MAC), stocate n fiierul, calculat folosind o cheie derivate din K VMM cheie secret VMM . Actual punerea n aplicare folosete HMAC cu SHA-256.

Cand un proces deschide un fiier ascuns, a shim face o hypercall pentru a determina dac metadatele pentru RID sa este n MDC. n cazul n care metadate nu este prezent, shim realizeaz o hypercall s aloce o noi RMD pentru c RID, citete fiierul de metadate ntregul, i trece coninutul acestuia la VMM, care verific integritatea acestuia, aa cum este ilustrat prin aciunea de ncrcare n Figura 5. Rencrcare frecvent RMD sau recomputing MAC sale s-ar putea ridica probleme de eficien. Acest lucru poate fi optimizate prin meninerea RMDs cache mai mare n MDC, n loc s a evacurii ei cu nerbdare dup ce acestea au fost comise pe disc. O alt opiune ar fi pentru a stoca MAC-uri ntr-un copac hash Merkle [21], pentru a permite verificarea mai eficient i actualizri. Pentru a asigura prospeime, un numr de 128-bit generaie este, de asemenea, scris la fiierul de metadate, i protejate de MAC. VMM controalelor acest numr cu o list maestru al generaiilor valabile, atunci cnd fiierul este ncrcat. Acest numr este stocat n MSD, ca parte a RMD. Chiar nainte de evacuare, aceasta este incrementat att n RMD i comandantul list. Lista de master este stocat n clienilor, protejat de un MAC i sale contra proprii care este depozitat n afara a clienilor de ctre VMM. RMDs sunt scrise pentru a fiierelor de metadate de dosarul umbri Dae- mon (osfd). The osfd comunic cu VMM printr-un sim- PLE hypercall interfa, de votare pentru metadate, care ar trebui s fie evacuate de la MDC i a persistat pe disc. Daemon extrage meta- de date pentru toate RPNs sale valabile, obine MAC lor generate de VMM, angajeaz tot pe disc, i n cele din urm evicts din RID MDC, se refer la aciunea evacueze n Figura 5. n special, osfd daemon nu este de ncredere, i toate datele pe care le gestioneaz sunt protejate cripto- grafic. Compromis sale ar sacrifica sistem doar dis- tate, nu date de confidenialitate sau integritatea. 7.7 Key Management i control al accesului Modelul nostru de utilizare n timpul dezvoltrii a fost de a umbri instituit un VM curat i manta o cerere nemodificat n loc. Cu toate acestea, s-ar putea folosi cu uurin instrumentele noastre din afara VM la conversia pachete existente Linux (de exemplu, fiiere rpm) prin criptarea fiierele lor, i adugarea de fiiere corespunztoare de metadate la pachetul. Avnd n vedere primitivele simplu in arhitectura noastra, o gam larg de de acces la politicile de control ar putea fi susinute, ca SID-uri ofer o primitive de baz pentru identificarea subiecte, si inlatura ofere o baz primitive pentru identificarea obiectelor. Noi folosim n prezent, un model simplu , care presupune ncredere reciproc ntre toate prile unei cereri i dinamic atribuie SID la pornire. Punerea n aplicare noastre actuale ndeplinete toate criptare folosind un set

unic de criptare i cheile MAC. Este important de menionat faptul c cheie de conducere i control al accesului n umbri sunt ortogonale. The VMM arbitreaz cine are permisiunea de a accesa ce resurse, indiferent de cheie cu care a fost criptat. Taste suplimentare ar putea fi adugate pentru a sprijini delegare a sarcinilor administrative; de exemplu, o cheie pe RID ar permite diferitelor pri participante la pachet propriile lor seturi de fiiere criptate afara VM. 8. Evaluare Punerea n aplicare pune n umbr actual realizeaza complet a sistemului descrise n seciunile anterioare. Aceasta susine cloaking pentru toate aplicatiile regiuni de memorie - privat i comun, anonim i sprijinit de fiier. Am s demonstreze c sistemul este practic prin prezentarea cantitative Rezultate obinute tiva pentru experimente de funcionare apli-substaniale, nemodificate cererile privind un sistem de operare Linux nemodificat. PPID RESUID FORKW MMAPW MMAPR Benchmark 0 20 40 60 80 100 % Uncloaked de performan Figura 6. Microbenchmarks. Procentul de performan uncloaked atins cu cloaking complet a tuturor regiunilor de memorie i fiiere. 8.1 Punerea n aplicare Punerea n aplicare pune n umbr se bazeaz pe o versiune a VMM VMware pentru 32-bit procesoare x86, care utilizeaz binare trans- regulament pentru codul de nucleu clienilor [1]. The VMM modificat a fost construit ca o staie de lucru VMware binar care ruleaz ntr-o "gzduit" de configurare n partea de sus de un sistem de operare existent gazd Linux. 2 Deoarece multi-umbrite mem- cloaking ORY nu depinde de caracteristicile specifice ale VMware VMM, ar putea fi, de asemenea, realizate n alte platforme de virtualizare. Modificarile noastre VMM au inclus aproximativ 4600 noi de linii de cod, plus 2000 de linii suplimentare de accesibile publicului rutine criptografice. Plcii de adaos se ocup de aproape toate apelurile de sistem suportate de ctre interfaa Linux kernel 2.6, i este suficient de complet pentru a rula programe mari, nemodificate Linux. Shim con- Const 13100 de linii de cod, inclusiv a aproximativ 8500 de linii noi cod, i 4600 de linii de biblioteca standard i rutine de utilitate. Modificrile vor fi necesare pentru a permite hardware-asisten pentru x86 virtualizare, cum ar fi Intel VT [22] i de la AMD SVM [2]. Pentru ex- tranziii amplu, apelul de sistem ntre clienilor user-mode i kernel- Modul sunt ntotdeauna prinse de un VMM binar-traducerea, dar sunt nu de obicei, prins de ctre un VMM hardware-asistat. Sys-Forarea TEM solicit s capcan pentru interpunerea umbri ar putea intro- Duce aeriene suplimentare. Cu toate acestea, ne ateptm ca hardware-ul suport pentru tabele imbricate pagina va accelera umbri multe operaiuni, mbuntind performana general. Reducerea costurilor de ntreruptoare context hardware-ul este, de

asemenea, de dorit. Pentru umbr, a capacitatea de a redireciona o capcan pentru a clienilor user-mode cod ar fi ideal, acest site este posibil pentru a redireciona apelurile de sistem pentru Stivuitoare n shim fr intervenia VMM dinamic. 8.2 Performan Toate experimentele au fost efectuate pe un Dell Precision 390 gazd con- gndit cu un procesor Intel Core2 Duo 2.66GHz procesor i memorie RAM de 4GB. VM a fost configurat cu un singur procesor i memorie de 2 GB de funcionare o nemodificat Fedora Core 7 clienilor OS (Linux kernel 2.6.21-1). Microbenchmarks. Figura 6 prezint rezultatele microbench- mrcile care msoar deasupra capului de redirecionare apel de sistem i cloaking. Fiecare punct de parcele de date a raportului de ascuns la uncloaked performan, folosind peste medie n cele mai bune 5 din 7 studii pentru ambele. n aceste experimente, toate obiectivele de referin expuse low rulrii Vari- Capacitatea (deviaie standard n termen de 2,4% din medie). PPID i RESUID valori de referin msur apel de sistem prime cheltuieli generale, att pentru getppid, puse n aplicare cu ajutorul trece-prin 2 n aceast configuraie, VMM nu este pe deplin protejate de gazd Linux OS. Desfurarea n siguran a umbri ar necesita rularea VMM direct pe hardware, cum ar fi VMware ESX Server [30], Xen [3], sau IBM z / VM. Figura 7. SPEC CINT2006 de referin. Procentul de uncloaked performan atins cu cloaking complet a tuturor regiunilor de memorie i fiierele (Gri), i deghizare regiunile de memorie numai anonimi (alb). i getresuid, care necesit de triaj argument simplu. Cloak- ING crete n mod clar costurile de sistem apel n mod semnificativ (cu un factor de 3 - 5), n primul rnd datorit pereche de adrese-spaiu pe comutatoare tranziii ntre contexte clienilor nvluit i uncloaked. FORKW de referin evideniaz aeriene de a procesului de cre- ation, distrugere, precum i sincronizarea utiliznd furculi i ateptai. Cloaking introduce deasupra capului din cauza criptare i decriptare pentru copia-onwrite (COW) pagini, precum i executarea n shim Han- dler i VMM n timpul procesului de creare. MMAPW referin masoara costul de a scrie un cuvnt la fiecare pagin ntr-o regiune mare de memorie fiier garantate, i nroirea feei datele de pe disc. Aeriene de cloaking este dominat de cost cu o schimbare de criptare n timpul operaiunilor de scriere pe disc. MMAPR masoara Costul de lectur un cuvnt din fiecare pagin dintr-o regiune de memorie de mare susinute de dosarul n scris de ctre MMAPW . Aceast suport de referin greelile pagina, dar nu

ndeplinete disc I / O, cum pagini care conin Detalii de fiier locuiesc nc n cache tampon clienilor. n acest experiment, cloaking nu produce decryptions, deoarece aceste pagini s rmn accesibile la cerere n form plaintext n timpul virtuale DMA (A se vedea seciunea 3.3). Rezultatele indic faptul c aproximativ deghizare dubleaz costul unui defect minor paginii. Aplicaie de referin. Figurile 7 i 8 din prezenta rezultatele SPEC CPU 2006 apartament ntreg i agresiv-ncrcate Linux web i a bazei de date servere. Toate punctele de date sunt medii peste cel puin trei studii. n pofida cheltuieli mari pe unele microbenchmarks (Figura 6), aplicatii reale a efectua munca suplimentara care amortizes aceste costuri. Figura 8 parcele mediei geometrice pentru ntreaga SPEC suit, care arat c, n general SPEC referin suporte foarte puin supra- cap de cloaking. Cnd ne gndim la SPEC valori de referin indi- i ndeamn (Figura 7), numai GCC a non-triviale deasupra capului. Acest supra- vine de la cap GCC E apel de sistem relativ ridicat i a culpei pagina rate. Experimentul a folosit server web standard prefork configurri raie de APACHE 2.2.4, cu caching cu handicap. O telecomand gazd gen- cereri accelerat client pentru preluarea de 28 KB fiier HTML folosind ab instrument de benchmarking cu 50 de conexiuni concurente. Clientul i server au fost legate printr-un 100Mbps ( APACHE -100 M ) Sau 1Gbps ( APACHE -1 G ) Comutator. Am msurat numrul total de cereri servit pe secund. Cu deplin cloaking, performan pentru APACHE - 100 M a fost n termen de 1% din uncloaked performan. Cnd utilizai 1 Gbps switch ( APACHE -1 G ), Complet ascuns performan degradate relativ la serverul uncloaked. Aceste rezultate sunt explicate prin faptul ca aplicatiile au ascuns de ocupare procesor mai mare; pentru ncrcai mai realist (servere de web cateva satura 100 Mbps pe Internet link-uri), procesorul nu a fost utilizat n ntregime, i nu a deghizare SPEC-INT APACHE-100M APACHE-1G DBT2 Benchmark 0 20 40 60 80 100 % Uncloaked de performan Figura 8. Benchmark Rezumat. Procentul de uncloaked perfor- performan atins cu cloaking complet a tuturor regiunilor de memorie i fiiere (gri), cloaking i regiunile de memorie numai anonimi (alb). afecta performanele. Cu gtuire de reea scos, cloak- Balanta ING bine pn cnd se acizi grai saturai CPU. Firete, aceast saturaie punct vor avea loc mai trziu, pentru configuraiile multicore VM (noastre expe- ments utiliza un singur procesor). Volumul de munc bazei de date utilizeaz DBT 2 baze de date tranzactionale suit de ncercare de performan care ruleaz cu un PostgreSQL 8.2.4 server. Acest de testare simuleaz un en-gros piese de furnizor cu 22 de depozite i 11 clientii concurente la debitul de vrf; clientii rula uncloaked n acelai VM ca server. Am msurat numrul de "noi Pentru "de tranzactii pe minut n timpul starea de echilibru funcionare, metric din aceast suit standard. Cu cloaking

complet activat pentru acest 8.6 GB de date, de performan a fost mai mult de 70% din uncloaked iniiale. n timp ce exist ample oportuniti pentru optimizare, curriculum-ul punerea n aplicare a inchiriat cloaking completa este practic pentru realist multe volumul de lucru. Pentru aplicaii care necesit doar regiunile anonim la s fie ascuns, performana este uniform peste 80% din valoarea iniial. 9. Viitor de lucru O varietate de oportuniti de cercetare interesante rmn n zonele de protecie a post-echiprii pentru sistemele de operare mai vechi, i-leverag ING multi-shadowing pentru a defini noi modele de protecie. Am, de asemenea, de- extensii scrib la punerea n aplicare noastre curente. Post-echiparea de protecie. Cererile nu sunt concepute cu sperana c sistemul de operare poate deveni ostil. O mai Tratamentul formal a modului n care s-ar putea induce n eroare sistem de operare o aplicaie - i modul n care astfel de atacuri pot fi atenuate - este un subiect interesant pentru fu- turii de cercetare. De exemplu, o aplicatie ar putea fi indui n eroare n re- vealing informaii n cazul n care este rulat cu un UID special. O posibil de aprare este de a oferi un "sandbox invers", acest sistem filtre apelurile ctre preveni astfel de atacuri. Suntem investigheaza, de asemenea, o cale sigura pentru interfaa cu utilizatorul de- vicii, deoarece acest lucru ar permite o protecie complet a convingtoare multe aplicatii, inclusiv web, e-mail, si clientii VOIP. n principiu, interaciunea cu utilizatorul ar putea fi protejate n punerea n aplicare actual dac Aplicaia utilizeaz un sistem de afiaj de la distan, care face la softArticole cadru tampoane. Protejarea dispozitivul de memorie. Multi I / O, dispozitive prezent o memorie de- mapate interfata software-ului. Pentru unele dispozitive, multi-shadowing pot fi folosite pentru a proteja coninutul de "fizic" dispozitiv de mem- ORY de a fi inspectate sau modificate de ctre software-ul nu este de ncredere. Pentru exemplu, un VM interactiv de obicei, ofer o virtual high- Rezoluia imaginilor care utilizeaz un cadru de memorie mapate tampon. Un tampon multi-umbrit cadru ar putea ajuta la implementarea unei

S-ar putea să vă placă și