Försvar på djupet: Del 7 Sammanfattning
19 September 2023Vi har genom denna artikelserie berört ett antal grundläggande principer för hur man bygger säkra applikationer.
- Defense in depth — Bygg säkerhet i flera lager
- CIA-A — Säkerhet är en balans, glöm inte bort tillgänglighet
- Least Privilege — Minsta möjliga behörighet för uppgiften
- Rotate, Repave and Repair — Säker drift kräver automatisering
- Secure by design — Säkerhet är en del av din domän
- Zero trust — Lita inte på någon aktör, något data, eller enskilt säkerhetslager
- Secure defaults — Begränsa möjligheten för felkonfiguration
När vi på Omegapoint genomför säkerhetsgranskningar hittar vi normalt sett fler sårbarheter ju mer komplext systemet är. Det är inte bara på grund av att komplexa system har fler funktioner och ger oss en större attackyta, utan även på grund av att de kan vara svåra att få grepp om. Många brister som vi hittar grundar sig i att teamet inte förstår sitt system fullt ut. Det kan till exempel handla om att teamet inte vet vilka API:er som är publika.
Ett system som teamet förstår och kan överblicka har mycket bättre förutsättningar för att bli säkert. Vi hittar normalt färre brister i system där teamet kan rita upp och förklara systemet till sin helhet.
Vi inleder varje säkerhetsgranskning med att teamet som ansvarar ger en teknisk systembeskrivning och bland annat svarar på följande frågor:
- Vilken data systemet innehåller, och vad som är skyddsvärt
- Vilka ingångar som finns, hur de skyddas och hur behörighetskontrollen ser ut
- Vilka integrationer som finns och hur de används
Enligt vår erfarenhet kan säkra system alltid beskrivas av teamet enligt dessa punkter. Det omvända gäller inte, dvs. ett system som kan beskrivas är inte alltid säkert. Förståelsen för systemet ger dig förutsättningar att bygga en säker lösning, det är inte en garanti.
“You can’t secure what you don’t understand” – Bruce Schneier, 1999
https://www.schneier.com/essays/archives/1999/11/a_plea_for_simplicit.html
Det är också viktigt att förstå olika typer av attacker för att kunna implementera och verifiera systemets olika skyddslager. Här är OWASP en utmärkt start. Vår erfarenhet från säkerhetsgranskningar visar att OWASP definierar en bra basnivå som är relevant för många system och är rimlig att implementera. OWASP har mycket bra dokumentation. Vi vill särskilt lyfta fram:
För att få ett säkert system över tid krävs ett strukturerat arbetssätt där säkerhet är en integrerad del av din process. Oberoende, återkommande säkerhetsgranskningar ger dig återkoppling på att ditt säkerhetsarbete fungerar.
Se Defense in Depth för ytterligare material och kodexempel kopplade till den här artikelserien.
Fler artiklar i serien:
- Försvar på djupet: Del 1 Modellering av identitet
- Försvar på djupet: Del 2 Claimsbaserad behörighetskontroll
- Försvar på djupet: Del 3 Klienter och sessioner
- Försvar på djupet: Del 4 Säkra API:er
- Försvar på djupet: Del 5 Infrastruktur och lagring av data
- Försvar på djupet: Del 6 Webbläsare
- Försvar på djupet: Del 7 Sammanfattning