Děkujeme za vaši dotaz! Jeden z našich pracovníků vás brzy kontaktuje.
Děkujeme za rezervaci! Jeden z našich pracovníků vás brzy kontaktuje.
Návrh Školení
Den 1
IT bezpečnost a bezpečné programování
- Povaha zabezpečení
- Pojmy související s IT bezpečností
- Definice rizika
- Různé aspekty IT bezpečnosti
- Požadavky různých aplikačních oblastí
- IT bezpečnost vs. bezpečné programování
-
Od zranitelností k botnetům a kyberkriminalitě
- Povaha bezpečnostních chyb
- Důvody složitosti
- Od infikovaného počítače k cíleným útokům
-
Klasifikace bezpečnostních chyb
- Landwehrůva taxonomie
- The Seven Pernicious Kingdoms (Sedm záludných říší)
- OWASP Top Ten 2013
- Srovnání OWASP Top Ten 2003 – 2013
Úvod do Microsoft® Security Development Lifecycle (SDL)
- Program
-
Aplikace pod útokem...
- Evoluce kyberkriminality
- Útoky jsou zaměřeny na aplikace
- Většina zranitelností je v menších ISV aplikacích
-
Původ Microsoft SDL...
- Časová osa zabezpečení u Microsoftu...
- Které aplikace musí dodržovat SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Předpoklady před SDL: Zabezpečovací školení
- Fáze jedna: Požadavky
- Fáze dva: Návrh
- Fáze tři: Implementace
- Fáze čtyři: Verifikace
- Fáze pět: Vydání – Plán reakce
- Fáze pět: Vydání – Finální bezpečnostní recenze
- Fáze pět: Vydání – Archivace
- Požadavek po SDL: Reakce
- Pokyny pro proces SDL pro LOB aplikace
- Pokyny pro SDL pro agilní metodiky
- Bezpečný vývoj softwaru vyžaduje zdokonalení procesu
Principy bezpečného návrhu
-
Útočná plocha
- Snižování útočné plochy
- Útočná plocha – příklad
- Analýza útočné plochy
- Snižování útočné plochy – příklady
-
Soukromí
- Soukromí
- Pochopení chování aplikací a obav
-
Ochrana ve vrstvách (Defense in depth)
- Základní princip SDL: Ochrana ve vrstvách
- Ochrana ve vrstvách – příklad
-
Princip nejmenších oprávnění
- Nejmenší oprávnění – příklad
-
Bezpečná výchozí nastavení
- Bezpečná výchozí nastavení – příklady
Principy bezpečné implementace
- Program
- Microsoft Security Development Lifecycle (SDL)
-
Základy přetčení pole
- Procesory Intel 80x86 – hlavní registry
- Rozložení adres paměti
- Mechanismus volání funkcí v C/C++ na x86
- Lokální proměnné a stack frame
-
Přetčení stacku
- Přetčení pole na stacku
- Cvičení – úvod
- Cvičení BOFIntro
- Cvičení BOFIntro – určení rozložení stacku
- Cvičení BOFIntro – jednoduchý exploit
-
Validace vstupů
- Koncepty validace vstupů
-
Problémy s celými čísly
- Předstawání záporných celých čísel
- Přetčení celého čísla
- Aritmetické přetčení – odhadněte výstup!
- Cvičení IntOverflow
- Jaká je hodnota Math.Abs(int.MinValue)?
-
Mitigace problémů s celými čísly
- Mitigace problémů s celými čísly
- Vyhnout se aritmetickému přetčení – sčítání
- Vyhnout se aritmetickému přetčení – násobení
- Detekce přetčení klíčovým slovem checked v C#
- Cvičení – Použití klíčového slova checked v C#
- Výjimky vyvolané přetčení v C#
-
Studijní příklad – Přetčení celého čísla v .NET
- Reálná zranitelnost přetčení celého čísla
- Exploitace zranitelnosti přetčení celého čísla
-
Zranitelnost přesahu cesty (Path traversal)
- Mitigace přesahu cesty
Den 2
Principy bezpečné implementace
-
Injekce
- Typické metody útoku SQL injektory
- Neviditelné a časově založené SQL injektory
- Metody ochrany proti SQL injektorům
- Injekce příkazů
-
Nefunkční autentizace – správa hesel
- Cvičení – Slabost hashovaných hesel
- Správa a úložiště hesel
- Hashovací algoritmy zvláštního účelu pro uložení hesel
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- Injekce CSS
- Exploitace: injekce přes jiné HTML tagy
- Prevence XSS
-
Chybějící kontrola přístupu na funkční úrovni
- Filtrace nahrávání souborů
-
Praktická kryptografie
- Zajištění důvěrnosti pomocí symetrické kryptografie
- Symetrické šifrovací algoritmy
- Blokové šifry – režimy provozu
- Hash nebo otisk zprávy
- Hashovací algoritmy
- Kód autentizace zprávy (MAC)
- Zajištění integrity a autenticity pomocí symetrického klíče
- Zajištění důvěrnosti pomocí veřejno-klíčového šifrování
- Zlaté pravidlo – držení soukromého klíče
- Typické chyby ve správě hesel
- Cvičení – Hardcoded hesla
- Závěr
Principy bezpečné verifikace
- Funkční testování vs. bezpečnostní testování
- Bezpečnostní zranitelnosti
- Prioritizace
- Bezpečnostní testování v SDLC
- Kroky plánování testů (analýza rizik)
-
Stanovení rozsahu a sběr informací
- Zúčastněné strany
- Aktiva
- Útočná plocha
- Bezpečnostní cíle testování
-
Modelování hrozeb
- Modelování hrozeb
- Profily útočníků
- Modelování hrozeb na základě stromů útoků
- Modelování hrozeb na základě případů zneužití/zneužití
- Případy zneužití/zneužití – jednoduchý příklad e-shopu
- Přístup STRIDE per element k modelování hrozeb – MS SDL
- Identifikace bezpečnostních cílů
- Diagramy – příklady elementů DFD
- Diagram toku dat – příklad
- Vyjmenování hrozeb – STRIDE a elementy DFD od MS SDL
- Analýza rizik – klasifikace hrozeb
- Model hodnocení hrozeb/rizik DREAD
-
Techniky a nástroje bezpečnostního testování
- Obecné přístupy k testování
- Techniky pro různé kroky SDLC
-
Recenze kódu
- Recenze kódu pro bezpečnost softwaru
- Taint analysis (Analýza kontaminace)
- Heuristiky
-
Statická analýza kódu
- Statická analýza kódu
- Cvičení – Použití nástrojů statické analýzy kódu
-
Testování implementace
- Ruční verifikace v runtime
- Ruční vs. automatizované bezpečnostní testování
- Penetrační testování
- Zátěžové testy
-
Fuzzing
- Automatizované bezpečnostní testování – fuzzing
- Výzvy pro fuzzing
-
Skenery webových zranitelností
- Cvičení – Použití skeneru zranitelností
-
Kontrola a posilování prostředí
- Common Vulnerability Scoring System – CVSS
- Skenery zranitelností
- Veřejné databáze
-
Studijní příklad – Objití Forms Authentication
- Zranitelnost ukončení NULL bajtem
- Zranitelnost objití Forms Authentication v kódu
- Exploitace objití Forms Authentication
Zdroje znalostí
- Zdroje bezpečného programování – startovací kit
- Databáze zranitelností
- Pravidla bezpečného programování .NET na MSDN
- Čarovníky (Cheat sheets) pro bezpečné programování .NET
- Doporučené knihy – .NET a ASP.NET
14 Hodiny
Reference (3)
Sdílení zkušeností, učitelova odbornost a hodnoty.
Carey Fan - Logitech
Kurz - C/C++ Secure Coding
Přeloženo strojem
znalost trénера byla velmi vysoká - věděl, o čem mluví, a znal odpovědi na naše otázky
Adam - Fireup.PRO
Kurz - Advanced Java Security
Přeloženo strojem
Téma je aktuální a potřeboval jsem se aktualizovat
Damilano Marco - SIAP s.r.l.
Kurz - Secure Developer Java (Inc OWASP)
Přeloženo strojem