När allt mer data lagras i molnet måste man titta närmare på säkerhet och integritet för ens molntjänst. Det kan vara klokt att börja med att ställa sig några frågor: Hur känsliga data lagrar man? Behövs det kryptering enbart av data under transport eller även av statiska data som lagras på disk? Vem skyddar man sig mot och vilka attacker är rimliga att räkna med?
Skydden ser olika ut beroende på vilken variant av molntjänst man använder. Vi tänker här arbeta scenariobaserat, och vill maximera säkerheten så långt det bara är möjligt med dagens teknik.
En första viktig sak att förstå är att i en infrastructure as a service-lösning (iaas) är det ens eget ansvar att se till att servrarna (virtuella maskiner, vm) är krypterade och att man har ordentlig backup på all data. En iaas-lösning innebär att någon annan tillhandahåller fysiska servrar, lagring och nätverk, medan man själv ansvarar för os och högre lager.
För att uppnå maximal säkerhet är det ett flertal olika delar som man behöver tänka på. I vår genomgång här använder vi oss av Microsofts iaas-tjänst Azure, men informationen är lika tillämpbar på andra iaas-leverantörer.
Virusskydd alltid lika viktigt
Det är minst lika viktigt att använda virusskydd i molnservrarna som det är i en lokal lösning. En molnserver går lika bra att nå, till exempel över en vpn-förbindelse från det lokala nätverket, som vilken som helst av de lokala servrarna och behöver alltså skyddas på samma sätt. Hos många iaas-leverantörer är det något man måste hantera helt själv.
Ett undantag är Microsoft tjänst Azure, där man kan välja att inkludera installation av virusskydd från Microsoft, Trend Micro eller Symantec när man skapar en vm. Microsoft saknar ett bra verktyg för att enkelt kunna hantera virusskydd från en central plats, och därför rekommenderar vi en tredjepartslösning.
Väljer man Trend Micro eller Symantec får man en uppdaterad virus-skyddsprodukt, men måste själv se till att man har licenser för produkten. Man måste också själv infoga sin vm i en befintlig lösning för att hantera virusskyddsprodukten. Den som har en annan virusskyddlösning i dag kan förstås använda den genom att välja bort installation av virusskydd när man skapar en vm.
Du sköter patchningen själv
I en iaas-lösning ansvarar man själv för att se till att servrarna är uppdaterade med de senaste patcharna som släppts. Det gäller alltså att planera för patchning av servrarna via Windows Server Update Service, WSUS, på samma sätt som för de lokala servrarna. I molntjänsten Azure underhåller Microsoft servermallarna med ungefär en månads mellanrum, så en nyskapad server är alltid hyggligt bra patchad. Sedan måste man själv hålla reda på underhållet.
Det går också att ladda upp en egen servermall om man vill, och då får man förstås själv hålla efter den med de senaste uppdateringarna. Oavsett vilken iaas-lösning man väljer kommer det att vara enkelt att publicera en server ut mot internet. Det är givetvis mycket viktigt att patcha alla servrar som publiceras, och det är vanligt att man har ett automatiskt godkännande av patchar som ska levereras till sådana servrar.
Kryptering på applikationsnivå
Vissa produkter innehåller sin egen krypteringslösning, och de kan vara användbara i en molnlösning. Allt från SQL Server till Winzip har egen kryptering som kan användas, vilket kan göra det betydligt svårare för någon att få tillgång till läsbart data. Kryptering på databasnivå i SQL Server är transparent för applikationerna, vilket gör det enkelt att använda. Krypteringen kallas för transparent dataencryption, tde. Du kan välja enklare former av kryptering av databaserna med tde, till exempel lösenordsbaserad eller certifikatbaserad kryptering.
Det går också att välja en mer avancerad metod som kallas för ekm, som innebär att krypteringsnycklar sparas i en lokal enhet kallad hsm. Denna nås från vm via till exempel Expressroute eller via en site-to-site-vpn över internet. Azure innehåller också ett ”key vault”, en säker plats att lagra kryptonycklar för ekm, som kan användas som nyckellager. Vill man vara helt säker på att det enbart är en själv som kan komma åt krypteringsnycklarna måste man använda ett nyckellager som befinner sig på det lokala nätverket.
Det är viktigt att förstå att det enbart är data som ligger placerat i databaserna som är krypterade. Data som överförs över nätverket till användarna är troligen okrypterade och måste säkras upp på annat sätt. Backuper av krypterade databaser är däremot krypterade och skyddade. Det är enbart SQL Enterprise edition som ger möjlighet till tde, så om det är en lägre licensform av SQL som används går det inte att aktivera tdekryptering.
Det är också viktigt att minnas att krypteringen kommer att sänka prestandan på SQL Server och det ganska rejält. Det förekommer olika uppgifter, men räkna med mellan 10 och 30 procent försämrad prestanda. Man ska alltså inte aktivera kryptering slentrianmässigt.
Ett annat exempel på kryptering direkt i en tillämpning är Microsofts molnbaserade lagringslösning Storsimple. Den utnyttjar lokal lagring i kombination med molnlagring för att kunna erbjuda närmast obegränsad lagringsmängd. Storsimple krypterar data innan man placerar dem i molnet, och de är därför oläsliga för någon som inte har tillgång till den nyckel som ligger placerad enbart i den lokala lagringsenheten. Det är en trevlig kombination eftersom det ger extremt stor lagringsyta, och ingen annan kan komma åt informationen som lagras i molnet. Data krypteras med aes-256, vilket ger en extremt hög säkerhetsnivå.
Diskkryptering mest effektivt
Den kanske effektivaste formen av kryptering i en iaas-lösning är att använda diskkryptering. Alla data blir krypterade och det går inte ens att starta en vm om någon har gjort otillbörliga ändringar i den. Det går oftast bra att aktivera Windows inbyggda Bitlocker-kryptering på datadiskar (D:, E: osv) i en vm, men man kan räkna med bekymmer om man försöker bitlockerkryptera en bootpartition, oavsett vilken iaas-leverantör som används.
Eftersom en vm körs ovanpå en hypervisor i en iaas-lösning kan man inte använda sig av ett tpm-chip (trusted platform module) i hårdvaran. Normalt är det vad som krävs för att kunna aktivera Bitlocker på en volym. Däremot finns möjlighet att slippa det kravet genom att via gpo ange att man ska kunna kryptera volymer även utan ett tpm-chip. Man måste då använda någon annan form av autentisering för att låsa upp en krypterad volym, till exempel en sid-baserad dekryptering. Det innebär att enbart en viss inloggad användare kan låsa upp en disk.
Man kan också ange att ett lösenord måste användas för att låsa upp en krypterad volym. Även om det fungerar rent tekniskt är det inte helt användarvänligt, och man behöver också använda sig av kommandotolken eftersom det hela styrs via kommandot manage-bde.exe. Det är därför mycket troligt att man vill ta sig en titt på tredjepartsprodukter som ger enklare administration och dessutom ytterligare säkerhet som Microsofts inbyggda lösning inte erbjuder i en iaas-miljö.
Eftersom vi vill kryptera alla data får vi använda oss av en tredjepartslösning för att komma runt problemet med att kryptera bootpartitionen. För det syftet testade vi en produkt som heter Cloudlink. Den är specifikt framtagen för att kunna erbjuda en effektiv kryptering på disknivå, oavsett i vilken iaas-tjänst en vm körs i. Det går alltså att använda samma produkt, oavsett om man använder iaas-tjänster i Azure, Amazon eller Vcloud Air, vilket är en stor fördel. Det finns givetvis heller inget som förhindrar kryptering av vm som körs i ett eget datacenter, även om det inte är det scenario vi arbetar efter här.
Cloudlink består av flera olika delar. I varje vm som ska använda kryptering måste en liten agent installeras. Det finns också en komponent som heter Cloudlink Center som är den plats där lösningen administreras och krypteringsnycklar också kan sparas. Cloudlink Center körs som en virtuell server, antingen i Azure, i en annan iaas-lösning eller i det egna lokala nätverket. Den går att enkelt köpa på marknadsplatsen i Azure, och man betalar per minut som lösningen används.
För enkelhets skull gjorde vi så, och snabbt fick vi en ny vm skapad i Azure som innehöll Cloudlink Center. När den var på plats kunde vi från den ladda ner ett installationspaket som skulle köras i varje vm i Azure. Paketet installerar en liten agent som kommunicerar med Cloudlink Center, hämtar krypteringsnycklar och rapporterar sin krypteringsstatus.
När agenten är installerad startar vm:en om och en ny partition skapas i den virtuella hårddisken (vhd-filen). Sedan startar vm om en gång till och då från den nya partitionen. Ompartitioneringen gör det möjligt för produkten att kryptera även bootvolymen C:, eftersom en vm i Azure alltid måste boota från en okrypterad volym. När vm sedan startat upp initieras automatiskt en Bitlockerkryptering på alla volymer och status rapporteras tillbaka till Cloudlink Center där man kan följa förloppet. Cloudlink uppfinner alltså inte någon egen krypteringslösning, utan utnyttjar befintlig Bitlockerkryptering, vilket gör lösningen bekväm och enkel att använda. Nycklarna som används för kryptering kan antingen sparas direkt i Cloudlink Center eller lagras i en extern hsm-modul.
Det är en unik möjlighet att kryptera hela vm, inklusive bootdisken, och den ger goda möjligheter att garantera att data inte kan förändras eller läsas när en vm är avslagen eller om någon skulle komma över vhd-filer på otillåtet sätt.
TechWorlds slutsats
I och med att man placerar sina data hos externa molnleverantörer finns alltid en risk att någon obehörig ska komma åt informationen. Om dina data inte är känsliga eller om du har mycket stort förtroende för leverantören kanske det inte är nödvändigt med några extra säkerhetsåtgärder. Om du ser fördelar med molntjänster men vill ha en hög säkerhet för dina data kan du ta till en eller flera av de åtgärder som vi tar upp här.
Molntjänster blir allt vanligare och det är troligt att du kommer att råka på dem i ditt arbete förr eller senare. Varför inte redan nu fundera på vad du kan placeras där och hur du ska arbeta med säkerhetsfrågorna i molnet.
År 2001 utlystes en tävling om vilket krypto som skulle ersätta des, som använts sedan 1977 och ansågs vara för dåligt för dagens behov. Det symmetriska krypto som vann hette Rijndael, efter sina upphovsmän. I dag är det känt under namnet advanced encryption standard (aes) och ingår i många olika implementationer. I Windows används det för diskkryptering med Bitlocker, och då aes- 128. Det betyder att en symmetrisk nyckel med en längd av 128 bitar används vid krypteringen. För ökad säkerhet går det att använda en 256-bitars nyckel för Bitlocker, men många experter menar att det är ett slag i luften. Redan ett 128-bits krypto skulle i dag ta flera miljarder år att knäcka, och det skulle kräva oerhört mycket energi. Det gör att man anser att det är omöjligt att dekryptera en aes-krypterad text utan att ha tillgång till nyckeln. Det finns också ett antal brottsutredningar där polisen gått bet på att få fram information som krypterats med aes. Den svaga länken är själva lösenordet, där ett långt och krångligt lösenord gör det nästan omöjligt att genomföra en ordboksattack.
Läs mer om aes: "6 krypton dominerar i dag - men vilka dominerar i morgon?"
aes, advanced encryption standard: Dominerande symmetrisk standardalgoritm. 128 eller 256 bitar.
Bitlocker: Inbyggd funktion i Windows som gör det möjligt att kryptera diskvolymer med aes.
ekm, extensible key management: Funktion i SQL Server som gör det möjligt att utnyttja en hsm för lagring av kryptonycklar.
iaas, infrastructure as a service: Typ av molntjänst som innebär att dina servrar körs hos någon annan, men att du har full tillgång till dem och sköter om dem själv via en administrationsportal.
hsm, hardware security module: Hårdvaruenhet på nätverket som är specialutformad för att lagra krypteringsnycklar.
WSUS, Windows Server Update Services: Inbyggd funktion i Windows Server som hanterar spridning av patchar internt på företaget.
tinytw.se/cloudlink - Mer om hur Cloudlink fungerar.
tinytw.se/cloudsec - Mycket bra genomgång av hur säkerheten i molnlösningar kan höjas (video).
tinytw.se/molnserver2014 - Bästa servern i molnet 2014 – TechWorlds stora test.