Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Comment améliorer la sécurité des applications grâce à des boucles de rétroaction

Par Jared Ablon

4 mars 2020

4  min lire

Améliorer la sécurité des applications pour la plupart des organisations signifie implémenter davantage le cycle de vie du développement logiciel sécurisé (Secure SDLC). Que pouvez-vous faire une fois que vous avez tout mis en œuvre? Ou que pouvez-vous faire pour améliorer ce que vous avez déjà en place? Une façon serait de mesurer comment tout fonctionne actuellement, puis de faire des changements, de mesurer et de continuer.

Le problème avec cette méthode est que les mesures de sécurité des applications peuvent être difficiles pour un certain nombre de raisons. L'utilisation du nombre de vulnérabilités trouvées et corrigées ne prend pas en compte la gravité de chaque vulnérabilité. Même si vous tenez compte de la gravité, pourquoi le nombre de vulnérabilités diminue-t-il? Êtes-vous de plus en plus mal à les trouver ou faites-vous mieux pour les prévenir? Il est très difficile de savoir ce qui se passe en suivant les mesures de base de la sécurité des applications.

Que sont les boucles de rétroaction dans AppSec?

Une façon d'améliorer la sécurité des applications (AppSec) sans avoir des métriques parfaites consiste à créer une boucle de rétroaction. Les boucles de rétroaction sont simples: donnez aux gens un accès aux informations en temps réel et donnez-leur une chance de changer. De nombreuses études ont montré l'efficacité des boucles de rétroaction et comment elles contribuent à changer le comportement humain. Les boucles de rétroaction peuvent être utilisées dans la sécurité des applications pour aider à améliorer le code en modifiant le comportement des développeurs.

Les boucles de rétroaction comportent quatre étapes:

  1. Preuve: un comportement est mesuré et capturé
  2. Pertinence: le comportement est donné à la personne dans un contexte qui le fait résonner
  3. Conséquences: la personne comprend comment le comportement peut conduire à des résultats négatifs
  4. Action: la personne doit prendre une action claire basée sur les données

Après l'action, plus de données sont collectées et la boucle de rétroaction recommence.

Comment utiliser efficacement les boucles de rétroaction

Un exemple de boucle de rétroaction est lorsqu'un affichage dynamique de la vitesse est ajouté à côté des panneaux de limitation de vitesse. La vitesse d'une voiture est donnée à l'utilisateur (preuve) juste à côté de la limite de vitesse légale (pertinence). On rappelle aux gens les inconvénients de l'excès de vitesse, tels que les contraventions ou les accidents (conséquences), et la plupart des conducteurs ralentissent (action) à cause de cela. De plus, les conducteurs ralentissent en moyenne de 10% sur plusieurs kilomètres au-delà du panneau. Cette boucle de rétroaction est efficace pour obtenir le résultat souhaité et amener les gens à changer de comportement.

Les boucles de rétroaction peuvent être exploitées dans la sécurité des applications pour aider à obtenir le résultat souhaité d'un code plus sécurisé et moins de vulnérabilités. Une façon d'y parvenir consiste à tirer parti d'un outil de test de sécurité d'application statique (SAST), tel que Parasoft, en prenant les données de vulnérabilité de l'outil et en les fournissant au développeur qui a écrit le code avec la gravité et l'impact potentiel de la vulnérabilité. Les développeurs voient les erreurs de sécurité qu'ils ont commises dans leur contexte et réalisent l'impact potentiel des vulnérabilités. Ensuite, les développeurs corrigent les erreurs pertinentes et suivent une formation pertinente sur le codage sécurisé en fonction des vulnérabilités détectées à l'aide d'une plate-forme telle que HackEDU pour s'assurer qu'ils corrigent correctement la vulnérabilité. Les développeurs s'améliorent dans l'écriture de code sécurisé car ils découvrent les erreurs qu'ils ont commises après en avoir vu les conséquences. La boucle de rétroaction se poursuit avec le cycle de vie du développement logiciel sécurisé et le résultat est un code plus sécurisé.

La boucle de rétroaction que cela crée est:

  1. Preuve: les développeurs reçoivent les problèmes de sécurité qu'ils ont créés
  2. Pertinence: les développeurs voient la gravité des vulnérabilités qui se trouvent dans le code qu'ils ont écrit
  3. Conséquences: les développeurs réalisent les risques potentiels et l'impact en fonction des vulnérabilités et de la gravité
  4. Action: les développeurs résolvent les problèmes et suivent une formation en fonction des problèmes de sécurité spécifiques qu'ils ont posés

Cette boucle de rétroaction aide à changer le comportement des développeurs et commence à réduire le risque de vulnérabilités dans les logiciels. Les développeurs améliorent leur capacité à écrire du code sécurisé, ils deviennent plus conscients des problèmes potentiels dans le code et ils comprennent les conséquences de ne pas écrire de code sécurisé.

Utilisation de boucles de rétroaction avec SCA et normes de codage

Il existe d'autres domaines de la sécurité des applications qui peuvent également utiliser des boucles de rétroaction. Tous visent à informer et à améliorer le comportement des développeurs de logiciels. Par exemple, un domaine comprend la fourniture d'informations sur les vulnérabilités de bibliothèques tierces aux développeurs avec un outil d'analyse de la composition logicielle (SCA) tel que OWASP Dependency Check et la responsabilisation des développeurs pour la mise à niveau des bibliothèques. Les développeurs seront beaucoup plus délibérés sur les packages tiers qu'ils utiliseront s'ils choisissent même de les utiliser - l'avantage de coût est transféré aux développeurs.

Un autre domaine dans lequel les boucles de rétroaction peuvent être utilisées est la mise à jour des normes de codage sécurisé basées sur des analyses de logiciels ou des révisions de code. Un développeur est fourni avec les vulnérabilités ainsi que la gravité et l'impact. Le cas échéant, l'action entreprise par le développeur consiste à mettre en place une norme de codage basée sur le problème détecté. S'il existe déjà une norme pour le problème, ou si le problème ne se prête pas à une norme, le développeur peut avoir besoin de pratiquer un codage sécurisé dans une plate-forme de révision de code comme HackEDU.

Sans mesures parfaites, la sécurité des applications peut encore être améliorée. Étant donné que le développement de logiciels est une activité humaine (pour l'instant), le changement de comportement des développeurs et l'exploitation de l'analyse des boucles de rétroaction ont un effet considérable sur l'amélioration de la sécurité des applications.

Par Jared Ablon

Jared Ablon est le PDG de HackEDU, une plate-forme de formation interactive pour la formation au codage sécurisé, qui a fait ses preuves pour former les développeurs. Auparavant, il était Chief Information Security Officer chez AirMap où il a reçu le prix du Chief Information Security Officer (RSSI) de l'année décerné par le LA Business Journal.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.