Comment allier rapidité et sécurité dans la création et le déploiement des logiciels d’entreprise ? Bien que ces objectifs puissent sembler contradictoires, l’approche DevSecOps vous permet de les atteindre en même temps...
En intégrant la sécurité efficacement à DevOps pour en faire DevSecOps, votre production d’applications peut gagner encore en stabilité qualité et sécurité.
Des
ingénieur(e)s DevSecOps compétent(e)s sont la solution pour réussir ce défi. Ce
sont des ingénieurs qui comprennent les principes de DevOps et DevSecOps. Ils
(elles) sont capables de les communiquer aux intéressés, et savent les
appliquer dans leurs organisations. Une formation adaptée avec un
accompagnement par des coachs experts peut être un excellent tremplin pour la
compréhension et la mise en œuvre de ces capacités.
DevSecOps est la combinaison équilibrée et efficace de trois éléments dans la production de logiciels : le développement, la sécurité, et les opérations. Bâti sur DevOps, il diffère sensiblement des approches du passé pour la partie sécurité. Traditionnellement, on attendait la fin des activités de développement pour tenter de sécuriser un logiciel déjà fini. Avec DevSecOps, on instaure une automatisation des actions de sécurité dès le début.
Comme la qualité, la sécurité est d'autant plus grande, lorsqu' elle fait partie du logiciel dès sa conception, est maintenue tout le long de sa construction, et entretenue sur la durée de son utilisation. Les problèmes de sécurité révélés par des tests effectués en amont et en continu se corrigent plus facilement et plus efficacement. Avec DevSecOps, vous pouvez faire « des logiciels plus sûrs, plus rapidement ».
Les entreprises ont besoin non seulement de vélocité dans leurs développements, mais aussi de logiciels qui résistent aux Cyberattaques. Les logiciels plus sécurisés protègent l’organisation en augmentant la confiance et la productivité des utilisateurs.
En revanche, plus longtemps on attend pour corriger un problème de sécurité, plus coûteuse est sa réparation. Plus nombreuses sont les failles de sécurité dans une application, plus grand est le risque pour l’entreprise d'être victime d'une cyberattaque, et donc de subir des dégâts financiers ou un préjudice sur sa réputation. Dans certains cas, les problèmes de sécurité peuvent même provoquer la faillite de l’entreprise (80% des petites et moyennes entreprises ayant perdu des données informatiques à la suite d'une cyberattaque font faillite dans les 12 mois, d'après une étude Hiscox menée en 2019).
Mais avec DevSecOps :
La multiplication des équipes de projets agile dans l'entreprise rend inefficace les anciennes stratégies de contrôle centralisé de la sécurité par la seule fonction du CISO ou RSSI. L'utilisation massive du Cloud ainsi que des technologies de conteneurisation comme docker ou kubernetes, introduisent de nouvelles frontières qui échappent tout aussi à la visibilité du CISO. Enfin, la sécurité du code source devient un axe d'importance majeur, car on estime que plus de 90% du code source des applications développées, provient de sources externes à l'organisation (Rapport Sonatype 2020)
Dans ce contexte, la sécurité des applications doit couvrir des dizaines voire des centaines d'applications, toutes génératrices de code impactant potentiellement toute l'organisation. Ce passage à l'échelle repousse les frontières au-delà du champ de visibilité traditionnel du CISO, qui doit néanmoins y faire face avec les méthodes adaptées.
DevSecOps apporte une réponse à ce besoin de sécurité à l'échelle, en créant un nouveau rôle, le "security champion" dont la mission est d'apporter la sécurité au plus près des équipes devops ou agiles. D'autre part, DevSecOps introduit de nouveaux outils de tests continu de la sécurité, pour faire face à la fréquence des mises à jour de codes produits par l'automatisation massive des pipelines DevOps. Ce sont ces nouveaux outils qui fournissent aux organisations, les indicateurs pertinents sur les failles de sécurité potentielles présentes dans chaque livraison logicielle. En d'autres termes, le modèle de pilotage de la sécurité dans les équipes de développeurs évolue dans le cadre de DevSecOps en s'appuyant sur de nouveaux outils mieux alignés avec les sprints agiles et les pipelines DevOps.
Les exemples suivants montrent comment DevSecOps auraient pu empêcher ou atténuer la propagation de graves failles de sécurité :
Selon un rapport récent d'IBM et du Ponemon Institute, le coût moyen d'une violation de données en 2021 était de 4,24 millions de dollars US. Mais selon une communication des résultats de la société Equifax dernièrement, le coût dans son cas était déjà monté à 1,5 milliard de dollars plus les frais juridiques.
Pour apporter une vraie valeur tout en gardant l’élan déjà créé par DevOps, voici les caractéristiques clés de DevSecOps :
Si vous souhaitez devenir ingénieur DevSecOps, il vous faudra des compétences préalables en sécurité informatique, en particulier dans la sécurité des applications. Vous devez également acquérir des compétences de base en développement informatique sur quelques langages, ainsi que sur des outils DevSecOps de manière à pouvoir remplir convenablement les exigences de la fonction.
Sur le plan technique, vous devez :
Sur le plan de la gouvernance sécurité, vous devez :
De manière plus générale, vous devez vous former pour acquérir les compétences requises par la fonction.
Selon certaines statistiques, pour 200 développeurs, il n’y a que 5 ingénieurs des opérations et 1 seul(e) ingénieur(e) de sécurité. Votre influence en tant qu’ingénieur DevSecOps doit être d’autant plus grande que positive sur toute l'organisation de développement des produits logiciel.
Un(e) bon(ne) ingénieur(e) DevSecOps est donc capable de faire adhérer l'ensemble de son organisation à la sécurité. Il ou elle instaure une prise de conscience collective de l'intérêt la sécurité, et crée une forte adhésion autour des avantages à l'adopter. Il ou elle bâtit une culture de sécurité faisant de la recherche et de la correction des vulnérabilités une priorité incontournable dans les équipes projet.
Vous tisserez donc des relations constructives avec les autres ingénieurs de sécurité, les ingénieurs de développement, et les ingénieurs des opérations. Chaque acteur prendra la responsabilité partagée d’une sécurité robuste, quitte à être incité lorsque les applications correctement sécurisées sont déployées.
Être un(e) bon(ne) ingénieur(e) DevSecOps requiert donc, de développer d'excellentes capacités de communication et de leadership. Il requiert aussi bien des qualités pédagogiques particulières pour porter la voix de la sécurité informatique au plus près des équipes de développement.
La cybersécurité est un domaine technique et complexe, en particulier DevSecOps. Les compétences s’acquèrent par la formation initiale, l’expérience dans les entreprises, les stages, ou des parcours certifiants.
Dans tous les cas une formation initiale d'ingénieur dans l'IT, doublée d'une solide expérience en DevOps est pré-requise pour disposer des connaissances de base à l'exercice du métier. Alternativement à l'expérience en DevOps, une formation certifiante spécifique est tout aussi acceptable. La composante DevSecOps sera apportée par des formations certifiantes comme la DevSecOps Foundation, garantie par la DevOps Institute, ainsi que des formations spécifiques sur des outils d'éditeurs implémentant les différents contrôles de sécurité déjà cités dans l'article.
Une excellente source d'identification de ces outils d'éditeur, peut être consultée dans "Tableau périodique du DevOps" mis en place par l'entreprise Digital ai, initialement XebiaLabs.