Ladda ner presentationen
1
MSDN Live för utvecklare av utvecklare
2
Resurser för utvecklare
Helt dedikerad till säkerhet Artiklar Introduktion till säkerhet Loggning i ASP.NET WSE Filmer Evenemang Förslag???
3
Resurser för utvecklare
MSDN TV Nivå 30 minuter 1-2 demonstrationer Se direkt eller ladda ned 31 sessioner tillgängliga Säkerhet SOA XML Web Services ...
4
Resurser för utvecklare
MSDN Subscription Individuell prenumeration Prioriterad tillgång till mjukvara Automatisk månadsvis uppdatering
5
Varför just den här dagen?
Applikationssäkerhet är ett resultat av ett effektiv partnerskap mellan: Arkitekter Utvecklare Administratörer Utvecklare bidrar till säkerhet genom att… förstå befintliga säkra tekniker vid utveckling förstå var sårbarheter uppstår och hur de undviks Under utvecklingen använda sig av riktlinjer och rekommendationer som förbättrar säkerheten Den här dagen ger en genomgång av utvecklarens roll vid förbättring av säkerhet
6
Grundläggande säkerhet för utvecklare
Johan Lindfors Developer Evangelist Microsoft AB
7
Vad kommer vi gå igenom Varför är det viktigt med säkerhet?
Jag är ju utvecklare!!! Att anamma riktlinjer och rekommendationer Säkerhetstekniker och teknologier Utvecklare: Hur går jag vidare?
8
Vad kommer vi gå igenom Varför är det viktigt med säkerhet?
Jag är ju utvecklare!!! Att anamma riktlinjer och rekommendationer Säkerhetstekniker och teknologier Utvecklare: Hur går jag vidare?
9
“Trustworthy Computing”
“Trustworthy Computing” har fyra hörnstenar: Tillförlitlighet innebär att ett datorsystem är pålitligt, är tillgängligt när det behövs, och uppträder förväntat och på korrekta nivåer. Säkerhet innebär att ett system har lätt att återhämta sig efter en attack, och att konfidentialiteten, integriteten och tillgängligheten av både systemet och dess data är skyddat. Avskildhet innebär att personer kan själv ha kontroll över sin personliga information och att organisationer som använder informationen troget skyddar den. Affärsintegritet handlar om att företag i vår industri ansvarar för sina kunder och hjälper dem hitta lämpliga lösningar för deras affärsutmaningar, adresserar problem med produkter eller tjänster och är öppna i interaktionen med kunden. Bill Gates, Juli 18, 2002
10
Applikationer i en fientlig miljö
Mobila användare kopplar upp sig över publika nätverk Anställda kopplar upp sig mot företagets nätverk Anställda kopplar upp sig mot andra nätverk Partners kopplar sig mot XML Web services Krav på Internet Fler och fler applikationer kräver Internet Internet är en fientlig miljö Arroganta eller naiva processer Svaga interna processer gör applikationer sårbara
11
Säkerhetsintrång av misstag
Vanliga attacker Tappad uppkoppling Organisations- attacker Skyddad data Säkerhetsintrång av misstag Automatiserade Hackers Virus, trojaner, maskar “Denial of Service” (DoS) DoS
12
Konsekvenser? Virus, finansiella bedrägerier, sabotage av nätverk och andra intrång kan resultera i: Stulen “intellectual property” Försämrad tillgänglighet Förlorad produktivitet Skadat rykte på marknaden Förlorat förtroende från kunder Svåra finansiella förluster på grund av missade intäkter
13
Exempel på säkerhetsintrång
CodeRed masken Började infektera datorer juli 19, 2001 Infekterade över datorer på 14 timmar Utnyttjade en känd “buffer overflow”-sårbarhet i IIS ILoveYou Infekterade genom en .vbs-bilaga till e-post Kopior skickades till alla mottagare i adressböcker Raderar bilder och .mp3 filer och kunde förstöra registret Nimda masken Uttnyttjade en sårbarhet i “Web Server folder traversal” Drabbade internet hårt september 18, 2001
14
Utmaningar med säkerhet
En hacker behöver bara förstå en sårbarhet En adminstratör måste kunna säkra alla attackytor Hackers har obegränsat med tid Adminstratörer arbetar under tid och kostnadspress Hackers mot administratörer Säkerhet mot enkelhet Säkra system är svåra att använda Komplexa och svåra lösenord, är också svåra att minnas Användare föredrar enkla lösenord Behöver jag säkerhet… Säkerhet som en eftertanke Utvecklare och beslutsfattare tror inte att säkerhet adderar något affärsvärde Att adressera sårbarheter precis innan lansering är extremt dyrt
15
Vad kommer vi gå igenom Varför är det viktigt med säkerhet?
Jag är ju utvecklare!!! Att anamma riktlinjer och rekommendationer Säkerhetstekniker och teknologier Utvecklare: Hur går jag vidare?
16
Holistisk syn på säkerhet
Säkerheten är enbart så bra som den svagaste länken Säkerhet måste tänkas på i alla nivåer Vid design, utveckling och utrullning På nätverket, datorer och applikationer
17
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
18
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
19
Hot och sårbarhetsanalys
Hotbildsmodellering är en säkerhetsbaserad analys av en applikation Hjälper utvecklingsteamet förstå var applikationen är mest sårbar Bestämmer vilka hot som kräver åtgärd och vilka åtgärder som bör tas En kritisk del av designprocessen Omöjligt att bygga säkra system utan en god förståelse av dina hot Minskar kostnaden att säkra en applikation Billigare att hitta en säkerhetsbug i designen och föreslå lösningen innan kodning påbörjas
20
Pågående utbildning Den här dagen räcker inte!
Förstå hur säkerhetsfunktioner fungerar Förstå hur dessa funktioner kan användas för att bygga säkra system Förstå hur sårbarheter ser ut för att kunna identifiera felaktig kod vid genomgångar Lär att undvika vanliga sårbarheter Lär av misstag
21
Utbildning efter idag! Cornerstone Jönsson & Lepp Nexus
Kurser och seminarier Certifieringar Jönsson & Lepp Nexus Workshops och laborationer
22
Riktlinjer för bättre säkerhet (1/2)
Använd hotbildsmodellering Använd utbildning Lär er vanliga säkerhetsdefekter och undvik dem Förstå användandet och korrekt förfarande av tekniker för säkerhet Använd kodgranskning och fokusera på kod som: Gör åtkomst till nätverket Kör som grundinställning Använder icke autentiserade protokoll Exekverar med höga rättigheter
23
Riktlinjer för bättre säkerhet (2/2)
Använd verktyg: Bygg verktyg för att skala ut och uppåt Det bästa verktyget är mellan dina öron! Fundera på att migrera till hanterad kod! Återuppfinn inte hjulet Undvik egna krypteringsalgoritmer Använd lösningar för infrastrukturen som SSL/TLS Använd erkända komponentiserade lösningar som CAPICOM eller namnrymden i .NET Framework för kryptering
24
Vad kommer vi gå igenom Varför är det viktigt med säkerhet?
Jag är ju utvecklare!!! Att anamma riktlinjer och rekommendationer Säkerhetstekniker och teknologier Utvecklare: Hur går jag vidare?
25
Två vanliga sårbarheter
Användarinmatning “All inmatning är OND, tills motsatsen är bevisad!” “Buffer Overruns” “SQL Injection” “Cross-site Scripting” Allt annat
26
Överblick av säkerhetstekniker
Utvecklare behöver förstå användande och förfaranden av säkerhetstekniker: Kryptering och hashning Digitala signaturer Digitala certifikat Säker kommunikation Autentisering Auktorisering Brandväggar “Auditing” “Patchar” och uppdateringar
27
Vad är kryptering? Kryptering är processen för att förvanska data
Skydda en användares identitet eller data Verifierar att data kommer från avsedd användare En nyckel är en binär sträng som kan variera resultatet av en kryptering Kryptering är aldrig starkare än vad nyckeln erbjuder Data Nyckel Krypteringsalgoritm
28
Symmetrisk kryptering
Använder samma algoritm och nyckel för att kryptera och dekryptera Är snabb och effektiv Har en utmaning i säkert utbyte av nycklar, vilket tenderar att ske ofta Data Kryptering Dekryptering Privat nyckel är känd av sändare och mottagare
29
Asymmetrisk kryptering
Meddelanden krypteras med en publik nyckel och kan bara dekrypteras med en privat nyckel och vice versa Asymmetrisk kryptering är säkrare än symmetrisk, men inte lika effektiv Anna Bertil Publik nyckel Privat nyckel Publik nyckel
30
Hashning och identiteter
Anna Bertil Data Hash- algoritm Hashvärde Om hashvärdena stämmer överrens så stämmer data Hashalgoritm Data Data Hashvärde Hashvärde Anna skickar data och hashvärdet till Bertil
31
Data kommer från ägaren av den privata nyckeln och är korrekt
Digitala signaturer Anna Bertil Data Hash algoritm Data Hash- algoritm Annaspublika nyckel Hashvärde Hashvärde AnnasPrivatanyckel Hashvärde Hashvärden stämmer: Data kommer från ägaren av den privata nyckeln och är korrekt
32
Digitala certifikat Objekt Beskrivning Versionsnummer
Publik nyckel Objekt Beskrivning Versionsnummer Version på certifikatet (1, 2 eller 3) Serienummer Unikt ID Algoritm för signering Algoritm som används för att generera den digitala signaturen Utgivare Namn på utgivare av certifikat Livslängd Under vilken period är certifikatet giltigt Organisationsnamn Namn på ämnet Information om organisationens publika nyckel Den binära publika nyckeln och algoritm som använts för generera nyckeln Signerad hash på data i certifikatet Hashat innehåll i certifikatet, som krypteras med utgivarens privata nyckel, resulterar i en digital signatur
33
Hur skapar vi certifikat?
Privat nyckel Användare Privat/Publikt nyckelpar Dator Publik nyckel Tjänst Applikation “Certification Authority” Certifierad administratör
34
Säker kommunikation Tekniker för säker kommunkation
Erkända lösningar som använder kryptering för att skydda integriteten på data över nätverket Tekniker innehåller: IPSec, SSL/TLS, “RPC Encryption” SSL/TLS IPSec “RPC Encryption”
35
Handskakning och överrenskommelse Krypterade paket över IP
Hur används IPSEC? IPSec regler IPSec regler Handskakning och överrenskommelse TCP lager TCP lager IPSec IPSec Krypterade paket över IP
36
Hur fungerar SSL? 2 3 4 1 1 2 3 4 Webbserver rotcertifikat Meddelande
Säker webbserver Säker webbläsare 3 4 HTTPS 1 1 Användaren surfar till en säker webbserver genom HTTPS Webbläsaren skapar en unik sessionsnyckel och krypterar den med webbserverns publika nyckel, som genereras från rotcertifikatet Webbservern tar emot sessionsnyckeln och dekrypterar den med sin privata nyckel Efter uppkopplingen är gjord så sker all kommunikation mellan webbläsare och server säkert 2 3 4
37
Autentisering Autentisering Säker kommunikation
Verifiering av identiteten genom att acceptera utsagor och bevis och validering av dessa Säker kommunikation Kryptering av data är inte tillräckligt! Autentisering av mottagare är kritiskt för att veta vem som använder data
38
Autentisering “Basic authentication” “Digest authentication”
Digitala signaturer och digitala certifikat Integrerad autentisering Kerberos version 5 NTLM Microsoft Passport Biometrik
39
”Basic Authentication”
Enkel men effektiv Stöds av alla stora webbläsare – visar ett inloggningsfönster för användarnamn och lösenord Användarnamn och lösenord skickas som ren text så detta måste kombineras med SSL/TLS Enkelt att programmera och installera Information om användare måste hanteras på servern
40
”Digest Authentication”
Klient 1 Begäran Server Utmaning 2 3 “Digest Algorithm” Lösenord X$!87ghy5 4 Active Directory 5 6
41
När använda certifikat?
I webbapplikationer SSL/TLS använder X.509 certifikat för att autentisera Autentiserar klienten genom data från klientens X.509 certifikat Certifikatet genereras av en CA som servern har ett rotcertifikat för I distribuerade applikationer: Applikationen använder kommunikationskanaler med SSL/TLS Klient och serverapplikationer autentiseras med certifikat Andra säkerhetsapplikationer På smarta kort Klientens certifikat lagras ofta på ett “smartcard”
42
Integrerad autentisering?
Intranetlösning? Kan inte använda integrerad autentisering Klient Nej Brandvägg Ja Windows 2000 eller senare? Nej NTLM - Server autentisering Integrerat i Windows Ja Active Directory domän? Nej Kerberos - Klient och server autentisering Ja
43
Kerberos version 5 2 2 1 3 1 3 4 Inloggning Åtkomst till tjänst Klient
KDC Server “Service Ticket“ ST KDC 2 TGT 2 ST 1 1 TGT 3 ST Klient Session skapas 4 TGT sparas lokalt 3 TGT “Ticket-Granting Ticket”
44
Auktorisering Efter att “anropare” är autentiserade
Vad tillåter jag att dem gör? Auktorisering erbjuder åtkomst till resurser Rättigheter tilldelas för komponenter som filer, kataloger, inställningar i registret och applikationer Användarbaserade Grupper eller roller Kodbaserade Rättigheter på kod
45
Auktorisering IIS rättigheter (och restriktioner i IP/DNS )
.NET rollbaserad säkerhet .NET kodbaserad säkerhet NTFS “Access Control Lists” (ACL) till användare och grupper Konton i SQL Server Rättigheter i SQL Server
46
Delegering och ”Impersonation”
Webb eller applikationsserver Databas eller annan server med resurser A B C Identitet på klienten används för att direkt komma åt underliggande resurser Komponenten använder en nivå av “impersonation” i operativsystemet om resurser existerar på samma dator Delegering krävs om resursen finns på en annan dator
47
”Trusted Subsystem” Klienter mappas mot roller
Webb eller applikationsserver Databas eller annan server med resurser A B C 1 2 Roll Klienter mappas mot roller Använd dedikerade service-konton i Windows för varje roll som behöver åtkomst till underliggande resurser Resurshanterar i databasen “litar på” de överliggande systemet att autentisera på dess vägnar
48
Brandväggar Brandväggar kan erbjuda: Brandväggar kan inte erbjuda:
Säker grind mot internet för interna klienter Filtrering av paket “Circuit-level filtering” Filtrering av applikationer “Auditing” Brandväggar kan inte erbjuda: Skydd mot attacker på applikationsnivå över HTTP eller HTTPS
49
Granskning – ”Auditing”
Bygg in granskning och loggning i applikationer för att spåra: Åtkomst till filer Icke godkända och godkända försök till inloggning Brister i applikationen Fördelar med granskning: Hjälper administratörer upptäcka intrång och misstänkta aktiviteter Erbjuder spårbarhet för tvister gällande förnekanden Hjäper till att ställa en diagnos på säkerhetsbrister Fixar problem och förhindrar att dem återkommer
50
“Service Pack” och fixar
Uppdatering Beskrivning Hotfix En fix för ett separat eller en mindre mängd problem Microsoft gör enbart begränsad testning Kan kombineras genom att använda QChain “Security rollup package” Flera fixar paketerade för enklare installation “Service Pack” Större uppdatering Kumulativ uppsättning att föregående uppdateringar Kan innehålla tidigare icke annonserade fixar Kan innehålla funktionsförändringar Microsoft gör utförlig testning
51
Windows XP SP2 Brandväggen påslagen som grundinställning
Alla publicerade fixar QFE och säkerhetsfixar Rapporterade från kunder Säkrare hantering av epost och web Förbättrad minneshantering Kan laddas ned från
52
Windows XP SP2 Vem påverkas och hur? √
Förändring Webbutv. Windowsutv. Admin. Användare Nätverksskydd √ Minneshantering E-posthantering Webb-surfning
53
SP2 för utvecklare Nätverk E-post och IM Webb Minneshantering
Inkommande nätverkskopplingar tillåts ej Använd inte RPC över UDP E-post och IM Nya API:er för AES Webb En hel del uppdateringar som kräver kontroll Minneshantering Se till att din kod inte exekverar i ett datasegment
54
MSJVM Microsoft supporterar MSJVM tom. 2007
Enbart säkerhetsrelaterade buggar och fixar Vi rekommenderar en migrering från MSJVM MSJVM ”Transition Guide” Visual J# msdn.microsoft.com/vjsharp/ JLCA msdn.microsoft.com/vstudio/downloads/tools/jlca/
55
Vad kommer vi gå igenom Varför är det viktigt med säkerhet?
Jag är ju utvecklare!!! Att anamma riktlinjer och rekommendationer Säkerhetstekniker och teknologier Utvecklare: Hur går jag vidare?
56
Vad gör vi nu? Börja använda en proaktiv säkerhets-utvecklingsprocess
Inse att det inte finns någon “silverkula” som kan hjälpa dig skapa säker mjukvara Integrera säkerhetsförbättringar genom hela utvecklingsprocessen Fokusera kontinuerligt på säkerhet och försäkra att din kod kan stå emot nya attacker Identifiera nyckelrollen av utbildning Höj insikten inom din grupp Lär av misstagen
57
”Secure in deployment”
Anamma 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
58
Sammanfattning Varför är det viktigt med säkerhet?
Jag är ju utvecklare!!! Att anamma riktlinjer och rekommendationer Säkerhetstekniker och teknologier Utvecklare: Hur går jag vidare?
59
Kontrollskott Det finns två typer av kryptering vilka?
1. 2. Vad står TLS för? Svar: Vad kommer namnet Kerberos från?
60
Nästa presentation Att skriva säker kod Hot och sårbarheter
Mycket demonstrationer
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.