Trois bonnes pratiques DevSecOps à mettre en œuvre immédiatement
Les acteurs malveillants ciblant le code plus que jamais, il est temps d'accepter l'importance de l'approche DevSecOps. Voici trois étapes à suivre dès maintenant pour améliorer la sécurité des applications.
Quelle que soit l'étape de votre parcours DevOps, il est plus que jamais nécessaire d'intégrer l'approche DevSecOps à votre développement logiciel. Pourquoi ? Parce que les surfaces d'attaque n'ont jamais été aussi vastes. Selon Amy DeMartine, vice-présidente de Forrester Research, les applications constituent aujourd'hui la principale cible en matière de sécurité et ce problème ne cesse de s'aggraver.
Pour compliquer davantage les choses, une étude de Gartner révèle que les dépenses informatiques liées à la sécurité sont en baisse et ne représentaient que 5,7 % du budget total en 2019.
Et comme si tout cela ne suffisait pas, la confusion règne au sein des équipes DevOps : il n'est pas toujours clair de comprendre quels sont les groupes qui « détiennent » la responsabilité en matière de sécurité. Dans notre étude 2020 Global DevSecOps, 33 % des professionnels de la sécurité déclaraient être les seuls responsables de la sécurité, mais presque autant (29 %) affirmaient que c'est une responsabilité partagée.
Il est donc nécessaire de repenser la façon dont les équipes abordent l'approche DevSecOps, en commençant par les fondamentaux. Voici donc trois stratégies que les équipes peuvent mettre en œuvre immédiatement.
La collaboration est la clé du succès, quel que soit le projet. Organisez une réunion avec vos chefs de projet et vos responsables de la sécurité (vous leur aurez préalablement fourni un document de stratégie en préparation de cette réunion) pour définir un ensemble de mesures de sécurité à respecter concernant l'écriture du code dans le cadre du projet. Profitez-en pour planifier les tests automatisés que les développeurs devront réaliser sur leur code. Prendre ces décisions ensemble renforce la confiance dans le processus et encourage l'adoption d'un état d'esprit axé sur la sécurité dès la conception du code.
Rob Cuddy d'IBM vous conseille d'adopter les trois points clés suivants en matière de communication pour optimiser votre équipe DevSecOps :
Ne remontez que les problèmes critiques et filtrez les communications superflues en utilisant l'IA et le machine learning (ML) pour affiner vos scans de sécurité.
Abordez rapidement le sujet sensible : l'open source. Les codes tiers et open source sont omniprésents dans le développement logiciel. Il est donc essentiel d'y prêter attention afin de réduire les risques d'attaques évitables.
Identifiez les problèmes à la racine et traitez-les plus rapidement : détectez et corrigez les faux négatifs avant qu'ils ne soient exploités.
Ces mesures visent à encourager une communication directe, honnête et constructive entre les équipes. Elles vous aideront à établir et à maintenir un niveau de confiance et de crédibilité essentiel à une équipe DevSecOps efficace et performante.
Les ressources disponibles pour la sécurité des applications étant limitées et cette dernière jouant un rôle important dans la réussite de l'entreprise, il est tout à fait logique d'effectuer des tests à chaque validation du code. Ces tests seront idéalement écrits une seule fois pour répondre aux normes du projet ou de l'entreprise, puis exécutés automatiquement à chaque modification du code. Concentrez les tests sur les parties de l'application qui offrent la plus grande couverture tout en nécessitant un minimum de maintenance. Les équipes de développement doivent analyser le code à tous les niveaux structurels pour identifier les problèmes pouvant affecter les performances opérationnelles de l'application qu'ils développent. Le code doit être sécurisé, de haute qualité, efficace et facile à maintenir.
Des mesures préventives telles que les tests SAST et l'analyse des dépendances permettront de gagner du temps lors des étapes de développement ultérieures. En effet, elles permettent de réduire le nombre de défauts de code avant que celui-ci ne soit fusionné et elles aident les développeurs à comprendre l'impact des modifications sur d'autres parties de l'application. La définition préalable de critères de test aide également les développeurs à améliorer la qualité globale de leur code en leur fournissant des normes auxquelles ils peuvent se référer et qu'ils devront respecter lors de l'écriture du code.
Considérer les résultats des tests comme une forme de contrôle punitif n'est pas une approche constructive. Au-delà de la correction des erreurs, les résultats peuvent être utilisés de deux manières :
Pour le développeur, à titre individuel, les résultats doivent servir d'enseignements sur la manière de produire un code de meilleure qualité.
Au niveau de l'équipe, les résultats des tests doivent être analysés pour identifier des modèles de pratiques de codage qui peuvent être améliorés, et pour établir des normes visant à renforcer la qualité du code à l'échelle de l'équipe ou de l'entreprise.
Comment un programme désignant des « champions de la sécurité » peut améliorer l'approche DevSecOps
Comment GitLab optimise l'approche DevSecOps
Comprendre le paysage du DevSecOps
Lancez-vous dès maintenant
Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.