Presentation laddar. Vänta.

Presentation laddar. Vänta.

MSDN Live för utvecklare av utvecklare. Resurser för utvecklare  Helt dedikerad till säkerhet  Artiklar –Introduktion till säkerhet –Loggning i ASP.NET.

Liknande presentationer


En presentation över ämnet: "MSDN Live för utvecklare av utvecklare. Resurser för utvecklare  Helt dedikerad till säkerhet  Artiklar –Introduktion till säkerhet –Loggning i ASP.NET."— 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  MSDN TV –Nivå –30 minuter –1-2 demonstrationer –Se direkt eller ladda ned  31 sessioner tillgängliga –Säkerhet –SOA –XML Web Services –... Resurser för utvecklare

4  MSDN Subscription –Individuell prenumeration –Prioriterad tillgång till mjukvara –Automatisk månadsvis uppdatering

5  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 Varför just den här dagen?

6 Johan Lindfors Developer Evangelist Microsoft AB Grundläggande säkerhet för utvecklare

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  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 Applikationer i en fientlig miljö

11 Vanliga attacker Tappad uppkoppling Organisations- attacker Skyddad data Säkerhetsintrång av misstag Automatiserade attacker Hackers Virus, trojaner, maskar “Denial of Service” (DoS) DoS

12  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 Konsekvenser?

13  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 Exempel på säkerhetsintrång

14 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 Utmaningar med säkerhet

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 Testplaner klara Designklar Koncept Koden klar Lansering Efter lansering Testa luckor och sårbarheter Inventera säkerhetskompetens vid anställning Bestäm kriterier för säkerhet Genomför extern granskning Analysera hot Lär av misstag och applicera Genomför granskning av säkerhetsgrupp Utbilda deltagare i projektet Tester av datapåverkan och minsta rättigheter Lös säkerhetsfrågor, verifiera kod mot riktlinjer =pågående Tidslinje

18 Säkerhetsramverket SD 3 ”Secure in deployment” ”Secure by design” ”Secure by default”  Säker arkitektur och kod  Hotbildsanalys  Mindre sårbarheter  Minskad exponering av sårbarheter  Slå av funktioner som inte används  Använd så få rättigheter som möjligt  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 –Kurser och seminarier –Certifieringar  Jönsson & Lepp –Kurser och seminarier –Certifieringar  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 KrypteringsalgoritmNyckel Data 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

28 Data KrypteringDekryptering Privat nyckel är känd av sändare och mottagare 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

29 Bertil Publik nyckel Privat nyckel Anna Publik nyckel 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

30 Anna Bertil Data Hashvärde Hash- algoritm Data Hashvärde Hashalgoritm Om hashvärdena stämmer överrens så stämmer data Anna skickar data och hashvärdet till Bertil Hashning och identiteter

31 Anna Bertil Data Hashvärde Hash- algoritm Annas Privata nyckel Data Hashvärde Annas publika nyckel Hash algoritm Hashvärde Hashvärden stämmer: Data kommer från ägaren av den privata nyckeln och är korrekt Digitala signaturer

32 ObjektBeskrivning 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 Publik nyckel Digitala certifikat

33 Privat nyckel Privat/Publikt nyckelpar Användare Applikation Dator Tjänst Certifierad administratör “Certification Authority” Publik nyckel Hur skapar vi certifikat?

34 SSL/TLS IPSec “RPC Encryption” 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”

35 Handskakning och överrenskommelse TCP lager IPSec TCP lager IPSec Krypterade paket över IP IPSec regler Hur används IPSEC?

36 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 Webbserver rotcertifikat Meddelande Säker webbserver HTTPS Säker webbläsar e Hur fungerar SSL?

37 Autentisering  Autentisering –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 Klient 1 Begäran Server Utmaning 2 3 “Digest Algorithm” Lösenord X$!87ghy5 4 Active Directory Lösenord 5 X$!87ghy5 6 ”Digest Authentication”

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 Klient Intranetlösning? Kan inte använda integrerad autentisering Nej Ja Brandvägg Ja Nej NTLM - Server autentisering Nej Ja Active Directory domän? Kerberos - Klient och server autentisering Integrerat i Windows Windows 2000 eller senare? Integrerad autentisering?

43 Inloggning 1 “Ticket-Granting Ticket” KDC TGT sparas lokalt 3 TGT Åtkomst till tjänst Klient KDC Server “Service Ticket“ ST Klient 2 TGT 1 3 ST 2 Session skapas 4 Kerberos version 5

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  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 Webb eller applikationsserver Databas eller annan server med resurser A B C A B C Delegering och ”Impersonation”

47  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 Webb eller applikationsserver Databas eller annan server med resurser A B C 1 2 Roll 1 Roll 2 ”Trusted Subsystem”

48 Brandväggar  Brandväggar kan 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 UppdateringBeskrivning 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 –http://msdn.microsoft.com/security –http://www.microsoft.com/windowsxp

52 Windows XP SP2  Vem påverkas och hur? FörändringWebbutv.Windowsutv.Admin.Användare Nätverksskydd √√√√ Minneshantering √ E-posthantering √√√ Webb-surfning √√√

53 SP2 för utvecklare  Nätverk –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 –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 Anamma SD 3 ”Secure in deployment” ”Secure by design” ”Secure by default”  Säker arkitektur och kod  Hotbildsanalys  Mindre sårbarheter  Minskad exponering av sårbarheter  Slå av funktioner som inte används  Använd så få rättigheter som möjligt  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?  Vad står TLS för? Svar:  Vad kommer namnet Kerberos från? Svar:

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. Resurser för utvecklare  Helt dedikerad till säkerhet  Artiklar –Introduktion till säkerhet –Loggning i ASP.NET."

Liknande presentationer


Google-annonser