Formation Développeur Sécurité

S'abonner

Formation Développeur Sécurité

Développeur indépendant ou en agence, vous souhaitez enrichir vos connaissances en sécurité de la programmation et ainsi renforcer la robustesse de vos développements.
Manager ou dirigeant, vous souhaitez sensibiliser vos collaborateurs à la sécurité et ainsi valoriser cet aspect critique du E-commerce auprès de vos clients.

Prérequis

  • Bonnes connaissances de PHP
  • Connaissance en bases de données
  • Intérêt dans la sécurité web

Objectifs

  • Maîtriser les problématiques de sécurité des technologies web
  • Éviter, détecter, corriger les vulnérabilités « web »
  • Renforcer la robustesse des projets E-Commerce

Description

La formation Développeur Sécurité permet de maîtriser les différents risques de sécurité pouvant être rencontrés au cours d'un développement. La formation Développeur Sécurité valorise ainsi un autre aspect du métier de développeur, auprès des clients finaux et au sein de l'entreprise. Toutes les grandes familles de vulnérabilités du web sont travaillées en détail, de la théorie à des exercices pratiques : prévention, détection, correction, au travers d'exemples concrets. Certaines spécificités liées à la configuration de l'environnement de développement sont également couverts, tels que la configuration de PHP. La formation Développeur Sécurité est indispensable à tout développeur expert dans sa technologie.

D'une durée de 2 jours et en constante adéquation avec la réalité des vulnérabilités du web, la formation Développeur Sécurité est accompagnée d'un support de formation riche, pouvant notamment servir de mémo technique pour les futurs développements.

À l'issue de la formation

Une assistance professionnelle d'une durée de deux heures est assurée par les experts de l'Académie dans les six mois suivant la formation.
1° journée
2° journée

Plan de formation
Développeur Sécurité

Introduction à la sécurité applicative

  • Introduction à la sécurité web : injections SQL, XSS, CSRF, etc.
  • L'écosystème de la sécurité web
  • Quels sont les risques de vos clients ? Sachez y répondre !

La sécurité dès la conception

  • Appliquer un modèle de sécurité
  • Identifier & minimiser la surface d'attaque
  • Gérer les erreurs de manière sécurisée
  • Limiter les privilèges (CGI, backoffice, etc.)
  • Faire reposer la sécurité sur des principes, frameworks et algorithmes éprouvés
  • Garder les mécanismes de sécurité simples
  • Détecter les intrusions (journaux d'événements intelligents, détecter les comportements « anormaux »)
  • Connaitre les limites de sécurité de l'infrastructure et des services, savoir effectuer une analyse objective du niveau de sécurité de ces éléments

Paramètres à prendre en compte lors d'une auto-évaluation

  • Savoir analyser son propre niveau de sécurité en partant du principe que les attaquants possèdent le code source
  • Gérer les entrées et actions utilisateur pour éviter les malveillances
  • Séparation des tâches dans l'application afin d'éviter les incohérences
  • Comment évaluer et « calibrer » le niveau de sécurité cible dans ces conditions ?

Les grandes familles de vulnérabilités récurrentes

  • XSS (Cross Site Scripting)
    • Qu'est-ce qu'un XSS ? Dans quel contexte se produit-il et quels sont les impacts potentiels ?
    • Les différents types de XSS : XSS éphémères, XSS stockés, XSS dans les logs, XSS dans le backoffice
    • Les vecteurs d'injections
    • Prévention des XSS
  • Injection SQL
    • Qu'est-ce qu'une injection SQL ? Dans quel contexte se produit-elle ? Quels sont les impacts potentiels ?
    • Différents types d'injections SQL
    • Prévention des injections SQL
  • CSRF (Cross Site Request Forgery)
    • Qu'est-ce qu'un CSRF ?
    • Dans quel contexte se produit-il ?
    • Comment se produit-il et quels sont les impacts ?
  • Gestion des fichiers
    • File upload : risques et bonnes pratiques liés aux fonctionnalités d'upload de fichiers
    • File download : risques et bonnes pratiques liés aux fonctionnalités de téléchargement de fichiers.
  • Autres vulnérabilités moins courantes : Directory Traversal, URL redirection abuse, http response splitting, etc.

Problématiques liées à l'authentification

  • Sessions
    • Problèmes d'entropie
    • Session guessing
    • Session fixation
  • Cookies
    • Présence d'informations confidentielles dans les cookies
    • Transmission des cookies en http
  • Mots de passe
    • Génération des mots de passe
    • Stockage des mots de passe (chiffrement)
    • Vérification de robustesse des mots de passe
    • Gestion des questions de type « Mot de passe perdu »
    • Accepter des mots de passe en http
    • Problématique du blocage des comptes (Déni de service)
    • Faire reposer l'information sur des briques existantes : LDAP, domaine windows, etc.
  • Gestion des privilèges
    • Les bonnes pratiques pour assurer la sécurité du système de privilèges

Risques liés au spam et à l'utilisation « automatisée » d'un site

  • Prévenir l'utilisation automatisée du site ou d'une de ses fonctionnalités lorsque nécessaire
  • Acquérir les bonnes méthodes pour lutter contre l'utilisation automatisée : Captcha et autres tests de Turring

Webservices

  • Risques de sécurité liés aux WebServices

Problèmes de configuration serveur

  • Configuration PHP, ASP, etc.
  • Configuration Apache, IIS, etc.
  • Gérer Flash

Présentation des outils de sécurité à utiliser dans le cadre d'un projet de développement

  • Outils de tests automatisés
  • Outils d'analyse statique de code source
  • Les méthodes de test manuel : test en « boîte noire »
  • Les méthodes d'audit manuel : apprendre à auditer du code

Présentation des frameworks permettant de renforcer efficacement la sécurité d'un développement

Cas pratique

  • Mettre en place rapidement et efficacement des correctifs génériques sur un développement existant
  • Analyse de code vulnérable et mise en place de correctifs : injections SQL, XSS, CSRF, Directory traversal, remote file include, etc.

Les limites des fonctions de sécurité

  • Clauses order by
  • Les XSS « browser dependant »
  • Appliquer le concept de liste blanche