• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 23/12/2019

Sécurisez votre environnement de développement

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Faites face aux vulnérabilités connues

Il est important de faire des recherches sur les outils de votre environnement de développement pour être au courant de toutes les vulnérabilités et des méthodes d'atténuation. Documentez tous les modules, API et bibliothèques utilisés, ainsi que les vulnérabilités connues afin de garder une trace des actions effectuées.

Comment savoir si un des outils que j'utilise présente une vulnérabilité connue ?

Pensez à consulter les bases de données sur le web. La base de données Common Vulnerabilities and Exposures (en anglais), créée par le MITRE, est un excellent outil à utiliser. 

Voici quelques conseils pour vous assurer que votre environnement est sécurisé :

  • documentez les versions de chaque composant de votre application, y compris le firmware de la carte réseau du serveur ;

  • examinez vos composants physiques, vos applications, votre système d'exploitation, vos API, vos bibliothèques et les versions des langages utilisées.

Identifiez votre environnement pour éviter les failles de sécurité

Vous pouvez appliquer toutes les pratiques de programmation sécurisée que vous connaissez, mais si vous vous retrouvez avec votre application web dans un environnement qui n'est pas sécurisé, cela peut l'ouvrir à d'autres attaques

Il est très important d'avoir une bonne configuration de sécurité pour l'environnement qui héberge votre application web afin d'assurer sa disponibilité et son intégrité. Par ailleurs, il faudra également mettre en place des couches de sécurité telles qu'un pare-feu (WAF). Ce pare-feu devra être configuré de manière optimale pour s'assurer que seuls les ports requis sont ouverts afin de renforcer la sécurité. Un outil comme un SIEM (Security information management system) peut détecter les événements et assurer la gestion de la sécurité du serveur. 

En dehors du serveur d'application web et du pare-feu, se trouve le serveur physique lui-même. En règle générale, les services cloud qui fournissent cet espace ont déjà mis en place des mesures de sécurité. Assurez-vous que les normes de conformité pour le service cloud utilisées sont conformes aux exigences de la politique de sécurité de votre application web. La configuration de sécurité du serveur physique et du pare-feu pour la plateforme de cloud nécessitent une configuration stricte.

Le contrôle d'accès pour les composants externes de l'environnement, tels que la plateforme et l'administration du serveur, sont d'autres moyens par lesquels un attaquant peut obtenir un contrôle non autorisé à une application web. Ces facteurs doivent être correctement configurés et documentés.

Sécurisez votre environnement

Après avoir pris connaissance des composants de votre environnement, vous devez vous assurer que les configurations sont à la hauteur de la sécurité requise. La bonne gestion des vulnérabilités est un élément critique pour maintenir la sécurité de votre application web.

Prenons un exemple concret.

Supposons que la plateforme sur laquelle est hébergée votre application web dispose d'une console d'administration. Votre patron insiste sur le fait que la plateforme a la réputation d'être sécurisée et qu'elle utilise un service cloud populaire ! Il vous dit aussi que tout est configuré et qu'il vous suffit de paramétrer votre application web sur la plateforme. Tout est sécurisé !

Le site est détourné, et devinez quoi ? Les pirates avaient un accès complet à votre application web parce qu'ils pouvaient accéder à la console d'administration. Apparemment, certaines des informations d'identification par défaut n'ont pas été supprimées, et comme ces informations d'identification sont déjà connues des attaquants, ils attendent que la même application web apparaisse avec les paramètres par défaut !

La sécurisation de votre code avec l’OWASP n’a pas d’intérêt si un attaquant a accès au code source et peut se connecter directement dans la console d'administration.

Quelle est la leçon à tirer ici ? Sécurisez toutes vos applications externes !

Une mauvaise configuration de sécurité peut se produire à n'importe quel niveau, y compris les services réseau, la plateforme, le serveur web, le serveur d'applications, la base de données, les frameworks, le code personnalisé et les machines virtuelles, conteneurs ou stockage préinstallés.

Pour les services réseau, vous allez examiner l'infrastructure de votre serveur web et vous assurer que les meilleures pratiques sont utilisées pour sécuriser vos services. Vous avez des serveurs FTP de base de données ou LDAP (Lightweight Directory Access Protocol) qui peuvent être compromis par les mauvaises personnes ! Les systèmes d'authentification doivent suivre les meilleures pratiques de sécurité.

Voici quelques bonnes questions à poser :

  • Existe-t-il des pare-feux pour toutes les applications et tous les serveurs ? 

  • Est-ce que seuls les ports nécessaires sont ouverts avec des ensembles de règles limités ?

  • Les pare-feux limitent-ils le type de trafic sur les ports ouverts ?

  • De plus, y a-t-il un processus mis en place pour détecter les anomalies dans le trafic web ?

Le trafic web devrait également être surveillé pour déceler les anomalies. Imaginez si quelqu'un commençait à effectuer des scans de ports pour rechercher périodiquement les ports ouverts. Il y a des outils qui peuvent détecter de tels événements pour avertir les administrateurs qu'il y a une tentative possible de piratage du site.

Concernant l'application et la plateforme, nous avons parlé du nom d'utilisateur et des mots de passe par défaut pour les serveurs, les applications et les bases de données. Nous avons également passé en revue la détection et l'enregistrement des événements possibles. Assurez-vous qu'ils ne révèlent pas les informations de base sur votre site, telles que les noms d'utilisateur, les fichiers, les configurations IP et les données de base pour l'entreprise et les personnes.

Tous les aspects administratifs tels que les répertoires et les fichiers de configuration pour toutes les applications doivent être protégés des regards indiscrets. Protégez le code source et la structure des fichiers en vous assurant que le serveur web est verrouillé.

Toutes vos applications sont hébergées sur des systèmes d'exploitation. Assurez-vous que les applications ont un accès minimal au système d'exploitation, car le piratage du système d'exploitation est un moyen sûr de prendre le contrôle de votre application.

Vous disposez également de jetons d'accès, de mots de passe d'authentification et de clés de chiffrement ! Protégez-les également.

Enfin, les exceptions et les codes d'erreur en disent long sur votre application, votre code source, le fonctionnement du réseau, la structure des fichiers de votre base de données, les répertoires de fichiers et plus encore. Les attaquants cherchent ce type d'information. Une stack trace peut être utile lorsque vous déboguez votre application ; cependant, si elle est utilisée à des fins malveillantes, la quantité d'informations qu'elle peut révéler peut être dangereuse !

En résumé

  • Lors de la conception d'une application web, évaluez les composants présentant des vulnérabilités connues.

  • Les composants peuvent présenter de nouvelles vulnérabilités tout au long du cycle de vie du produit.

  • Patchez toujours les zones présentant de nouvelles vulnérabilités.

  • Votre travail n'est pas terminé après que vous ayez écrit un code sécurisé.

  • Assurez-vous que les pare-feux et les plateformes sont protégés et configurés de manière à respecter les bonnes pratiques de sécurité.

  • Connectez-vous avec les administrateurs de bases de données pour vous assurer que la base de données est sécurisée.

 Vous êtes arrivé au bout de cette partie ! Bravo ! Réalisez le quiz pour valider vos connaissances.

Exemple de certificat de réussite
Exemple de certificat de réussite