Návrh Školení
Den 1.
- Zabezpečení IT a bezpečný kódování
- Natura zabezpečení
- Terminologie související s IT zabezpečením
- Definice rizika
- Různé aspekty IT zabezpečení
- Požadavky pro různá aplikace oblasti
- Zabezpečení IT vs. bezpečné kódování
- Od ohrožení po botnety a kyberkriminalitu
- Natura zabezpečovacích chyb
- Důvody obtížnosti
- Z infikovaného počítače k cíleným útokům
- Klasifikace zabezpečovacích chyb
- Landwehr’s taxonomie
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- OWASP Srovnání Top Ten 2003 – 2013
- Vstup do Microsoft® Security Development Lifecycle (SDL)
- Agenda
- Aplikace pod útokem...
- Evoluce kyberkriminality
- Útoky se zaměřují na aplikace
- Většina ohrožení je ve menších ISV aplikacích
- Původ Microsoft SDL...
- Sekvence zabezpečení u Microsoft...
- Které aplikace musí dodržovat SDL?
- Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Před-SDL požadavky: Zabezpečení školení
- Fáze jedna: Požadavky
- Fáze dvě: Návrh
- Fáze tři: Implementace
- Fáze čtyři: Ověřování
- Fáze pět: Výsledek – Reakční plán
- Fáze pět: Výsledek – Poslední zabezpečená kontrola
- Fáze pět: Výsledek – Archivace
- Po-SDL požadavky: Reakce
- Průvodce procesem SDL pro aplikace LOB
- Průvodce Agile metodologií pro SDL
- Běžné vylepšení procesu bezpečných softwarových rozvoj
- Zásady bezpečného návrhu
- Útočná plocha
- Snížení útočné plochy
- Útočná plocha – příklad
- Analýza útočné plochy
- Snížení útočné plochy – příklady
- Soukromí
- Soukromí
- Pochopení chování aplikací a obav
- Zásada hluboké obrany
- SDL základní zásada: Hluboká obrana
- Hluboká obrana – příklad
- Zásada minimálních práv
- Minimální pravomoci – příklad
- Výchozí zabezpečení
- Výchozí zabezpečení – příklady
- Útočná plocha
- Zásady bezpečné implementace
- Agenda
- Microsoft Security Development Lifecycle (SDL)
- Bázové znalosti o přetečení bufferu
- Intel 80x86 procesory – hlavní registry
- Rozložení adres paměti
- Mechanismus volání funkcí v C/C++ na x86
- Lokální proměnné a rámec zásobníku
- Přetečení zásobníku
- Přetečení bufferu ve zásobníku
- Cvičení – úvod
- Cvičení BOFIntro
- Cvičení BOFIntro – určení rozložení zásobníku
- Cvičení BOFIntro – jednoduchý exploit
- Ověřování vstupu
- Koncepty ověřování vstupů
- Problémy s celými čísly
- Představení záporných celých čísel
- Přetečení celých čísel
- Aritmetické přetečení – hádejte výsledek!
- Cvičení IntOverflow
- Jaká je hodnota Math.Abs(int.MinValue)?
- Zmírnění problémů s celými čísly
- Zmírnění problémů s celými čísly
- Úspěšné vyhnutí se aritmetickému přetečení – sčítání
- Úspěšné vyhnutí se aritmetickému přetečení – násobení
- Zjištění přetečení pomocí klíčového slova checked v C#
- Cvičení – Použití klíčového slova checked v C#
- Výjimky vyvolané přetečením v C#
- Případ studie – Přetečení celých čísel v .NET
- Skutečné přetečení celých čísel
- Využití chyby přetečení celého čísla
- Chyba procházení cesty
- Zmírnění problémů s procházením cest
Den 2.
- Zásady bezpečné implementace
- Injektion
- Běžná metoda injektivního útoku SQL
- Slepé a časově založené SQL injektory
- Metody ochrany před SQL injekcí
- Injektion příkazů
- Poškozená autentizace - správa hesel
- Cvičení – Slabost hashovaných hesel
- Správa a ukládání hesel
- Vysoce specializované algoritmy pro ukládání hesel
- Křížová skriptní inženýrství (XSS)
- Křížová skriptní inženýrství (XSS)
- CSS injektion
- Využití: injektion prostřednictvím dalších HTML tagů
- Ochrana před XSS
- Chybějící ovládání funkční úrovně přístupu
- Filtrování nahrávaných souborů
- Správné kryptografie
- Zajištění důvěrnosti symetrickou kryptografií
- Algoritmy symetrické šifry
- Blokové cifry – režimy operací
- Hášení nebo zpráva sestřídaná vodítka
- Algoritmy hashování
- Kód autentizace zprávy (MAC)
- Zajištění integrity a pravdivosti symetrickým klíčem
- Zajištění důvěrnosti asymetrickou šifrovací kryptografií
- Pravidlo – držení privátního klíče
- Běžné chyby správy hesel
- Cvičení – Výchozí hesla
- Závěr
- Injektion
- Zásady bezpečných kontrol
- Funkční testování vs. zabezpečené testování
- Bezpečnostní ohrožení
- Prioritizace
- Zabezpečené testování v SDLC
- Kroky plánování testu (analýza rizika)
- Ohraničování a sběr informací
- Stakeholdery
- Aktiva
- Útočná plocha
- Cíle zabezpečení pro testování
- Hrozívý modelování
- Hrozívé modelování
- Profily útočníků
- Hrozivá modelování na základě stromu útoků
- Hrozívé modelování na základě misuse/abuse cases
- Misuse/abuse cases – jednoduchý příklad webshopu
- STRIDE element přístup k hrozívému modelování – MS SDL
- Zjištění cílů zabezpečení
- Návrh diagramů – příklady prvků DFD
- Data flow diagram – příklad
- Hrozívé enumerace – STRIDE a prvků DFD v MS SDL
- Analýza rizika – klasifikace hrozeb
- DREAD model hodnocení hrozeb/rizik
- Zabezpečené testovací techniky a nástroje
- Běžné přístupy k testování
- Techniky pro různé kroky SDLC
- Hodnocení kódu
- Hodnocení kódu pro zabezpečení softwaru
- Taint analýza
- Heuristiky
- Statická analýza kódu
- Statická analýza kódu
- Cvičení – Použití nástrojů pro statickou analýzu kódu
- Otestování implementace
- Ruční verifikace běhu
- Ruční vs. automatické testy zabezpečení
- Testování infiltrací
- Sila testů
- Fuzzing
- Automatizovaná kontrola zabezpečení - fuzzing
- Výzvy fuzzingu
- Web scanery ohrožeností
- Cvičení – Použití skeneru ohroženosti
- Kontrola a posílení prostředí
- Běžný systém hodnocení ohrožení - CVSS
- Skenery ohrožeností
- Všeobecné databáze
- Případ studie – Omluvení prohlášení o autentizaci
- Nulový byte koncového oddělovače ohroženosti
- Ohrožení omluvení prohlášení o autentizaci v kódu
- Využití omluvení prohlášení o autentizaci
- Zdroje znalostí
- Zdroje bezpečného programování – nástroj na začátek
- Databáze ohroženosti
- .NET pokyny pro bezpečné kódování v MSDN
- .NET zkratky pro bezpečné kódování
- Rekomendované knihy – .NET a ASP.NET
Reference (5)
Více příkladů pro každý modul a skvělé znalosti školitele.
Sebastian - BRD
Kurz - Secure Developer Java (Inc OWASP)
Machine Translated
Module3 Applications Attacks and Exploits, XSS, SQL injection Module4 Servers Attacks and Exploits, DOS, BOF
Tshifhiwa - Vodacom
Kurz - How to Write Secure Code
Machine Translated
Obecné informace o kurzu
Paulo Gouveia - EID
Kurz - 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.
Kurz - Secure Developer .NET (Inc OWASP)
Nothing it was perfect.