Formation Programmation sécurisée en C/C++
Écrire du code C et C++ sécurisé exige une défense rigoureuse contre les exploitations malveillantes, la corruption de la mémoire et les contournements de la validation des entrées. Ce programme examine des modèles de vulnérabilités tels que les débordements de tampon, l'utilisation après libération, les débordements entiers et les erreurs de type. Les participants appliquent des directives de codage sécurisé, des outils d'analyse statique et des techniques de programmation défensive pour éliminer les faiblesses, imposer la sanitisation des entrées et livrer un logiciel durci résistant aux cyberattaques.
Plan du cours
- Bugs de programmation en C/C++
- Principes de protection
- Validation des entrées
- Mauvaise gestion des erreurs et des exceptions
- Débordement de tampon
- Débordement de pile
- Débordement de tas
- Protection contre le débordement de pile
- Randomisation de l'emplacement de l'espace d'adressage (ASLR)
- Ressources de codage sécurisé
Pré requis
Les bases du C/C++
Les formations ouvertes requièrent plus de 3 participants.
Formation Programmation sécurisée en C/C++ - Réservation
Formation Programmation sécurisée en C/C++ - Demande de renseignements
Nos clients témoignent (6)
Le partage d'expérience, c'est le savoir-faire et la valeur de l'enseignant.
Carey Fan - Logitech
Formation - C/C++ Secure Coding
Traduction automatique
l'équilibre entre les cours magistraux et la pratique, le rythme, les connaissances du formateur et ses compétences pédagogiques
Armando Pinto - EID
Formation - C/C++ Secure Coding
Traduction automatique
Le formateur a fourni des informations à jour et des références et outils précieux.
Jose Vicente - EID
Formation - C/C++ Secure Coding
Traduction automatique
pour obtenir de nombreuses informations utiles sur le sujet du cours
Paulo Pereira - EID
Formation - C/C++ Secure Coding
Traduction automatique
Le coach possède une solide connaissance et de l'expérience, des diapositives agréables, de bons exemples.
Celso Almeida - EID
Formation - C/C++ Secure Coding
Traduction automatique
Informations générales sur le cours
Paulo Gouveia - EID
Formation - C/C++ Secure Coding
Traduction automatique
Cours à venir
Cours Similaires
C++ avancé
35 HeuresCette formation en présentiel ou en ligne, dispensée par un formateur à Belgique, s'adresse aux développeurs souhaitant utiliser des techniques de programmation C++ avancées pour créer des systèmes et des applications complexes, sécurisés et à haute performance.
À l'issue de cette formation, les participants seront capables de :
- Configurer un environnement de développement incluant toutes les bibliothèques, packages et frameworks C++.
- Comprendre les fonctionnalités, les composants et les éléments de base du C++.
- Créer des applications C++ complexes en utilisant des techniques de programmation avancées.
- Apprendre à écrire du code lisible, rapide et sécurisé en C++.
- Connaître les pièges de sécurité courants dans le langage C++ et savoir comment les atténuer.
- Mettre en œuvre des stratégies de test pour le contrôle de la qualité et de la sécurité du code.
- Utiliser les outils de diagnostic et de débogage dans le développement C++.
C++ pour la modélisation de la finance quantitative
49 HeuresÉquipe les développeurs quantitatifs de techniques C++ avancées, spécialement conçues pour la modélisation financière, allant des algorithmes computationnels de base et des structures de données aux modèles de tarification des dérivés, à l'analytique des risques et aux implémentations optimisées en termes de performances. Guide les praticiens à travers un curriculum complet basé sur des projets, faisant le pont entre la finance théorique et le code de niveau production, permettant aux professionnels de construire des systèmes de simulation précis et haute vitesse utilisés dans le trading, l'analyse de marché et la gestion des risques.
Sécurité des réseaux et communications sécurisées
21 HeuresLa mise en œuvre d'une application réseau sécurisée peut s'avérer difficile, même pour des développeurs ayant préalablement utilisé divers composants cryptographiques (tels que le chiffrement et les signatures numériques). Afin que les participants comprennent le rôle et l'utilisation de ces primitives cryptographiques, nous établirons d'abord des bases solides sur les exigences principales de la communication sécurisée – accusé de réception sécurisé, intégrité, confidentialité, identification à distance et anonymat – tout en présentant les problèmes typiques susceptibles de compromettre ces exigences, ainsi que des solutions concrètes.
La cryptographie étant un aspect critique de la sécurité des réseaux, nous aborderons également les algorithmes cryptographiques les plus importants en cryptographie symétrique, en hachage, en cryptographie asymétrique et en échange de clés. Au lieu de proposer un fondement mathématique approfondi, ces éléments sont examinés du point de vue du développeur, avec des exemples d'utilisations typiques et des considérations pratiques liées à l'usage du chiffrement, telles que les infrastructures à clés publiques. Les protocoles de sécurité dans de nombreux domaines des communications sécurisées sont présentés, avec un examen approfondi des familles de protocoles les plus répandues, comme IPSEC et SSL/TLS.
Les vulnérabilités cryptographiques courantes sont analysées, tant en lien avec certains algorithmes cryptographiques qu'avec les protocoles de chiffrement, notamment BEAST, CRIME, TIME, BREACH, FREAK, Logjam, l'attaque par oracle de rembourrage (Padding oracle), Lucky Thirteen, POODLE et similaires, ainsi que l'attaque par chronométrage sur RSA. Dans chaque cas, les implications pratiques et les conséquences potentielles de chaque problème sont décrites, sans entrer dans les détails mathématiques approfondis.
Enfin, la technologie XML étant centrale pour l'échange de données entre applications réseau, nous décrirons les aspects de sécurité liés au XML. Cela inclut l'utilisation du XML dans les services Web et les messages SOAP, ainsi que les mesures de protection telles que la signature XML et le chiffrement XML – mais aussi les faiblesses de ces mécanismes de protection et les problèmes de sécurité spécifiques au XML, comme l'injection XML, les attaques par entités externes XML (XXE), les bombes XML et l'injection XPath.
Les participants suivant cette formation apprendront à
- Comprendre les concepts de base de la sécurité, de la sécurité informatique et du codage sécurisé
- Comprendre les exigences d'une communication sécurisée
- Apprendre les attaques et les défenses réseau aux différentes couches du modèle OSI
- Acquérir une compréhension pratique de la cryptographie
- Comprendre les protocoles de sécurité essentiels
- Comprendre certaines attaques récentes contre les systèmes cryptographiques
- Obtenir des informations sur certaines vulnérabilités récentes apparentées
- Comprendre les concepts de sécurité des services Web
- Disposer de sources et de lectures complémentaires sur les pratiques de codage sécurisé
Public cible
Développeurs, Professionnels
Sécurité avancée de Java
21 HeuresMême les programmeurs Java expérimentés ne maîtrisent pas nécessairement tous les services de sécurité offerts par Java et ne sont pas non plus conscients des différentes vulnérabilités pertinentes pour les applications web écrites en Java.
Le cours – outre l’introduction aux composants de sécurité de la plate-forme Standard Java Edition – traite des questions de sécurité liées à Java Enterprise Edition (JEE) et aux services web. L’analyse des services spécifiques est précédée par les fondements de la cryptographie et de la communication sécurisée. Divers exercices portent sur les techniques de sécurité déclarative et programmatique dans JEE, tandis que la sécurité au niveau du transport et de bout en bout des services web est abordée. L’utilisation de tous les composants est présentée à travers plusieurs exercices pratiques, permettant aux participants d’expérimenter eux-mêmes les API et outils discutés.
Le cours explore également et explique les failles de programmation les plus fréquentes et graves du langage Java et de sa plateforme, ainsi que les vulnérabilités liées au web. Outre les bugs typiques commis par les programmeurs Java, les vulnérabilités de sécurité introduites couvrent à la fois les problèmes spécifiques au langage et les problèmes découlant de l’environnement d’exécution. Toutes les vulnérabilités et les attaques associées sont démontrées à travers des exercices compréhensibles, suivis des directives de codage recommandées et des techniques d’atténuation possibles.
Les participants suivant ce cours sauront
- Comprendre les concepts de base de la sécurité, de la sécurité informatique et du codage sécurisé
- Apprendre les vulnérabilités web au-delà de l’OWASP Top Ten et savoir comment les éviter
- Comprendre les concepts de sécurité des services web
- Savoir utiliser diverses fonctionnalités de sécurité de l’environnement de développement Java
- Avoir une compréhension pratique de la cryptographie
- Comprendre les solutions de sécurité de Java EE
- Se familiariser avec les erreurs de codage courantes et leur prévention
- Obtenir des informations sur certaines vulnérabilités récentes dans le framework Java
- Acquérir des connaissances pratiques sur l’utilisation des outils de test de sécurité
- Obtenir des sources et des lectures complémentaires sur les pratiques de codage sécurisé
Public
Développeurs
Sécurité Java Standard : Bonnes Pratiques de Codage Sécurisé et de Développement
14 HeuresDescription
Le langage Java et l'Environnement d'Exécution Java (JRE) ont été conçus pour être exempts des vulnérabilités de sécurité les plus problématiques et courantes rencontrées dans d'autres langages, comme le C/C++. Cependant, les développeurs et architectes logiciels doivent non seulement savoir utiliser les différentes fonctionnalités de sécurité de l'environnement Java (sécurité positive), mais aussi être conscients des nombreuses vulnérabilités qui restent pertinentes pour le développement Java (sécurité négative).
L'introduction des services de sécurité est précédée d'un bref aperçu des fondements de la cryptographie, fournissant une base commune pour comprendre l'utilité et le fonctionnement des composants applicables. L'utilisation de ces composants est présentée à travers plusieurs exercices pratiques, où les participants peuvent expérimenter par eux-mêmes les API abordées.
Le cours passe également en revue et explique les défauts de programmation les plus fréquents et les plus graves du langage et de la plate-forme Java, couvrant à la fois les bugs typiques commis par les programmeurs Java et les problèmes spécifiques au langage et à l'environnement. Toutes les vulnérabilités et les attaques pertinentes sont démontrées à travers des exercices faciles à comprendre, suivis des directives de codage recommandées et des techniques d'atténuation possibles.
Les participants suivant ce cours apprendront à
- Comprendre les concepts de base de la sécurité, de la sécurité informatique et du codage sécurisé
- Apprendre les vulnérabilités web au-delà du Top Ten OWASP et savoir comment les éviter
- Apprendre à utiliser les diverses fonctionnalités de sécurité de l'environnement de développement Java
- Avoir une compréhension pratique de la cryptographie
- Apprendre les erreurs de codage typiques et comment les éviter
- Obtenir des informations sur certaines vulnérabilités récentes du framework Java
- Obtenir des sources et des lectures complémentaires sur les bonnes pratiques de codage sécurisé
Public cible
Développeurs
Développement de la sécurité avec .NET, C# et ASP.NET
14 HeuresAujourd'hui, de nombreux langages de programmation permettent de compiler du code pour les environnements .NET et ASP.NET. Cet environnement offre des outils puissants pour le développement de la sécurité, mais les développeurs doivent savoir appliquer les techniques de programmation au niveau de l'architecture et du code afin d'implémenter les fonctionnalités de sécurité souhaitées, éviter les vulnérabilités ou limiter leur exploitation.
Ce cours a pour objectif d'apprendre aux développeurs, à travers de nombreux exercices pratiques, comment empêcher du code non fiable d'effectuer des actions privilégiées, protéger les ressources grâce à une authentification et une autorisation robustes, fournir des appels de procédure à distance (RPC), gérer les sessions, présenter différentes implémentations pour certaines fonctionnalités, et bien plus encore.
L'introduction aux différentes vulnérabilités commence par la présentation de problèmes de programmation typiques commis lors de l'utilisation de .NET. La discussion sur les vulnérabilités d'ASP.NET traite également de divers paramètres d'environnement et de leurs effets. Enfin, le sujet des vulnérabilités spécifiques à ASP.NET aborde non seulement certains défis généraux de sécurité des applications web, mais aussi des problèmes particuliers et des méthodes d'attaque, telles que l'attaque de ViewState ou les attaques par terminaison de chaîne.
Les participants à ce cours seront capables de
- Comprendre les concepts de base de la sécurité, de la sécurité informatique et du codage sécurisé
- Apprendre les vulnérabilités web au-delà du OWASP Top Ten et savoir comment les éviter
- Apprendre à utiliser les diverses fonctionnalités de sécurité de l'environnement de développement .NET
- Obtenir des connaissances pratiques sur l'utilisation des outils de test de sécurité
- Apprendre à connaître les erreurs de codage courantes et savoir comment les éviter
- Obtenir des informations sur certaines vulnérabilités récentes dans .NET et ASP.NET
- Obtenir des sources et des lectures complémentaires sur les pratiques de codage sécurisé
Public cible
Développeurs
Programmation sécurisée en PHP
21 HeuresLe cours dispensent les compétences essentielles pour les développeurs PHP afin de rendre leurs applications résistantes aux attaques contemporaines via Internet. Les vulnérabilités web sont abordées à travers des exemples en PHP qui dépassent le OWASP Top Ten, traitant de divers types d'attaques par injection, d'injections de scripts, d'attaques contre la gestion de session de PHP, de références directes d'objets non sécurisées, de problèmes liés aux téléchargements de fichiers, et bien d'autres. Les vulnérabilités liées à PHP sont présentées regroupées par les types standards de vulnérabilités : validation d'entrée manquante ou inadéquate, gestion incorrecte des erreurs et des exceptions, utilisation inadéquate des fonctionnalités de sécurité et problèmes liés au temps et à l'état. Pour ces derniers, nous discuterons d'attaques comme l'évasion de open_basedir, le déni de service par le biais de magic float ou l'attaque par collision de table de hachage. Dans tous les cas, les participants prendront familiarité avec les techniques et fonctions les plus importantes à utiliser pour atténuer les risques énumérés.
Un accent particulier est mis sur la sécurité côté client, en abordant les problèmes de sécurité de JavaScript, Ajax et HTML5. Un certain nombre d'extensions liées à la sécurité pour PHP sont introduites comme hash, mcrypt et OpenSSL pour la cryptographie, ou Ctype, ext/filter et HTML Purifier pour la validation des entrées. Les meilleures pratiques de durcissement sont données en relation avec la configuration de PHP (paramètres de php.ini), Apache et le serveur en général. Enfin, une vue d'ensemble est donnée sur divers outils et techniques de test de sécurité que les développeurs et testeurs peuvent utiliser, y compris les scanners de sécurité, les tests de pénétration, les paquets d'exploitation, les analyseurs de paquets, les serveurs proxy, les outils de fuzzing et les analyseurs statiques de code source.
Tant l'introduction des vulnérabilités que les pratiques de configuration sont soutenues par un certain nombre d'exercices pratiques démontrant les conséquences des attaques réussies, montrant comment appliquer les techniques d'atténuation et introduire l'utilisation de diverses extensions et outils.
Les participants suivants de ce cours vont
- Comprendre les concepts de base de la sécurité, la sécurité informatique et la programmation sécurisée
- Apprendre les vulnérabilités web au-delà du OWASP Top Ten et savoir comment les éviter
- Apprendre les vulnérabilités côté client et les pratiques de programmation sécurisée
- Avoir une compréhension pratique de la cryptographie
- Apprendre à utiliser diverses fonctionnalités de sécurité de PHP
- Apprendre les erreurs courantes de codage et comment les éviter
- Être informé des récentes vulnérabilités du framework PHP
- Obtenir des connaissances pratiques sur l'utilisation des outils de test de sécurité
- Obtenir des sources et lectures complémentaires sur les pratiques de programmation sécurisée
Public
Développeurs
Microsoft SDL Core
14 HeuresLa formation fondamentale combine du SDL (Secure Development Lifecycle) offre un aperçu de la conception sécurisée, du développement et des tests logiciels via le Cycle de Développement Sécurisé de Microsoft (SDL). Elle propose une vue d'ensemble de niveau 100 des blocs de construction fondamentaux du SDL, suivie de techniques de conception à appliquer pour détecter et corriger les failles aux étapes précoces du processus de développement.
En ce qui concerne la phase de développement, le cours présente un aperçu des bugs de programmation courants ayant une incidence sur la sécurité, tant pour le code managé que natif. Les méthodes d'attaque sont exposées pour les vulnérabilités discutées, ainsi que les techniques d'atténuation associées, le tout expliqué à travers une série d'exercices pratiques offrant aux participants une expérience de piratage concret et interactif. L'introduction des différentes méthodes de tests de sécurité est suivie par la démonstration de l'efficacité de divers outils de test. Les participants peuvent comprendre le fonctionnement de ces outils grâce à de nombreux exercices pratiques consistant à appliquer ces outils sur du code vulnérable déjà étudié.
Les participants suivant ce cours
Comprendront les concepts de base de la sécurité, de la sécurité informatique et de la programmation sécurisée.
Se familiariseront avec les étapes essentielles du Cycle de Développement Sécurisé de Microsoft.
Apprendront les pratiques de conception et de développement sécurisées.
Apprendront les principes de mise en œuvre sécurisée.
Comprendront la méthodologie des tests de sécurité.
- Obtiendront des sources et des lectures complémentaires sur les pratiques de codage sécurisé.
Public cible
Développeurs, Responsables.
C++ pour les systèmes embarqués
21 HeuresLe C++ est-il adapté aux systèmes embarqués tels que les microcontrôleurs et les systèmes d'exploitation temps réel (RTOS) ?
Faut-il utiliser la programmation orientée objet sur les microcontrôleurs ?
Le C++ est-il trop éloigné du matériel pour être performant ?
Ce formation dirigée par un instructeur répond à ces questions et démontre, par des échanges et des exercices pratiques, comment le C++ peut être utilisé pour développer des systèmes embarqués avec du code précis, lisible et efficace. Les participants mettent en pratique la théorie en créant une application embarquée exemple en C++.
À l'issue de cette formation, les participants seront capables de :
- Comprendre les principes de la modélisation orientée objet, de la programmation de logiciels embarqués et de la programmation temps réel.
- Produire du code pour systèmes embarqués qui soit compact, rapide et sûr.
- Éviter l'inflation du code due aux gabarits (templates), aux exceptions et aux autres fonctionnalités du langage.
- Comprendre les problématiques liées à l'utilisation du C++ dans les systèmes critiques et temps réel.
- Débugger un programme C++ sur un dispositif cible.
Public visé
- Développeurs
- Concepteurs
Format de la formation
- Alterner cours, discussions, exercices et pratique intensive
Programmation C++ 11
14 HeuresCe cours de 2 jours s’adresse aux programmeurs C++ souhaitant appliquer la nouvelle norme C++11 dans leur domaine professionnel. Il est particulièrement utile pour les développeurs d’applications financières, couvrant toutes les nouvelles fonctionnalités avec des exemples de code exécutables en laboratoire.
Sécurité DevOps : Élaborer une stratégie de sécurité DevOps
7 HeuresDans ce cours en direct dirigé par un formateur à Belgique, les participants apprendront comment élaborer une stratégie de sécurité appropriée pour relever le défi de la sécurité DevOps.
Ingénieur DevSecOps Certifié EC-Council (ECDE)
28 HeuresL'Ingénieur DevSecOps Certifié EC-Council (ECDE) est un cours pratique conçu pour doter les professionnels des compétences nécessaires pour intégrer la sécurité tout au long du cycle de vie DevOps, permettant ainsi un développement logiciel sécurisé, de la planification au déploiement.
Ce cours en présentiel animé par un instructeur (en ligne ou sur site) s'adresse aux professionnels intermédiaires du développement logiciel et de l'ingénierie DevOps qui souhaitent intégrer des pratiques de sécurité dans les pipelines CI/CD, garantissant ainsi la livraison d'un code sécurisé et conforme.
À l'issue de cette formation, les participants seront capables de :
- Comprendre les principes et pratiques du DevSecOps.
- Sécuriser chaque étape du pipeline CI/CD à l'aide d'outils automatisés.
- Mettre en œuvre des pratiques de codage sécurisé et des analyses de vulnérabilités.
- Se préparer à la certification ECDE grâce à des laboratoires pratiques et une révision ciblée.
Format de la formation
- Cours interactif et discussions.
- Mise en pratique des outils DevSecOps dans des pipelines simulés.
- Exercices guidés axés sur le développement et le déploiement sécurisés.
Options de personnalisation de la formation
- Pour demander une formation personnalisée pour ce cours, adaptée aux workflows ou à la chaîne d'outils de votre équipe, veuillez nous contacter pour en convenir.
Comment écrire un Code Sécurisé
35 HeuresCe cours dans Belgique vise à aider à ce qui suit :
- Aider les développeurs à maîtriser les techniques d'écriture de code sécurisé
- Aider les testeurs logiciels à vérifier la sécurité de l'application avant sa publication en environnement de production
- Aider les architectes logiciels à comprendre les risques liés aux applications
- Aider les chefs d'équipe à définir les bases de sécurité pour les développeurs
- Aider les responsables web à configurer les serveurs afin d'éviter les erreurs de configuration
Développeur Java sécurisé (incluant OWASP)
21 HeuresCe cours couvre les concepts et principes de codage sécurisé avec Java, en se basant sur la méthodologie de test du Open Web Application Security Project (OWASP). Le Open Web Application Security Project est une communauté en ligne qui crée des articles, méthodologies, documentation, outils et technologies librement accessibles dans le domaine de la sécurité des applications web.
Développeur sécurisé .NET (inclus OWASP)
21 HeuresCe cours aborde les concepts et principes de codage sécurisé avec ASP.NET à travers la méthodologie de test du Open Web Application Security Project (OWASP). OWASP est une communauté en ligne qui crée des articles, méthodologies, documentation, outils et technologies freely disponibles dans le domaine de la sécurité des applications web.
Ce cours explore les fonctionnalités de sécurité du framework .NET et comment sécuriser les applications web.