Skip to main content

15 bonnes pratiques de sécurité des applications

Écrit par
Introducing open source security runtime monitoring

8 octobre 2020

0 minutes de lecture

Points clés à retenir

  • Adoptez une approche « shift left » : intégrez les pratiques de sécurité dès le début du cycle de développement (conception et mise en œuvre) afin de détecter et de corriger les vulnérabilités le plus tôt possible.

  • Traitez les vulnérabilités des logiciels open source : gérez et surveillez activement les logiciels open source afin d’identifier les vulnérabilités connues, et veillez à appliquer rapidement les mises à jour et les correctifs, car une grande partie des applications d’entreprise en dépend.

  • Améliorez la visibilité et la gestion des risques : gardez une vue d’ensemble de vos actifs et évaluez régulièrement les risques afin d’identifier les menaces, les vecteurs d’attaque et les mesures de sécurité nécessaires.

  • Mettez en place les mesures de sécurité fondamentales : donnez la priorité à la protection des données par le chiffrement (au repos et en transit), validez correctement les données saisies et automatisez les tâches de sécurité simples pour permettre aux équipes de se consacrer à des défis plus complexes.

Depuis 2010, le développement d’applications a connu une croissance sans précédent. Avec des millions d’applications mobiles et web disponibles, les applications sont devenues essentielles à notre quotidien. Parallèlement, le développement de l’Internet des objets (IoT) s’est accéléré, permettant d’automatiser des processus manuels.

Mais ces évolutions positives se sont aussi accompagnées de nombreux problèmes, et les failles de sécurité sont notamment devenues monnaie courante. Si la plupart des développeurs et des entreprises estiment que leurs applications sont suffisamment sécurisées, ils continuent à déployer du code vulnérable en production. Les solutions de sécurité des applications comme Snyk vous aident à anticiper les vulnérabilités en donnant aux développeurs les moyens de corriger les problèmes de sécurité dès les premières étapes du cycle de développement.

Plus d’applications, plus de problèmes [de sécurité] : les défis courants de la sécurité des applications

Parmi les défis les plus courants en matière de sécurité des applications, on trouve :

  • Programmeurs amateurs : la demande en applications augmente, mais le manque de développeurs qualifiés a conduit un grand nombre de programmeurs amateurs à créer des applications mobiles. Trop souvent, les équipes de développement n’ont pas non plus les connaissances nécessaires pour résoudre les problèmes de sécurité qui se présentent.

  • Utilisation inefficace des outils : les développeurs ne tirent souvent pas pleinement parti des outils de test dans lesquels ils ont investi. Beaucoup pensent également que ces outils vont ralentir le processus de développement.

  • Vecteur d’attaque des applications web : les applications web constituent le principal vecteur d’attaque à l’origine des fuites de données. Les entreprises doivent donc connaître les API présentes dans leurs applications et les risques associés. De nombreuses violations impliquant des API touchent des entreprises qui ignorent la présence de ces interfaces dans leurs solutions.

  • Absence d’approche DevSecOps : la plupart des organisations ne suivent pas les bonnes pratiques de sécurité du développement d’applications pour protéger leurs logiciels. Elles négligent souvent de mettre en place un processus DevSecOps (l’approche « shift left »), pourtant essentiel pour que chaque problème lié à la sécurité soit traité et résolu au plus vite.

  • Vulnérabilités des logiciels open source : les logiciels open source présentent de nombreuses vulnérabilités et constituent une source de risques. On estime que 96 % des applications du marché destinées aux entreprises utilisent des logiciels et des bibliothèques open source.

En suivant cette liste de contrôle de sécurité des applications, vous pouvez éviter ces pièges et renforcer la sécurité de vos applications.

En matière de bonnes pratiques de sécurité du développement d’applications et de sécurité des applications web, les processus de développement web, mobile et de logiciels pour ordinateur étant similaires, les mêmes bonnes pratiques de sécurité s’appliquent souvent à chacun d’eux.

Comment réaliser une analyse des écarts en sécurité applicative

Dans ce guide, nous vous expliquons comment réaliser une analyse des écarts en sécurité applicative afin d’améliorer la visibilité sur vos actifs, la couverture AppSec et la priorisation.

