Tack för att du skickade din fråga! En av våra teammedlemmar kontaktar dig snart.
Tack för att du skickade din bokning! En av våra teammedlemmar kontaktar dig snart.
Kursplan
Dag 1
IT-säkerhet och säker programmering
- Säkerhetens natur
- Termer relaterade till IT-säkerhet
- Riskdefinition
- Olika aspekter av IT-säkerhet
- Krav för olika programområden
- IT-säkerhet vs. säker programmering
-
Från sårbarheter till botnät och cybrikriminalitet
- Säkerhetens natur
- Orsaker till svårigheter
- Från en infekterad dator till målade anfall
-
Klassificering av säkerhetsbrister
- Landwehr’s taxonomi
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- Jämförelse av OWASP Top Ten 2003 – 2013
Introduktion till Microsoft® Security Development Lifecycle (SDL)
- Dagordning
-
Program under attack...
- Utvecklingen av cybrikriminalitet
- Angrepp fokuserar på program
- De flesta sårbarheter finns i mindre ISV-program
-
Uppkomsten av Microsoft SDL...
- Säkerhetstidslinje på Microsoft...
- Vilka program kräver att följa SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- För-SLD-krav: Säkerhetsutbildning
- Fas ett: Krav
- Fas två: Design
- Fas tre: Implementering
- Fas fyra: Verifiering
- Fas fem: Utgivning – Reaktionsplan
- Fas fem: Utgivning – Slutsäkerhetsgranskning
- Fas fem: Utgivning – Arkivering
- Efter-SLD-krav: Reaktion
- SDL-processguiden för LOB-program
- SDL-guiden för agila metodik
- Säker programutveckling kräver processförbättring
Principer för säker design
-
Angreppsytan
- Minimera angreppsyta
- Angreppsyta – ett exempel
- Analys av angreppsyta
- Minimera angreppsyta – exempel
-
Integritet
- Integritet
- Förståelse av programbeteende och bekymmer
-
Djupgående försvar
- SDL-kärnprincip: Djupgående försvar
- Djupgående försvar – exempel
-
Minsta behörighetsprincipen
- Minsta behörighet – exempel
-
Säker standardinställning
- Säker standardinställning – exempel
Principer för säker implementering
- Dagordning
- Microsoft Security Development Lifecycle (SDL)
-
Grundläggande buffer overflow
- Intel 80x86 Processorer – huvudregistreringar
- Minnesadress-layouten
- Funktionshandlingsmekanism i C/C++ på x86
- Lokala variabler och stackramen
-
Stack overflow
- Buffer overflow i stacken
- Övningar – introduktion
- Övning BOFIntro
- Övning BOFIntro – fastställ stacklayouten
- Övning BOFIntro – ett enkelt exploit
-
Inmatningsvalidering
- Koncept för inmatningsvalidering
-
Heltalsproblem
- Representation av negativa heltal
- Heltalsoverskridning
- Aritmetiskt överflöde – gissa resultatet!
- Övning IntOverflow
- Vad är värdet av Math.Abs(int.MinValue)?
-
Mitietering av heltalsproblem
- Mitietering av heltalsproblem
- Undvik aritmetiskt överflöde – addition
- Undvik aritmetiskt överflöde – multiplikation
- Detektera överflöde med checked nyckelordet i C#
- Övning – Använda checked nyckelordet i C#
- Undantag utlösta av överflöden i C#
-
Fallstudie – Heltalsoverskridning i .NET
- Ett riktigt heltalsoverskridningsproblem
- Exploitera heltalsoverskridningsproblemet
-
Sårbarhet för sökvägstraversal
- Mitietering av sökvägstraversal
Dag 2
Principer för säker implementering
-
Injection
- Typiska SQL-injection angreppsmetoder
- Blinda och tidsbaserade SQL-injectioner
- Metoder för att skydda mot SQL-injection
- Kommando-injection
-
Bruten autentisering - lösenordshantering
- Övning – Svagheter i hashade lösenord
- Lösenordshantering och lagring
- Specialiserade hashalgoritmer för lösenordslagring
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS-injection
- Exploitera: injection genom andra HTML-taggar
- Förhindra XSS
-
Fattande funktionsnivååtkomstkontroll
- Filöverföringsfiltering
-
Praktisk kryptografi
- Tillhandahålla konfidentialitet med symmetrisk kryptering
- Symmetriska krypteringsalgoritmer
- Blockchiffer – operativa lägen
- Hash eller meddelandedigest
- Hashalgoritmer
- Meddelandeautentiseringskod (MAC)
- Tillhandahålla integritet och autenticitet med en symmetrisk nyckel
- Tillhandahålla konfidentialitet med offentlig-nyckelskryptering
- Regelbok – ägande av privat nyckel
- Typiska misstag i lösenordshantering
- Övning – Hårdkodade lösenord
- Slutsats
Principer för säker verifiering
- Funktionsprovning vs. säkerhetstestning
- Säkerhetsproblem
- Prioritering
- Säkerhetstestning i SDLC
- Steg i testplanering (riskanalys)
-
Omfattning och informationsinsamling
- Intressenter
- Tillgångar
- Angreppsyta
- Säkerhetsmål för testning
-
Hotmodellering
- Hotmodellering
- Angripareprofiler
- Hotmodellering baserad på anfallsträd
- Hotmodellering baserad på missbruk/missanvändningsfall
- Missbruk/missanvändningsfall – ett enkelt webbshopexempel
- STRIDE-element-approach till hotmodellering – MS SDL
- Identifiera säkerhetsmål
- Diagrammering – exempel på DFD-element
- Dataflödesdiagram – exempel
- Hotuppräkning – MS SDL’s STRIDE och DFD-element
- Riskanalys – klassificering av hot
- DREAD-hot/riskrangordningsmodellen
-
Säkerhetstestningstechniker och verktyg
- Allmänna testningsanslutningar
- Techniker för olika steg i SDLC
-
Kodgranskning
- Kodgranskning för programvarusäkerhet
- Taint-analys
- Heuristiker
-
Statisk kodanalys
- Statisk kodanalys
- Övning – Använda statiska kodanalyseverktyg
-
Testning av implementeringen
- Manuell runtime-verifiering
- Manuell vs. automatiserad säkerhetstestning
- Penetrationstestning
- Stressprov
-
Fuzzing
- Automatiserad säkerhetstestning - fuzzing
- Utmaningar med fuzzing
-
Webbsårbarhetslurare
- Övning – Använda en sårbarhetssökare
-
Kontroll av och hårdkodning för miljön
- Common Vulnerability Scoring System – CVSS
- Sårbarhetssökare
- Offentliga databaser
-
Fallstudie – Forms Authentication Bypass
- NULL byte termination sårbarhet
- Sårbarheten i koden för Forms Authentication Bypass
- Exploitera Forms Authentication Bypass
Kunskapskällor
- Säker programmeringskällor – en startpaket
- Sårbarhetsdatabaser
- .NET säker programmerningsriktlinjer på MSDN
- .NET säker programmeringscheatsheets
- Rekommenderade böcker – .NET och ASP.NET
14 timmar
Vittnesmål (5)
Flera exempel för varje modul och stor kunskap om tränaren.
Sebastian - BRD
Kurs - Secure Developer Java (Inc OWASP)
Maskintolkat
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Kurs - How to Write Secure Code
Maskintolkat
Allmän kursinformation
Paulo Gouveia - EID
Kurs - C/C++ Secure Coding
Maskintolkat
The trainer's subject knowledge was excellent, and the way the sessions were set out so that the audience could follow along with the demonstrations really helped to cement that knowledge, compared to just sitting and listening.
Jack Allan - RSM UK Management Ltd.
Kurs - Secure Developer .NET (Inc OWASP)
Nothing it was perfect.