Archivio per la categoria 'Virtualizzazione'

VMware Fast Path Versus firewall percorso lento

30 ago 2010

Molti di noi stanno lavorando con i firewall virtuali. Ho fatto un precedente messaggio sulla forza e di debolezza di sicurezza all'interno del mondo virtuale , ma oggi voglio parlare della possibilità di firewalling con VMware. C'è stato un sacco di entusiasmo riguardo relativamente nuovo VMware API VMsafe . In particolare, tutti sono rimescolando per creare / implementare firewall percorso veloce. Ma sono tutte le implementazioni percorso veloce creati uguali? Ci sono problemi di sicurezza con l'andare con una soluzione percorso veloce? Tuffiamoci dentro e vedere.

Ripartizione dei VMsafe

Con il rilascio della sicurezza VMsafe API, VMware ha migliorato le opzioni disponibili per l'attuazione della sicurezza all'interno di un ambiente vSphere, consentendo ai vendor di collegare direttamente l'hypervisor a ring 0. VMsafe costituito da tre componenti:

  • VDDK - ispezione blocco del disco. API è stata rilasciata pubblicamente.
  • vCompute - CPU e memoria API. Non è stato rilasciato pubblicamente. Sconosciuto partiti che terzi hanno accesso, se esiste.
  • vNetwork - API di controllo / filtro tra la vNIC e switch virtuale. Non è stato rilasciato pubblicamente. Per quanto a mia conoscenza, solo Altor Networks & Sistemi di Reflex hanno accesso (due fornitori che hanno collaborato nello sviluppo delle API).

In particolare, voglio parlare con l'API vNetwork. Quando si controlla il flusso del traffico di rete all'interno di un host ESX, ci sono due possibile implementazione, "percorso lento" e "percorso veloce".

Percorso lento

Percorso lento è il più semplice attuazione e quella che abbiamo usato per anni. Effettivamente questo è solo un ospite VM, simile a qualsiasi altra VM guest, in esecuzione sul host ESX. Tipicamente ogni ospite è collegato a un unico switch virtuale, e ciascuno di questi switch virtuali è collegato ad un unico vNIC sul firewall. Questo è simile a una configurazione di firewall legacy, ma implementato in modo virtuale. Il vantaggio di eseguire in cammino lento è che si può eseguire un sistema operativo pieno colpo con tutte le librerie o servizi necessari per supportare il firewall.

Percorso veloce

Percorso veloce è effettivamente un driver 0 anello che si collega direttamente alla hypervisor kernel. Questo permette un fornitore di terze parti di sfruttare l'hypervisor per l'inserimento tra ogni vNIC / switch virtuale connessione. Perché un driver percorso veloce è in esecuzione nel contesto del kernel, aggiunge overhead minimo per il sistema. Il risultato è l'esecuzione di codice all'interno di percorso veloce è sostanzialmente più veloce lo stesso codice viene eseguito all'interno di percorso lento (e quindi la convenzione di denominazione per VMware ogni contesto). Carico sul host ESX è ridotto al minimo, quindi il risultato finale è possibile eseguire gli ospiti molto più virtuale.

Veloce Vs Lento

Così suona come si vorrebbe fare tutto quanto in via veloce, ma ci sono una serie di questioni. Percorso veloce è un driver del kernel di collegare in un hypervisor non minimizzata, un sistema operativo completo colpo. Questo limita le librerie e dei servizi il firewall ha a disposizione per controllare il flusso del traffico. Inoltre, stiamo inserendo in un driver kernel così c'è bisogno di rassicurazioni che non gonfiare l'hypervisor, aumentare la superficie di attacco o di interferire con altre funzioni hypervisor. VMware esegue una revisione del codice su tutti i driver percorso veloce prima del rilascio. Quindi, se ho potuto teoricamente implementare tutto il codice in cammino veloce, avrei bisogno di approvazione VMware prima di ogni patch o funzione di rilascio.

Con questo in mente, un fornitore sostenendo "fast path" Il supporto è in realtà sta per finire l'attuazione di una parte del loro codice come percorso veloce, una parte come percorso lento, e quindi creare un connettore tra i due. Quanto carico è posto sul sistema dipenderà da quanto di questo codice è implementato nel percorso veloce e quanto di esso viene eseguito nel percorso lento.

Possibili implementazioni Fast Path

