Schița de curs
Introducere în dezvoltarea securizată în C și C++
- Înțelegerea principiilor dezvoltării software securizate
- Riscuri de securitate comune în aplicațiile C și C++
- Relația dintre erorile de programare și vulnerabilitățile de securitate
- Standarde de programare securizată și bune practici
Vulnerabilități comune de programare în C și C++
- Identificarea greșelilor comune de codare care introduc riscuri de securitate
- Probleme de siguranță a memoriei în C și C++
- Tipare de vulnerabilități și impactul lor
- Analiza exemplelor de cod nesecurizat
Principii de programare securizată
- Aplicarea tehnicilor de apărare în profunzime
- Scrierea de cod robust și ușor de întreținut
- Minimizarea suprafețelor de atac
- Principii de design securizat pentru aplicațiile C și C++
Validarea inputului și gestionarea datelor
- Înțelegerea importanței validării inputului
- Prevenirea exploatării inputului malițios
- Tehnici de sanitizare a datelor
- Gestionarea securizată a datelor utilizatorilor și a celor externe
Gestionarea erorilor și a excepțiilor
- Riscuri asociate cu gestionarea necorespunzătoare a erorilor
- Proiectarea unor mecanisme securizate de gestionare a erorilor și excepțiilor
- Evitarea scurgerii de informații prin erori
- Crearea de aplicații reziliente
Siguranța memoriei și protecția împotriva buffer overflow
- Înțelegerea vulnerabilităților de gestionare a memoriei
- Buffer overflow pe stivă
- Buffer overflow pe heap
- Detectarea și prevenirea coruperii memoriei
- Tehnici sigure de gestionare a memoriei
Protecția stivei și funcționalități de securitate la runtime
- Înțelegerea vulnerabilităților de stack overflow
- Protecții de securitate bazate pe compilator
- Stack canaries și mecanisme de protecție
- Address Space Layout Randomization (ASLR)
- Funcționalități de securitate moderne ale sistemelor de operare
Considerații avansate de securitate în C++
- Gestionarea securizată a ciclului de viață al obiectelor
- Prevenirea vulnerabilităților de tip use-after-free
- Gestionarea sigură a pointerilor și referințelor
- Evitarea problemelor de type confusion
- Utilizarea securizată a funcționalităților limbajului C++
Instrumente și tehnici de programare securizată
- Utilizarea instrumentelor de analiză statică pentru identificarea vulnerabilităților
- Tehnici de code review pentru evaluarea securității
- Abordări automate de testare a securității
- Integrarea verificărilor de securitate în fluxurile de dezvoltare
Standarde de programare securizată și bune practici
- Revizuirea ghidurilor de programare securizată din industrie
- Aplicarea tehnicilor de programare defensivă
- Integrarea securității în ciclul de viață al dezvoltării software
- Menținerea aplicațiilor C/C++ securizate și fiabile
Workshop practic de programare securizată
- Analiza exemplelor de cod C/C++ vulnerabil
- Aplicarea de corecții și îmbunătățiri de securitate
- Testarea codului împotriva vulnerabilităților comune
- Recapitularea cursului și recomandări pentru dezvoltare securizată
Cerințe
Noțiuni de bază C/C++
Mărturii (6)
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
echilibrul dintre prelegeri și practică, ritmul, cunoștințele instruirii și abilitatea pedagogică a formatorului
Armando Pinto - EID
Curs - C/C++ Secure Coding
Tradus de catre o masina
Formatorul a furnizat informații actualizate și referințe și instrumente valoroase.
Jose Vicente - EID
Curs - C/C++ Secure Coding
Tradus de catre o masina
pentru a obține multe informații utile despre subiectul cursului
Paulo Pereira - EID
Curs - C/C++ Secure Coding
Tradus de catre o masina
Antrenorul are cunoștințe solide și experiență, diapozitive plăcute, exemple bune.
Celso Almeida - EID
Curs - C/C++ Secure Coding
Tradus de catre o masina
Informații generale despre curs
Paulo Gouveia - EID
Curs - C/C++ Secure Coding
Tradus de catre o masina