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 botnete și criminalitate cibernetică
- Natura vulnerabilităților de securitate
- Motivele dificultății
- De la un computer infectat la atacuri direcționate
-
Clasificarea vulnerabilităților de securitate
- Taxonomia lui Landwehr
- Cele Șapte Regate Pernoase
- 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 criminalității cibernetice
- Atacurile se concentrează pe aplicații
- Cele mai multe vulnerabilități se găsesc în aplicațiile ISV 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: 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ă a securității
- Faza Cinci: Lansare – Arhivare
- Cerință post-SDL: Răspuns
- Ghid de proces SDL pentru aplicațiile 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
- Privilegiul 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
- Dispunerea 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țiu BOFIntro
- Exercițiu BOFIntro – determinarea dispunerii stivei
- Exercițiu BOFIntro – un exploit simplu
-
Validarea intrărilor
- Concepte de validare a intrărilor
-
Probleme cu numerele întregi
- Reprezentarea numerelor întregi negative
- Depășirea întregilor
- Depășirea aritmetică – ghici rezultatul!
- Exercițiu 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 întregilor în .NET
- O vulnerabilitate reală de depășire a întregilor
- Exploatarea vulnerabilității de depășire a întregilor
-
Vulnerabilitatea de traversare a căilor
- Atenuarea traversării căilor
Ziua 2
Principii de implementare sigură
-
Injecție
- Metode tipice de atac SQL Injection
- Injecție SQL oarbă și bazată pe timp
- Metode de protecție împotriva SQL Injection
- 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
- Filtrări ale încărcărilor de fișiere
-
Criptografie practică
- Oferirea confidențialității cu criptografie simetrică
- Algoritmi de criptare simetrică
- Cifruri pe blocuri – moduri de operare
- Hash sau digest al mesajului
- Algoritmi de hash
- Cod de autentificare a mesajului (MAC)
- Oferirea integrității și autenticității cu o cheie simetrică
- Oferirea confidențialității cu criptografie 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și de planificare a testelor (analiza riscurilor)
-
Definirea domeniului și colectarea informațiilor
- Părți interesate
- Active
- Suprafața de atac
- Obiective de securitate pentru testare
-
Modelarea amenințărilor
- Modelarea amenințărilor
- Profile ale atacatorilor
- Modelarea amenințărilor bazată pe arbori de atac
- Modelarea amenințărilor bazată pe cazuri de abuz/utilizare greșită
- Cazuri de abuz/utilizare greșită – un exemplu simplu de magazin online
- Abordarea STRIDE pe elemente pentru modelarea amenințărilor – MS SDL
- Identificarea obiectivelor de securitate
- Diagrame – exemple de elemente DFD
- Diagrama de flux de date – exemplu
- Enumerarea amenințărilor – STRIDE și elementele DFD ale MS SDL
- Analiza riscurilor – clasificarea amenințărilor
- Modelul de clasificare a riscurilor/amenințărilor 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
- 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
-
Scannere de vulnerabilități web
- Exercițiu – Utilizarea unui scanner de vulnerabilități
-
Verificarea și întărirea mediului
- Sistemul comun de notare a vulnerabilităților – CVSS
- Scannere de vulnerabilități
- Baze de date publice
-
Studiu de caz – Ocolirea autentificării prin formulare
- Vulnerabilitate de terminare cu byte NULL
- Vulnerabilitatea de ocolire a autentificării prin formulare în cod
- Exploatarea vulnerabilității de ocolire a 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 pe MSDN
- Fișe de sintaxă 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