Programare i securitate la nivelul arhitecturii x86 Prof.

Programare i securitate la nivelul arhitecturii x86 Prof.

Programare i securitate la nivelul arhitecturii x86 Prof. dr. ing. Gheorghe Sebestyen Cursul 14 Arhitectura Intel Tehnologii de virtualizare Enclave prin tehnologia SGX Pachetul de tehnologii de virtualizare oferit de Intel Intel VT Virtualizare abstractizarea unor componente fizice (hardware) Partajarea de resurse fizice comune de catre mai multe aplicatii sau chiar SO Capacitatea de a partaja si izola un procesor intre mai multe SO

Avantaje: Utilizarea mai eficienta a resurselor disponibile Migrarea mai usoara a aplicatiilor Promovarea ideii de cloud (procesare si stocare pe resurse de calcul externe) Securitate mai buna Intel VT viziunea Intel de virtualizare Ofera primitive H&S pentru implementarea diferitelor forme de virtualizare Overhead mai redus decat in cazul unor solutii de virtualizare pur software Tehnologii de virtualizare

Virtualizarea procesorului Intel VT-x - virtualizare procesor x86 Abstractizarea functiilor unui procesor printr-o masina virtuala Executia aplicatiilor pe o MV (masina virtuala) ca si cum ar rula pe masina fizica (fara schimbari in cod sau impact de performanta) Faciliteaza migrarea programelor intre generatii de procesoare Virtualizarea memoriei (memorie virtuala) Abstractizarea si extinderea memoriei fizice (DRAM) peste memoria externa (HDD, SDD, etc.) Gestiunea eficienta, partajarea si protejarea zonelor de memorie Elemente acestei tehnologii:

EPT extended Page Table, atribute asociate paginilor (accessed, dirty, executable) Comutare rapida intre contexte EPT DMA remapping Tehnologii de virtualizare Virtualizare Intrari/Iesiri (I/O) Migrarea procesarii pachetelor de retea pe adaptoarele de retea si asignarea de masini virtuale pentru operatii de intrare/iesire (ex. operatii de citire/scriere disc) Tehnologii componente: Intel Virtualization Technology for Directed I/O (VT-d), Virtual Machine Device Queues (VMDQ),

Single Root I/O Virtualization (SR-IOV, a PCI-SIG standard), Intel Data Direct I/O Technology (Intel DDIO) enhancements. Virtualizare grafica - Intel Graphics Virtualization Technology (Intel GVT) Permite alocarea partiala sau totala a GPU-urilor si a diverselor acceleratoare (ex. translatoare video) la o masina virtuala Tehnologii de virtualizare Virtualizarea securitatii si a functiilor de retea Exemple de tehnologii: Intel QuickAssist Technology (Intel QAT)

Data Plane Development Kit (DPDK). Video: https://youtu.be/gqZrarZiHp8 Intel CPU (x86) virtualization (VT-x) Introdus in 2005 la unele variante Pentium 4 S-a adaugat facilitatea vmx Virtual Machine Extention 10 instructiuni noi: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, and VMXON Instructiunile permit intrarea si iesirea din modul virtual; Sistemul de operare gazda este protejat de sistemul de operare oaspete desi acesta din urma ruleaza pe nivelul de protectie 0 Ciclul de viata al operatiilor VMX Instructiuni x86 pentru virtualizare Doua moduri de a rula software sub virtualizare:

Utilizarea instructiunilor: Intrarea in modul virtual: executa instructiunea VMXON si apoi apeleaza softul VMM. Softul VMM poate intra intr-o masina virtuala cu instructiunea VMLAUNCH si iese cu instructiunea VMRESUME. Iesirea din VMM si din modul virtual se face cu instructiunea VMXOFF EPT (Extended Page Tables), permite fiecarei VM sa aiba o tabela proprie de pagini; nu mai trebuie sa se intre si sa se iasa din VM la incarcarea unei noi pagini VMX root VMM ruleaza in acest mod VMX non-root SO guest ruleaza in non-root Detalii de programare Verifica daca exista facilitatea VMX mov eax,1

cpuid bt ecx,5 jc VMX_Supported jmp VMX_NotSupported Se citesc detalii despre versiunea implementata mov ecx, 0480h rdmsr ; citeste IA32_VMX_BASIC MSR (index 0x480) Se obtine versiunea si dimensiunea VMCS Si asa mai departe: https://www.codeproject.com/Articles/215458/Virtualization-for-SystemProgrammers Confuzii cu alte tehnologii/concepte SO Multitasking v.s. Virtualizare

