Kursplan
Dag 1
- IT-säkerhet och säker kodning
- Säkerhetens natur
- IT-säkerhetsrelaterade termer
- Definition av risk
- Olika aspekter av IT-säkerhet
- Krav på olika applikationsområden
- IT-säkerhet kontra säker kodning
- Från sårbarheter till botnät och cyberbrottslighet
- Typ av säkerhetsbrister
- Orsaker till svårigheter
- Från en infekterad dator till riktade attacker
- Klassificering av säkerhetsbrister
- Landwehrs taxonomi
- De sju skadliga kungadömena
- OWASP Topp tio 2013
- OWASP Topp tio jämförelse 2003 – 2013
- Introduktion till Microsoft® Security Development Lifecycle (SDL)
- Dagordning
- Applikationer under attack...
- Evolution av cyberbrott
- Attacker fokuserar på applikationer
- De flesta sårbarheter finns i mindre ISV-appar
- Ursprunget till Microsoft SDL...
- Säkerhetstidslinje vid Microsoft...
- Vilka appar krävs för att följa SDL?
- Microsoft Säkerhetsutvecklingslivscykel (SDL)
- Microsoft Säkerhetsutvecklingslivscykel (SDL)
- Pre-SDL-krav: Säkerhetsutbildning
- Fas ett: Krav
- Fas två: Design
- Fas tre: Implementering
- Fas fyra: Verifiering
- Fas fem: Release – Responsplan
- Fas fem: Release – Slutlig säkerhetsgranskning
- Fas fem: Release – Arkiv
- Krav efter SDL: Svar
- SDL-processvägledning för LOB-appar
- SDL-vägledning för Agile Metoder
- Säker mjukvaruutveckling kräver processförbättring
- Säkra designprinciper
- Attackyta
- Reduktion av attackytan
- Attackyta – ett exempel
- Analys av attackytan
- Reduktion av attackyta – exempel
- Integritet
- Integritet
- Förstå applikationsbeteenden och bekymmer
- Försvar på djupet
- SDL Core Principle: Försvar i djupet
- Försvar i djupled – exempel
- Minst privilegieprincip
- Minsta privilegium – exempel
- Säkra standardinställningar
- Säkra standardinställningar – exempel
- Attackyta
- Säkra implementeringsprinciper
- Dagordning
- Microsoft Säkerhetsutvecklingslivscykel (SDL)
- Grunderna för buffertspill
- Intel 80x86-processorer – huvudregister
- Minnesadresslayouten
- Funktionsanropsmekanismen i C/C++ på x86
- De lokala variablerna och stackramen
- Stack overflow
- Buffertspill på stapeln
- Övningar – introduktion
- Övning BOFintro
- Övning BOFintro – bestäm stacklayouten
- Träna BOFintro – en enkel exploatering
- Ingångsvalidering
- Ingångsvalideringskoncept
- Heltalsproblem
- Representation av negativa heltal
- Heltals överflöde
- Aritmetiskt spill – gissa resultatet!
- Träna IntOverflow
- Vad är värdet av Math.Abs(int.MinValue)?
- Heltalsproblem
- Heltalsproblem
- Undvika aritmetiskt spill – addition
- Undvika aritmetiskt spill – multiplikation
- Upptäcker spill med det markerade sökordet i C#
- Övning – Använd det markerade nyckelordet i C#
- Undantag som utlöses av spill i C#
- Fallstudie – heltalsspill i .NET
- En verklig heltalsöversvämningssårbarhet
- Utnyttja sårbarheten för heltalsspill
- Sårbarhet för genomkörning av vägar
- Åtgärdsreducering
Dag 2
- Säkra implementeringsprinciper
- Injektion
- Typiska SQL Injektionsattackmetoder
- Blind och tidsbaserad SQL injektion
- SQL Injektionsskyddsmetoder
- Kommando injektion
- Trasig autentisering - lösenordshantering
- Träning – Svaghet hos hashade lösenord
- Lösenordshantering och lagring
- Speciella hashalgoritmer för lösenordslagring
- Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injektion
- Exploatering: injicering genom andra HTML taggar
- XSS-förebyggande
- Tillträdeskontroll på funktionsnivå saknas
- Filtrera filuppladdningar
- Praktisk kryptografi
- Ge konfidentialitet med symmetrisk kryptografi
- Symmetriska krypteringsalgoritmer
- Blockchiffer – driftsätt
- Hash eller meddelandesammanfattning
- Hash-algoritmer
- Message Authentication Code (MAC)
- Ger integritet och autenticitet med en symmetrisk nyckel
- Ge konfidentialitet med kryptering med publik nyckel
- Tumregel – innehav av privat nyckel
- Typiska misstag i lösenordshantering
- Träning – Hårdkodade lösenord
- Slutsats
- Injektion
- Säkra verifieringsprinciper
- Funktionstestning kontra säkerhetstestning
- Säkerhetssårbarheter
- Prioritering
- Säkerhetstestning i SDLC
- Steg för testplanering (riskanalys)
- Omfattning och informationsinsamling
- Intressenter
- Tillgångar
- Angreppsytan
- Säkerhetsmål för testning
- Hotmodellering
- Hotmodellering
- Angriparprofiler
- Hotmodellering baserad på attackträd
- Hotmodellering baserad på fall av missbruk/missbruk
- Missbruk/missbruksfall – ett enkelt webbshopexempel
- STRIDE per element tillvägagångssätt för 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/risk rankningsmodell
- Säkerhetstesttekniker och verktyg
- Allmänna testmetoder
- Tekniker för olika steg i SDLC
- Kodgranskning
- Kodgranskning för mjukvarusäkerhet
- Taint analys
- Heuristik
- Statisk kodanalys
- Statisk kodanalys
- Statisk kodanalys
- Övning – Använda verktyg för statisk kodanalys
- Testar implementeringen
- Manuell körtidsverifiering
- Manuell kontra automatiserad säkerhetstestning
- Penetrationsprovning
- Stresstester
- Luddrigt
- Automatiserad säkerhetstestning - fuzzing
- Fuzzing-utmaningar
- Webb sårbarhetsskannrar
- Träning – Använda en sårbarhetsskanner
- Kontrollera och härda miljön
- Common Vulnerability Scoring System – CVSS
- Sårbarhetsskannrar
- Offentliga databaser
- Fallstudie – Forms Authentication Bypass
- NULL-byte-avslutningssårbarhet
- Sårbarheten Forms Authentication Bypass i koden
- Utnyttja formulärautentiseringsbypass
- Kunskapskällor
- Säkra kodningskällor – ett startpaket
- Sårbarhetsdatabaser
- .NET riktlinjer för säker kodning på MSDN
- .NET säker kodning fuskark
- Rekommenderade böcker – .NET och ASP.NET
Vittnesmål (5)
Flera exempel för varje modul och stor kunskap om tränaren.
Sebastian - BRD
Kurs - Secure Developer Java (Inc OWASP)
Machine Translated
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Kurs - How to Write Secure Code
Machine Translated
Allmän kursinformation
Paulo Gouveia - EID
Kurs - C/C++ Secure Coding
Machine Translated
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.