Per esempio, un fornitore potrebbe scegliere di scrivere un pilota veloce percorso che semplicemente tunnel tutti i pacchetti di nuovo ad un percorso lento firewall implementato. Il codice percorso lento quindi determina se il traffico dovrebbe essere passato o cadere, con i pacchetti passato essere rimandato il codice percorso veloce per l'inserimento nel hypervisor canale di controllo. Anche se questo sarebbe il metodo più semplice di distribuzione via veloce, e senza dubbio il più sicuro, avrebbe fornito i benefici meno prestazioni. Carico di sistema probabilmente non sarebbe molto meglio di una piena attuazione percorso lento. Io vedo questa opzione come molto interessante per fornitori di firewall legacy, in quanto richiederebbe la quantità minima di modifiche al codice esistente pur essendo in grado di rivendicare "favorire un rapido percorso".

Un'altra opzione sarebbe quella di utilizzare lo spazio lento percorso per le funzioni amministrative con il driver percorso veloce che funge da motore di firewall. Così per esempio l'amministratore del firewall potrebbe creare il criterio utilizzando un'interfaccia in esecuzione su una macchina virtuale percorso lento, che sarebbe quindi spingere la politica verso il basso per un pilota percorso veloce. In questa configurazione il driver percorso veloce ha una copia della polizza così il controllo del traffico possono essere attuate immediatamente. Il risultato è la gestione del traffico più veloce con il carico di sistema minimi. Fuori commercio è più ingombrante codice a ring 0.

E 'anche possibile implementare una miscela dei due. Per esempio potrei usare il driver rapido percorso per attuare la politica del firewall, ma poi passa tutto "accettato" i pacchetti di ritorno al sistema percorso lento per il controllo delle intrusioni, antivirus, o qualunque cosa sia necessaria. Pacchetti accettabili sono poi passato al conducente percorso veloce per l'inserimento. Quindi, in questa configurazione tutto "abbandonato" i pacchetti vengono gestiti via via più veloce, mentre i pacchetti accettato di interagire con un componente di tracciato lento.

Come nota a margine, è necessario mantenere le informazioni di cui sopra a mente quando si considerano tutte le implementazioni vNetwork, non solo firewall. L'API vNetwork può essere utilizzato anche per l'applicazione delle policy, QoS, raccolta di statistiche di rete, ecc Per esempio l'applicazione prima vNetwork era in realtà Lab Manager di VMware. Questo strumento è utilizzato per il provisioning self-service e non contiene un componente firewall (questo è implementata tramite vShield).

Riassunto

Mentre un prodotto che si integra con VMware VMsafe può assolutamente essere un "cammino lento" attuazione, è altamente improbabile che qualsiasi prodotto può essere considerato unicamente un "percorso veloce" attuazione. Qualsiasi prodotto percorso veloce è più probabile sarà un ibrido. E 'solo una questione di quantità di codice esiste nel "fast path" spazio rispetto al "lento percorso" spazio. Quando un prodotto rivendicazioni supporto veloce percorso, è necessario scavare un po 'più a fondo per analizzare l'attuazione al fine di individuare eventuali benefici di prestazioni reali.

Sistemi virtualizzati sono più o meno sicuro?

18 MAGGIO 2010

Ho avuto la domanda di cui sopra ha chiesto abbastanza volte che mi è sembrato degno di un post sul blog. Mentre qualche anno fa la risposta potrebbe essere stato "meno sicuri", oggi la risposta è "entrambi". Lo so, suona come Chris è senza impegno, ma che rispondono davvero più accuratamente descrivono lo stato attuale della tecnologia.

Virtualizzazione Everything Changes

Ho sentito una considerazione alcune persone che la virtualizzazione è sul punto di impatto del settore stesso modo in cui Internet ha fatto negli anni 90. Per essere onesto, penso che ci sia merito nel suddetto parere. Nei primi anni '90, la maggior parte gente correva IPX, AppleTalk, NetBUI e una pletora di altri protocolli su reti chiuse. Alla fine degli anni 90, la maggior parte persone correvano IP esclusivamente con connettività a tutto il mondo. Il modo in cui abbiamo fatto di business, così come il modo in cui abbiamo applicato la sicurezza, completamente cambiata nel corso di 10 anni. Sia l'amministrazione della rete e delle competenze di sicurezza che sono state all'avanguardia nel 1990, sono stati tutti inutili, ma entro il 1999.

La virtualizzazione sta cominciando a rampa fino ad avere lo stesso impatto sul settore. Implementazione della virtualizzazione richiede un completo ripensamento delle modalità di applicazione di sicurezza. Torna nel 1990, gli amministratori che semplicemente collegato a Internet, senza preoccuparsi di come questo avrebbe un impatto sulla loro rete, ha bruciato alla grande. Siamo in coda per vedere un risultato simile a quella gente di adottare la virtualizzazione.