Programare/executie multi-threading v.s. virtualizare Multi-treading partajarea unui context de executie (proces) intre mai multe secvente de program executate in paralel sau in regim concurent; contextul este definit de SO sau chiar de un mediu de programare (vezi Java virtual Machine) Executie multi-core v.s. virtualizare Multi-core mai multe UCP independente utilizabile in paralel de mai multe procese sau thread-uri; alocarea core-urilor se face de catre SO Hyper-threading v.s. Virtualizare Multitasking partajarea resurselor unui calculator intre aplicatii utilizator sub controlul unui singur SO Virtualizare partajarea resurselor unui calculator intre mai multe SO sub controlul unui VMM (sau hypervizor)

Hyper-threading - Acelasi pipeline utilizat in regim concurent de 2 thread-uri; partajare facuta hard+SO Hypervizor sau VMM (virtual machine monitor) Ce este ? Un ansamblu software, hardware si firmware care care permite executia unei sau a unor masini virtuale (VM) O masina virtuala primeste o platforma virtuala de operare (VOP virtual operating platform) pe care poate rula un SO (Windows, Linux) diferit de virtualizare la nivelul SO unde avem un singur SO si mai multe containere virtuale (vezi Kernelul de Linux) kernelul

este supervizor Hypervizor = supervizorul supervizorului Tipuri de hypervizor: Bare metal (nativ) plasat intre hardware si SO; ex. Hyper-V Hosted hardware- >SO->hypervizor->SO; ex: Vmware Hypervizorul se executa ca o aplicatie user in spatiul primului SO Tipuri de Hypervizor Hypervizor - detalii De ce hypervizor?

Resurse multiple pe un calculator partajabile intre mai multe aplicatii Simplifica efortul de gestiune a unor aplicatii multiple rulate pe servere Sistemele multiprocesor/multicore necesita instrumente de partajare care sa asigure fiabilitatea si siguranta necesara Independenta fata de resursele fizice (platforme fizice diferite ofera aceeasi platforma virtualizata) Siguranta sporita pot fi filtrate mai bine operatiile permise Exploatarea unor structuri de tip cloud, cluster, etc. Avantaje/dezavantaje din perspectiva securitatii: Avantaje: virtualizarea resurselor hardware, filtrarea cererilor de acces la resursele sistemului, partajare mai sigura a resurselor Dezavantaje: un malware se poate instala ca hypervizor si poate Introspectia memoriei prin hypervizor Introspectia memoriei

Tehnologie promovata de BitDefender pentru blocarea atacurilor malitioase Principiul de lucru Hypervizorul verifica validitatea cererilor de acces la diferitele zone de memorie rezulta un overhead semnificativ Probleme de implementare - Gap semantic hypervizorul nu dispune de informatiile gestionate de SO (ex: alocarea memoriei, paginarea, regiuni alocate pentru diferite scopuri, etc.); Asigura protectie/izolare la nivel aproape hardware; protectie si in cazul unui SO infectat Suprafata de atac a hypervizorului este mult mai mica Securizarea datelor prin enclave Intel SGX Security Guard extention Introducere

Necesitate: O aplicatie are nevoie de un spatiu de memorie protejat chiar si de sistemul de operare Lipsa unor mecanisme hardware de protejare a unor zone de memorie critice in care sa se pastreze secretele (ex. parole, conturi, coduri de criptare, etc.) unei aplicatii Protectie impotriva unui SO infectat; SO are o suprafata de atac prea mare Solutia (Intel): Intel SGX Security Guard Extention set de instructiuni in asamblare (18) care permit crearea de ENCLAVE Enclava zona protejata de memorie in spatiul unei aplicatii (protectie chiar si impotriva unui malware cu drepturi maxime) Referinta:

https://software.intel.com/en-us/articles/introducing-the-intel-software-guardextensions-tutorial-series https://software.intel.com/en-us/blogs/2016/06/10/overview-of-intel-software-guardextensions-instructions-and-data-structures https://software.intel.com/en-us/sgx-sdk-dev-reference-sample-enclave Modelul de protectie oferit de SGX Suprafata de atac cu si fara enclave Mecanisme de protectie asigurate de o enclava

Memoria dintr-o enclava NU poate fi citita din afara ei (indiferent de nivelul de privilegiu) Enclavele in productie NU pot fi depanate cu un debuger NU se poate intra intr-o enclava prin metode/instructiuni uzuale: CALL, JMP, modificare de stica sau registre; doar printr-o instructiune speciala de apel strict verificata Continutul enclavei este criptat; citirea fizica a memoriei de pe magistrala nu ajuta la nimic Cheia de criptare se schimba la fiecare repornire (boot sau iesire din sleep) Datele din enclava pot fi accesate doar de codul din enclava Caracteristici ale tehnologiei SGX Enclavele sunt regiuni de memorie izolate care contin cod si date. O parte a memoriei fizice (RAM) este rezervata pentru enclave.

