• No results found

Vid utvecklingen av en applikation utgår arbetet från de krav som sätts upp av kund och/eller projektmedlemmar. Kraven ser till att resultatet av arbetet är det som förväntas. För att kunna garantera lämplig säkerhet hos en applikation i PaaS-miljö behöver säkerhetsrelaterade krav specificeras. Steg ett i PaaSM presenterar stöd för att genomföra en säkerhetsrelaterad kravställning i fyra olika aktiviteter. Varje aktivitet tar upp en säkerhetsaspekt.

Figur 6.2: Steg 1 - Kravställning

6.2.1 Aktivitet 1.1. - Identifiera säkerhetskrav: Data

Det är viktigt att specificera hur en applikation hanterar data. Applikationens ordinarie kravställning specificerar normalt vilken typ av data som ska han-teras och eventuellt på vilket sätt. Säkerhetsaspekter kan därmed lätt missas och det är därför viktigt att tidigt identifiera vilka säkerhetskrav som finns för applikationens data.

Identifiering av säkerhetskrav kopplade till data sker genom att först definiera vad som ska lagras. Specificera om den data som applikationen ska hantera som är extra känslig eller kräver specialhantering. Genomför en undersökning gällande vilka delar av applikationens data som kan placeras i molnet. Eventu-ellt finns det data som ej får hanteras av en extern molnleverantör och behöver lagras internt. Undersök huruvida det finns data som har geografiska restrik-tioner. Säkerställ huruvida den data som ska lagras i molnet tillåts placeras i

datacenter innanför eller utanför landsgränsen. Ytterligare skall kraven speci-ficera hur data får transporteras mellan enheter i applikationens infrastruktur samt hur förändring och läsning av data får ske och av vem.

6.2.2 Aktivitet 1.2. - Identifiera säkerhetskrav: Access

Att identifiera säkerhetskrav gällande access är viktigt ur två olika aspekter, access för användare delaktiga i utvecklingen av applikationen och de olika aktörerna som ska använda applikationen. Generellt när det gäller access vill man i högsta grad sträva efter principen minsta möjliga behörighet. Minsta möjliga behörighet innebär att ingen utvecklare eller användare ska tilldelas högre behörighet än vad som krävs för att de ska kunna utföra sin uppgift. Ett tillvägagångssätt för att minska överflödig access under utvecklingen är att endast utse en administratör med ansvaret för att tilldelning av access för att säkerställa att access tilldelas enhetligt till alla. Det är viktigt att kontrollera vad för access användaren behöver och till vilka delar av applikationen. Under processen är det viktigt att klargöra användarens roll och uppgift i applikatio-nen för att se till att de inte får access utöver vad deras roll kräver.

6.2.3 Aktivitet 1.3. - Identifiera säkerhetskrav:

Tillgäng-lighet

Säkerhetskrav för en applikations tillgänglighet identifieras för att begränsa applikationens risk att bli utsatt för attacker eller intrång. Finns det inget be-hov av åtkomst oavsett position eller typ av anslutning minskas potentiella säkerhetsrisker markant om applikationen ej görs tillgänglig utanför de krav som finns.

Identifiering av säkerhetskrav för tillgänglighet handlar om att definiera vilken typ av applikation det är genom att klargöra om den är tänkt att endast användas internt hos ett företag eller publik på Internet. Om applikationen endast skall användas internt behöver den inte vara synlig eller tillgänglig online. Kraven

på tillgänglighet kan behöva anpassas efter de säkerhetskrav som identifieras för applikationens data. Finns det data som ej får förflyttas utanför det interna nätverket kan restriktioner för tillgänglighet via VPN behöva specificeras.

6.2.4 Aktivitet 1.4. - Identifiera säkerhetskrav: Övrig

säkerhet

Säkerhetskrav för applikationer varierar beroende på typ applikation. Det är därmed viktigt att identifiera eventuella applikationsspecifika krav kring sä-kerhet utöver de tidigare aktiviteterna. Detta görs enklast genom att specificera typ av applikation, dess syfte och mål samt ta hänsyn till eventuella krav från kund som påverkar eventuella beslut kring säkerheten.

6.3 Steg 2 - Informationsklassning

Informationsklassning är en process för att dela in applikationens data och

resurser i olika nivåer utifrån de konsekvenser som kan uppstå från otillräck-ligt skydd. Klassificeringen utförs på olika säkerhetsaspekter, konfidentialitet,

riktighet och tillgänglighet. Detta bidrar till att förbättra både datasäkerhet och

överensstämmelse med rådande lagar och regler. Genom att klassificera data skapas en tydligare förståelse vad för data som faktiskt hanteras och av vem.

6.3.1 Aktivitet 2.1. - Definiera informationsmängder

