RSS
Blog
Serie di immagini articolo Xen parte 3

Xen Virtualization and Cloud Computing # 03: caratteristiche principali di Xen

15 ottobre 2020 - di Mohsen Mostafa Jokar

Gli articoli precedenti di questa serie hanno introdotto la virtualizzazione e mostrato come Xen è progettato per fornirla in modo efficiente. Qui approfondiremo alcune caratteristiche interessanti e la loro importanza. Un elenco più ampio può essere trovato presso l'apposito pagina del progetto sulle caratteristiche. Al momento della stesura di questo articolo, la versione più recente di Xen Project è la 4.13.

Funzionalità relative alla sicurezza

The Meltdown and Spectre Le vulnerabilità del processore, che sfruttano le complesse caratteristiche di miglioramento delle prestazioni dei moderni microprocessori, hanno presentato sfide formidabili agli sviluppatori di sistemi operativi e applicazioni. Meltdown e Spectre sono stati scoperti ufficialmente nel gennaio 2018. Questa sezione descrive due miglioramenti a Xen per mitigare queste difficili vulnerabilità.

Xen Panda mascotte

Meltdown, che interessa Intel x86, IBM Power e alcuni microprocessori ARM, consente a un processo dannoso di leggere i dati da qualsiasi indirizzo mappato allo spazio di memoria del processo corrente. In effetti, il processo può leggere tutta la memoria senza autorizzazione. Il processo dannoso esegue ciò trovando un difetto di temporizzazione nell'esecuzione di diverse funzionalità del processore (come la cache e la pipeline) che sono individualmente sicure. Al momento della divulgazione, questa vulnerabilità ha interessato molti prodotti, con impatti su un numero enorme di server e provider di cloud. Le aziende hanno iniziato a scrivere patch per bloccare la vulnerabilità Meltdown, causando perdite di prestazioni tra il 5 e il 30 percento.

Spectre sfrutta anche le moderne caratteristiche prestazionali. Nei microprocessori moderni, un circuito digitale cerca di indovinare il risultato di un'operazione condizionale come un'istruzione "if ... else", utilizzando le informazioni raccolte prima dell'esecuzione del programma, e si prepara per il risultato più probabile. It. In altre parole, cerca di indovinare la via dell'istruzione if-then-else prima che lo sappia esattamente. Il nome di questa tecnica è previsione del ramo. È un componente importante delle moderne architetture CPU come x86 e svolge un ruolo fondamentale nel raggiungimento di prestazioni più elevate. Spectre sfrutta il sistema di previsione dei rami per leggere posizioni arbitrarie nella memoria allocata di un programma. Questo attacco può essere implementato in un browser utilizzando JavaScript, quindi è importante mantenere il browser aggiornato.

Il 15 marzo 2018, Intel ha riferito che riprogetterà i suoi processori CPU per proteggere da Meltdown e Spectre. L'8 ottobre 2018, Intel ha aggiunto il firmware ai suoi ultimi processori per mitigare questi attacchi.

Modifiche all'hypervisor per mitigare Meltdown e Spectre

L'hypervisor Xen, come altri prodotti, è stato colpito da queste vulnerabilità, in particolare:

  • "Rogue Data Load" (noto anche come SP3, "Variant 3", Meltdown, CVE-2017-5754)
  • "Branch Target Injection" (noto anche come SP2, "Variant 2", Spectre CVE-2017-5715)
  • "Bounds-check bypass" (aka SP1, "Variant 1", Spectre CVE-2017-5753)

Non c'è modo di prevenire completamente i rischi di queste vulnerabilità, ma l'aggiunta di limiti di esecuzione e altri controlli al codice può tappare parzialmente i buchi. Quindi, parliamo di "mitigare contro" le vulnerabilità.