Denumirea acestei memirii: Enclave Page Cache (EPC). Memoria EPC este incriptata EPC este administrat de OS sau VMM. Instructiuni si structuri de date SGX: 18 Instructiuni 13 instructiuni Supervisor. 5 Instructiuni User. 13 structuri de date (noi) 8 structuri de date asociate de o anumita enclava. 3 structuri de date asociate la anumite pagini de memorie 2 structuri de date asociate managementului general.

SGX Supervisor Instructions: Instructiuni supervizor Descriere ENCLS[EADD] Add a page ENCLS[EBLOCK] Block an EPC page ENCLS[ECREATE] Create an enclave ENCLS[EDBGRD] Read data by debugger ENCLS[EDBGWR] Write data by debugger ENCLS[EEXTEND]

Extend EPC page measurement ENCLS[EINIT] Initialize an enclave ENCLS[ELDB] Load an EPC page as blocked ENCLS[ELDU] Load an EPC page as unblocked ENCLS[EPA] Add version array ENCLS[EREMOVE] Remove a page from EPC ENCLS[ETRACK] Activate EBLOCK checks ENCLS[EWB]

Write back/invalidate an EPC page SGX User Instructions Instructiuni User Descriere ENCLU[EENTER] Enter an Enclave ENCLU[EEXIT] Exit an Enclave ENCLU[EGETKEY] Create a cryptographic key ENCLU[EREPORT] Create a cryptographic report ENCLU[ERESUME ] Re-enter an Enclave Controlul accesului la

memorie prin SGX (MAC Memory Access Control) Din enclava catre exterior Izolarea enclavelor malitioase. Enclavele au nevoie de un mecanism de comunicatie cu exteriorul (cu aplicatia lor). Din exterior catre enclava Enclavele trebuie sa fie protejate fata de: Aplicatii. Software privilegiat (OS/ Hypervizor) Alte enclave. SGX MAC (controlul accesului la memorie)

SGX MAC dinspre enclava catre exterior: Toate accesele la memorie trebuie sa corespunda cu politica de segmentare si/sau paginare a SO/VMM. Enclavele nu pot manipula aceste politici (folosesc doar instructiuni neprivilegiate). O tentativa de citire/executie de la o adresa dinafara enclavei va duce la o exceptie de tip General Protection Fault (0); un virus amplasat intr-o enclava nu poate executa cod din afara enclavei SGX MAC din exterior catre enclava: O tentativa de acces la memoria EPC di afara ei duce la o semantica de abortare a paginii. Salturile directe din afara enclavei catre o adresa din enclava nu valideaza

modul enclava si duce la o semantica de abortare a paginii si un compirtament nedefinit. Hardware-ul detecteaza si previne accesul la enclava in momentul translatiei din adresa logica in adresa liniara prin generarea unei exceptii de tip General Protection Fault (0). Principii SGX Aplicatiile vor avea 2 parti: O parte de incredere, sigura (trusted) O parte nesigura (untrusted) Contine secretele aplicatiei si codul de acces la ele O aplicatie poate sa utilizeze mai multe componente

trusted O componenta trusted trebuie sa aiba dimensiuni minime pentru a reduce suprafata de atac Portiune neprotejata prin SGX Contine componentele mai putin vulnerabile ale aplicatiei Spatiul protejat prin SGX este limitat; tipic 64-128MB; setabil prin BIOS Modelul unei aplicatii SGX secventa de apel a unei proceduri secrete 1. 2. 3. 4. 5. 6. Aplicatia este construita cu parti trusted si untrusted

Aplicatia creaza enclave plasate in memoria protejata Aplicatia apeleaza proceduri trusted si executia se transfera in zona sigura Enclava vede toate datele din interior; datele NU sunt vazute din exterior Revenirea la programul apelant; datele secrete raman in enclava Se reia executia normala Alte concepte ale tehnologiei SGX Atestare Procesul de demonstrare a prezentei unei anumite enclave Atestare locala: doua enclave din acelasi sistem se identifica reciproc; se foloseste pentru a obtine chei de criptare per sesiune necesare pentru schimbul reciproc

