Schița de curs
Ziua 1
- Securitate IT și codare sigură
- Natura securității
- Termeni legați de securitatea IT
- Definiția riscului
- Diverse aspecte ale securității IT
- Cerințele diferitelor domenii de aplicare
- Securitatea IT vs. codarea sigură
- Din vulnerabilități la botnet-uri și cybercrime
- Natura defecțiunilor de securitate
- Motivul dificultăților
- Din un computer infectat până la atacuri direcționate
- Clasificarea vulnerabilităților
- Taxonomia Landwehr
- Cele Șapte Regate Perniciei
- OWASP Top Ten 2013
- OWASP Comparatie Top Ten 2003 – 2013
- Introducere în Microsoft® Securitate Ciclului de Dezvoltare (SDL)
- Agenție
- Aplicațiile sub atac...
- Evoluția Cybercrime
- Atacurile se concentrează pe aplicații
- Cele mai multe vulnerabilități sunt în aplicațiile ISV mai mici
- Originele Microsoft SDL...
- Timpul Securității la Microsoft
- Care aplicații sunt necesare să urmeze SDL?
- Microsoft Ciclul de Dezvoltare Securizat (SDL)
- Microsoft Ciclul de Dezvoltare Securizat (SDL)
- Cerințe Pre-SDL: Antrenament în Securitate
- Faza 1: Cerințe
- Faza 2: Design
- Faza 3: Implementare
- Faza 4: Verificare
- Faza 5: Lansează – Plan de Răspuns
- Faza 5: Lansează – Revizuirea Finală Securitate
- Faza 5: Lansează – Arhivare
- Cerințe Post-SDL: Răspuns
- Indicațiile Procesului SDL pentru Aplicațiile LOB
- Indicațiile SDL pentru Metodologii Agile
- O Dezvoltare de Software Securizată Necesită Îmbunătățiri la Procese
- Principii de design sigur
- Suprafața de atac
- Micierea suprafeței de atac
- Suprafata de atac – un exemplu
- Analiza suprafeței de atac
- Micierea suprafeței de atac – exemple
- Confidențialitate
- Confidențialitate
- Compreensiunea Comportamentului Aplicațiilor și Preocupărilor
- Aprofundarea Apărării
- Principiu Central SDL: Aprofundare a Apărării
- Aprofundare a apărării – exemplu
- Principiul privilegiului minim
- Privilegiul minim – exemplu
- Setări sigure prin defect
- Setări sigure prin defect – exemple
- Suprafața de atac
- Principii de implementare sigură
- Agenție
- Microsoft Ciclul de Dezvoltare Securizat (SDL)
- Bază overflow
- Procesor Intel 80x86 – registre principale
- Aranjamentul adresei memoriei
- Mecanismul de apel funcție în C/C++ pe x86
- Variabilele locale și structura stivei
- Overflow stivă
- Overflow buffer pe stivă
- Exercițiile – introducere
- Exercițiu BOFIntro
- Exercițiul BOFIntro – determinarea aranjamentului stivei
- Exercițiul BOFIntro – un exploit simplu
- Validarea intrării
- Concepele de validare a intrărilor
- Probleme cu întregii
- Reprezentarea numerelor întregi negative
- Foșta întreagă
- Bagație aritmetică – ghicește rezultatul!
- Exercițiul IntOverflow
- Care este valoarea lui Math.Abs(int.MinValue)?
- Miticizarea problemelor cu întregii
- Miticizarea problemelor cu întregii
- Avoiding arithmetic overflow – addition (Această parte nu a fost tradusă din cauza lipsei de context)
- Avoiding arithmetic overflow – multiplication (Această parte nu a fost tradusă din cauza lipsei de context)
- Detecția overflowului cu cuvântul cheie checked în C#
- Exercițiu – Folosirea cuvântului cheie checked în C#
- Exceptii declansate de overflow-uri in C#
- Caz studiu – Foșta întreagă în .NET
- O vulnerabilitate de foștă întreagă din lumea reală
- Exploatarea vulnerabilității de foștă întreagă
- Vulnerabilitate de parcurgere a căilor
- Miticizarea parcurgerii căilor
Ziua 2
- Principii de implementare sigură
- Injucare
- Mетоды типичного възлеща SQL Injection attack methods (Această parte nu a fost tradusă din cauza lipsei de context)
- Ceiești și bazate pe timp SQL injecție
- Metode de protecție împotriva injucării SQL
- Injucare cu comandă
- Autentificarea defectivă - gestionarea parolilor
- Exercițiu – Slabitatea parolelor hashing
- Gestionarea și stocarea parolilor
- Algoritmi de hashing specializati pentru stocarea parolelor
- Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injecție
- Exploatare: injucare prin alte tag-uri HTML
- Prelungire XSS
- Lipsește controlul de acces la nivel funcțional
- Filtrarea încărcării fișierelor
- Criptografie practică
- Providing confidentiality with symmetric cryptography (Această parte nu a fost tradusă din cauza lipsei de context)
- Algoritmi de criptare simetrică
- Blocuri cifrante – moduri de operație
- Hash sau digest mesaj
- Algoritmi de hash
- Codul de autentificare a mesajului (MAC)
- Furnizarea integrității și autenticității cu o cheie simetrică
- Furnizarea confidențialității cu criptarea cu cheie publică
- Regula de aur – posesiunea cheii private
- Mistake-uri tipice în gestionarea parolilor
- Exercițiu – Parole hardcode
- Concluzie
- Injucare
- Principii de verificare sigură
- Testare funcțională vs. testare de securitate
- Vulnerabilități de securitate
- Prioritizarea
- Testarea de securitate în SDLC
- Pasi pentru planificarea testelor (analiza riscului)
- Determinare și colectare a informațiilor
- Stakeholders
- Atribute
- Suprafata de atac
- Obiectivele de securitate pentru testare
- Modelarea amenințărilor
- Miticizarea vulnerabilităților
- Profiluri ale atacatorului
- Miticizarea bazată pe arbori de atac
- Miticizarea bazată pe cazuri de abuz/misutilizare
- Cazuri de abuz/misutilizare – un exemplu simplu de magazin web
- Abordare STRIDE per element la modelarea amenintărilor - MS SDL
- Identificarea obiectivelor de securitate
- Schematizare – exemple de elemente DFD
- Diagrama fluxului de date – exemplu
- Miticizarea amenințărilor – Elementele STRIDE și DFD ale MS SDL
- Analiza riscurilor – clasificarea amenințărilor
- Modelul DREAD pentru evaluarea amenintărilor/riscurile
- Tehnici și instrumente de testare a securității
- Abordări generale de testare
- Tehnice pentru diferite pași ai SDLC
- Revizuirea codului
- Revizuirea codului pentru securitatea software-ului
- Analiza taint
- Heuristici
- Analiza statică a codului
- 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
- Securitatea testării manuale vs. automate
- Testarea penetrative
- Testele de stres
- Fuzzing
- Testare automatizată a securității - fuzzing
- Sfide în fuzzing
- Scanneruri vulnerabilități web
- Exercițiu – Utilizarea unui scanner de vulnerabilități
- Verificare și consolidare a mediului
- Sistemul Comun de Notații Vulnerabile – CVSS
- Scanneruri vulnerabilități
- Bazele de date publice
- Caz studiu – Circumvenire Autentificare Formelor
- Vulnerabilitate de terminare cu NULL byte
- Vulnerabilitatea de circumvenire a autentificării formelor în cod
- Exploatarea circumvenției autentificării formelor
- Surse de cunoștințe
- Surse de codare sigură – un kit de start
- Baze de date vulnerabilități
- Directiviile de codare .NET secure la MSDN
- .NET secure coding cheat sheets
- Cărți recomandate – .NET și ASP.NET
Mărturii (5)
Exemple multiple pentru fiecare modul și cunoștințe excelente ale formatorului.
Sebastian - BRD
Curs - Secure Developer Java (Inc OWASP)
Tradus de catre o masina
Modul3 Atacuri și exploatări ale aplicațiilor, XSS, injecție SQL Modul4 Atacuri și exploatări ale serverelor, DOS, BOF
Tshifhiwa - Vodacom
Curs - How to Write Secure Code
Tradus de catre o masina
Informații generale despre curs
Paulo Gouveia - EID
Curs - C/C++ Secure Coding
Tradus de catre o masina
Cunoașterea trainerului în domeniu a fost excelentă, iar modul în care au fost structurate sesiunile, astfel încât publicul să poată urma demonstrațiile, a ajutat foarte mult la consolidează această cunoaștere, comparativ cu doar a se aşeza și a asculta.
Jack Allan - RSM UK Management Ltd.
Curs - Secure Developer .NET (Inc OWASP)
Tradus de catre o masina
Nu era nevoie de nimic, era perfect.
Zola Madolo - Vodacom
Curs - Android Security
Tradus de catre o masina