Första momentet i informationsklassningen handlar om att kartlägga data och resurser som applikationen är tänkt att hantera och bearbeta. Syftet är att skapa en överblick på vilka olika typer av information som behöver skyddas utifrån särskilda säkerhetsaspekter. Att definiera informationsmängder innebär att un-dersöka och dela upp informationen som applikationen avser att behandla i meningsfulla mängder. Vad som anses vara en meningsfull mängd kan vara svårt att definiera. En grundregel är att en informationsmängd är den mins-ta sammansatmins-ta grupperingen av information som hanteras av applikationen. Två exempel på vad lämpliga informationsmängder kan vara är personuppgif-ter och bankuppgifpersonuppgif-ter. Båda kan innehålla en varierande mängd data beroende på applikationens behov men minsta sammansättningen av namn, adress och födelsedatum är vanligtvis personuppgifter.

Genomförandet av detta moment kräver att medverkande besitter grundlig kunskap om den information applikationen hanterar under sin livscykel. Re-sultat skall vara en lista av lämpliga informationsmängder.

Nivå \Aspekt Konfidentialitet Riktighet Tillgänglighet

Allvarlig K3 R3 T3

Betydande K2 R2 T2

Måttlig K1 R1 T1

Ingen K0 R0 T0

6.3.2 Aktivitet 2.2. - Klassificera informationsmängder

I moment två av informationsklassningen ska listan på informationsmängder klassificeras. Det innebär att det ska genomföras en konsekvensbedömning på vilka konsekvenser som kan inträffa om informationens konfidentialitet,

rik-tighet och tillgänglighet inte upprätthålls. Syftet med detta steg är att bedöma

vilken aspekt som är mest kritisk för respektive informationsmängd från före-gående aktivitet.

Konfidentialitet syftar till vilka konsekvenser som kan uppstå i de fall

informa-tionen läcker eller blir åtkomlig för obehöriga. Riktighet syftar till vilka kon-sekvenser som kan uppstå om informationen är felaktig eller inaktuell.

Till-gänglighet handlar om ifall en användare inte får tillgång till informationen

förutsatt att användaren är behörig.

Varje informationsmängd ska tilldelas en konsekvensnivå för alla tre aspekter. Skalan på konsekvensnivåer kan bestämmas efter preferens. Ett förslag är att använda en skala från noll till tre, se tabell 6.1. Noll innebär är att informa-tionen inte kan orsaka någon form av skada oberoende av konsekvens. Kon-sekvensnivå tre innebär därmed kritiska konsekvenser vid otillräckligt skydd. Det kan underlätta att tänka på vad för data applikationen hanterar i olika sam-manhang. Dessa kan vara till exempel inmatning, bearbetning, lagring och ut-matning. Efter konsekvensbedömningen ska varje informationsmängd inven-teras mot eventuella interna och externa krav. Dessa kan till exempel inkludera lagar (GDPR), avtal, kundkrav, organisationella krav eller specifika krav på sä-kerhet som definierats i steg ett av PaaSM.

6.3.3 Aktivitet 2.3. - Sammanställ lista med

säkerhets-åtgärder

Resultatet från föregående aktivitet, Klassificera informationsmängder, ska i det tredje momentet användas för att sammanställa en lista på säkerhetsåtgär-der som ska införas för att uppnå den nivå av skydd varje informationsmängd kräver. Informationsmängdernas konsekvensnivåer ska användas som riktlin-jer till att formulera lämpliga säkerhetsåtgärder.

Om en informationsmängd har högt värde på konfidentialitet bör fokus ligga på att ta fram säkerhetsåtgärder som ska upprätthålla rigorösa access kontroller för att minska risken för obehörig access. Utöver access bör även informatio-nen krypteras för att skapa ett ytterligare lager av säkerhet. Ett hög konsekvens-nivå på tillgänglighet innebär ett behov att informationen alltid ska finnas till-gänglig, därmed bör säkerhetsåtgärder inkludera olika former av säkerhetsko-piering och redundans. Med höga värden på riktighet bör säkerhetsåtgärder inkludera rigorösa valideringskontroller.

6.4 Steg 3 - Implementering av Datasäkerhet

Vid implementation av de krav som specificerats för säkerheten kring appli-kationens data är det viktigt att kontrollera och hantera de säkerhetsaspekter som anses kritiska för PaaS-applikationer. Det tredje steget i PaaSM presente-rar dessa säkerhetsaspekter och potentiella lösningar från Microsoft Azure och

Google Cloud.

6.4.1 Aktivitet 3.1. - Implementera säkerhetsåtgärder

för data-access

Tilldelning av data-access medför alltid risken att användare får tillgång till data utanför deras behov. Detta medför i sin tur ökad risk att denna data för-störs eller hamnar i fel händer. För att minimera riskerna att obehöriga och ej berättigade användare får tillgång till känslig data vill man sträva efter princi-pen “Minsta möjliga behörighet”. Användarens datatillgång ska även följa de säkerhetskrav som specificerats för applikationen.

Vid implementation av data-access är det viktigt att ta hänsyn till tidigare steg av PaaSM där både de krav som specificerats gällande säkerhet vid data-access (Steg 1, aktivitet 1.1-1.2) och de konfidentidentialitetsnivåer som satts upp i samband med genomförd Informationsklassning (Steg 2, aktivitet 2).

Genomförandet av denna aktivitet skall säkerställa att den implementation som genomförts uppfyller önskade krav gällande access till data. Säkerställ det-ta genom att kontrollera implemendet-tation av följande: (1) Tilldelning av dadet-ta-

