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.
Durata 14 ore
Schița de curs
Ziua 1
Securitatea IT și codarea securizată
- Natura securității
- Termeni legați de securitatea IT
- Definiția riscului
- Diferite aspecte ale securității IT
- Cerințe ale diferitelor domenii de aplicare
- Securitatea IT vs. codarea securizată
-
De la vulnerabilități la botnet-uri și criminalitate 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 Pernicioase
- OWASP Top Ten 2013
- Comparație OWASP Top Ten 2003 – 2013
Introducere în Microsoft® Security Development Lifecycle (SDL)
- Agendă
-
Aplicații sub atac...
- Evoluția criminalității cibernetice
- Atacurile se concentrează pe aplicații
- Cele mai multe vulnerabilități sunt în aplicații ISV mai mici
-
Originile Microsoft SDL...
- Cronologia securității la Microsoft...
- Ce aplicații trebuie să urmeze SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Cerințe pre-SDL: Security Training
- Faza unu: Cerințe
- Faza doi: Design
- 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 securizată a software-ului necesită îmbunătățirea proceselor
Principii de design securizat
-
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
- Privilegiul minim – exemplu
-
Valori implicite securizate
- Valori implicite securizate – exemple
Principii de implementare securizată
- Agendă
- Microsoft Security Development Lifecycle (SDL)
-
Noțiuni de bază despre buffer overflow
- Procesoare Intel 80x86 – registre principale
- Structura adreselor de memorie
- Mecanismul de apelare a funcțiilor în C/C++ pe x86
- Variabilele locale și cadrul de stivă
-
Stack overflow
- Buffer overflow pe stivă
- Exerciții – introducere
- Exercițiul BOFIntro
- Exercițiul BOFIntro – determinarea structurii stivei
- Exercițiul BOFIntro – un exploit simplu
-
Validarea intrărilor
- Concepte de validare a intrărilor
-
Probleme cu numerele întregi
- Reprezentarea numerelor întregi negative
- Integer overflow
- Overflow aritmetic – ghicește rezultatul!
- Exercițiul IntOverflow
- Care este valoarea Math.Abs(int.MinValue)?
-
Atenuarea problemelor cu numerele întregi
- Atenuarea problemelor cu numerele întregi
- Evitarea overflow-ului aritmetic – adunare
- Evitarea overflow-ului aritmetic – înmulțire
- Detectarea overflow-ului cu cuvântul cheie checked în C#
- Exercițiu – Folosirea cuvântului cheie checked în C#
- Excepții declanșate de overflow în C#
-
Studiu de caz – Integer overflow în .NET
- O vulnerabilitate reală de integer overflow
- Exploatarea vulnerabilității de integer overflow
-
Vulnerabilitatea de path traversal
- Atenuarea path traversal
Ziua 2
Principii de implementare securizată
-
Injecție
- Metode tipice de atac prin SQL Injection
- Blind și time-based SQL injection
- Metode de protecție împotriva SQL Injection
- Command injection
-
Autentificare defectuoasă - gestionarea parolelor
- Exercițiu – Slăbiciunea parolelor hash-uite
- Gestionarea și stocarea parolelor
- Algoritmi hash cu scop special pentru stocarea parolelor
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- Injecție CSS
- Exploatare: injecție prin alte etichete HTML
- Prevenirea XSS
-
Controlul accesului lipsă la nivel de funcție
- Filtrarea încărcării fișierelor
-
Criptografie practică
- Asigurarea confidențialității cu criptografie simetrică
- Algoritmi de criptare simetrică
- Cifruri pe blocuri – moduri de operare
- Hash sau message digest
- Algoritmi hash
- Message Authentication Code (MAC)
- Asigurarea integrității și autenticității cu o cheie simetrică
- Asigurarea confidențialității cu criptare cu cheie publică
- Regula de bază – posedarea cheii private
- Greșeli tipice în gestionarea parolelor
- Exercițiu – Parole hard-codate
- Concluzie
Principii de verificare securizată
- Testare funcțională vs. testare de securitate
- Vulnerabilități de securitate
- Prioritizare
- Testarea de securitate în SDLC
- Pașii planificării testelor (analiza riscurilor)
-
Stabilirea scopului și colectarea informațiilor
- Părți interesate
- Active
- Suprafața de atac
- Obiective de securitate pentru testare
-
Threat modeling
- Threat modeling
- Profiluri de atacatori
- Threat modeling bazat pe arbori de atac
- Threat modeling bazat pe cazuri de utilizare abuzivă
- Cazuri de utilizare abuzivă – un exemplu simplu de magazin web
- Abordarea STRIDE per element pentru threat modeling – MS SDL
- Identificarea obiectivelor de securitate
- Diagramare – exemple de elemente DFD
- Diagrama fluxului de date – exemplu
- Enumerarea amenințărilor – STRIDE de la MS SDL și elemente DFD
- Analiza riscurilor – clasificarea amenințărilor
- Modelul de clasificare a amenințărilor/riscurilor DREAD
-
Tehnici și instrumente de testare a securității
- Abordări generale de testare
- Tehnici pentru diferite etape ale SDLC
-
Revizuirea codului
- Revizuirea codului pentru securitatea software-ului
- Analiza taint
- Euristici
-
Analiza statică a codului
- Analiza statică a codului
- Exercițiu – Folosirea instrumentelor de analiză statică a codului
-
Testarea implementării
- Verificare manuală la runtime
- Testare de securitate manuală vs. automatizată
- Penetration testing
- Teste de stres
-
Fuzzing
- Testare de securitate automatizată - fuzzing
- Provocările fuzzing-ului
-
Scanere de vulnerabilități web
- Exercițiu – Folosirea unui scaner de vulnerabilități
-
Verificarea și securizarea mediului
- Common Vulnerability Scoring System – CVSS
- Scanere de vulnerabilități
- Baze de date publice
-
Studiu de caz – Bypass Forms Authentication
- Vulnerabilitatea de terminare NULL byte
- Vulnerabilitatea Forms Authentication Bypass în cod
- Exploatarea Forms Authentication Bypass
Surse de cunoștințe
- Surse de codare securizată – un kit de pornire
- Baze de date de vulnerabilități
- Ghiduri de codare securizată .NET pe MSDN
- Cheat sheets de codare securizată .NET
- Cărți recomandate – .NET și ASP.NET
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