Formation Programmation sécurisée en C/C++
Rédiger du code C et C++ sécurisé nécessite une défense rigoureuse contre l'exploitation malveillante, la corruption de la mémoire et le contournement de la validation des entrées. Ce programme examine des schémas de vulnérabilité tels que les dépassements de tampon, les utilisations après libération, les débordements entiers et les confusions de type. Les participants appliquent des lignes directrices de programmation sécurisée, des outils d'analyse statique et des techniques de programmation défensive pour éliminer les faiblesses, imposer la sanitisation des entrées et fournir un logiciel durci résilient face aux cyberattaques.
Plan du cours
- Bugs de programmation C/C++
- Principes de protection
- Validation des entrées
- Gestion inadéquate des erreurs et des exceptions
- Dépassement de tampon
- Débordement de pile
- Dépassement de tas
- Protection contre le dépassement de pile
- Randomisation de l'agencement de l'espace d'adressage (ASLR)
- Ressources de programmation sécurisée
Pré requis
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
NobleProg propose des formations professionnelles conçues spécifiquement pour les entreprises et les organisations. Ces formations ne sont pas destinées aux particuliers.
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 dirigée par un instructeur (en ligne ou sur site) est destinée aux développeurs qui souhaitent utiliser des techniques avancées de programmation C++ pour développer des systèmes et applications complexes, sécurisés et performants.
À la fin de cette formation, les participants seront capables de :
- Mettre en place un environnement de développement qui inclut toutes les bibliothèques, packages et frameworks C++.
- Comprendre les fonctionnalités, composants et éléments de base de C++.
- Créer des applications C++ complexes à l'aide de techniques avancées de programmation.
- 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 comment les atténuer.
- Mettre en œuvre des stratégies de test pour assurer la qualité du code et le contrôle de sécurité.
- Utiliser les outils de diagnostics et de débogage en développement C++.
Sécurité des Réseaux et Communication Sécure
21 HeuresLa mise en œuvre d'une application sécurisée en réseau peut s'avérer difficile, même pour les développeurs qui ont déjà utilisé divers blocs de construction cryptographiques (tels que le cryptage et les signatures numériques). Afin de faire comprendre aux participants le rôle et l'utilisation de ces primitives cryptographiques, une base solide sur les principales exigences de la communication sécurisée - accusé de réception sécurisé, intégrité, confidentialité, identification à distance et anonymat - est d'abord donnée, tout en présentant les problèmes typiques qui peuvent nuire à ces exigences avec des solutions du monde réel.
La cryptographie étant un aspect essentiel de la sécurité des réseaux, les algorithmes cryptographiques les plus importants en matière de cryptographie symétrique, de hachage, de cryptographie asymétrique et d'accord de clé sont également abordés. Au lieu de présenter un contexte mathématique approfondi, ces éléments sont abordés du point de vue du développeur, en montrant des exemples de cas d'utilisation typiques et des considérations pratiques liées à l'utilisation de la cryptographie, telles que les infrastructures à clé publique. Les protocoles de sécurité dans de nombreux domaines de la communication sécurisée sont présentés, avec une discussion approfondie sur les familles de protocoles les plus largement utilisées telles que IPSEC et SSL/TLS.
Les vulnérabilités cryptographiques typiques sont examinées à la fois en rapport avec certains algorithmes cryptographiques et protocoles cryptographiques, tels que BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE et similaires, ainsi que l'attaque temporelle RSA. Dans chaque cas, les considérations pratiques et les conséquences potentielles sont décrites pour chaque problème, sans entrer dans les détails mathématiques.
Enfin, la technologie XML étant essentielle pour l'échange de données par les applications en réseau, les aspects de sécurité de la technologie XML sont décrits. Cela inclut l'utilisation du XML dans les services web et les messages SOAP avec des mesures de protection telles que la signature XML et le cryptage XML - ainsi que les faiblesses de ces mesures de protection et les problèmes de sécurité spécifiques au XML tels que l'injection XML, les attaques d'entités externes XML (XXE), les bombes XML et l'injection XPath.
Les participants à ce cours
- 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
- Connaîtront les attaques et les défenses des réseaux aux différentes couches OSI
- auront 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
- Comprendre les concepts de sécurité des services Web
- Obtenir des sources et des lectures complémentaires sur les pratiques de codage sécurisé.
Public
Développeurs, professionnels
Sécurité Java Avancée
21 HeuresMême les programmeurs Java expérimentés ne maîtrisent pas toujours les différents services de sécurité offerts par Java, et ne sont pas non plus conscients des vulnérabilités pertinentes pour les applications web écrites en Java.
Le cours - outre l'introduction aux composants de sécurité de la plateforme Java Standard Edition - aborde les questions de sécurité liées à la plate-forme Java Enterprise Edition (JEE) et aux services web. La présentation de services spécifiques s'appuie sur les fondements de la cryptographie et des communications sécurisées. Divers exercices traitent des techniques de sécurité déclaratives et programmatiques dans JEE, tandis que la sécurité au niveau du transport et de bout en bout des services web est discutée. L'utilisation de tous les composants est présentée à travers plusieurs exercices pratiques, permettant aux participants de tester par eux-mêmes les API et outils abordés.
Le cours passe également en revue et explique les failles de programmation les plus fréquentes et les plus graves du langage et de la plate-forme Java, 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 ceux découlant de l'environnement d'exécution. Toutes les vulnérabilités et les attaques correspondantes sont illustrées par des exercices faciles à comprendre, suivis des directives de codage recommandées et des techniques d'atténuation possibles.
Les participants suivant 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 top dix OWASP et savoir comment les éviter
- Comprendre les concepts de sécurité des services web
- Apprendre à 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
- Apprendre les erreurs de codage courantes et comment les éviter
- Obtenir des informations sur certaines vulnérabilités récentes du framework Java
- Acquérir des connaissances pratiques sur l'utilisation des outils de test de sécurité
- Obtenir des références et des lectures supplémentaires sur les pratiques de codage sécurisé
Audience
Développeurs
Développement sécurisé avec .NET, C# et ASP.NET
14 HeuresAujourd'hui, plusieurs langages de programmation sont disponibles pour compiler du code vers les frameworks .NET et ASP.NET. Cet environnement offre des moyens puissants pour le développement sécurisé, mais les développeurs doivent savoir appliquer les techniques de programmation au niveau de l'architecture et du codage afin de mettre en œuvre les fonctionnalités de sécurité souhaitées, éviter les vulnérabilités ou limiter leur exploitation.
Ce cours vise à enseigner aux développeurs, à travers de nombreux exercices pratiques, comment empêcher le code non fiable d'effectuer des actions privilégiées, protéger les ressources grâce à une authentification et une autorisation fortes, fournir des appels de procédure à distance, 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, tandis que l'analyse des vulnérabilités d'ASP.NET traite également des divers paramètres de l'environnement et de leurs effets. Enfin, le sujet des vulnérabilités spécifiques à ASP.NET aborde non seulement des défis généraux de sécurité des applications web, mais aussi des problèmes spécifiques et des méthodes d'attaque comme l'attaque sur le ViewState ou les attaques par terminaison de chaîne.
Les participants suivant 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 différentes 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 quels sont les erreurs de codage courantes et comment les éviter
- Obtenir des informations sur certaines vulnérabilités récentes dans .NET et ASP.NET
- Obtenir des ressources 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 fournit aux développeurs de PHP les compétences essentielles nécessaires pour rendre leurs applications résistantes aux attaques contemporaines par le biais d'Internet. Les vulnérabilités du Web sont discutées à travers des exemples basés sur le PHP qui vont au-delà des dix principales vulnérabilités du OWASP, en abordant diverses attaques par injection, des injections de scripts, des attaques contre la gestion des sessions du PHP, des références directes d'objets non sécurisées, des problèmes avec le téléchargement de fichiers, et bien d'autres encore. Les vulnérabilités liées à PHP sont regroupées dans les types de vulnérabilités standard : validation d'entrée manquante ou incorrecte, gestion incorrecte des erreurs et des exceptions, utilisation incorrecte des fonctions de sécurité et problèmes liés au temps et à l'état. Pour ces derniers, nous discutons d'attaques telles que le contournement d'open_basedir, le déni de service par le biais de magic float ou l'attaque par collision de la table de hachage. Dans tous les cas, les participants se familiariseront avec les techniques et les 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 de PHP liées à la sécurité sont introduites comme hash, mcrypt et OpenSSL pour la cryptographie, ou Ctype, ext/filter et HTML Purifier pour la validation d'entrée. Les meilleures pratiques de renforcement sont données en relation avec la configuration de PHP (réglage de php.ini), Apache et le serveur en général. Enfin, une vue d'ensemble est donnée des différents outils et techniques de test de sécurité que les développeurs et les testeurs peuvent utiliser, y compris les scanners de sécurité, les tests de pénétration et les packs d'exploitation, les renifleurs, les serveurs proxy, les outils de fuzzing et les analyseurs statiques de code source.
L'introduction des vulnérabilités et les pratiques de configuration sont soutenues par un certain nombre d'exercices pratiques démontrant les conséquences d'attaques réussies, montrant comment appliquer des techniques d'atténuation et introduisant l'utilisation de diverses extensions et outils.
Les participants à ce cours
- Comprendre les concepts de base de la sécurité, de la sécurité informatique et du codage sécurisé
- Apprendre les vulnérabilités du Web au-delà du OWASP Top Ten et savoir comment les éviter
- Apprendre les vulnérabilités côté client et les pratiques de codage sécurisé
- Avoir une compréhension pratique de la cryptographie
- Apprendre à utiliser les différentes fonctions de sécurité de PHP.
- Connaître les erreurs de codage typiques et savoir comment les éviter
- Être informé des récentes vulnérabilités du framework PHP.
- 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
Microsoft SDL Core
14 HeuresLa formation combinée SDL core offre un aperçu de la conception, du développement et du test sécurisés des logiciels à travers le Microsoft Secure Development Lifecycle (SDL). Elle fournit une vue d'ensemble de niveau 100 des éléments fondamentaux de l'SDL, suivie de techniques de conception pour détecter et corriger les failles aux premiers stades du processus de développement.
Concernant la phase de développement, le cours donne un aperçu des bugs de programmation typiques liés à la sécurité, qu'il s'agisse de code géré ou natif. Les méthodes d'attaque sont présentées pour les vulnérabilités discutées, ainsi que les techniques de mitigation associées, toutes expliquées par le biais d'exercices pratiques offrant des moments de hacking en direct aux participants. L'introduction de différentes méthodes de test sécurisé est suivie de la démonstration de l'efficacité de divers outils de test. Les participants peuvent comprendre le fonctionnement de ces outils grâce à un certain nombre d'exercices pratiques en les appliquant au code vulnérable déjà discuté.
Les participants à ce cours
Comprendront les concepts de base de la sécurité, de la sécurité informatique et du codage sécurisé
Connaîtront les étapes essentielles du Microsoft Secure Development Lifecycle
Apprendront les pratiques de conception et de développement sécurisés
Apprendront les principes de mise en œuvre sécurisée
Comprendront la méthodologie du test sécurisé
- Obtiendront des sources et des lectures complémentaires sur les pratiques de codage sécurisé
Public cible
Développeurs, Managers
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 en temps réel ?
La programmation orientée objet doit-elle être utilisée dans les microcontrôleurs ?
Le C++ est-il trop éloigné du matériel pour être efficace ?
Cette formation en direct avec un formateur aborde ces questions et démontre, à travers la discussion et la pratique, comment le C++ peut être utilisé pour développer des systèmes embarqués avec un code précis, lisible et efficace. Les participants mettent la théorie en pratique en créant une application embarquée échantillon en C++.
À la fin 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 en temps réel
- Produire du code pour les systèmes embarqués qui est petit, rapide et sûr
- Éviter l'enflure du code due aux modèles, aux exceptions et autres fonctionnalités du langage
- Comprendre les problèmes liés à l'utilisation de C++ dans les systèmes critiques de sécurité et en temps réel
- Déboguer un programme C++ sur un dispositif cible
Public
- Développeurs
- Concepteurs
Format du cours permettant d'évaluer les participants
- Partie conférence, partie discussion, exercices et pratique intensive
Programmation C++ 11
14 HeuresIl s'agit d'une formation de 2 jours destinée aux programmeurs C++ intéressés par l'application de la nouvelle norme C++11 dans leur secteur d'activité. Elle est particulièrement utile aux développeurs d'applications financières, couvrant toutes les nouvelles fonctionnalités avec des exemples de codage à exécuter en laboratoire.
Sécurité DevOps : Créer une Stratégie de Sécurité DevOps
7 HeuresDans ce cours en direct, dirigé par un instructeur, les participants apprendront à formuler la stratégie de sécurité appropriée pour relever le défi de la sécurité DevOps.
EC-Council Certified DevSecOps Engineer (ECDE)
28 HeuresEC-Council Certified DevSecOps Engineer (ECDE) est un cours pratique conçu pour doter les professionnels des compétences nécessaires à l'intégration de la sécurité tout au long du DevOps cycle de vie, permettant ainsi le développement sécurisé du logiciel de la planification à la mise en production.
Ce cours interactif et en direct (en ligne ou sur site) s'adresse aux professionnels intermédiaires du logiciel et des DevOps qui souhaitent intégrer les pratiques de sécurité dans les pipelines CI/CD, garantissant une livraison sécurisée et conforme du code.
À la fin de ce cours, les participants seront capables de :
- Comprendre les principes et les pratiques de DevSecOps.
- Sécuriser chaque étape des pipelines CI/CD en utilisant des outils automatisés.
- Mettre en œuvre des pratiques de codage sécurisé et des scans de vulnérabilités.
- Se préparer à l'examen ECDE avec des laboratoires pratiques et une révision.
Format du cours permettant d'évaluer les participants
- Cours interactif et discussion.
- Utilisation pratique des outils DevSecOps dans des pipelines simulés.
- Exercices guidés axés sur le développement et la mise en production sécurisés.
Options de personnalisation du cours
- Pour demander une formation personnalisée pour ce cours basée sur les flux de travail ou la chaîne d'outils de votre équipe, veuillez nous contacter pour en faire la demande.
Utilisation de C++ dans les systèmes embarqués - Application de C++11/C++14
21 HeuresCette formation a pour but d'introduire C++ comme extension naturelle de C lors du développement orienté objet de systèmes embarqués. Puisque C++ englobe C, cette formation nous guide de manière naturelle de C à C++, en examinant comment C++ est implémenté. Ceci est particulièrement utile pour comprendre l'application de C++ dans un environnement de ressources limitées.
Le standard C++ a récemment subi une importante révision, connue sous le nom de C++11, et une nouvelle version, C++14, est en cours. Cette formation aborde les sujets apportés par ces révisions qui sont particulièrement utiles, tels que la gestion mémoire à haute performance, la concurrence utilisant un environnement multicœur, et la programmation proche du matériel.
OBJECTIF/BÉNÉFICES
L'objectif principal de cette formation est que vous puissiez utiliser C++ de manière “correcte”.
- Introduire C++ comme alternative orientée objet dans un contexte de système embarqué
- Mettre en évidence les similitudes et les différences avec le langage C
- Comprendre différentes stratégies de gestion mémoire, notamment la sémantique de déplacement introduite avec C++11
- Examiner sous le capot pour comprendre ce que différents paradigmes en C++ génèrent en code machine
- Utiliser des modèles pour obtenir des abstractions d'ordre supérieur typées en sécurité pour la programmation proche du matériel - gestion mémoire mappée et interruptions - notamment les modèles variadiques introduits avec C++11
- Fournir quelques patrons de conception particulièrement utiles dans un contexte embarqué
- Quelques exercices pour pratiquer certains concepts
PUBLIC/PARTICIPANTS
Cette formation est destinée aux programmeurs C++ qui souhaitent commencer à utiliser C++ dans un contexte de système embarqué.
CONNAISSANCES PRÉALABLES REQUISES
Le cours nécessite des connaissances de base en programmation C++, équivalentes aux formations ”C++ - Niveau 1” et ”C++ Niveau 2 - Introduction à C++11”.
EXERCICES PRATIQUES
Lors de la formation, vous pratiquerez les concepts présentés au cours d'une série d'exercices. Nous utiliserons l'environnement de développement intégré open source et gratuit Eclipse
Programmation fonctionnelle avec C++
14 HeuresCette formation dirigée par un instructeur, en France (en ligne ou sur site), est destinée aux développeurs web souhaitant utiliser la programmation fonctionnelle avec C++
À la fin de cette formation, les participants seront capables de :
- Utiliser des solutions de programmation fonctionnelle pour améliorer les performances des applications web.
- Éviter les mutations de données et les effets secondaires grâce à la programmation fonctionnelle.
- Créer des applications web dans un style de programmation fonctionnelle.
Comment écrire un Code Sécurisé
35 HeuresCe cours en France vise à aider dans les points suivants :
- Aider les développeurs à maîtriser les techniques de codage sécurisé
- Aider les testeurs logiciels à tester la sécurité de l'application avant sa publication dans l'environnement de production
- Aider les architectes logiciels à comprendre les risques entourant les applications
- Aider les chefs d'équipe à fixer les lignes directrices de sécurité pour les développeurs
- Aider les webmasters à configurer les serveurs pour éviter les mauvaises configurations
Développeur Sécurisé Java (avec OWASP)
21 HeuresCe cours couvre les concepts et principes de codage sécurisé avec Java à travers la méthodologie de test de l'Open Web Application Security Project (OWASP). L'Open Web Application Security Project est une communauté en ligne qui crée des articles, méthodologies, documentations, outils et technologies librement disponibles dans le domaine de la sécurité des applications web.
Développeur Sécurisé .NET (avec OWASP)
21 HeuresCe cours couvre les concepts et principes de codage sécurisé avec ASP.NET, en utilisant la méthodologie de test du Projet Open Web Application Security (OWASP). OWASP est une communauté en ligne qui crée des articles, des méthodologies, des documentations, des outils et des technologies librement 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.