Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Le département informatique au service des organisations
  3. Tester la sécurité des applications
Extrait - Le département informatique au service des organisations Stratégie, gouvernance et pilotage
Extraits du livre
Le département informatique au service des organisations Stratégie, gouvernance et pilotage Revenir à la page d'achat du livre

Tester la sécurité des applications

Les développeurs en première ligne

Les microservices sont le résultat d’une architecture visant à rendre les interactions entre différents composants aisées et efficientes en minimisant les risques et les failles sans pour autant les résoudre. Le développeur est en effet le seul à pouvoir le faire. De ce fait, il est important pour les équipes sécurité mais aussi pour le développeur lui-même de pouvoir agir au plus tôt et avec un maximum d’autonomie tout en évitant un impact fort sur son travail.

Durant des années, les équipes sécurité effectuaient des tests sur une application avant de rendre un rapport d’audit plusieurs jours ou plusieurs semaines après cet audit. Ainsi, l’applicatif lui-même était bien souvent déjà remplacé par une nouvelle version. Dans cette situation, le développeur se trouvait face à un dilemme avec d’une part le besoin de livrer plus de fonctionnalités et d’autre part de livrer une application plus sécurisée. Souvent, le développeur et même les équipes dirigeantes ont fait le choix de privilégier la partie visible de l’applicatif, notamment à cause de la durée nécessaire à la mise en œuvre des correctifs, bien trop longue. La situation ne fait...

Les tests de sécurité à tout moment

L’objectif est d’identifier et de résoudre le plus rapidement possible. En effet, plus tôt le problème est identifié, moins il coûte. Lorsque nous parlons de coût, il ne s’agit pas uniquement du coût financier mais aussi du coût lié à l’urgence et qui peut impacter les personnes impliquées et principalement les développeurs qui seront chargés de corriger le problème. Ainsi, une faille identifiée en production peut coûter 100 fois plus qu’un risque identifié durant les phases de développement ou de tests.

Évidemment, tout ne peut pas être identifié directement et les tests se doivent d’être effectués de nombreuses fois. C’est d’ailleurs une des limitations de l’audit : celui-ci s’effectue de manière sporadique. Pour permettre d’avoir des résultats de tests adéquats, il s’agit d’automatiser tout en identifiant la bonne balance entre les tests et la capacité de livrer. À cela s’ajoute le besoin de définir ce qui est testé à quel moment. En effet, un test complet de l’ensemble du code et des applications lors de chaque commit augmente considérablement le temps de compilation et réduit ainsi la capacité...

Des principes et des outils pour tester efficacement

Tester les applications dès la phase de conception et durant l’ensemble de son cycle de vie est primordial. Les types de tests à effectuer sont nombreux et très souvent, seuls l’un ou l’autre de ces tests sont effectués. Parmi ces tests, on retrouve différents tests avec des objectifs spécifiques pour chacun :

  • Les tests unitaires visent à vérifier le bon fonctionnement de composants individuels du logiciel, tels que des fonctions ou des méthodes.

  • Les tests d’intégration évaluent comment différentes parties du logiciel interagissent entre elles pour identifier des problèmes d’intégration et de communication entre les composants.

  • Les tests fonctionnels évaluent si le logiciel fonctionne conformément aux spécifications fonctionnelles et répond aux besoins de l’utilisateur en couvrant des scénarios d’utilisation normaux.

  • Les tests de stress exposent le logiciel à des conditions extrêmes (charges de travail élevées, ressources limitées) pour évaluer sa résistance et détecter des problèmes de performance et de stabilité.

  • Les tests de compatibilité avec différentes plates-formes, navigateurs ou systèmes d’exploitation.

  • Les tests de reprise après...