\nPour faire simple, le DevOps a pour but de rapprocher les développeurs de l'opérationnel. L'objectif principal du DevOps est de permettre un cycle de développement logiciel plus rapide, plus fiable et plus efficace. On parle donc, entre autres, de compilation de code, de tests unitaires, et de déploiement automatisé.\nLe DevSecOps quant à lui, en plus de faire du DevOpsEnsemble de techniques permettant l'intégration, les tests et le déploiement d'une application., a pour but d'intégrer la sécurité au sein du cycle de vie de l'application. On rajoute donc des problématiques de vérifications de vulnérabilité (que ce soit dans le code, l'infrastructure ou les dépendances du projet).
De nos jours, la sécurité devient un sujet de plus en plus important : les attaques sont toujours plus fréquentes, diverses et perfectionnées. Plus que jamais, la sécurité est un sujet primordial dans les projets informatiques et de développement web !
Le fait d'inclure la sécurité tout au long de son projet a plusieurs intérêts :
La première chose à faire est de former les équipes qui vont travailler sur les projets informatiques pour qu'elles comprennent la criticité de la sécurité informatique. C'est également l'occasion de leur donner les clés pour qu'elles aient en mains des solutions et/ou des méthodes de réflexion et que la sécurité soit un sujet de premier plan.\nParmi les questions que l'on peut se poser, on retrouve :
De nos jours, les possibilités d'attaques sont très variées. Cela peut aller d'une dépendance du projet possédant une faille, à un mot de passe exposé dans le code source du projet, en passant par un serveur mal protégé. Et malheureusement, il en existe encore des centaines d'autres !\nIl n'est donc pas aisé de toutes les connaître et encore moins de les faire connaître par l'ensemble des équipes de développement.
C'est pourquoi, comme le DevOps, le DevSecOps implique de mettre en place de nouvelles étapes dans l'intégration continue du projet :
Surveillance des vulnérabilités via des vérifications journalières des failles découvertes.
Souvent, cela revient à vérifier les vulnérabilités des dépendances du projet. Les outils fournissent souvent les versions minimales de ces dépendances où la faille est corrigée, il ne reste donc plus qu'à faire la mise à jour.
Scan de vulnérabilité. Il est possible de le faire de deux façons différentes :
Comme pour tout bon sujet qui tourne autour du DevOps, il existe une multitude d'outils pour répondre aux différents besoins et automatiser les analyses.
Pour les analyses statiques, le plus connu est SonarQube. Il est majoritairement utilisé pour l'analyse de code source. Sonar prend en charge de nombreux langages de programmation, et possède une grande communauté.
Les analyses dynamiques sont souvent les moins faciles à analyser car elles nécessitent de pouvoir lancer l'application en conditions réelles. Pour ces dernières, l'outil le plus utilisé est ZAP (Zed Attack Proxy) d'OWASP qui peut trouver les failles les plus connues en lien avec des injections, les failles XSS ainsi que des problèmes de configuration de sécurité.
Pour la surveillance des nouvelles failles de sécurité, il existe des bases de données régulièrement mises à jour et qui listent les nouvelles failles de sécurité de différentes technologies, de bibliothèques mais aussi de systèmes d'exploitation. Parmi ces sites, on retrouve CVE (Common Vulnerabilities and Exposures) et NVD (National Vulnerability Database) qui sont les plus connus.
\nIl existe aussi des outils qui vont faire correspondre les vulnérabilités de ces données avec les différentes technologies utilisées dans vos projets. Parmi ceux qui existent, on retrouve l'outil Dependency-Track maintenu par OWASP.
Chez AXOPEN, la question de la sécurité applicative est primordiale. Depuis notre création en 2007, nous nous attelons à former l'ensemble de nos équipes (développeurs, chefs de projet, etc.) à la problématique de la sécurité.
Et depuis quelques années, nous avons rajouté certains outils au cycle de vie de nos projets. Nous avons par exemple mis en place des analyses statiques automatisées via SonarQube empêchant toute validation (et donc livraison) de code ne respectant pas la sécurité (et aussi la qualité de code) que nous souhaitons. Nous avons également mis en place des remontées d'informations concernant les nouvelles failles de sécurité et les projets impactés.
Pour terminer, si on avait un conseil à vous donner, ce serait de choisir des outils reconnus et maintenus ! Car dans un secteur où les choses changent très vite, il est primordial que l'outil soit au fait des nouvelles technologies, mais surtout qu'il connaisse le plus tôt possible les dernières failles de sécurité. Si vous avez besoin d'aide ou d'un conseil plus précis sur votre contexte, n'hésitez pas à nous contacter directement !
Le DevOps, c’est quoi et comment se lancer ? On vous donne notre définition du DevOps, nos outils préférés et nos conseils pour réussir un projet en DevOps
Le DevOps n’est pas un outil mais des références et plateformes intègrent des fonctionnalités qui vont aider à faire vivre cette philosophie qui reste très ouverte. Dans cet article, on compare Azure DevOps, GitLab, Jenkins, GitHub !
Découvrez la planche #40 !