L'obiettivo iniziale del progetto Xen era sulle correzioni per Meltdown, quindi Spectre Variant 2 e infine Spectre Variant 1. SP1 e SP2 influenzano i processori Intel e AMD, ma i processori ARM variano in base al modello e al produttore. SP3 interessa solo i processori Intel. Per mitigare il Meltdown, il progetto Xen ha pubblicato tre soluzioni con i nomi Vixen, Comet e PTI. Sfortunatamente, la correzione per mitigare SP1 richiede aggiornamenti del microcodice da Intel e AMD. Attualmente, pertanto, non è disponibile alcuna mitigazione per SP1. Ma la sua superficie di attacco può essere ridotta grazie alla tecnologia che ha contribuito al progetto Xen di Citrix. Funziona indurendo i rami.

  • SP2 può essere mitigato da una combinazione di modifiche a microcodice, compilatore e hypervisor.
  • SP3 può essere mitigato dall'isolamento della tabella delle pagine (PTI).

Per informazioni più aggiornate su queste vulnerabilità e le risposte del progetto Xen, vedere il nostro avviso 254.

Pianificazione di base

Questa tecnologia, fornita da SuSE Linux, aiuta a contenere gli effetti negativi di una violazione di Meltdown o Spectre. Normalmente, ogni CPU virtuale potrebbe essere programmata su qualsiasi CPU fisica e potrebbe spostarsi tra le CPU fisiche per una pianificazione efficiente. Ciò ha aumentato il rischio che le informazioni potessero passare da una VM all'altra, proprio come i viaggi tra le città consentono a un'infezione di diffondersi più rapidamente. L'unico modo per mitigare completamente questa vulnerabilità è disabilitare l'hyper-threading, che causerebbe enormi problemi di prestazioni.

La funzionalità di pianificazione principale consente a Xen di raggruppare CPU virtuali e pianificarle su un set limitato di core fisici. Con questa tecnologia, gli utenti possono mantenere abilitato l'hyperthreading. I benchmark iniziali hanno mostrato prestazioni perse per molti carichi di lavoro. SUSE e Citrix stanno lavorando alla funzionalità e nelle prossime versioni speriamo di vedere migliori compromessi tra sicurezza e prestazioni.

Memory Introspection (HVMI) basata su hypervisor

Questa è la tecnologia donata da Bitdefender al progetto Xen il 30 luglio 2020 per proteggere dal malware nei sistemi operativi che girano su Xen. HVMI ha un vantaggio fondamentale rispetto ai sistemi di rilevamento del malware sui sistemi operativi guest: mentre il malware intelligente può prendere il controllo di un intero guest e disabilitare i meccanismi di rilevamento o prevenzione sul guest, il malware non ha modo di raggiungere l'hypervisor sottostante.

Il malware è diventato estremamente pericoloso e difficile da combattere per diversi motivi:

  • Può entrare nel sistema ogni volta che un singolo utente inconsapevole del sistema visita un sito Web infetto o apre un file ricevuto da una persona di fiducia.
  • Può sfruttare le vulnerabilità del sistema operativo per ottenere i privilegi di superutente e assumere il controllo dell'intero sistema. Pochissimi sistemi operativi dividono i privilegi per limitare il malware a un'area.
  • È diventato abbastanza sofisticato da nascondere i suoi file o altre tracce agli amministratori e da disabilitare le misure progettate per contrastarlo.

Una storia straordinaria che mostra la potenza del malware riguarda un attacco noto come Carbanak, che ha infettato più di 100 banche in trenta nazioni e ha causato danni per un miliardo di dollari a livello globale. Alla fine del 1, un'indagine su una banca a Kiev ha rivelato che il malware nascosto iniettato da Carbanak ha monitorato i sistemi interni della banca per diversi mesi coprendone con successo le tracce. Il malware ha registrato l'attività di ogni dipendente e ha restituito video e immagini all'intruso senza attirare l'attenzione.

Lo Bitdefender il nome è familiare a tutto il personale IT. È una delle principali società mondiali di sicurezza informatica, che protegge oltre 500 milioni di sistemi in tutto il mondo. Bitdefender e Citrix hanno collaborato Citrix Hypervisor. Come sappiamo, l'hypervisor isola le VM l'una dall'altra e fornisce informazioni pulite e di basso livello sulla memoria utilizzata da ciascuna macchina virtuale. Il risultato di questa collaborazione è un nuovo livello di sicurezza che può vedere tutto ciò che accade nella tua infrastruttura, ma che il malware non può raggiungere. La tecnologia Hypervisor Introspection (HVI) di Bitdefender rileva le attività sospette lavorando direttamente con la memoria non elaborata. A questo livello, il malware non può nascondersi.

