L’environnement de l’entreprise et son analyse

1. Introduction
L’environnement de l’entreprise est de plus en plus complexe et la concurrence de plus en plus
forte obligeant les entreprises à innover chaque jour. Les secteurs du numérique sont à la pointe de
cette évolution obligeant les entreprises à revoir leur mode d’organisation pour être plus
compétitives. La gestion de projet prend une place importante afin de trouver la meilleure formule
pour réaliser de manière efficace et efficiente les activités au sein de l’entreprise. C’est ainsi, qu’en
dépit du model traditionnel de gestion, le modèle agile a vu le jour pour prendre en compte les
nouvelles exigences de l’environnement de l’entreprise. Ce modèle permet la simplification des
processus et à créer un environnement de travail beaucoup plus souple pour s’adapter facilement
aux besoins du client. Dans le développement des produits et services informatiques surtout, le
DevSecOps est le processus le mieux élaboré des projets adoptant l’approche agile. C’est ainsi que
le DevOps ou le DevSecOps est devenu un modèle prisé par les entreprises dans le développement
applicatif. En effet, le DevSecOps rapproche les acteurs du TI aux clients de sorte à ce qu’ils
avancent ensemble dans la réalisation du projet. Cependant ce modèle soulève de nouveaux défis
en termes de mode organisationnel, de vélocité dans la livraison des produits de qualité. Comment
des utilisateurs, développeurs et agents de sécurité peuvent-ils travailler ensemble dans une
harmonie parfaite. Une gestion de projet rigoureuse doit répondre à ces nouveaux défis.
L’objet de notre étude est d’analyser les facteurs de succès d’une gestion rigoureuse de projet dans
une approche du DevSecOps. Pour cela, nous allons subdiviser le travail en trois parties
importantes. Dans la première partie, nous allons définir et éclaircir tous les concepts liés à la
gestion de projet. Il sera également question dans cette partie d’analyser les différentes approches
de la gestion de projet et avoir une définition de la notion de gestion rigoureuse de projet. Dans la
deuxième partie, nous analyserons ces nouveaux concepts de DevOps et de DevSecOps. C’est quoi
le DevSecOps, quels sont les objectifs, les principes et les outils de DevSecOps y seront abordés.
Enfin la troisième et dernière partie abordera les facteurs de succès d’une gestion rigoureuse de
projet dans un contexte de DevSecOps.
2 | P a g e
2. Définition de Gestion de projets
La mise en place d’un nouveau produit ou d’un nouveau service par une entreprise peut être liée à
la demande des clients, à l’innovation, à l’opportunité que l’entreprise veut saisir, au problème à
résoudre ou des directives gouvernementales. Cette implémentation nécessite la mise en place d’un
projet. Le succès d’un
projet dépend de nombreux éléments qui doivent conjointement être mis en
place et suivis méthodiquement afin de pouvoir réagir et s’ajuster rapidement au cours de la
réalisation de celui-ci.
Afin d’avoir une meilleure compréhension d’une méthode de gestion de projet rigoureuse, il
s’avère très important d’établir une différence entre la nature des mots. Selon le PMI: « Un projet
est un effort temporaire exercé dans le but de créer un produit, un service ou un résultat unique. La
nature temporaire des projets implique un commencement et une fin déterminée ».
Un projet implique dans l’ensemble la réalisation de quelque chose de nouveau, ou n’ayant pas
encore été fait de la même manière. La durée du projet peut être relativement courte ou longue,
allant de quelques semaines à plusieurs années lorsqu’il s’agit d’un très grand projet (Mégaprojet).
Chaque projet qui doit être fait implique l’existence du client et son objectif pouvant avoir comme
finalité la satisfaction des besoins de ce dernier (Ex. client interne, individu, entreprise,
organisation, gouvernement).
Pour mieux cerner les besoins du client et établir un plan d’actions approprié, celui- ci doit être
impliqué et consulté (C’est la cocréation). La satisfaction du client présume que le projet ait été
réalisé suivant ses exigences. Ces exigences sont formulées selon quatre types de contraintes : les
normes de performance liées au fonctionnement du produit ou du service, les normes de qualité du
produit ou du service, les délais de livraison et les coûts du projet.
Ces dernières exigences constituent des exigences rigoureuses d’un projet et cependant, un projet
géré rigoureusement doit nécessairement prendre en considération la portée, les délais, le coût tout
en gérant les risques liés au projet pour livrer un produit ou service de qualité.
3. Cycle de Vie de la Gestion d’un Projet
Toutes les décisions pouvant être prises le long de l’exécution du projet émanent d’une structure
de gouvernance qui en fournit le cadre servant de guide à celles- là (voir figure 1 en annexe). Cela
3 | P a g e
implique la mise en place d\’un comité de gouvernance représentatif des différents intérêts des
parties prenantes du projet. Ce groupe a comme mission de faire en sorte que le projet se conforme
à la stratégie de l’organisation et respecte la mesure de valeur organisationnelle (MOV) prévue,
comme indiquée dans l’analyse de rentabilité. Ce comité a comme mission également d’établir les
rôles des parties prenantes, faire le suivi des progrès tout en s’assurant que les fonds et les
ressources dont dispose le projet sont adéquats. Il définit aussi l’autorité sur les décisions pouvant
être prises par le chef de projet et celles devant être transférées à un niveau supérieur, tel que le
comité directeur ou le conseil d’administration (Marchewka, 2015).
Les Différentes Étapes de la Gestion de Projet:
Il s\’agit du processus de gestion de projet, qui est constitué de ses différentes étapes partant de
l\’identification des besoins jusqu\’à la clôture du projet (Laurent G, 2019).
Étape de cadrage
Cette première phase d\’étude et d\’analyse se nomme également : initialisation, démarrage ou encore
avant-projet. Elle consiste à définir le projet à venir en rappelant son origine, son utilité et sa finalité
et en répondant aux questions pourquoi et quoi. C’est à partir d’un besoin que le projet est initialisé
(problème à résoudre ou opportunité à saisir), un objectif est défini, une analyse est menée pour
identifier la meilleure façon de travailler sur la réponse à apporter et en identifiant les clients. La
description des travaux se fait sous deux horizons entre autres l’axe temporaire et budgétaire.
C’est une phase capitale et déterminante en sa nature car c’est à ce niveau que se fait la validation
de la décision de lancer le projet ou non ainsi que la définition des principaux livrables.
Étape de conception et de planification
L’équipe de projet définit dans le détail ce qui doit être fait, comment et avec quels moyens. Elle
fait une planification temporaire des étapes et la mobilisation de ressources nécessaire à
l’accomplissement du projet.
Le chef de projet se charge de l’affinage du budget financier tout en faisant l’intégration des
différentes charges telles que les prestations externes, le support interne (lorsque des refacturations
entre services sont appliquées), les moyens matériels et les autres achats.
4 | P a g e
Tous ces éléments sont réunis dans un plan projet composé d’une liste des grandes phases,
d’activités à mener, les dépendances entre les tâches et les différents jalons à travers un diagramme
de Gantt, de livrables, de plan de communication projet, de plan de gestion des risques.
En sus, un plan qualité peut être construit pour maîtriser le processus et ses livrables.
Étape de réalisation du projet
C’est la mise en application concrète des éléments tels que planifiés, où toute l’équipe de projet
oeuvre ensemble, dans la recherche et la mise à disposition de solutions en vue de l’atteinte des
objectifs définis. Il revient au chef de projet de contrôler la progression des activités, le respect du
planning, des dépenses, des résultats en relation avec le plan de projet initial et en faisant des
ajustements le cas échéant. Il prête une attention particulière au tableau de bord agrégeant les
principaux indicateurs clés de performance (Key Performance Indicators) pour éviter des dérapages
dans l\’exécution du projet. Il doit tenir une communication régulière avec les parties prenantes en
les tenants informées de la progression du projet et de toute déviation importante le cas échéant.
Lorsque toutes les opérations sont réalisées et validées, le client interne ou externe prend possession
des livrables : livraison de solution, formation, etc.
Étape de clôture
C\’est le moment dédié à l’évaluation et à l’organisation de la fin des travaux avec l\’objectif de
capitaliser sur l\’expérience récemment acquise (les leçons apprises, les bonnes pratiques pouvant
être appliquées aux futurs projets) et enfin on conclut en organisant une réunion avec les principaux
acteurs impliqués : parties prenantes, équipe projet, utilisateurs clés…
4. Définition d’une Gestion de Projet Rigoureuse
La réussite de la gestion d’un projet nécessite souvent un arrêt prématuré, ainsi nombre d’éléments
doivent en même temps être mise en place et suivis méthodiquement pour réagir et ajuster le plus
rapidement au cours du processus. Une gestion rigoureuse et structurée des risques de projet pour
faire face à un environnement de plus en plus complexe et incertain est requis. Une gestion des
risques rigoureuse et structurée n’est pas un remède miracle, mais elle constitue sans aucun doute
une pratique de gestion incontournable.
5 | P a g e
En fait, il faut plutôt en comprendre que le cadre sélectionné doit être suivi à la lettre, de façon
rigoureuse. Que ce soit une méthode plutôt traditionnelle, où les changements sont autorisés à
travers un processus strict, ou une méthode agile, où au contraire, les changements sont
pratiquement les bienvenus, il faut simplement retenir qu’il y a des lignes à ne pas franchir et il
faut, en tant que chef de projet, les respecter. En fait, même les projets les plus innovants ou les
plus créatifs peuvent être encadrés à l’aide d’une gestion rigoureuse de projet (Gélinas et Therrien,
2008).
Certaines entreprises ou même certaines instances gouvernementales ont mis de l’avant certaines
politiques en lien avec la rigueur en gestion. Le Compendium de pratiques de gestion, offert par
Statistiques Canada (Statistiques Canada, 2016), fait d’ailleurs référence à la rigueur en gestion à
plusieurs reprises :
– Le recours à un cadre de gestion facilite la prise de décisions, la communication et la
coordination à l\’échelle de tous les projets d\’un portefeuille, ce qui contribue à la rigueur de la
gouvernance et de la gestion ;
– La rigueur du cadre s\’appuie sur un suivi des modifications formelles des problèmes et des
risques, ce qui améliore les chances de réussite du projet ;
– Se doter d\’un cadre de gestion des projets contribue à la rigueur de la gouvernance et de la
gestion en facilitant la prise de décisions, la communication et la coordination à l\’échelle de
tous les projets d\’un portefeuille, ce qui permet une utilisation plus efficace des ressources
organisationnelles.
5. Les Différentes Approches de la Gestion de Projet
5.1 Méthode Traditionnelle (en cascade)
Le concept de modèle en cascade, fut défini vers 1970 et selon lui, un projet s’exécute d’âpres
certaines séquences se chevauchant dès sa conception à la clôture, chaque phase étant liée à la
suivante. Tandis que plusieurs versions modifiées existent en ce moment, le modèle de base se
divise en une suite de six étapes — un projet de développement de logiciel pourrait bien expliciter
cela (Praxisframework.org).
6 | P a g e
La gestion de projet en cascade commence avec la phase des exigences ou l’énoncé des fonctions
et qualités visées du système. La création d’architecture logicielle reste une tache des développeurs
durant la phase de conception, il s’ensuit la phase de construction caractérisée par le développement
et l’intégration du logiciel
L’équipe de recherche veille à la correction des imperfections dans le logiciel lors de la phase de
test et de débogage et quand le produit est utilisé, suivra la phase d’installation.
Enfin, la phase de la maintenance consistant à l’assistance aux consommateurs (clients) ainsi que
l’assurance du meilleur fonctionnement du produit.
Le modèle en cascade provient des processus rigoureux qui s’utilisant dans certains secteurs tels
que la construction ou la fabrication. Cette approche est axée sur la création du meilleur produit
final possible avec un minimum de possibilités pour les ajustements ou les actualisations après la
clôture du projet. Bien que la technologie actuelle permette la mise en oeuvre d’une méthodologie
plus flexible, d’autres façons de développer un logiciel et d’autres produits sont devenues
courantes, le modèle en cascade reste influent (Praxisframework.org).
5.2 Méthode agile
La méthode agile est une approche destinée à la gestion des projets de TI et de développement
logiciel, agile souligne quatre valeurs fondamentales visant à optimiser le processus de
développement logiciel : Les individus et leurs interactions plutôt que les processus et les outils,
des logiciels opérationnels plutôt qu’une documentation exhaustive, la collaboration avec les
clients plutôt que la négociation contractuelle, l’adaptation au changement plutôt que le suivi d’un
plan.
Le modèle agile consiste à simplifier le processus de flux de travail et à créer une équipe souple
capable d’adapter aux exigences toujours changeantes. Il met l’accent sur la capacité à s’adapter, à
changer et à croître plutôt que sur les processus rigoureux d’essai, d’approbation et de planification,
lesquels peuvent nuire à l’efficacité du processus.
5.3 Méthode Agile Versus méthode traditionnelle
Le modèle en cascade est un flux de travail plus traditionnel et linéaire. Il met de l’avant un flux
de travail séquentiel pour gérer les tâches. Chaque phase de développement est planifiée au plus
7 | P a g e
haut degré, et la phase en cours doit être terminée avant de passer à la suivante. Par exemple, la
phase de planification des besoins doit être terminée avant de passer à la phase d’implantation,
laquelle doit être terminée avant de passer à la phase d’essais. La méthode en cascade peut être
appropriée pour les projets d’envergure qui doivent être morcelés et ensuite attribués à des équipes
plus petites. Cette méthode peut toutefois s’avérer cahoteuse. Les retards ou les problèmes
survenant dans une phase peuvent se répercuter à travers tout le cycle de vie du projet.
6. Définition de DevSecOps
Le DevSecOps consiste à intégrer des pratiques de sécurité dans le processus de
DevOps. Elle implique la création d’une approche « Security as Code » avec la collaboration
continue et flexible entre les ingénieurs de publication et les équipes de sécurité. Le DevSecOps se
concentre sur la création de nouvelles solutions pour des processus de développement logiciel
complexes dans un cadre agile.
La figure 2 sise en annexe montre l’intégration de la sécurité dans toutes les phases de DevOps
Les équipes de DevOps travaillaient sur l’intégration du développement et la mise en oeuvre de
logiciels afin de faciliter la livraison rapide de nouvelles applications métiers. Par conséquent, ce
processus néglige les tests et les solutions de sécurité, de nombreuses vulnérabilités en matière de
sécurité ne sont pas traitées assez tôt dans le processus de développement. Avec
l’approche DevSecOps, cette omission est résolue en automatisant les tâches liées à la sécurité et
en intégrant des contrôles et des fonctions telles que l\’analyse de la composition et la gestion de la
configuration dans le processus de développement. Alors l\’approche DevSecOps implique de
réfléchir à la sécurité de l\’application et de l\’infrastructure dès le départ. Alors l’objectif est
d\’intégrer la sécurité à toutes les étapes du flux de travail de développement logiciel. Cela est
en contradiction avec les modèles de développement précédents: DevSecOps signifie que vous ne
sauvegardez pas la sécurité pour les étapes finales du ‘‘Software Development Life Cycle’’
(SDLC). DevOps est tourné vers l’avenir car il s’agit d’un déploiement rapide, tandis que la
sécurité du développement cherche en arrière pour analyser et prévoir les problèmes futurs.
8 | P a g e
7. Objectifs de DevSecOps :
Dans DevSecOps, deux objectifs apparemment opposés « rapidité de livraison » et « code sécurisé
» sont fusionnés en un processus simplifié. Conformément aux pratiques allégées en matière
d\’agilité, les tests de sécurité sont effectués en itérations sans ralentir les cycles de livraison. Les
problèmes de sécurité critiques sont traités au fur et à mesure qu\’ils apparaissent, et non après une
menace ou un compromis. L’approche DevSecOps consiste à ajuster les lacunes entre TI et la
sécurité afin d’assurer une livraison rapide et sécurisée. Il faut aussi penser à automatiser certaines
passerelles de sécurité afin d\’éviter tout ralentissement des workflows DevOps.
8. Les Principes de DevSecOps :
L’objectif des meilleures pratiques actuelles de DevSecOps est de mettre en place une transition
vers la détection des menaces en temps réel plutôt que de subir une analyse historique. Cela permet
un développement d’applications plus efficace qui reconnaît et traite les problèmes au fur et à
mesure, au lieu d’attendre qu’un problème survienne. Les facteurs suivants facilitent et constituent
un rôle important dans la mise en oeuvre de DevSecOps:Codage Sécurisé:
Le codage sécurisé consiste à développer des logiciels qui résistent aux vulnérabilités. Des risques
de sécurité peuvent entrainer dans le cas où le codage sécurisé n’est pas pratiqué au niveau du
développement des logiciels, tels qu’une brèche des informations confidentielles de
l’organisation.
8.1Automatisation :
Un des défis de DevOps est de s’assurer que tout le monde progresse vers un même objectif
commun malgré les fonctions propres à chaque département. L’automatisation est requise
pour pouvoir optimiser les processus et accélérer le temps de déploiement en réduisant le nombre
d’éléments à synchroniser, des éléments qui sont en évolution constante. Pour y parvenir, un
ensemble pêle-mêle d’outils n’est pas suffisant. La conception d’un tout intégré est nécessaire pour
implémenter des flux de travail efficaces et robustes de bout en bout.
On parle alors de « toolchain», terme désignant une combinaison d’outils de programmation
coordonnés pour réaliser des tâches complexes aux différentes étapes du cycle DevOps.
9 | P a g e
8.2 Shift Left:
L\’approche de test du « shift left » implique une sécurité maximale dans vos applications dès le
début, au lieu d\’attendre les dernières étapes de la chaîne de livraison. L\’avantage évident de cette
opération est que vous pouvez identifier les vulnérabilités potentielles et travailler à les résoudre
plus rapidement. Et plus tôt vous rencontrerez des bugs, moins il vous coûtera de les réparer. C\’est
donc une excellente pratique, mais elle comporte son lot de complications. Un défi commun est
que le déplacement à gauche peut perturber temporairement votre flux de travail de processus
DevOps existant. Il peut être difficile de surmonter ce problème, mais il est certainement
recommandé de changer de direction à long terme si vous adoptez DevSecOps.
9. Les Outils de DevSecOps
La collaboration de différents départements au sein d’une entreprise nécessite différents outils pour
la mise en place d’un DevSecOps, le système le plus efficace pour créer un environnement de
partage d’information plus sécuritaire. On a identifié les outils suivant les quatre étapes du
développement de DevSecOps : Développement de logiciels, automatisation, surveillance et
intégration de la sécurité.
9.1 Développement de logiciels
Outils de développement de logiciels facilitent la vie professionnelle du concepteur de logiciels,
dans le processus de programmation, de documentation, de test et de correction des bogues dans
les applications et des services. Ces outils n’ont pas de limites, peuvent être variés d’un logiciel à
un autre quelconque. Avec l’outil de développement logiciel, on peut avoir l’environnement de
développement local, contrôle de version, gestion des artefacts (Jennifer Davis, s.d.).
L’environnement de développement local
L’identification d’un bon local partagée pour un groupe de concepteurs de logiciels, dans cette
zone on a l’accès pour la documentation nécessaire pour leurs conceptions et un espace partagé de
stockage dans un référentiel de contrôle de version. La maîtrise des outils évoluera avec le temps
et la pratique. L’objectif n’est donc pas d’avoir une documentation détaillée sur chaque détail, mais
suffisante pour inciter les individus à réussir dans l’environnement.
10 | P a g e
Contrôle de version
Le contrôle de version a une possibilité pour l’engagement, comparaison, fusionnement et
restauration des révisions des objets antérieurs pour faciliter et autoriser une coopération et une
collaboration efficace au sein des équipes et entre celles-ci. Sa réduction des risques est basée sur
l’établissement d’un moyen de récupération de versions précédentes des objets en production.
L’implémentation de contrôle de version ayant des qualités d’ouvrir des dépôts ; contribuer aux
dépôts; organiser des contributions dans les propres dépôts; définir les processus de contribuer et
de partager des droits d\’engagement dans une entreprise peut gérer les conflits provenant du travail
simultané de plusieurs personnes sur le même fichier ou projet, et contrôle de version dispose la
bonne méthode d\’accomplir ces modifications et leur restauration au cas de besoin.
Le système de contrôle de version a de terminologie supplémentaire : « Commit » combinant
l\’ensemble d\’actions comprenant le nombre total de modifications apportées aux fichiers sous
contrôle de version ; un « Conflit » survient lorsque deux modifications sont très semblables et que
le système de contrôle de version ne peut pas déterminer le plus accepté ; « Pull Request » est la
façon qui permet à une personne de signaler qu\’une innervation est prête à être examinée et
fusionnée dans la branche principale ; « Cherry Picking » est un mécanisme de déterminer des
« Commits » spécifiques d’une branche et de les appliquer à une autre.
Gestion des artefacts
Un artefact est le résultat de toute étape du processus de développement logiciel. Un référentiel
d\’artefacts doit être sécurisé, de confiance, stable, accessible, et versionné.
L’artefact consiste à la mise en place de processus de gouvernance qui facilite la collaboration dans
le contexte d’un environnement et des contraintes. On l’utilise pour l’identification-personne
pouvant pousser les artefacts et déterminer comment les artefacts sont vérifiés, concédés sous
licence et sécurisés.
Les terminologies supplémentaires pour la gestion des artefacts sont la gestion de la dépendance,
il est aussi la manière et le degré d\’interdépendance d\’un projet logiciel par rapport à un autre projet
logiciel. L\’épinglage est la méthode de verrouillage d\’une version explicite d\’un artefact pour un
environnement. Dans la gestion des dépendances, il peut être utile de définir la version explicite
d\’un artefact logiciel dépendant qui fonctionne avec votre projet.
11 | P a g e
La promotion est la méthode de sélection d’une version spécifique du logiciel pour la livraison,
généralement liée au succès des tests.
9.2 Automatisation
Les outils d\’automatisation réduisent le travail, l\’énergie ou les matériaux utilisés dans le but
d\’améliorer la qualité, la précision et l\’exactitude des résultats. Les outils d’automatisation
nécessitent : installation du serveur, automatisation d\’infrastructure, mise en service du système,
automatisation des tests et des constructions.
Grâce à cet aspect automatique de DevSecOps, l’entreprise est capable de réduire le temps requis
pour produire les livrables renforçant ainsi la satisfaction du client ainsi que l’apport de la valeur
ajoutée à l’entreprise, car il implique la perte de temps et la minimisation ainsi que l’élimination
d’imperfections (Lean management).
9.3 Surveillance
La surveillance consiste à suivre l\’état actuel de vos systèmes et de votre environnement,
généralement dans le but de vérifier s\’ils remplissent ou non certaines conditions prédéfinies de ce
qui constitue l\’état souhaité. La surveillance, les alertes et les tests sont souvent confondus. Comme
mentionné, la surveillance s\’exécute généralement selon un calendrier prédéfini, tandis que les tests
sont exécutés en réponse à des modifications. Les alertes sont des communications automatisées
envoyées aux humains concernant les résultats d\’un test ou d\’un moniteur. La surveillance
comprend : Métrique, Enregistrement, en alerte, Événements.
9.4 Outils d’intégration de codes
Le succès de DevSecOps est l’intégration de sécurité tout au long du cycle de vie du
développement d’un système, tout au long de ce voyage on a besoin d’outils aidant dans le
processus d’intégration de sécurité d’une façon automatique. Les outils d’intégration de code
prennent le code dans un référentiel partagé, le compilent, le testent et le rapportent sur les résultats.
Cela se fait souvent par un serveur d’intégration continue, comme Jenkins, qui le mettra en liaison
aux outils de compilation automatisés, aux testeurs automatisés, aux rapports automatisés par
courrier électronique et aux logiciels de suivi de problèmes, ainsi qu’aux actions sur le référentiel.
Pour s’assurer que la sécurité a été bien incorporer le test est obligatoire, dans le DevSecOps il y a
12 | P a g e
deux pratiques : le test de sécurité d\’application statique et le test dynamique de sécurité des
applications (Prévert).
10. Implantation et Intégration de DevSecOps dans un projet
La pratique de DevSecOps consiste à introduire la sécurité plus tôt dans le cycle de développement
d’applications, avec la responsabilité collective le déploiement de la sécurité de DevOps là où
chaque personne de l’organisation soit utilisateur ou concepteur de logiciels doit jouer son rôle en
considérant la sécurité comme la première ligne de défense, il ne peut pas être perçu comme le
problème de quelqu\’un d\’autre (SADIO, 2018).
Le succès d’un produit sécurisé provenant de DevSecOps dans une organisation dépendra de la
collaboration et l\’intégration en faveur de la vision globale d’une entreprise pour le cycle de vie des
logiciels, leurs besoins en sécurité amènent des solutions de plate-forme offrant un degré élevé
d\’intégrabilité. Il est essentiel d\’identifier les contrôles applicables, de les traduire en mesures
logicielles appropriées et d\’identifier les points d\’inflexion du cycle de vie du logiciel où ces
contrôles peuvent être automatisés et mesurés pour améliorer la qualité de l\’atténuation des risques
et partant de la conformité. En bref, on doit repenser et idéalement automatiser la conformité
(REYNOLDS, 2019).
L\’automatisation devrait être une préoccupation pour les contrôles manuels de la qualité travail. La
sécurité automatisée apporte une efficacité accrue, des charges de travail réduites et un programme
régulier de contrôles qualité. Pour augmenter le dégrée de réussite dans un environnement
de DevSecOps, on doit surveiller la fréquence de déploiement, le temps de correction des
vulnérabilités, le pourcentage de code testé automatiquement et les tests automatisés par
application. Les résultats pendant le développement logiciel ainsi qu\’après la livraison doivent être
mesurés, surveillés, rapportés et traités par les bonnes personnes au bon moment (SADIO, 2018).
La sécurité doit être intégrée toute au long du projet, c’est dire dès la phase d’analyse des besoins,
on doit analyser la sécurité requise pour notre projet; pour la planification, il faut planifier la
sécurité; dans l’exigence et la conformité il faut tenir compte sur les exigences sécuritaires; dans la
conception, on insiste sur l’architecture de la sécurité; dans la conception la programmation doit
être sécurisée, dans le test il faut faire des tests de sécurité, dans le déploiement on fait le contrôle
13 | P a g e
de sécurité ainsi que la surveillance qui doivent être respectés au cours de l’exécution; les étapes
citées on l’amène pour la réforme d’un système (Sadio, 2018).
DevSecOps a pour but et raison d\’être de penser que \”chacun est responsable de la sécurité\” dans
le but de diffuser en toute sécurité les décisions de sécurité à la vitesse et à l\’échelle des personnes
qui possèdent le plus haut niveau de contexte sans sacrifier la sécurité requise.
L\’intégration de la sécurité dans Devos pour fournir \”DevSecOps\” nécessite de faire évoluer les
mentalités, les processus et les technologies. Les responsables de la sécurité et de la gestion des
risques doivent adhérer à la nature collaborative et agile de DevOps pour assurer une continuité et
une transparence dans le processus de développement (Neil MacDonald, 2017).
11. Les Défis du DevSecOps
La soutenabilité de DevSecOps, en tant que stratégie de déploiement de logiciel pour la mise en
oeuvre de décisions et d’actions de sécurité à la même échelle et à la même vitesse que le
développement d\’une équipe DevOps qui elle-même vise à combler le fossé entre les développeurs
et le personnel des opérations informatiques1, implique l’intérêt de surmonter un ensemble de défis
majeurs. L’un des défis consiste en la capacité de mobiliser des ressources humaines qualifiées
pour réaliser un travail qu’elles n’avaient pas l’habitude de réaliser avant.
Lorsque les spécialistes de la sécurité ont décidé d’intégrer dans leur travail la stratégie DevOps en
vue d’identifier et de résoudre les problèmes de sécurité dès le lancement du produit, cela implique
aussi une responsabilité supplémentaire en qui concerne la charge de travail. Mickey affirme, par
exemple, qu’un programmeur qui décide d’ajouter, à ces responsabilités, des
pratiques DevSecOps doit aussi prévoir une modification dans la gestion de son temps de manière
qu’il se mette disponible 24/24h et 7/7j, pour résoudre les problèmes qui auraient pu incomber à
une équipe de support informatique auparavant. Ce qui n’a pas été toujours le mode de
fonctionnement de ces derniers en dehors de cette nouvelle approche de déploiement promue par
le DevSecOps. Cette situation va faire appel à plus de cadres spécialisés dans la sécurité pour
assurer la montée en charge des équipes de programmation de manière à s\’approprier non
1 Mickey W. Mantlen and Ron Lichty, 2019
14 | P a g e
seulement les performances en production, mais également de la sécurité et de la conformité en
production relate Mickey.
12. Facteurs de succès du DevSecOps
Connu encore sous les appellations « SecDevOps », « DevOpsSec » ou « Rugged DevOps », le
succès de « DevSecOps » réside dans la capacité qu’elle offre à fournir des logiciels sécurisés au
moyen d’une livraison continue2
Dans un contexte où la vitesse de livraison, l’élimination du gaspillage et des retards, l’utilisation
des conteneurs et de l’infonuagique sont au centre du DevOps, la sécurité devient donc un pilier
déterminant pour prendre en compte ces différentes évolutions majeures.
« Les organisations utilisant l’approche DevOps ont carrément dissocié les silos organisationnels
entre ceux qui conçoivent et construisent les systèmes. Ces silos promus par ITIL et COBIT pour
améliorer le contrôle et la stabilité sont devenus un obstacle lorsqu\’il s\’agit de fournir de la valeur
à l\’organisation » avance Jim Bird. Grace aux avantages de l’automatisation via notamment des
outils de gestion programmables et de l’automatisation d’éditions d’applications, DevOps rend
donc plus facile à l’aide de la simplification et de l’adaptation pour faire fonctionner des systèmes
de manière rapide et à moindre coût. Ainsi, à toutes les phases du développement du produit, c’està-
dire de la conception jusqu’aux opérations tout en bénéficiant des apports des services en nuage
et de la virtualisation.
Les succès du DevOps ont été clairement identifiés dans un rapport publié en 2015
par Puppet Labs où ses conclusions relatent ces points ci-après :
• Les entreprises informatiques hautement performantes subissent 60 fois moins de pannes
et récupèrent plus rapidement que 168 fois plus rapidement que leurs homologues moins
performants. Ils déploient également 30X plus fréquemment avec des délais 200X plus courts.
• La gestion allégée et les pratiques de distribution continue créent les conditions pour
générer de la valeur plus rapidement et de manière durable.
2 Jim Bird, DevOpsSec, 2016
https://learning.oreilly.com/library/view/devopssec/9781491971413/ch01.html
15 | P a g e
• Il est possible d’atteindre des performances élevées, que vos applications soient
« greenfield », « brownfield » ou « legacy ».
• Les initiatives DevOps lancées uniquement par des cadres supérieurs ou à la base ont moins
de chances de réussir.
• Les responsables informatiques jouent un rôle essentiel dans la promotion de la diversité et
la limitation de l\’épuisement professionnel.
Quand nous regardons la facilité d’utilisation des applications qui nous sont proposées avec une
gamme importante de fonctionnalité offerte par les fournisseurs des réseaux sociaux comme
Facebook, Twitter ou LinkedIn par exemple, nous devons aussi nous questionner sur la manière
dont cette rapidité a été exécutée pour mettre à notre disposition ces changements qui nous rendent
plutôt heureux dans notre vie quotidienne. Toutes ces avancées rapides permettant à ces
fournisseurs de tenir en haleine ses clients et la quête de nouveaux clients susceptibles de faire
augmenter leur part de marché dans un environnement fortement concurrentiel n’émanent qu’à
partir des outils et des techniques du monde de l’internet exposer par le DevSecOps.
• Ce succès de DevSecOps, provoqué par la très forte demande des utilisateurs finaux, repose
aussi sur l’émergence des solutions cloud qui a modifié drastiquement la façon dont les
entreprises grandes ou petites conçoivent les solutions informatiques et bénéficient de cette
grande tendance technologique. Ainsi, le « cloud offre de nouveaux niveaux d’agilité aux
entreprises en donnant à une petite entreprise de démarrage un accès aux capacités
d’informatique et d’application qui auraient été qualifiées de « supercomputing » il y a
seulement quelques années »3.
12.1 Identification des facteurs de succès par une analyse environnementale du
marché du DevSecOps (volet économie et socio-politique)
Selon l’étude réalisée par la firme MarketsandMarkets (DevSecOps Market by Component
(Solution and Services), Deployment Type (On-premises and Cloud), Organization Size, Vertical
(BFSI, IT and Telecommunications, Manufacturing, and Government and Public Sector), and
3https://learning.oreilly.com/library/view/enterprise-cybersecurityhow/
9781430260837/9781430260820_Ch06.xhtml
16 | P a g e
Region – Global Forecast to 2023. Décembre 2018), le marché de l’industrie des technologies de
l’information utilisant DevSecOps va connaître un taux de croissance annuel estimé à 31,2% pour
la période de prévision comprise entre 2018 et 2023. Ce marché va peser pour une valeur de 5,9
milliards de dollars US en 2023, contre 1,5 milliards de dollars US en 2018. Aussi, cette étude
établit que l’expansion globale des fournisseurs d’outils technologiques DevSecOps, le fait que les
petites et moyennes entreprises (PME) prennent conscience des avantages de DevOps à travers les
solutions infonuagiques mais surtout que les PME s\’aperçoivent de la montée des menaces et
vulnérabilités les amenant à se concentrer davantage sur la sécurité ; devraient être les principaux
facteurs de croissance du marché global du DevSecOps.
Enfin, la firme MarketsandMarkets évalue que la région Asie-Pacifique offrira d’importantes
opportunités de croissance pour ce marché d’ici 2023. Considérant le vaste potentiel de vente de
cette région, les organisations du monde entier voudront s’y démarquer, encourageant ainsi,
l’adoption des solutions et services DevSecOps qui seront par la suite bénéfiques pour les
entreprises.
L’actualité mondiale regorge d’exemples nous permettant de souligner l’importance grandissante
pour les politiques, mais aussi pour les individus et les communautés, de la question de la sécurité
des infrastructures technologiques. Comme l’illustre cet évènement, le 15 juillet 2019, des pirates
informatiques s’introduisent dans les serveurs de l’agence nationale du revenu bulgare et
s’emparent des informations confidentielles de sept millions de contribuables
(Angel Krasimirov, Tsvetelina Tsolova. 2019-07-16. Reuters.com).
Un autre exemple, le 25 Mai 2019, un défaut de conception sur une des applications de productivité
de la First American corporation entraîne le vol de 885 millions de données bancaires de leurs
clients. (Dell Cameron). Dans ce sens, le sondage réalisé par Security.org (Public awareness of
major data breaches. 14-11-2019) auprès de 1000 personnes dont 300 ayant déjà été victimes d’une
fuite de données, révèle que 67,3% des répondants feront moins confiance à une compagnie qui a
déjà connu une fuite de donnée. Aussi, 92% des répondants sont d’avis qu’une entreprise devrait
être tenue légalement responsable des pertes financières qu’ils auront subies après une brèche de
sécurité.
17 | P a g e
Au niveau des gouvernements publiques, l’enjeux de sécurité des systèmes d’information est pris
au sérieux comme le démontre aux États-Unis, la loi Gramm-Leach Bliley Act de 1999 qui a établi
des normes de sécurité pour les banques et les caisses populaires afin de protéger les données des
consommateurs ainsi que les règlements exécutoires de la Fédéral Trade Commission auxquels
pourraient faire face les commerçants qui négligent la protection des informations personnelles de
leurs clients (Danielle Douglas. 24-02-2014. The Washington Post) .
En somme, notre regard sur l’environnement économique et sociopolitique fait ressortir des
facteurs qui poussent ou qui vont amener davantage de PME à adopter les principes
de DevSecOps pour développer des solutions technologiques sécuritaires.
12.2 Identification des facteurs de succès par une analyse de l’industrie du
DevSecOps
La firme MarketsandMarkets dans son étude de marché a identifié la société IBM (États-Unis)
comme la cheffe de file des leaders du marché des solutions technologiques de développement
en DevSecOps que sont: CA Technologies (États-Unis), Google (États-Unis), Aqua Security
(Israël) et d’autres. La stratégie de marché d’IBM est en elle-même un facteur qui va favoriser
l’adoption des technologies de DevSecOps, car elle se concentre sur la création de partenariats avec
les potentiels joueurs dans l’industrie du DevSecOps.
D’autre part, de l’avis des experts, pour Wes Hummel, vice-président de l’ingénierie de la fiabilité
des sites chez Paypal, DevSecOps veut dire créer une culture qui favorise la création de produits
sécurisés par défaut. Il dit constater également dans le domaine des vulnérabilités, des
améliorations des normes de sécurité des produits, résultant de la réflexion et des processus fondés
sur le risque dans le flux DevOps (Deloitte. 2019.
DevSecOps and the cyber imperative, p.113). Adam Banks directeur général de la technologie et
de l’information et directeur général du numérique chez MAERSK, explique que du fait des
changements rapides qui surviennent dans l’industrie technologique, MAERSK explore les
concepts qui décrivent quand faut-il déclarer un produit comme étant d’une version nouvelle d’où
leur intérêt principal pour DevSecOps. Le facteur de succès chez MAERSK est d’avoir changé la
gouvernance du risque d’une fonction centrale organisationnelle, vers une prise en charge par un
18 | P a g e
directeur général de la sécurité informatique (Deloitte. 2019. DevSecOps and the cyber imperative,
p.111).
12.3 Identification des facteurs de succès par l’analyse d’une organisation en
implémentation DevSecOps
L’identification des facteurs de succès de la méthodologie DevSecOps, vient de l’analyse de
l’environnement économique, socio-politique ainsi que de l’analyse de l’industrie mais également
de l\’analyse interne de l’organisation. Nous soulignons dès lors les facteurs de succès de
DevSecOps chez la compagnie Etsy:
La firme Etsy, un marché d\’artisanat en ligne performant, est connu comme une référence pour
avoir intégré parfaitement la sécurité et la conformité dans l’approche DevOps. La culture
d’ingénierie est la source de la culture de sécurité propulsée par l’entreprise ainsi que son
intégration à la vision plus globale développée par Etsy.
Parmi ses principes de conduite, on compte4 :
• Faites confiance aux gens pour faire ce qui est juste, mais vérifiez quand même. Faites
confiance à la révision et au test du code, sécurisez les défauts et la formation afin de
prévenir ou de détecter les erreurs. Et si des erreurs surviennent en production, lancez posttests
pour examiner et comprendre ce qui s\’est passé et comment réparer les choses à la
source.
• « Si ça bouge, tracez le graphique ». Rendez les données visibles pour que tout le monde
puisse les comprendre et y donner suite, y compris des informations sur les risques de
sécurité, les menaces et les attaques.
• “Just Ship It.” Chaque ingénieur peut passer à la production à tout moment. Cela inclut les
ingénieurs de sécurité. Si quelque chose est cassé et que vous pouvez le réparer, réparez-le
et envoyez-le immédiatement. Les ingénieurs en sécurité ne jettent pas de problèmes pardessus
le mur pour les développeurs ou les opérateurs s’ils n’y sont pas obligés. Ils
travaillent avec d\’autres équipes pour comprendre les problèmes et les résoudre, ou les
résoudre eux-mêmes s\’ils le peuvent. Tout le monde utilise les pipelines de déploiement
4 Jim, DevOpsSec, 2016.
19 | P a g e
continu et les mêmes outils pour amener les modifications en production, y compris l\’équipe
de sécurité.
• La sécurité ne peut être un bloqueur. Le mot « Non » est une ressource finie. Utilisez-le
uniquement lorsque vous en avez le devoir. Le travail de sécurité consiste à travailler avec
le développement et les opérations pour les aider à livrer, mais en toute sécurité. Pour cela,
la sécurité doit être pratique et faire des compromis réalistes en matière de sécurité. Ce
problème est-il suffisamment grave pour empêcher le code d’expédier maintenant? Peut-il
être corrigé plus tard? Ou faut-il vraiment le réparer? Comprendre les risques réels pour le
système et pour l\’organisation et résoudre les problèmes de manière appropriée. En ne criant
pas au loup, l’équipe de sécurité sait que lorsque de graves problèmes se posent, ils seront
pris au sérieux par tous.
L’équipe de sécurité d’Etsy prend plusieurs mesures pour établir des relations entre l’équipe de
sécurité et l’ingénierie.
Par ailleurs, nous regardons pour trois compagnies complètement différentes, de ce que
Dan Swinhoe et Michael Nadeau ont identifié comme facteurs de succès interne de l’implantation
de DevSecOps (DevSecOps success stories.csoonline.com). Ces entreprises sont:
L’entreprise VERIZON
Facteur de l’enrichissement personnel des ressources humaines: Verizon a développé et implanté
un tableau de bord des développeurs qui est un enregistrement centralisé et en temps réel de la
manière dont les vulnérabilités sont introduites dans les applications au sein des activités de
Verizon. Le tableau de bord des développeurs fournit une vue centralisée du risque de vulnérabilité
de Verizon et fournit aux développeurs un retour d\’information en temps quasi réel sur les risques
qu\’ils peuvent présenter pour l\’entreprise. Le facteur critique de succès est que ce tableau de bord
est également conçu pour aider à créer des changements plus à long terme pour l\’individu et
l\’organisation puis à le quantifier.
L’entreprise The Pokemon Company
Chez Niantic Labs, les développeurs doivent considérer la sécurité comme un catalyseur et
20 | P a g e
un partenaire. Le facteur de succès ici est que les équipes de sécurité et de développement ont toutes
les deux le même état d’esprit de ce qu’il y a de mieux pour l’entreprise permettant à ces deux
équipes d\’être synchronisées lors des processus de développement et de test de vulnérabilité.
Microsoft
Chez Microsoft le facteur de succès de DevSecOps est que le partage d’informations et les
meilleures pratiques associe développement et sécurité. Plus la sécurité et le développement
comprennent ce que fait l\’autre groupe, plus ils seront empathiques et collaboratifs au cours du
processus de développement. Cela entraînera moins de vulnérabilités dans le produit final et des
corrections plus rapides.
Conclusion
La gestion de projet est un ensemble de processus consistant à organiser et à structurer une équipe
et des activités pour l’atteinte d’un objectif fixé par l’entreprise. Une gestion rigoureuse de projet
fait référence à la mise en place d’un cadre formel de gestion de projet avec une bonne gouvernance
et un cadre organisé de la gestion des risques. Les nouvelles approches de la gestion de projet
comme l’agilité ont donné naissance à de nouveaux modèles de processus de réalisation de projet
dans le domaine des projets informatiques : le DevSecOps. Dans ce modèle de plus en plus utilisé
dans l’ingénierie des logiciels, deux objectifs apparemment opposés « rapidité de livraison » et «
code sécurisé » sont fusionnés en un processus simplifié. Par conséquent, de nouveaux défis sont
soulevés comme la mobilisation des ressources humaines qualifiées pour réaliser un travail.
Pour réussir l’implémentation de ce système, les développeurs doivent considérer la sécurité
comme un catalyseur et un partenaire. Aussi, la mise en place d’un tableau de bord des
développeurs serait un bon outil pour aider l’équipe dans les bonnes pratiques. Par ailleurs, le
partage d’informations et les meilleures pratiques associe développement et sécurité. Une meilleure
collaboration, une bonne communication entre les parties prenantes clés sont des atouts pour créer
un environnement de travail efficace. Des exemples venus des entreprises comme Verizon ou
Microsoft ont révélé ces pratiques comme des facteurs de succès dans la mise en oeuvre du
DevSecOps.