Liste de contrôle : 15 bonnes pratiques de sécurité des applications

  1. Adopter une approche DevSecOps

  2. Mettre en place un processus de gestion du cycle de développement logiciel sécurisé (SDLC)

  3. Traiter les vulnérabilités des logiciels open source

  4. Automatiser

  5. Connaître vos propres actifs

  6. Évaluer les risques

  7. Former les développeurs à la sécurité

  8. Gérer correctement les conteneurs

  9. Limiter l’accès des utilisateurs aux données

  10. Mettre régulièrement à jour et appliquer les correctifs

  11. Garantir l’accès aux données des journaux

  12. Chiffrer vos données

  13. Réaliser des tests d’intrusion

  14. Valider correctement les données saisies

  15. Privilégier les corrections définitives

#1 Adopter une approche DevSecOps

DevSecOps, ou l’approche « shift left », vise à détecter les failles de sécurité dès le premier jour, afin d’éviter les problèmes de sécurité et, s’ils surviennent, de les résoudre le plus rapidement possible. DevSecOps permet aux équipes de développement de repérer les problèmes de sécurité à toutes les étapes de la chaîne d’approvisionnement logicielle, de la conception à la mise en œuvre.

#2 Mettre en place un processus de gestion du cycle de développement logiciel sécurisé (SDLC)

Le processus de gestion du cycle de développement logiciel sécurisé (SSDLC) définit le cycle de vie du produit du point de vue de sa sécurité. Il garantit que les produits, tout au long de leur cycle de vie, sont :

  • Développés et maintenus par des collaborateurs formés à la sécurité

  • Conçus dans un environnement sécurisé, conformément aux bonnes pratiques de sécurité logicielle

  • Livrés aux clients de manière sécurisée

Le SSDLC couvre l’ensemble du processus de développement d’un nouveau produit, de sa conception à son déploiement complet et sécurisé sur le marché en tant que produit mature, en passant par toutes les activités de développement, et jusqu’à la fin de son cycle de vie.

#3 Traiter les vulnérabilités des logiciels open source

Les outils open source offrent de nombreux avantages, notamment en matière de coûts, mais ils vous exposent également à des vulnérabilités importantes. Lorsque vous utilisez des logiciels open source, il est donc essentiel de rechercher en continu les vulnérabilités, d’effectuer régulièrement les mises à jour et d’appliquer les correctifs aussi rapidement que possible.

#4 Automatiser les tâches de sécurité simples

Il est quasiment impossible de traiter manuellement le nombre infini de vulnérabilités existantes. L’automatisation est donc essentielle. Automatisez toutes les tâches simples afin que les équipes puissent se concentrer sur des missions plus complexes.

#5 Connaître vos propres actifs

La visibilité est la première étape pour comprendre la posture de sécurité de votre organisation : vous ne pouvez pas sécuriser ce que vous n’avez pas identifié. Il est essentiel de savoir précisément quels actifs composent vos applications et votre infrastructure de production logicielle.

#6 Évaluer les risques

Évaluez les risques en vous mettant à la place d’un attaquant. Vérifiez que vous n’avez rien oublié :

  • Dressez la liste de tous les actifs à protéger.

  • Identifiez les menaces et déterminez comment les isoler et les contenir.

  • Identifiez les vecteurs d’attaque susceptibles de compromettre votre application.

  • Assurez-vous de disposer des mesures de sécurité adaptées pour détecter les attaques et les empêcher.

  • Déterminez si vous avez besoin d’outils supplémentaires ou d’outils différents.

#7 Former les développeurs à la sécurité

Comme les développeurs sont également chargés de déployer du code en production, il est essentiel que votre équipe de sécurité les forme. Cette formation doit bien sûr être adaptée au rôle et aux besoins de sécurité de chaque développeur.

#8 Gérer correctement les conteneurs

Commencez par vous assurer que vos images de conteneur sont signées à l’aide d’un outil de signature numérique (par exemple, Docker Content Trust). Il est également important d’exécuter des analyses automatiques pour détecter les vulnérabilités des logiciels open source afin de sécuriser l’utilisation des conteneurs tout au long du pipeline d’intégration courant.

#9 Limiter l’accès des utilisateurs aux données

Restreindre davantage l’accès à vos données est l’un des meilleurs moyens d’améliorer la sécurité :

  • Déterminez qui a réellement besoin d’accéder à chaque ressource.

  • Créez des règles d’accès.

  • Veillez à ce que les droits d’accès restent à jour en supprimant les identifiants actifs dès que l’accès aux données n’est plus nécessaire.

#10 Mettre régulièrement à jour et appliquer les correctifs