Bitdefender HVI presume che i tuoi sistemi non siano puliti e puoi comandarlo per iniettare strumenti di pulizia nelle macchine virtuali live. L'HVI rileva e blocca già gli attacchi più famosi, tra cui Carbanak, Turla, APT28, NetTraveler e Wild Neutron, senza conoscere le vulnerabilità utilizzate dagli aggressori.

Quando Bitdefender ha deciso di rilasciare HVI a Xen come open source, lo hanno chiamato Hypervisor-based Memory Introspection (HVMI). La tecnologia HVMI comprende e applica la logica di sicurezza agli eventi di memoria all'interno di VM Linux e Windows in esecuzione. Esamina la memoria in tempo reale alla ricerca di segni di tecniche di attacco basate sulla memoria utilizzate per sfruttare vulnerabilità note e sconosciute.

Insieme a questo, Bitdefender ha reso open source la sua "sottile" tecnologia hypervisor, nota come Napocae lo ha donato al progetto Xen. L'hypervisor Napoca è stato utilizzato nello sviluppo della tecnologia HVI. Una caratteristica distintiva di Napoca è che virtualizza CPU e memoria, non tutto l'hardware, e quindi consente l'introspezione dell'hypervisor su macchine che non eseguono un hypervisor completo.

Funzionalità relative alla gestione

Queste funzionalità riducono l'onere della gestione degli hypervisor.

Caricamento tardivo di uCode

microcodice, spesso abbreviato in "uCode" (dove la "u" sta per la lettera greca mu), è il firmware del produttore del chip. L'uCode contiene tipicamente mitigazioni per le vulnerabilità HW e viene tipicamente aggiornato durante l'inizializzazione del sistema o l'avvio del kernel. L'aggiornamento in precedenza richiedeva un riavvio e un lungo periodo di inattività. Xen Project 4.13 consente a Xen Hypervisor di distribuire un aggiornamento uCode senza alcun riavvio. Questa funzionalità è stata fornita da Intel.

Aggiornamento live-patch

Questo è un meccanismo per sostituire piccole sezioni di codice in un hypervisor in esecuzione, in modo da non dover arrestare l'hypervisor e terminare tutte le VM in esecuzione su di esso. La funzione viene generalmente utilizzata per distribuire correzioni di sicurezza critiche.

Patching live è in circolazione da un po 'di tempo in diversi prodotti basati su Xen ed è stato incluso come funzionalità di anteprima tecnologica da Xen 4.7. Ora è una funzionalità supportata nell'architettura x86. L'applicazione delle patch richiede che tutte le attività siano messe in pausa, ma questo tempo di pausa dovrebbe essere ridotto. Amazon sta lavorando per migliorare ulteriormente questa funzionalità. Abbiamo in programma di estenderlo ad altre architetture oltre a x86.

I recenti miglioramenti al live-patching includono la capacità di applicare patch al codice assembly inline, miglioramenti ai moduli impilati, supporto per i parametri del modulo, hook aggiuntivi e azioni di applicazione / ripristino replicabili, binding python estesi per l'automazione e convalida aggiuntiva di patch live.

Il live-patching non è l'obiettivo finale degli aggiornamenti live, perché è limitato a piccole modifiche al codice localizzate. Il team di Xen Project sta anche lavorando a una più ampia funzionalità di aggiornamento live. Al termine, un amministratore sarà in grado di aggiornare un hypervisor Xen e i suoi strumenti a una nuova versione senza arrestare e riavviare i guest.

Funzionalità delle applicazioni integrate e critiche per la sicurezza

Queste funzionalità supportano impostazioni particolari che devono eseguire l'hypervisor e le VM in modi insoliti.

Supporto OP-TEE

TrustZone è una funzionalità di sicurezza dei processori ARM, che consente agli utenti con privilegi di eseguire un processo quando la memoria non può accedere ad altri processi. Poiché c'è solo una zona attendibile su ogni chip, condividerla tra più VM è difficile. Pertanto, Xen originariamente non offriva a TrustZone l'accesso alle VM guest. Grazie a una funzionalità fornita da EPAM, a partire da Xen 4.13, tutti i guest possono eseguire contemporaneamente applicazioni su Arm TrustZone senza conflitti. Tuttavia, è necessario lavorare ancora su questa funzione.

