Mange av oss jobber nå med virtuelle brannmurer. Jeg gjorde et tidligere innlegg om hvilke styrker og svakheter ved sikkerheten i den virtuelle verden , men i dag vil jeg snakke om brannmursystemer muligheter med VMware. Det har vært mye spenning om VMwares relativt ny VMsafe API . Spesielt er alle desperat å opprette / distribuere raske veien brannmurer. Men er alle raske veien implementeringer skapt like? Er det sikkerhetsmessige bekymringer med å gå med en rask bane løsning? La oss dykke i og se.
Spesifikasjon av VMsafe
Med utgivelsen av VMsafe sikkerhet API, har VMware forbedret de tilgjengelige alternativene for å implementere sikkerhet innenfor en vSphere miljø ved å tillate leverandørene å plugge rett inn i hypervisoren på ringen 0. VMsafe består av tre komponenter:
- VDDK - Disk blokk inspeksjon. API har blitt offentlig utgitt.
- vCompute - CPU og minne API. Har ikke blitt offentliggjort. Ukjent hvilke tredjeparter har tilgang, hvis noen.
- vNetwork - API til å overvåke / filter mellom vNIC og vSwitch. Har ikke blitt offentliggjort. Så vidt jeg vet, bare Altor Networks og Reflex Systems har tilgang (to leverandører som bistått i utviklingen av API).
Spesielt ønsker jeg å snakke med vNetwork API. Når man kontrollerer nettverk trafikkflyten innenfor en ESX host, det er to mulige implementering, "slow sti" og "rask sti".
Slow bane
Slow banen er det enkleste gjennomføringen og den vi har brukt i årevis. Effektivt dette er bare en VM gjest, likt andre VM gjest, kjører på ESX host. Vanligvis hver gjest er koblet til en unik vSwitch, og hver av disse vSwitches er koblet til en unik vNIC på brannmuren. Dette ligner på en arv brannmur oppsett, men implementert nesten. Nytten av utførende i langsom bane er at du kan kjøre en full slag OS med noen av bibliotekene eller tjenester som kreves for å støtte brannmuren.
Fast bane
Fast bane er effektivt en ring 0 driver som plugges direkte inn i hypervisoren kjernen. Dette gjør at en tredjepartsleverandør for å utnytte hypervisor for innsetting mellom hver vNIC / vSwitch tilkobling. Fordi en rask bane driver kjører i kernel sammenheng, legger det minimal overhead til systemet. Resultatet er kode innenfor raske veien er vesentlig raskere enn den samme koden som blir henrettet i langsom bane (derav VMware navnekonvensjon for hver sammenheng). Belastningen på ESX host er minimert, slik at sluttresultatet er at du kan kjøre langt flere virtuelle gjester.
Fast Vs Slow
Så det høres ut som du ønsker å gjøre alt innenfor raske veien, men det er en rekke problemstillinger. Fast bane er en kjerne sjåfør plugge inn en minimert hypervisor, ikke en full slag operativsystem. Dette begrenser bibliotekene og tjenestene brannmuren har tilgjengelig for å kontrollere trafikken flyt. Videre er vi plugge inn en kernel driver så det må være forsikringer om at det ikke bloat hypervisoren, øke angrepsflaten eller forstyrre andre hypervisor funksjoner. VMware utfører en kode gjennomgang på alle raske veien drivere før utgivelse. Så hvis jeg kunne teoretisk gjennomføre all koden min i raske veien, ville jeg trenge VMware godkjenning før hver patch eller funksjon utgivelse.
Med dette i bakhodet, er en leverandør som hevder "raske veien" support faktisk kommer til å ende opp implementere en del av koden sin så fort bane, en del som langsom bane, og deretter opprette en kobling mellom de to. Hvor mye belastning på systemet vil avhenge av hvor mye av denne koden er implementert i raske veien og hvor mye av den utføres i sakte sti.
Mulige raske veien Utplasseringer
For eksempel kan en leverandør velge å skrive en rask bane driver som bare tunneler alle pakker tilbake til en langsom bane implementert brannmur. Den langsomme banen koden avgjør deretter om trafikken skal videreformidles eller droppet, med bestått pakker som sendes tilbake til den raske veien koden for innsetting i hypervisoren kontroll kanalen. Selv om dette ville være den enkleste metoden for å distribuere raske veien, og uten tvil den tryggeste og mest sikre, ville det gir minst ytelse fordeler. Belastningen på systemet ville sannsynligvis ikke være mye bedre enn en full langsom bane gjennomføring. Jeg ser dette alternativet som meget attraktive for eldre brannmurforhandlere, som det ville kreve minst mulig endring av eksisterende kode og samtidig være i stand til å kreve "fast sti støtte".
Et annet alternativ ville være å bruke den langsomme banen plass til administrative funksjoner med den raske veien sjåføren fungerer som brannmur motoren. Så for eksempel brannmuren administrator ville skape politikk ved hjelp av et grensesnitt som kjører på en langsom bane VM, som da ville presse politikken ned til en rask bane driver. I dette oppsettet den raske veien sjåføren har en kopi av politikken slik at trafikken kontroll kan gjennomføres umiddelbart. Resultatet er raskere trafikk håndtering med minimal system belastning. Handelen av er bulkier kode på ring 0.
Det er også mulig å implementere en blanding av de to. For eksempel kan jeg bruke den raske veien sjåføren å gjennomføre brannmuren politikken, men da passerer alle "akseptert" pakker tilbake til den langsomme banen system for inntrenging kontroll, virussøk, eller hva er nødvendig. Akseptable pakker blir deretter sendt tilbake til den raske veien driveren for innsetting. Så i dette oppsettet alle "løse" pakker håndteres via raske veien, mens akseptert pakker samhandle med en langsom bane komponent.
Som en side notat, må du holde ovenfor info i tankene når de vurderer alle vNetwork implementeringer, ikke bare brannmurer. Den vNetwork API kan også brukes til håndhevelse, QoS, innsamling av nettverk statistikk, etc. For eksempel den aller første vNetwork gjennomføringen var faktisk VMwares Lab Manager. Dette verktøyet brukes for selvbetjening klargjøring og inneholder ikke en brannmur komponent (dette er implementert via VShield).
Oppsummering
Mens en VMware produkt som integrerer med VMsafe kan strengt være en "slow sti" gjennomføring, er det svært usannsynlig at et produkt kan anses utelukkende en "rask sti" gjennomføring. Enhver rask bane produktet er mest sannsynlig kommer til å bli en hybrid. Det er bare et spørsmål om hvor mye kode finnes i "raske veien" rom versus "slow stien" plass. Når et produkt hevder rask sti-støtte, må du grave litt dypere for å analysere gjennomføringen for å identifisere eventuelle reelle ytelsen.