Che cosa rende meno sicura la virtualizzazione

Il tallone d'Achille della virtualizzazione è nel software stesso. Speriamo ci si possa fidare del software per mantenere i sistemi guest distanza gli uni dagli altri, così come l'host e / o hypervisor. Ci sono due grossi problemi con questa aspettativa:

  1. Nessun software è privo di bug
  2. Il software può essere configurato

Pochi anni fa la ricerca di base ha dimostrato di poter uscire da un ospite e ottenere il controllo completo del sistema operativo host . Mentre un hypervisor dovrebbe limitare quel tipo di esposizione, abbiamo sicuramente visto casi in cui anche l'hypervisor è stato scavalcato . Abbiamo anche visto casi sono stati il software diventa sfruttabile solo se eseguito in un ambiente virtualizzato . Questi link mostra una piccola sezione trasversale dei problemi di virtualizzazione che sono stati scoperti nel corso degli ultimi anni. Google può darvi una lista più completa, se siete interessati.

Così un prudente sicurezza professionale sta per essere cauti di ciecamente fidarsi di software per essere sicuro. Il problema è che i venditori non sempre tengono questo stesso approccio. Prendere VMware con i loro ESX (che sarà presto ESXi) prodotto come esempio. Molti di noi erano sbalorditi quando un rappresentante VMware ha annunciato al CanSecWest che era teoricamente impossibile per attaccare il hypervisor ESX . Quando abbiamo semplicemente assumere qualcosa è infrangibile, qualcuno più creativo sta andando a trovare un modo di perforare attraverso .

Una delle mie maggiori preoccupazioni con ESX / ESXi VMware è che l'ha progettata per essere modulare (via VMsafe ). Sul lato positivo, questo significa che i fornitori esterni in grado di creare prodotti per migliorare l'hypervisor di funzionalità e sicurezza. L'aspetto negativo questo aumenta notevolmente le probabilità di cattivo codice in fase di introduzione, che può compromettere la sicurezza.

Abbiamo visto un grande esempio di questo in passato. Marcus Ranum creato il firewall Gauntlet, che a quel tempo era uno dei dispositivi culo più sicuro e calci di sicurezza disponibili. Quando tre agenzie lettera voleva il meglio della sicurezza, si è rivolto a Gauntlet. Marcus venduto Gauntlet per Network Associates (in seguito divenne McAfee) che immediatamente iniziato ad aggiungere nelle caratteristiche. Non passò molto tempo prima di una stringa costante di vulnerabilità sono stati scoperti, ciascuno introdotto da queste nuove "features". Da lì, il prodotto ha perso la sua sicurezza cred e scivolò fuori del radar.

Ora è certamente possibile aggiungere funzioni e tenere le cose sicure. Il FreeBSD gente sono un ottimo esempio di come farlo correttamente. Per garantire la sicurezza mantengono un processo di revisione molto rigoroso . E 'perfetto? Assolutamente no, ma il loro processo di revisione contabile ha messo la barra per l'implementazione di software sicuro. Con po 'di fortuna VMware farà simile, ma non ho sentito alcun ronzio di questo essere il caso.

Ottenere la testa dritta

OK, quindi non possiamo ciecamente fidarsi software di virtualizzazione per tenere a bada gli aggressori. Possiamo però ancora prendere precauzioni per ridurre al minimo l'impatto se il peggio si verifica. Uno dei più grandi passi da fare è quello di considerare attentamente quali server si ospitati, e ciò che gli altri sistemi guest sono autorizzati a funzionare sulla stessa macchina. Il concetto di zona di sicurezza utilizzati da architetti di rete è altrettanto applicabile qui.

Una zona di sicurezza è semplicemente un insieme di sistemi che condividono lo stesso livello di rischio relativo. Ad esempio server Web, il nome e SMTP di solito sono tutti situati in una DMZ, perché tutti i rischi quota analoga da attacchi diretti. Sulla parte interna della rete, i desktop sono di solito collocato in una zona di sicurezza diverso da quello dei server. Questo perché i server hanno poco o nessun accesso a Internet, mentre i desktop sono normalmente autorizzati a comunicare direttamente. Questo pone il desktop a più alto rischio di attacco rispetto al server.

