Mulțumim pentru trimiterea solicitării! Un membru al echipei noastre vă va contacta în curând.
Mulțumim pentru trimiterea rezervării! Un membru al echipei noastre vă va contacta în curând.
Schița de curs
Ziua 1
Securitatea IT și codificarea sigură
- Natura securității
- Termeni legați de securitatea IT
- Definiția riscului
- Diferite aspecte ale securității IT
- Cerințe pentru diferite domenii de aplicare
- Securitatea IT vs. codificarea sigură
-
De la vulnerabilități la botnet-uri și infracționalitate cibernetică
- Natura defectelor de securitate
- Motivele dificultății
- De la un computer infectat la atacuri țintite
-
Clasificarea defectelor de securitate
- Taxonomia lui Landwehr
- Cele Șapte Regate Perverse
- OWASP Top Ten 2013
- Comparație OWASP Top Ten 2003 – 2013
Introducere în Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Aplicații sub atac...
- Evoluția infracționalității cibernetice
- Atacurile se concentrează pe aplicații
- Majoritatea vulnerabilităților sunt în aplicațiile ISV mici
-
Originile Microsoft SDL...
- Cronologia securității la Microsoft...
- Care aplicații sunt obligate să urmeze SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Cerințe pre-SDL: Formare în securitate
- Faza Unu: Cerințe
- Faza Doi: Proiectare
- Faza Trei: Implementare
- Faza Patru: Verificare
- Faza Cinci: Lansare – Plan de răspuns
- Faza Cinci: Lansare – Revizuire finală de securitate
- Faza Cinci: Lansare – Arhivare
- Cerință post-SDL: Răspuns
- Ghid de proces SDL pentru aplicații LOB
- Ghid SDL pentru metodologii Agile
- Dezvoltarea de software sigur necesită îmbunătățirea procesului
Principii de proiectare sigură
-
Suprafața de atac
- Reducerea suprafeței de atac
- Suprafața de atac – un exemplu
- Analiza suprafeței de atac
- Reducerea suprafeței de atac – exemple
-
Confidențialitate
- Confidențialitate
- Înțelegerea comportamentelor și preocupărilor aplicațiilor
-
Apărare în profunzime
- Principiul de bază SDL: Apărare în Profunzime
- Apărare în profunzime – exemplu
-
Principiul privilegiului minim
- Privilegiu minim – exemplu
-
Setări implicite sigure
- Setări implicite sigure – exemple
Principii de implementare sigură
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Bazele depășirii buffer-ului
- Procesoare Intel 80x86 – registre principale
- Layout-ul adreselor de memorie
- Mecanismul de apelare a funcțiilor în C/C++ pe x86
- Variabilele locale și cadrul stivei
-
Depășirea stivei
- Depășirea buffer-ului pe stivă
- Exerciții – introducere
- Exercițiul BOFIntro
- Exercițiul BOFIntro – determinarea layout-ului stivei
- Exercițiul BOFIntro – un exploit simplu
-
Validarea intrărilor
- Concepte de validare a intrărilor
-
Probleme cu numerele întregi
- Reprezentarea numerelor întregi negative
- Depășirea numerelor întregi
- Depășirea aritmetică – ghiciți rezultatul!
- Exercițiul IntOverflow
- Care este valoarea lui Math.Abs(int.MinValue)?
-
Atenuarea problemelor cu numerele întregi
- Atenuarea problemelor cu numerele întregi
- Evitarea depășirii aritmetice – adunare
- Evitarea depășirii aritmetice – înmulțire
- Detectarea depășirii cu cuvântul cheie checked în C#
- Exercițiu – Utilizarea cuvântului cheie checked în C#
- Excepții declanșate de depășiri în C#
-
Studiu de caz – Depășirea numerelor întregi în .NET
- O vulnerabilitate reală de depășire a numerelor întregi
- Exploatarea vulnerabilității de depășire a numerelor întregi
-
Vulnerabilitatea de traversare a căilor
- Atenuarea vulnerabilității de traversare a căilor
Ziua 2
Principii de implementare sigură
-
Injecție
- Metode tipice de atac prin injecție SQL
- Injecție SQL oarbă și bazată pe timp
- Metode de protecție împotriva injecției SQL
- Injecție de comenzi
-
Autentificare defectuoasă – gestionarea parolelor
- Exercițiu – Slăbiciunea parolelor hash-uite
- Gestionarea și stocarea parolelor
- Algoritmi de hash specializați pentru stocarea parolelor
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- Injecție CSS
- Exploatare: injecție prin alte tag-uri HTML
- Prevenirea XSS
-
Lipsa controlului de acces la nivel de funcție
- Filtrarea încărcărilor de fișiere
-
Criptografie practică
- Asigurarea confidențialității cu criptografia simetrică
- Algoritmi de criptare simetrică
- Cifruri pe blocuri – moduri de operare
- Hash sau digest de mesaj
- Algoritmi de hash
- Cod de autentificare a mesajelor (MAC)
- Asigurarea integrității și autenticității cu o cheie simetrică
- Asigurarea confidențialității cu criptografia cu cheie publică
- Regulă generală – posesia cheii private
- Greșeli tipice în gestionarea parolelor
- Exercițiu – Parole hardcodate
- Concluzie
Principii de verificare sigură
- Testare funcțională vs. testare de securitate
- Vulnerabilități de securitate
- Priorizare
- Testarea securității în SDLC
- Pașii de planificare a testelor (analiza riscului)
-
Definirea scopului și colectarea informațiilor
- Părți interesate
- Active
- Suprafața de atac
- Obiective de securitate pentru testare
-
Modelarea amenințărilor
- Modelarea amenințărilor
- Profilele atacatorilor
- Modelarea amenințărilor bazată pe arbori de atac
- Modelarea amenințărilor bazată pe cazuri de utilizare/abuz
- Cazuri de utilizare/abuz – un exemplu simplu de magazin online
- Abordarea STRIDE pe elemente pentru modelarea amenințărilor – MS SDL
- Identificarea obiectivelor de securitate
- Diagramare – exemple de elemente DFD
- Diagramă de flux de date – exemplu
- Enumerarea amenințărilor – STRIDE și elementele DFD ale MS SDL
- Analiza riscului – clasificarea amenințărilor
- Modelul de clasificare a riscurilor DREAD
-
Tehnici și instrumente de testare a securității
- Abordări generale de testare
- Tehnici pentru diverse etape ale SDLC
-
Revizuirea codului
- Revizuirea codului pentru securitatea software
- Analiza de contaminare
- Euristici
-
Analiza statică a codului
- Analiza statică a codului
- Exercițiu – Utilizarea instrumentelor de analiză statică a codului
-
Testarea implementării
- Verificare manuală în timp real
- Testare manuală vs. automată a securității
- Testare de penetrare
- Teste de stres
-
Fuzzing
- Testare automată a securității – fuzzing
- Provocări ale fuzzing-ului
-
Scanere de vulnerabilități web
- Exercițiu – Utilizarea unui scaner de vulnerabilități
-
Verificarea și întărirea mediului
- Sistemul comun de notare a vulnerabilităților – CVSS
- Scanere de vulnerabilități
- Baze de date publice
-
Studiu de caz – Bypass-ul autentificării prin formulare
- Vulnerabilitatea de terminare NULL byte
- Vulnerabilitatea Bypass-ului autentificării prin formulare în cod
- Exploatarea vulnerabilității Bypass-ului autentificării prin formulare
Surse de cunoștințe
- Surse de codificare sigură – un kit de început
- Baze de date de vulnerabilități
- Ghiduri de codificare sigură .NET la MSDN
- Fișe de sinteză pentru codificarea sigură .NET
- Cărți recomandate – .NET și ASP.NET
14 Ore
Mărturii (3)
Schimbul de experiență, cunoștințele și valoarea profesorului sunt prețioase.
Carey Fan - Logitech
Curs - C/C++ Secure Coding
Tradus de catre o masina
cunoștințele instrctorului erau foarte mari - el știa despre ce vorbește și avea răspunsurile la întrebările noastre
Adam - Fireup.PRO
Curs - Advanced Java Security
Tradus de catre o masina
Subiectul este actual și am avut nevoie să mă actualizez
Damilano Marco - SIAP s.r.l.
Curs - Secure Developer Java (Inc OWASP)
Tradus de catre o masina