picto Sécurité

Formation Développer des applications Windows sécurisées

Sécurisation du développement sous Windows

Référence

DSDW

Durée

3 JOURS

Tarif

EN INTRA SEULEMENT

NIVEAU

Expert

Cours à distance

Oui

Objectifs de la formation Développer des applications Windows sécurisées

« Une chaîne est aussi solide que son maillon le plus faible ! ». Ce vieil adage est particulièrement vrai en informatique où la plupart des responsables sécurité l’intègre au niveau de leur infrastructure système et réseau mais l’oublie souvent au niveau de la sécurité applicative. Les applications sont maintenant ouvertes au monde et les vecteurs d'attaques ont été démultipliés. L'exploitation de ces intrusions est même devenu un paramètre économique important. Intégrer quelques bonnes "bonnes pratiques" n'améliore que marginalement la sécurité d'un produit. Il est indispensable de construire une solution autour d'une équipe qui a été sensibilisée à la question de la sécurisation des développements. Cette formation se propose d'initier les différents membres d'une équipe de développement sur la sécurisation du code et sur les processus de développements sécurisés. Dans un premier temps vous apprenez à décomposer votre application en composants, afin de modéliser les menaces et apporter des solutions techniques génériques d’atténuation. Il est important de comprendre que cette modélisation est indépendante du langage utilisé. Ensuite, une journée très technique est consacrée à l'exploitation de failles de type "Buffer Overrun" afin de vous sensibiliser sur les risques liés à ce type d'erreurs de robustesse de code et comprendre les parades mises en place par Microsoft et vous-même. La dernière partie vous rend autonome dans les techniques de programmation sécurisée sur les différents thèmes abordés lors de la modélisation des menaces. Le cours vous apprend comment construire un produit sécurisé sur un environnement Microsoft Windows, de la mise en place des processus de gestion de projet, en passant par la modélisation jusqu'à la mise en production. Au-delà des aspects conceptuels, vous apprenez donc sous un angle très technique comment reconnaître une faille, comment l'exploiter et comment s'en prémunir. Chaque concept est présenté sous l’angle fonctionnel « Comment ça marche ? » puis développé sous l’angle de la sécurité. Il vous sera alors naturel de mettre en œuvre les bon processus dans vos développements.

Pré-Requis

« Une chaîne est aussi solide que son maillon le plus faible ! ». Ce vieil adage est particulièrement vrai en informatique où la plupart des responsables sécurité l’intègre au niveau de leur infrastructure système et réseau mais l’oublie souvent au niveau de la sécurité applicative. Les applications sont maintenant ouvertes au monde et les vecteurs d'attaques ont été démultipliés. L'exploitation de ces intrusions est même devenu un paramètre économique important. Intégrer quelques bonnes "bonnes pratiques" n'améliore que marginalement la sécurité d'un produit. Il est indispensable de construire une solution autour d'une équipe qui a été sensibilisée à la question de la sécurisation des développements. Cette formation se propose d'initier les différents membres d'une équipe de développement sur la sécurisation du code et sur les processus de développements sécurisés. Dans un premier temps vous apprenez à décomposer votre application en composants, afin de modéliser les menaces et apporter des solutions techniques génériques d’atténuation. Il est important de comprendre que cette modélisation est indépendante du langage utilisé. Ensuite, une journée très technique est consacrée à l'exploitation de failles de type "Buffer Overrun" afin de vous sensibiliser sur les risques liés à ce type d'erreurs de robustesse de code et comprendre les parades mises en place par Microsoft et vous-même. La dernière partie vous rend autonome dans les techniques de programmation sécurisée sur les différents thèmes abordés lors de la modélisation des menaces. Le cours vous apprend comment construire un produit sécurisé sur un environnement Microsoft Windows, de la mise en place des processus de gestion de projet, en passant par la modélisation jusqu'à la mise en production. Au-delà des aspects conceptuels, vous apprenez donc sous un angle très technique comment reconnaître une faille, comment l'exploiter et comment s'en prémunir. Chaque concept est présenté sous l’angle fonctionnel « Comment ça marche ? » puis développé sous l’angle de la sécurité. Il vous sera alors naturel de mettre en œuvre les bon processus dans vos développements.

Public

Ce stage s'adresse aux Chef de projet (avec passé de développeur), aux Responsables technique ainsi qu'aux Développeurs.

Contenu du cours Développer des applications Windows sécurisées

Qu’est-ce que la sécurisation du code ?

Contexte
Intégrer la sécurisation dans les processus de développement
Principes généraux

Modélisation des menaces

Décomposer une application
Déterminer les menaces d'une application
Noter et classer les menaces
Répondre aux menaces

Exploitation de « Buffer overrun »

Initiation à l'exploitation Principe général
Écrasement de l'adresse de retour
Exploitation des exceptions Win32
Sécurisation Options de compilation (Stack cookies, DEP, ALSR, etc.)
Différences entre Windows 32 bits et Windows 64 bits

Techniques de programmation sécurisée :

Ne pas faire confiances aux données d'entrée
S'exécuter avec les droits minimum
Les pièges du chiffrement
Déterminer les bons ACLs
Protéger les données sensibles
Se protéger des attaques par déni de service
Éviter d'utiliser des APIs non sécurisées
Bonnes pratiques la synthèse