Presentation laddar. Vänta.

Presentation laddar. Vänta.

MSDN Live för utvecklare av utvecklare

Liknande presentationer


En presentation över ämnet: "MSDN Live för utvecklare av utvecklare"— Presentationens avskrift:

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

61


Ladda ner ppt "MSDN Live för utvecklare av utvecklare"

Liknande presentationer


Google-annonser