Driver Renesas R-CAR IPMMU-VMSA

Le automobili si affidano sempre più al software. I loro processi software multipli e simultanei richiedono la virtualizzazione per proteggere la sicurezza di alto livello richiesta nelle automobili. Pertanto, molti sistemi automobilistici utilizzano hypervisor Xen. L'accesso alle GPU è prezioso per i processi virtuali, al fine di ottenere le prestazioni in tempo reale necessarie quando l'auto è in movimento, ma ciò richiede l'accesso alla Virtual Memory System Architecture (VMSA) di ARM. Renesas ha aggiunto questo supporto VMSA ai suoi chip basati su ARM in Xen 4.13, e un driver contribuito al progetto Xen da EPAM rende tale accesso disponibile ai sistemi informatici delle automobili.

Passthrough senza Dom0 e ImageBuilder

Un precedente articolo di questa serie ha descritto il ruolo centrale del dominio privilegiato, Dom0, in Xen. Poiché la presenza di Dom0 aggiunge un tempo significativo (misurabile in secondi) al caricamento di ogni VM, alcuni sviluppatori di sistemi embedded hanno richiesto un'architettura senza Dom0. Molti sistemi integrati devono avere diverse VM attive e funzionanti in meno di un secondo dopo che l'utente ha avviato il sistema. Il codice per implementare un'architettura senza Dom0 è stato fornito da Xilinx nel 2018. La funzione non funziona ancora con la paravirtualizzazione, ma funziona con altre forme di virtualizzazione Xen.

Poiché non esiste un processo privilegiato e nessuno strumento spazio utente in uno Xen senza Dom0, i sistemi che lo utilizzano devono caricare i guest utilizzando U-Boot, un boot loader open source. Le immagini guest devono contenere tutti i binari richiesti, come kernel del sistema operativo e ramdisk. Quindi, un nuovo strumento denominato ImageBuilder, La cui il codice è su GitLab, viene fornito per automatizzare la creazione di configurazioni senza Dom0 per U-Boot.

La Figura 4 mostra un'architettura senza Dom0.

Figura 4. Xen in esecuzione senza Dom0
Figura 4. Xen in esecuzione senza Dom0

Il prossimo componente di questa serie esamina l'interessante relazione tra Xen e alcune altre forme di virtualizzazione, in particolare i contenitori.

Leggi il post precedente

Informazioni su Mohsen Mostafa Jokar:

Mohsen Mostafa Jokar


Mohsen Mostafa Jokar è un amministratore Linux e un virtualization engineer. Il suo interesse per la virtualizzazione risale ai tempi della scuola, quando vide per la prima volta Microsoft Virtual PC. Lo ha installato su un PC con 256 MB di RAM e lo ha utilizzato per usare Virtualize Windows 98 e DOS. Successivamente, Mohsen si è interessato alla virtualizzazione e ha familiarizzato con più prodotti.

Insieme alla virtualizzazione, Mohsen ha conosciuto GNU / Linux. Ha installato LindowsOS come sua prima distribuzione Linux, acquisendo successivamente familiarità con Fedora Core, Knoppix, RedHat e altre distribuzioni. Utilizzando il sistema operativo Linux, ha familiarizzato con bochs, ma l'ha trovato troppo lento e dopo alcune ricerche ha scoperto Qemu. Qemu era più veloce di bochs e l'installazione del modulo KQEMU gli ha permesso di eseguire la virtualizzazione ancora più velocemente. Dopo Qemu, Mohsen ha fatto conoscenza con Innotek VirtualBox e lo ha scelto come sua principale applicazione di virtualizzazione. Innotek VirtualBox aveva una buona GUI ed era facile da usare.

Alla fine, Mohsen ha conosciuto Xen, che ama perché è sicuro, stabile e affidabile. Ha scritto un libro su Xen, "Hello Xen Project", e lo ha reso disponibile sul wiki di Xen. Lo ha reso gratuito per aiutare a rendere Xen più accessibile e per incoraggiare i principianti a usarlo come prima piattaforma di virtualizzazione. Si considera uno "Xen Soldier".