Presentation laddar. Vänta.

Presentation laddar. Vänta.

Att skriva säker kod – del 2

Liknande presentationer


En presentation över ämnet: "Att skriva säker kod – del 2"— Presentationens avskrift:

1 Att skriva säker kod – del 2
MGB 2003 Att skriva säker kod – del 2 Fredrik Hesse Säkerhetskonsult Nexus Technology AB © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys
MGB 2003 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys Rekommendationer och riktlinjer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

3 Förbättra utvecklingsprocessen
MGB 2003 Förbättra utvecklingsprocessen Tänk på säkerheten… vid början av processen genom hela utvecklingscykeln vid alla milstolpar och “reviews” vid utrullning och installation Sluta inte att leta efter säkerhetshål och buggar förrän utvecklingen är helt klar! © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4 Säkerhetsramverket SD3
MGB 2003 Säkerhetsramverket SD3 ”Secure by design” Säker arkitektur och kod Hotbildsanalys Mindre sårbarheter ”Secure by default” Minskad exponering av sårbarheter Slå av funktioner som inte används Använd så få rättigheter som möjligt ”Secure in deployment” Identifiera, skydda och hantera Använd riktlinjer, arkitektur Utbilda personalen © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

5 Tidslinje Genomför extern granskning Analysera hot
MGB 2003 Tidslinje Genomför extern granskning Analysera hot Lär av misstag och applicera Inventera säkerhetskompetens vid anställning Bestäm kriterier för säkerhet Testa luckor och sårbarheter Koncept Lansering Efter lansering Design klar Testplaner klara Koden klar Utbilda deltagare i projektet Lös säkerhetsfrågor, verifiera kod mot riktlinjer Genomför granskning av säkerhetsgrupp Tester av datapåverkan och minsta rättigheter =pågående © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

6 “Secure By Design” Öka säkerhetskunskapen i designteam
MGB 2003 “Secure By Design” Öka säkerhetskunskapen i designteam Utbilda kontinuerligt Utmana attityder – “Det jag inte vet kan inte påverka mig” är fel, fel, fel… Få säkerheten på plats under designfasen Definera säkerhetsmål i produkten Implementera säkerhet som en nyckelfunktion Använd hotbildsmodellering vid designfasen © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

7 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys
MGB 2003 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys Rekommendationer och riktlinjer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 Vad är hotbildsmodellering?
MGB 2003 Vad är hotbildsmodellering? En säkerhetsbaserad analys som: Hjälper en produktgrupp att förstå var produkten är som mest sårbar Utvärderar hot och sårbarheter Har som mål att minska allmäna säkerhetsrisker Identifierar tillgångar Exponerar sårbarheter Identifierar hot Ska ligga till grund för designspecifikationen om säkerhet © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9 Fördelar med hotbildsmodellering
MGB 2003 Fördelar med hotbildsmodellering Hjälper dig förstå din applikation bättre Hjälper dig hitta buggar Identifierar komplexa buggar i designen Hjälper till att integrera nya medlemmar i utvecklingsteamet Erbjuder väldesignade planer för säkerhetstester Hot Sårbarhet Tillgång © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 Hotbildsmodelleringsprocessen
MGB 2003 Processen Hotbildsmodelleringsprocessen Identifiera tillgångar 1 Skapa en överblick av arkitekturen 2 Dela upp applikationen 3 Identifiera hot 4 Dokumentera hot 5 Rangordna hot 6 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

11 1. Identifiera tillgångar
MGB 2003 1. Identifiera tillgångar Skapa en lista av tillgångar som kräver skydd, inkludera: Hemlig data, t.ex. databas över kunder Webbsidor Tillgänglighet på systemet Allt som, om något händer, kommer att påverka tillförlitligheten i din applikation © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12 2. Överblick av arkitekturen
MGB 2003 2. Överblick av arkitekturen Identifiera vad applikationen gör Skapa ett diagram över arkitekturen Identifiera tekniker Filauktorisering URL-auktorisering .NET roller (auktorisering) NTFS rättigheter (auktorisering) Egendefinerade roller (auktorisering) “Trust”-gräns “Trust”-gräns ASPNET (process-identitet) Alice Mary IIS Microsoft ASP.NET Microsoft SQL Server™ Bob IPSec SSL Anonym autentisering “Forms Authentication” Windows autentisering © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

13 3. Dela upp applikationen
MGB 2003 3. Dela upp applikationen Bryt ned applikationen i delar Skapa en säkerhetsprofil baserat på traditionella sårbarheter Undersök interaktion med olika system Använd DFD eller UML Identifiera “Trust”-gränser Identifiera dataflöden Identifiera inmatningstillfällen Identifiera priviligerad kod Dokumentera säkerhetsprofilen © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

14 4. Identifiera hot Sätt samman en grupp Identifiera hot
MGB 2003 4. Identifiera hot Sätt samman en grupp Identifiera hot Nätverksspecifika hot Maskinspecifika hot Applikationsspecifika hot © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

