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 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ția 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țiile ISV mai mici
-
Originile Microsoft SDL...
- Cronologia securității la Microsoft...
- Care aplicații trebuie să urmeze SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Cerințe pre-SDL: Training de securitate
- Faza unu: Cerințe
- Faza doi: Proiectare
- Faza trei: Implementare
- Faza patru: Verificare
- Faza cinci: Lansare – Plan de răspuns
- Faza cinci: Lansare – Revizuirea finală de securitate
- Faza cinci: Lansare – Arhivare
- Cerință post-SDL: Răspuns
- Ghidul procesului SDL pentru aplicațiile LOB
- Ghidul SDL pentru metodologii Agile
- Dezvoltarea securizată a software-ului necesită îmbunătățirea procesului
Principii de proiectare 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ției
-
Apărare în profunzime
- Principiul de bază SDL: Apărare în profunzime
- Apărare în profunzime – exemplu
-
Principiul celui mai mic privilegiu
- Cel mai mic privilegiu – exemplu
-
Valori implicite securizate
- Valori implicite securizate – exemple
Principii de implementare securizată
- Agendă
- Microsoft Security Development Lifecycle (SDL)
-
Bazele buffer overflow
- Procesoarele Intel 80x86 – registrele 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
- Depășirea 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 depășirii aritmetice – adunarea
- Evitarea depășirii aritmetice – înmulțirea
- Detectarea depășirii cu cuvântul cheie checked în C#
- Exercițiu – Folosirea cuvântului cheie checked în C#
- Excepții declanșate de depășiri î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 SQL Injection
- SQL injection orb și bazat pe timp
- 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 tag-uri HTML
- Prevenirea XSS
-
Controlul accesului lipsește 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 bloc – moduri de operare
- Hash sau rezumat de mesaj
- Algoritmi hash
- Cod de autentificare a mesajului (MAC)
- Asigurarea integrității și autenticității cu o cheie simetrică
- Asigurarea confidențialității cu criptarea cu cheie publică
- Regula de bază – posesia cheii private
- Greșeli tipice în gestionarea parolelor
- Exercițiu – Parole hardcodate
- Concluzie
Principii de verificare securizată
- Testarea funcțională vs. testarea de securitate
- Vulnerabilități de securitate
- Prioritizare
- Testarea de securitate în SDLC
- Pașii planificării testelor (analiza riscului)
-
Definirea scopului și colectarea informațiilor
- Părți interesate
- Active
- Suprafața de atac
- Obiectivele 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 din MS SDL și elementele DFD
- Analiza riscului – 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
- Verificarea manuală la runtime
- Testarea de securitate manuală vs. automată
- Penetration testing
- Teste de stres
-
Fuzzing
- Testarea automată a securității - 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 la autentificarea Forms
- Vulnerabilitatea de terminare cu byte NULL
- Vulnerabilitatea de bypass la autentificarea Forms în cod
- Exploatarea bypass-ului la autentificarea Forms
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 pentru codarea securizată .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