1 / 61

MSDN Live för utvecklare av utvecklare

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 WSE Filmer Evenemang Förslag??? http://www.microsoft.se/msdn/security. Resurser för utvecklare. MSDN TV Nivå 100-200 30 minuter

Télécharger la présentation

MSDN Live för utvecklare av utvecklare

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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??? • http://www.microsoft.se/msdn/security

  3. Resurser för utvecklare • MSDN TV • Nivå 100-200 • 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 LindforsDeveloper EvangelistMicrosoft 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. Organisations- attacker Hackers Automatiserade attacker Skyddad data DoS Säkerhetsintrångav misstag Tappad uppkoppling “Denial of Service” (DoS) Virus, trojaner, maskar Vanliga attacker

  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 359 000 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. Hackers mot administratörer Säkerhet mot enkelhet Behöver jag säkerhet… Säkerhet som en eftertanke 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 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 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 externgranskning Analyserahot Lär av misstagoch applicera Inventerasäkerhetskompetensvid anställning Bestäm kriterierför säkerhet Testa luckoroch sårbarheter Koncept Lansering Efterlansering Design klar Testplanerklara Kodenklar Lös säkerhetsfrågor, verifiera kodmot riktlinjer Utbildadeltagare iprojektet Tester av datapåverkan och minsta rättigheter Genomför granskning avsäkerhetsgrupp =pågående

  18. Säkerhetsramverket SD3 • Säker arkitektur och kod • Hotbildsanalys • Mindre sårbarheter ”Secure bydesign” • Minskad exponering av sårbarheter • Slå av funktioner som inte används • Använd så få rättigheter som möjligt ”Secure bydefault” ”Secure indeployment” • 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. 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 Nyckel Krypteringsalgoritm

  28. Data Data Privat nyckel är kändav sändare och mottagare Kryptering Dekryptering 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 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 Privat nyckel Publik nyckel

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

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

  32. Publiknyckel Digitala certifikat

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

  34. IPSec “RPC Encryption” SSL/TLS 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. 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? Webbserverrotcertifikat 2 Meddelande Säkerwebbserver Säker webbläsare 3 4 HTTPS 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 1 2 3 4

  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 ochlö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. 5 Active Directory Server 6 1 Begäran Utmaning Lösenord X$!87ghy5 2 4 Lösenord Klient X$!87ghy5 3 “Digest Algorithm” ”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 Integrerad autentisering? Kan inte använda integrerad autentisering Intranetlösning? Nej Brandvägg Ja Windows 2000 eller senare? Nej NTLM - Server autentisering Integrerat iWindows Ja Active Directory domän? Nej Kerberos - Klient och server autentisering Ja

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

  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. Webb eller applikationsserver Databas eller annan server med resurser A A B B C C Delegering och ”Impersonation” • 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. Webb eller applikationsserver Databas eller annan server med resurser Roll 1 1 A B Roll 2 2 C ”Trusted Subsystem” • 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: • 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

More Related