15 Identifiera hot med STRIDE
MGB 2003 Identifiera hot med STRIDE Hottyp Exempel Spoofing Förfalska epostmeddelanden Repetera autentiseringspaket Tampering Ändra data vid transport Förändra data i filer Repudiation Ta bort en fil och neka Köpa en produkt och neka Information disclosure Exponera information i felmeddelanden Exponera kod på webbsidor Denial of service Överrösa ett nätverk med SYN-paket Överrösa ett nätverk med förfalskade ICMP-paket Elevation of privilege Utnyttja buffertöverskrivningar Olovligen få administrativa rättigheter © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

16 Använda attackträd 1.0 Se löneinformation (I)
MGB 2003 Använda attackträd 1.0 Se löneinformation (I) 1.1 Traffiken är oskyddad (AND) 1.2 Attackeraren tittar på trafiken 1.2.1 Sniffa traffiken med en Lyssna på trafik på routers Routern är inte uppdaterad (AND) Routern är påverkad Någon gissar routerns lösenord Hot 1 (I) Se löneinformation 1.1 Traffiken är oskyddad 1.2 Attackeraren tittar på trafiken 1.2.1 Sniffa trafiken med protokollövervakare 1.2.2 Lyssna på trafik på routers Routern är inte uppdaterad Routern är påverkad Någon gissar routerns lösenord © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

17 5. Dokumentera hot Dokumentera hot med hjälp av en mall:
MGB 2003 5. Dokumentera hot Dokumentera hot med hjälp av en mall: Lämna “Risk” blank (just nu i alla fall) Hotbeskrivning SQL Injection Mål för hot Komponenter för dataåtkomst Risk Attacktekniker Attackerare lägger in SQL-kommandon i användarnamn, som används för att skapa ett SQL-program Motstånd Använda reguljära uttryck för att validera användarnamnet, och en lagrad procedur med parametrar för att få åtkomst till databasen, få rättigheter behövs © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

18 6. Rangordna hot Använd formeln: Använd DREAD att rangordna hot
MGB 2003 6. Rangordna hot Använd formeln: Risk = Chans * Potentiell skada Använd DREAD att rangordna hot “Damage potential” “Reproducibility” “Exploitability” “Affected users” “Discoverability” © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

19 Exempel: Rangordna hot
MGB 2003 Exempel: Rangordna hot “Damage potential” “Affected Users” eller “Damage” Hot 1 (I) Se löneinformation 1.1 Traffiken är oskyddad 1.2 Attackeraren tittar på trafiken “Reproducibility” “Exploitability” “Discoverability” eller “Chance” 1.2.1 Sniffa trafiken med protokollövervakare 1.2.2 Lyssna på trafik på routers Routern är inte uppdaterad Routern är påverkad Någon gissar routerns lösenord © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

20 Koda mot en hotbildsmodell
MGB 2003 Koda mot en hotbildsmodell Använd hotbildsmodellering för att hjälpa till med att: bestämma vilka delar av din applikation som är mest “sårbar” prioritera säkerhetsfokusering prioritera pågående kodgranskningar bestämma vilka lösningstekniker som ska användas bestämma flödet av data och information © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

21 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys
MGB 2003 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys Rekommendationer och riktlinjer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

22 Riskanalys Alternativ 1: Gör ingenting! Alternativ 2: Varna användaren
MGB 2003 Riskanalys Alternativ 1: Gör ingenting! Alternativ 2: Varna användaren Alternativ 3: Eliminera problemet Alternativ 4: Lös problemet © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

23 Processen Hottyp (STRIDE) Lösningsteknik Lösningsteknik Teknik Teknik
MGB 2003 Processen Hottyp (STRIDE) Identifiera kategori Exempel: “Spoofing” Välj tekniker Exempel: Autentisering eller skydda hemlig data Lösningsteknik Lösningsteknik Teknik Teknik Teknik Teknik Välj teknik Exempel: Kerberos “Spoofing” Autentisering NTLM X.509 certifikat PGP nycklar “Basic” “Digest” Kerberos SSL/TLS © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

24 Vanliga tekniker STRIDE STRIDE STRIDE STRIDE Konfiguration
MGB 2003 Vanliga tekniker Konfiguration STRIDE SSL/TLS IPSec RPC/DCOM STRIDE Stark åtkomstkontroll Digitala signaturer Monitorering Osäkert nätverk Autentiserings data Brandvägg Minska användningen av resurser för anonyma uppkopplingar Klient STRIDE Server STRIDE Persistent data © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

25 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys
MGB 2003 Agenda En säker utvecklingsprocess Hotbildsmodellering Riskanalys Rekommendationer och riktlinjer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

26 Exekvera med minsta rättigheter
MGB 2003 Exekvera med minsta rättigheter Välkänd säkerhetstes: “Exekvera med tillräckliga rättigheter för att utföra uppgiften, och inte mer!” Eleverade rättigheter kan få katastrofala konsekvenser Felaktig och fientlig kod som exekverar i en högt priviligerad process exekverar också med extra rättigheter Många virus sprids på grund av att mottagaren har administrativa rättigheter © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