Possiamo applicare questa stessa logica in sede di attuazione di virtualizzazione. Un server DMZ e un server interno non dovrebbero essere gli ospiti sullo stesso hardware (CPU e disk array). In questo modo potrebbe consentire a un utente malintenzionato di creare un percorso alternativo nella nostra rete. Piuttosto che dover passare attraverso qualsiasi firewall, NIDS, NIPS, dispositivi ecc che è stato distribuito sul filo, un malintenzionato può essere in grado di accedere alle risorse interne tramite il software di virtualizzazione. E 'un attacco facile? Non da quello che abbiamo visto finora. Sfrutta funzionali sono stati scoperti però, e allora perché introducono rischi inutili se non è necessario.

A proposito, queste stesse regole di zona di sicurezza deve essere applicato l'attrezzatura rete virtualizzata. Ad esempio, è una cattiva idea di utilizzare lo stesso interruttore fisico per VLAN la DMZ e la rete interna. Ho visto un paio di clienti whacked ottenere in questo modo.

Che cosa rende la virtualizzazione più sicuro

Fortunatamente, dal punto di vista della sicurezza, la virtualizzazione non è solo brutte notizie. In realtà ci sono alcune pratiche di sicurezza molto cool è possibile applicare in un ambiente virtualizzato che semplicemente non può farne a meno. Questa fu una delle ragioni per cui abbiamo iniziato a utilizzare la virtualizzazione all'interno del Honeynet già nel 2000.

Una delle questioni più grande sicurezza che abbiamo di fronte oggi è rootkit a livello kernel . Ciò che rende questo ceppo di malware in modo insidioso è si trasforma in modo efficace il sistema operativo in malware. Questo rende estremamente difficile il rilevamento, in quanto tutti i controlli di sicurezza devono passare attraverso il kernel. Se il kernel stesso è compromesso, non possiamo fare affidamento sul kernel di segnalare con precisione le informazioni di sicurezza. Si finisce per dover spegnere il sistema, montare l'unità su un noto per essere pulita del sistema operativo, e l'esecuzione di nostri controlli forense da lì. Oh, naturalmente il problema con questo processo è che non scala bene. Se abbiamo decine o centinaia di server, semplicemente non c'è abbastanza tempo in un giorno per controllare tutti correttamente.

Come accennato in precedenza, VMware è ora permettendo fornitori di terze parti l'accesso ai hypervisor tramite API VMsafe. Questo consente l'accesso alle informazioni sullo stato privilegiate, come la memoria e il traffico di rete, su ciascuno dei sistemi operativi guest. Inserendo nel hypervisor, alcune opzioni di sicurezza estremamente freddo diventano possibili.

Per esempio diciamo che un sistema operativo guest viene attaccato da un rootkit a livello kernel. Analizzando la memoria degli ospiti, il rootkit possono essere rilevati al di fuori del sistema operativo virtuale. Quando si eseguono i controlli attraverso l'hypervisor, c'è molto meno di una possibilità che un rootkit può furtivamente la sua attività 'e passare inosservato. Come già accennato, non esiste alcuna opzione paragonabile a un non-sistema virtualizzato.

La spina API crea anche nuove possibilità per affrontare il traffico crittografato. Quando un capo all'altro la crittografia è impiegato (come una VPN), controlli di rete in base del livello di applicazione possono essere facilmente aggirate. L'unica opzione reale è stato quello di eseguire il software agente sul punto finale, per cui la sicurezza potrebbero essere attuate dopo il processo di decodifica. Naturalmente il problema qui è che se l'agente viene attaccato, tutte le scommesse sono spenti. Ancora una volta, inserendo nel hypervisor siamo in una posizione migliore per esaminare in modo più sicuro di questi dati.

Stiamo iniziando a vedere nuovi prodotti che sfruttano le API VMsafe spina . Dal momento che tutti i prodotti sono relativamente nuovi, la giuria è ancora fuori sulla loro efficacia può essere. Offerte eseguire la mossa di sostituire firewall basato su host e protezione IDS per l'applicazione delle policy pieno. Sarà interessante vedere come questo prodotto di nicchia scuote nel corso dell'anno prossimo.

Riassunto

Così come ho accennato all'inizio di questo post, la virtualizzazione ha la capacità di rendere il vostro ambiente più o meno sicuro, a seconda di come distribuirlo. Se semplicemente iniziare a correre tutto su una singola casella, probabilmente andando ottenere whacked. Se si estende la best practice che sono state sviluppate nel corso degli anni nel regno di virtualizzazione, oltre a sfruttare alcune delle nuove caratteristiche di sicurezza che vengono rilasciate, si può effettivamente creare una postura migliore sicurezza complessiva.