L’installation des mises à jour et des correctifs logiciels est l’un des moyens les plus efficaces de sécuriser vos logiciels. Pourquoi chercher à résoudre vous-même des problèmes qui ont déjà été corrigés ? Il est toutefois important de planifier chaque nouvelle mise à jour, car elle nécessite de concevoir une architecture appropriée afin d’éviter les problèmes de compatibilité des API lors du passage à de nouvelles versions.

#11 Garantir l’accès aux données des journaux

L’accès aux données des journaux de vos opérations quotidiennes dans le cloud est essentiel à tout plan de réponse aux incidents. L’accumulation et l’interprétation de ces données pendant la période qui précède un incident ont une incidence directe sur la sécurité et peuvent également être utiles aux enquêtes ultérieures. Sans ces informations, vous risquez de vous retrouver démuni face à un incident de sécurité.

#12 Chiffrer vos données

Parmi les bonnes pratiques de sécurité des applications web, le chiffrement des données au repos comme en transit est essentiel. Un chiffrement de base doit notamment inclure l’utilisation de SSL avec un certificat à jour. Les données sensibles des utilisateurs, comme les identifiants et les mots de passe, ne doivent en aucun cas être stockées en texte brut, au risque de permettre des attaques de type « man-in-the-middle » (MITM). Veillez à utiliser les algorithmes de chiffrement les plus robustes.

#13 Réaliser des tests d’intrusion

Les tests automatisés détectent la plupart des problèmes de sécurité avant la mise en production, mais certaines lacunes peuvent passer inaperçues. Pour limiter ce risque, il est judicieux de faire appel à un spécialiste des tests d’intrusion expérimenté. Ce type de hacker éthique tente de s’introduire dans l’application afin de détecter les vulnérabilités et de repérer d’éventuels vecteurs d’attaque, dans le but de protéger le système contre une véritable attaque. Il est important que ce spécialiste soit un expert externe qui ne participe pas au projet.

#14 Valider correctement les données saisies

Toutes les données saisies doivent être correctes sur le plan syntaxique et sémantique. Il faut les valider en fonction de leur longueur — elles doivent contenir le nombre de chiffres et de caractères attendu — ainsi que de leur taille, de leur longueur, etc. L’utilisation d’une liste d’autorisation est recommandée, mais cette méthode de validation n’est pas toujours possible à mettre en œuvre.

#15 Privilégier les corrections définitives

En analysant les listes de CVE, on constate facilement que certains types de vulnérabilités réapparaissent régulièrement (par exemple, le cross-site scripting (XSS), l’injection SQL ou le dépassement de tampon). Lorsqu’une nouvelle vulnérabilité est découverte, il est donc essentiel d’en déterminer la cause profonde, plutôt que de se contenter d’un correctif partiel, afin de l’éliminer définitivement.

Conclusion : pourquoi la sécurité des applications est importante

Les spécialistes de la sécurité ont certes des points de vue variés sur les bonnes pratiques de sécurité des applications, mais la plupart s’accordent sur quelques éléments essentiels, présentés ici, à inclure dans toute liste de contrôle pour l’audit de sécurité d’une application.

Toutefois, il est toujours judicieux d’être mieux protégé que les autres et de tout faire pour réduire le nombre d’erreurs dans vos applications, afin de rendre leur exploitation plus difficile. 1

FAQ sur la sécurité des applications

Qu’est-ce que la sécurité des applications ?

La sécurité des applications consiste à identifier et à atténuer les vulnérabilités au niveau des applications. Elle est suivie de procédures de renforcement visant à améliorer la posture de sécurité globale de l’application.

Quels outils de test de sécurité des applications sont recommandés ?

Aucun outil ni protocole de test ne peut atténuer tous les risques de sécurité possibles. Les équipes doivent plutôt combiner plusieurs outils, notamment des outils de test statique de sécurité des applications (SAST), de test interactif de sécurité des applications (IAST), de test dynamique de sécurité des applications (DAST) et d’analyse de la composition logicielle (SCA).

Quelles sont les principales approches des tests de sécurité des applications ?

L’un des principaux moyens de détecter les vulnérabilités dans le code source de votre produit consiste à utiliser des outils de test statique de sécurité des applications (SAST). Contrairement aux outils SAST, les outils de test dynamique de sécurité des applications (DAST) détectent les vulnérabilités en tentant activement d’exploiter votre application en cours d’exécution.

Sécurisez vos applications avec notre outil pensé pour les développeurs

Des conseils efficaces et concrets en sécurité des applications, dans vos IDE, dépôts, conteneurs et pipelines.