27 MGB 2003 Minska exponeringen Exponera endast begränsade, väldokumenterade gränssnitt i din applikation Använd bara det som applikationen kräver Virusen “Slammer” och “CodeRed” skulle inte ha hänt om vissa funktioner varit avslagna som grundinställning “ILoveYou” (och andra virus) skulle inte ha varit möjliga om exekvering av skript varit avslaget Slå av allt annat! © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

28 Lita inte på inmatning Validera all inmatning
MGB 2003 Lita inte på inmatning Validera all inmatning Anta att all inmatning är felaktig Leta efter korrekt data och neka allt annat Begränsa, neka och sanera inmatning med Typkontroller Längdkontroller Kontroller på räckvidd Format Validator.ValidationExpression = © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

29 Skydd på djupet (1/3) Använd flera brandväggar SQL Server
MGB 2003 Skydd på djupet (1/3) SQL Server Använd flera brandväggar IPSec ISA brandvägg IIS ISA brandvägg SSL © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

30 Skydd på djupet (2/3) Applicera korrekt nivå av säkerhet i alla nivåer
MGB 2003 Skydd på djupet (2/3) Applicera korrekt nivå av säkerhet i alla nivåer Kontrollera säkerhet Kontrollera säkerhet Applikation.dll Kontrollera säkerhet Säkra resurser med ACL:er Applikation.exe Kontrollera säkerhet Applikation.dll © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

31 MGB 2003 Skydd på djupet (3/3) Ta hänsyn till (och använd) ACL:er i applikationen från början Applicera ACL:er på filer, kataloger, webbsidor, registernycklar, databasfiler, skrivare och objekt i Active Directory Skapa egna ACL:er vid installation av applikationen Inkludera DENY ACE:er Använd inte NULL DACL:er © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 Lita inte bara på “obfuscation”
MGB 2003 Lita inte bara på “obfuscation” Dölj inte säkerhetsnycklar i filer Lita inte på icke dokumenterade registernycklar Anta alltid att en attackerare kan det du kan och vet det du vet © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

33 Använda DPAPI Två funktioner i DPAPI:
MGB 2003 Använda DPAPI Två funktioner i DPAPI: CryptProtectData CryptUnprotectData Två lagringssätt för data som krypteras: “User” “Machine” Egentligen ett sätt att slippa hantera nycklar! © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

34 Smart felhantering (1/2)
MGB 2003 Smart felhantering (1/2) DWORD dwRet = IsAccessAllowed(...); if (dwRet == ERROR_ACCESS_DENIED) { // Kontrollen misslyckades // Informera användaren om fel } else { // Kontrollen lyckades // Utför uppgift... } Vad händer om IsAccessAllowed() returnerar ERROR_NOT_ ENOUGH_MEMORY? Se till att hantera eventuella misslyckanden säkert i din kod © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

35 Smart felhantering (2/2)
MGB 2003 Smart felhantering (2/2) Gör absolut inte detta: Exponera information i felmeddelanden! Konsumera resurser under långa perioder efter fel Men du bör däremot göra detta: Använd felhantering och skräddarsydda fel för att inte propagera fel tillbaka till användaren Logga misstänkta fel i händelseloggen <customErrors mode="On"/> © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

36 Testa säkerheten Involvera testgrupper från början i projekt
MGB 2003 Testa säkerheten Involvera testgrupper från början i projekt Utveckla en strategi för säkerhetstester “Think Evil. Be Evil. Test Evil.” Automatisera attacker med skript och lågnivåspråk Mata in en mängd felaktig data Ta bort eller neka åtkomst till filer och registret Testa med ett konto som inte är en administratör Lär känna din fiende och lär känna dig själv! Vilka tekniker kommer hackers använda? Vilka tekniker ska dina testare använda? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

37 Lär av misstag! Om du hittar ett säkerhetsproblem, lär dig från det!
MGB 2003 Lär av misstag! Om du hittar ett säkerhetsproblem, lär dig från det! Hur uppstod felet? Kan det existera någon annanstans i koden? Hur kunde det ha förhindrats? Vad bör göras för att förhindra repetition? Behövs en uppdatering av utbildningsmaterial eller analysverktyg? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

38 Summering En säker utvecklingsprocess Hotbildsmodellering Riskanalys
MGB 2003 Summering En säker utvecklingsprocess Hotbildsmodellering Riskanalys Rekommendationer och riktlinjer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

39 Nästa steg! Var uppdaterad och informerad! Mer träning och utbildning:
MGB 2003 Nästa steg! Var uppdaterad och informerad! Svensk sida om säkerhet för utvecklare: Senaste riktlinjerna: Mer träning och utbildning: Workshops och labbar: Kurser hos CTEC: © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

40 Kontrollskott Nämn några olika hot! På vilka plattformar finns DPAPI?
MGB 2003 Kontrollskott Nämn några olika hot! Svar: På vilka plattformar finns DPAPI? Vad är STRIDE? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

41 Nästa presentation Säkerhet i .NET Framework
MGB 2003 Nästa presentation Säkerhet i .NET Framework Kod och bevisbaserad säkerhet WSE © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

42 MGB 2003 © 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Ladda ner ppt "Att skriva säker kod – del 2"

Liknande presentationer


Google-annonser