La sécurité des API dans le cadre du DevSecOps
La sécurité des API est essentielle dans le cadre du DevSecOps
Akamai a acquis Noname Security en juin 2024. Le produit Noname Security s'appelle désormais Akamai API Security, mais cet article de blog archivé, publié à l'origine le 29 septembre 2022, reflète les noms des produits et des fonctionnalités à la date de publication initiale.
L'approche DevSecOps est une variante de l'approche DevOps (développement et opérations) qui ajoute la sécurité au flux de travail du développement logiciel. La sécurité des interfaces de programmation d'applications (API) doit être prise en compte dans DevSecOps.
Cet article de blog aborde le fonctionnement de DevSecOps et le rôle de la sécurité des API dans le renforcement de la sécurité des applications développées dans le cadre des processus DevSecOps.
En quoi consiste l'approche DevSecOps ?
Pour comprendre ce qu'est l'approche DevSecOps, il faut d'abord bien appréhender le DevOps, le paradigme original sur lequel elle s'appuie. DevOps fait référence à la combinaison de deux processus auparavant distincts : le développement de logiciels (dev) et les opérations informatiques (ops). Traditionnellement, les développeurs écrivaient le code et le transmettaient aux opérations informatiques pour le déployer en production. Cela fonctionnait bien à l'époque du développement en cascade, lorsqu'il fallait des mois, voire des années, pour achever la nouvelle version d'une application.
Avec l'avènement des méthodologies de développement agiles et de l'intégration continue/du déploiement continu (CI/CD) du code, l'ancienne séparation entre le développement et l'exploitation n'était plus viable. Le nouveau code était confié aux services des opérations tous les jours, voire toutes les heures, en vue de sa publication.
Le seul moyen de faire avancer les choses sans courir au désastre était d'unifier les flux de travail de développement et d'exploitation. La combinaison des processus nécessitait la mise en place d'une équipe commune.
Dans le nouvel écosystème DevOps, les développeurs et les responsables des opérations collaborent pour mettre rapidement le code en production. Il ne s'agissait pas d'un partenariat naturel ; les relations entre les équipes de développement et d'exploitation avaient plutôt tendance à se tendre, avec une tendance à se « refiler la patate chaude » (et à prêcher pour sa paroisse) qui entravait la productivité. L'approche DevOps a modifié cette dynamique en introduisant un modèle de responsabilité partagée.
Les cybermenaces devenant de plus en plus préoccupantes, il était logique que la sécurité fasse partie du flux de travail DevOps. Le DevOps s'est donc transformé en DevSecOps. Il s'agit là de faciliter une fois de plus des relations parfois tendues, la sécurité étant souvent considérée comme un « agent de circulation » ralentissant le processus de développement. L'approche DevSecOps représente un nouveau mode de collaboration. La sécurité permet désormais d'accélérer les cycles de développement tout en les rendant plus sûrs.
Facteurs clés de succès du DevSecOps
La réussite du DevSecOps ne coule pas de source. Elle implique la chorégraphie de multiples équipes et flux de travail, chacun poursuivant ses propres objectifs. L'orchestration complexe des personnes et des processus dans le DevSecOps nécessite un savant dosage d'outils et de processus. La technologie doit soutenir les deux camps et trouver le juste milieu en faisant des concessions sur le processus. Cela inclut le leadership.
Pour réussir dans le cadre du DevSecOps, l'équipe de sécurité doit ajuster sa façon de tester pour s'adapter au nouvel écosystème CI/CD. De leur côté, les équipes DevOps doivent traiter les problèmes de sécurité avec au moins la même rigueur que les problèmes fonctionnels. En effet, les programmes moins matures présentent des failles de sécurité qui vieillissent et se perdent dans les limbes du développement. La réussite repose également sur une stratégie « shift-left », qui intègre la sécurité le plus tôt possible dans le flux de travail DevOps.
Sécurisation des API dans les flux de travail DevSecOps
La sécurisation des API dans le cadre du DevSecOps nécessite des tests de sécurité au cours du développement et une surveillance des API une fois qu'elles sont en production. Les tests de sécurité des API sont comparables à d'autres formes de tests similaires dans le cadre du DevSecOps, mais avec quelques différences notables. Par exemple, si les tests statiques peuvent être utiles pour découvrir des vulnérabilités dans le code, ils ne permettent pas d'identifier toutes les vulnérabilités des API.
Au lieu de cela, les tests de sécurité des API pour DevSecOps devraient se concentrer sur l'exécution de tests de type boîte noire utilisant la logique métier. Cette approche révèle comment les API fonctionneront réellement lorsque l'application sera déployée.
Les outils de test de sécurité des API tels que Noname Active Testing peuvent exécuter des tests de ce type. Ils peuvent détecter les vulnérabilités mises en avant dans la liste des 10 principaux risques pour la sécurité des API dressée par l'Open Web Application Security Project (OWASP, telles que l'autorisation de niveau d'objet non respectée, la consommation de ressources sans restriction, les mauvaises configurations de sécurité, la gestion incorrecte de l'inventaire, etc. Si ces vulnérabilités sont présentes et ne sont pas atténuées, un acteur malveillant qui attaque l'API peut obtenir un accès non autorisé à des données sensibles.
NoName Active Testing s'intègre dans le pipeline CI/CD grâce aux suites de tests hautement configurables qu'il prend en charge. Il permet également d'adopter un style de test « shift-left » grâce à des intégrations prévues à de nombreux systèmes CI/CD. Grâce à ces deux facteurs, l'outil permet de renforcer l'aspect « Sec » du DevSecOps en matière d'API. L'intégration CI/CD est essentielle, car elle permet d'effectuer des tests de sécurité des API rapides et continus, nécessaires pour assurer la sécurité des applications actuelles.
La sécurité des API dans le cadre du DevSecOps ne s'arrête pas au développement. La meilleure pratique consiste à prolonger le processus de sécurité des API jusqu'à la production. En surveillant les API en production, la fonction « Sec » du DevSecOps permet de détecter les API qui ont basculé dans un état de vulnérabilité, par exemple en étant reconfigurées ou mal configurées par un administrateur en cours de production. Une fois détectée, la vulnérabilité de l'API peut être corrigée dans le cadre du flux de travail DevSecOps.
Conclusion
L'implémentation de DevSecOps peut s'avérer difficile. Il faut aligner un grand nombre de personnes et de processus pour que tout et chacun puisse avancer à un rythme soutenu. La sécurité des API peut compliquer le DevSecOps et en perturber le bon déroulement. Toutefois, les tests de sécurité des API sont essentiels au développement d'applications sécurisées. Pour assurer le bon fonctionnement de la sécurité des API dans le cadre du DevSecOps, il est nécessaire d'utiliser des outils spécialisés de test et de surveillance de la sécurité des API.