de date Atestare de la distanta (remote): o enclava castiga increderea unui furnizor extern prin trimiterea unui citat (eng. quote) care autentifica enclava si capabilitatea procesorului de a trata enclave Astfel un server de la distanta poate sa verifice daca la capatul celalalt se afla o enclava sigura si poate sa foloseasca un canal sigur pentru transmiterea de date secrete (ex. un server homebanking) Alte concepte ale tehnologiei SGX Metode de protejare a datelor (sealing data) Enclave identity metoda produce o cheie de criptare unica pentru o enclava metoda nu permite migrarea datelor intre enclave sau versiuni diferite ale aceleiasi enclave (ex. nu permite migrarea datelor pe o noua platforma)

Sealing identity: metoda produce o cheie bazata pe identitatea unei autoritati de protejare a enclavei; mai multe enclave care tin de acceasi autoritate pot genera aceeasi cheie de criptare si pot sa-si acceseze reciproc datele; util pentru migrarea unei aplicatii pe o noua platforma Proiectarea unei aplicatii SGX exemplu: manager de parole Pasi de urmat: Identificarea secretelor unei aplicatii Identificarea furnizorilor si consumatorilor de secrete Secretele trebuie sa vina si sa plece pe canale sigure si de la alte

componente de incredere (de aceea este importanta atestarea) In codul sursa/compilat al enclavei NU se tin secrete; ele pot fi inspectate pe disc; secretele se primesc si se genereaza la runtime Determinarea limitelor/a granitei unei enclave Parole, conturi bancare, date medicale, date personale, chei de criptare Se stabilesc punctele de trecere a granitei cu fluxuri de date criptate si necriptate Proiectarea componentelor pentru enclava Apelul procedurilor in SGX Apelul procedurilor din interiorul enclavei Prin instructiunea speciala ECALL

Apelul unor proceduri din afara enclavei (din interior spre exterior) Prin instructiunea OCALL

Recently Viewed Presentations

  • Looking for X-ray Modulation without relying on X-ray

    Looking for X-ray Modulation without relying on X-ray

    Looking for X-ray Modulation without relying on X-ray Modulation Jaesub Hong Fall, 2010 Survey of Galactic Bulge X-ray sources as a part of ChaMPlane Three low extinction windows Baade's Window (BW) Stanek's Window (SW) The Limiting Window (LW) An IP...
  • PUEBLO INTEREAGENCY DISPATCH CENTER (PIDC) 2007 ANNUAL REPORT

    PUEBLO INTEREAGENCY DISPATCH CENTER (PIDC) 2007 ANNUAL REPORT

    PUEBLO INTEREAGENCY DISPATCH CENTER (PIDC) 2007 ANNUAL REPORT Severe weather launched the 2007 season when PIDC ordered a Type 2 Team on January 2nd to support the storm ravaged South East portion of the Colorado PIDC Zone.
  • Diabetes Mellitus

    Diabetes Mellitus

    Selenium (Se) and Keshan`s Disease . It was documented in Keshan and its neighbouring counties in China that a fatal cardiomyopathy is caused by Se deficiency. Supplementation of diet with Se greatly controlled the disease. A classical example of "disease-mineral...
  • Bil. Alvernaz Presentation

    Bil. Alvernaz Presentation

    BIL. ALVERNAZ. Communicating and Connecting With People! An overview of my knowledge, experience, and know-howfor communications, public information, and writing: Non-profit organizations (local, regional & national) Council of Fresno County Governments (regional)
  • Intercostal drainage - Pain Free Partha

    Intercostal drainage - Pain Free Partha

    Under water sealed drain system (UWSD) ... With inspiration water will rise up into the chest tube, with expiration, water will fall. If the swing is less than 2 cm, the lung is not likely to be fully expanded and...
  • Analytic Network Process (ANP) slides

    Analytic Network Process (ANP) slides

    The Analytic Network Process (ANP) for Decision Making and Forecasting with Dependence and Feedback With feedback the alternatives depend on the criteria as in a hierarchy but may also depend on each other. The criteria themselves can depend on the...
  • Chapter 11. Angular Momentum - University of North Carolina ...

    Chapter 11. Angular Momentum - University of North Carolina ...

    Chapter 11. Angular Momentum Rotational Momentum 2. Rotational Form of Newton's Second Law ... For the first and last quarter revolution, he is in the extended orientation shown in Fig. 12-20, with rotational inertia I1 = 19.9 kg · m2...
  • English Possessive

    English Possessive

    ADJECTIVES Possessive Adjective: They show to whom things belong or, in other words, possession. ... parents Marge is his wife Bart is her brother The cat plays with its ball Bender shows its watch This is your favorite superhero This...