data-access, (2) På vilka sätt är applikationens data tillgänglig och (3) Begränsas data-access enligt definierade krav.

Både Microsoft och Google tillhandahåller lösningar för hantering av access.

Microsoft har Azure Active Directory och Google har Cloud Identity Access Management. Båda tjänsterna tillhandahåller verktyg för hantering av

6.4.2 Aktivitet 3.2. - Implementera säkerhetsåtgärder

för datalokalitet

Kontrollen över vilken data som lagras var försämras i samband med att den flyttas till molnet. Leverantörens infrastruktur ofta är spridd över flera geogra-fiska platser kan även den data som lagras spridas. Spridning kan vara både positivt och negativt eftersom det dels skapar geografisk redundans men även kan placera lagrad data på platser som inte tillåts i kravställningen. Det är där-för viktigt att ha kunskap om var och på vilket sätt data lagras av leverantören. Finns det specifika krav kring lagring med geografiska restriktioner är det vik-tigt att kontrollera var applikationens data lagras. Detta för att vara säker på att eventuella lagar på den geografiska platsen efterföljs och skyddar den data som placeras där. Vissa leverantörer kan sakna resurser på de geografiska plat-ser som behövs för att tillgodose applikationens krav. Microsoft och Google tillåter användare att välja region vid behov.

Genomförandet av aktiviteten skall säkerställa att data lagras enligt specifice-rade krav för applikationen. Säkerställ att eventuell data som kräver specifik lagringsplats geografisk endast lagras på korrekt plats. Kontrollera även om geografisk redundans är aktiv om det finns med i kravställningen.

6.4.3 Aktivitet 3.3. - Implementera säkerhetsåtgärder

för dataintrång

Oavsett om data lagras i molnet eller privat finns det alltid risk för dataintrång. Ett intrång är när konfidentiell information släpps till en osäker domän. Detta kan ske medvetet eller omedvetet i samband med till exempel en attack eller felaktiga inställningar i applikationen. Molnbaserade applikationer bygger på multi-tenancy och ett intrång hos en kund kan därmed innebära ett intrång hos en annan kund. Det är därför viktigt att minska riskerna och konsekvenserna för dataintrång utöver de skydd molnleverantören tillhandahåller.

Genomförandet av denna aktivitet skall säkerställa att applikationen är skyd-dad mot potentiella intrång. Kontrollera att samtliga instanser i applikationens infrastruktur är lösenordsskyddade. Kontrollera även att applikationens data är

krypterad samt var krypteringsnycklar lagras och hur de hanteras. Konsekven-ser för ett intrång kan minskas genom att kryptera all data som lagras. Detta leder till att den data som kan läcka ej är läsbar och därmed oanvändbar. Både

Microsoft Azure och Google Cloud tillhandahåller möjligheter till kryptering

för data.

Always Encrypted Wizard och Azure Key Vault från Microsoft Azure

tillhanda-håller kryptering för vilande data, data under transport och aktiv data.

Micro-soft tillhandahåller även stöd för maskning av data dynamiskt i samband med

sökningar. Google Cloud krypterar all data som standard och kräver därmed ingen extra handpåläggning. Genom tjänsten Cloud Data Loss Prevention finns stöd för dynamisk maskning samt möjligheten till att redigera känslig data sä-kert.

6.4.4 Aktivitet 3.4. - Implementera säkerhetsåtgärder

för data-segregation

Molntjänster bygger på att flera klienter körs på samma hårdvara och där-för måste dessa hållas separerade. Utan ordentlig separering mellan kunder i multitenancy-situationer kan dataintrång hos en kund leda till problem även hos andra. I de fall applikationen man utvecklar skall hantera multipla klienter genom multitenancy krävs det att dessa separeras från varandra.

Genomförandet av aktiviteten skall säkerställa att samtliga tenants i applika-tionen är separerade från varandra. Kontrollera att dessa ej kan nå eller se öv-riga tenants lagrade data. Både Microsoft Azure och Google Cloud har stöd för multitenancy i sina PaaS-plattformar. I Google App Engine kan multitenancy uppnås med genom att separera klienter med hjälp av namnrymder. I Microsoft

Azure kan man genom att använda Azure Service Fabric uppnå multitenancy. Azure Stack är ett alternativ till Azure Service Fabric med har inbyggt stöd för

6.4.5 Aktivitet 3.5. - Implementera säkerhetsåtgärder

för säkerhetskopiering

Förlusten av data kan ha stora konsekvenser och den data som sparas mås-te därför säkerhetskopieras för att kunna åmås-terställa sysmås-tem vid eventuella kra-scher eller korruption. Geografisk redundans kan bidra till ökad säkerhet för applikationens data på grund av att datan finns på flera platser.

Genomförandet av denna aktivitet skall säkerställa implementation av data-backup enligt specificerade krav. Kontrollera att inställningar för data-backup och redundans stämmer överens med specificerade krav. Både Google Cloud och

Microsoft Azure tillhandahåller tjänster för automatiskt säkerhetskopiering.

6.5 Steg 4 - Implementering av

Related documents