Struttura del corso
Introduzione allo sviluppo sicuro in C e C++
- Comprensione dei principi di sviluppo software sicuro
- Rischi per la sicurezza comuni nelle applicazioni C e C++
- La relazione tra errori di programmazione e vulnerabilità di sicurezza
- Standard di codifica sicura e migliori pratiche
Vulnerabilità di programmazione comuni in C e C++
- Identificazione degli errori di codifica comuni che introducono rischi per la sicurezza
- Problemi di sicurezza della memoria in C e C++
- Modelli di vulnerabilità e il loro impatto
- Analisi di esempi di codice non sicuro
Principi di programmazione sicura
- Applicazione di tecniche difensive a più livelli (defence-in-depth)
- Scrittura di codice robusto e manutenibile
- Riduzione al minimo delle superfici di attacco
- Principi di progettazione sicura per applicazioni C e C++
Convalida degli input e gestione dei dati
- Comprensione dell'importanza della convalida degli input
- Prevenzione dell'esplottazione di input maliziosi
- Techniques di sanitizzazione dei dati
- Gestione sicura di dati utente ed esterni
Gestione degli errori e delle eccezioni
- Rischi associati alla gestione impropria degli errori
- Progettazione di meccanismi sicuri per la gestione di errori ed eccezioni
- Evitare la perdita di informazioni attraverso gli errori
- Creazione di applicazioni resilienti
Sicurezza della memoria e protezione contro i buffer overflow
- Comprensione delle vulnerabilità nella gestione della memoria
- Buffer overflows basati sulla stack
- Buffer overflows basati sull'heap
- Rilevamento e prevenzione della corruzione della memoria
- Techniques di gestione sicura della memoria
Protezione della stack e funzionalità di sicurezza runtime
- Comprensione delle vulnerabilità di stack overflow
- Protezioni di sicurezza basate sul compilatore
- Stack canary e meccanismi di protezione
- Randomizzazione dell'allocazione dello spazio degli indirizzi (ASLR)
- Funzionalità di sicurezza dei sistemi operativi moderni
Considerazioni avanzate sulla sicurezza in C++
- Gestione sicura del ciclo di vita degli oggetti
- Prevenzione delle vulnerabilità use-after-free
- Gestione sicura di puntatori e riferimenti
- Evitare problemi di type confusion
- Uso sicuro delle funzionalità del linguaggio C++
Strumenti e tecniche di codifica sicura
- Utilizzo di strumenti di analisi statica per identificare le vulnerabilità
- Techniques di revisione del codice per la valutazione della sicurezza
- Approcci per i test di sicurezza automatizzati
- Integrazione dei controlli di sicurezza nei flussi di lavoro di sviluppo
Standard e migliori pratiche di codifica sicura
- Revisione delle linee guida di codifica sicura di settore
- Applicazione di tecniche di programmazione difensiva
- Inserimento della sicurezza nel ciclo di vita di sviluppo del software
- Mantenimento di applicazioni C/C++ sicure e affidabili
Workshop pratico di codifica sicura
- Analisi di esempi di codice C/C++ vulnerabile
- Applicazione di correzioni e miglioramenti di sicurezza
- Test del codice contro vulnerabilità comuni
- Ricapitolazione del corso e raccomandazioni per lo sviluppo sicuro
Requisiti
Fondamenti di C/C++
Recensioni (6)
Condivisione di esperienze, competenze e conoscenze preziose del docente.
Carey Fan - Logitech
Corso - C/C++ Secure Coding
Traduzione automatica
l'equilibrio tra lezioni e pratica, il ritmo, la conoscenza del formatore e la sua abilità didattica
Armando Pinto - EID
Corso - C/C++ Secure Coding
Traduzione automatica
Il formatore ha fornito informazioni aggiornate e preziosi riferimenti e strumenti.
Jose Vicente - EID
Corso - C/C++ Secure Coding
Traduzione automatica
per ottenere molte informazioni utili sull'argomento del corso
Paulo Pereira - EID
Corso - C/C++ Secure Coding
Traduzione automatica
Il coach ha una solida conoscenza e esperienza, diapositive piacevoli, buoni esempi.
Celso Almeida - EID
Corso - C/C++ Secure Coding
Traduzione automatica
Informazioni generali sul corso
Paulo Gouveia - EID
Corso - C/C++ Secure Coding
Traduzione automatica