DevSecOps : pourquoi est-ce important ?

Brouillon

À venir

0 commentaire

image

De la même manière que le test est devenu incontournable dans le développement logiciel – il parait impensable aujourd’hui de mettre un logiciel sur le marché sans qu’il ait été testé au préalable – on parle de sécurité désormais, et ce, d’autant plus depuis l’avènement du Cloud, des démarches comme le DevOps, et du respect nécessaire des règles RGDP en Europe. Dans ce contexte, la volonté d’intégrer aux équipes DevOps, les équipes en charge de la sécurité se fait de plus en plus présente avec comme objectif d’initier une démarche plus globale ‘DevSecOps’.

Qu’est-ce que le DevSecOps ?

Le DevSecOps consiste à intégrer la sécurité dans la démarche DevOps. Il s’agit non seulement de la mise en place d’environnements de tests et gestion de tests en continu (que ce soit les tests unitaires menés par le développeur, les tests d’intégration menés par un testeur dédié, les tests du système complet ou encore les tests d’acceptation, menés avec des utilisateurs pilotes) mais aussi et surtout d’intégrer la sécurité en amont.

L'équipe de sécurité (qui peut être un architecte ou un développeur senior spécialisé dans la sécurité) définit d'emblée les règles nécessaires pour l'équipe à savoir

  • Normes de codage sécurisé,
  • Normes ou spécifications liées au règlement RGDP
  • Règles permettant d’éviter les API non sécurisées et un chiffrement faible,
  • Instructions pour l’utilisation des analyses statiques et dynamiques et des instructions de test…

En intégrant dès le début dans le pipeline, les contrôles, les directives et les normes de codage… la sécurité fait partie intégrante du processus de développement logiciel.

L’objectif est de faire évoluer les développeurs vers des logiciels plus sécurisés dans le cadre de leur routine quotidienne et l’automatisation contribue à en faire une réalité.

Une évolution logique du DevOps

Dans la mesure où il n’est pas forcément aisé d’introduire des correctifs de sécurité ou des normes de codage dans un projet considéré comme ‘terminé’, c’est juste du bon sens de prévoir ces paramètres en amont. Si l’on s’aperçoit des failles de sécurité lorsque le produit est sorti, dans le meilleur des cas, il faudra attendre une nouvelle version du produit pour les corriger.

Certaines équipes convaincues par le bien-fondé d’une démarche DevOps ont assez naturellement intégré la sécurité dans leur processus et impliquent très tôt les équipes de sécurité dans le cycle de développement y compris dans les phases amont de planification et de conception mais cela reste encore très rare.

Les organisations qui ont compris que la sécurité pouvait contribuer de manière non négligeable à l’atteinte d’objectifs communs ont potentiellement une longueur d’avance dans la mise en place des pratiques DevOps.

En fait, plus la culture de l’entreprise est ouverte, plus l’entreprise est à même de fournir des innovations au rythme de plus en plus rapide des exigences client.

Comment intégrer la sécurité au DevOps ?

Pour réussir l’intégration de DevOps de manière sécurisée dans son entreprise, il faut déjà de base respecter les principes DevOps à savoir : rapprocher les équipes, aligner les outils et les processus pour mieux répondre aux besoins métiers.

Les principaux points clés pour une mise en œuvre réussie de la sécurité dans une démarche DevOps sont les suivants :

  • Intégrer dès le départ les acteurs de la sécurité dans le projet et configurer les exigences de sécurité.
  • Instaurer un climat de confiance mutuelle avec une communication transparente : mise en place de tableaux de bords, rapports de sécurité, visibles par toutes les parties prenantes
  • Automatisez les garde-fous permettant de bloquer la génération d’exécutables en cas de risque important.
  • Standardiser la chaîne de production du logiciel et éviter les customisations non standards et privilégier l’utilisation d’environnements identiques pour les tests et la production
  • Validez en permanence avec une surveillance en temps réel des journaux de sécurité

image

Micaël, notre expert DevOps, s’exprime sur le sujet :

L’intégration de la sécurité, qui devrait être une évidence, ne l’est malheureusement pas toujours, d’où ce terme « DevSecOps », extension du DevOps, comme pour insister davantage sur l’importance de sa mise en œuvre. Un des principes du DevOps est celui du « Shift Left ». Ce principe consiste à réaliser le plus tôt possible tout ce qui peut l’être dans le cadre du cycle de vie d’un logiciel, d’une application ou d’un service.

Tout comme le développeur est invité à s’assurer que son code compile et que les tests unitaires s’exécutent sans erreur sur son poste de développement avant de le pousser vers le contrôle de source, ce principe doit aussi s’appliquer à la sécurité, dès la conception. Ainsi, une réflexion générale doit être menée sur le stockage et le chiffrement des données sensibles, sur la qualité d’écriture du code, sur la mise en place et l’exécution de multiples tests et d’outils capables d’analyser le code et de ses dépendances et de suggérer des corrections et améliorations.

Si votre application est destinée à être hébergée sur le Cloud, il peut être intéressant de regarder les solutions proposées vous permettant de sécuriser le stockage de vos identifiants, mots de passe, tokens et autres secrets. Sur Azure, on peut par exemple s’appuyer sur Azure Key Vault. Afin d’éviter de stocker les clés d’accès à Azure Key Vault ou à d’autres ressources faisant partie de votre infrastructure dans le code, Azure propose également Managed Service Identities qui s’appuie sur Azure Active Directory.

La prise en compte de la sécurité ne doit pas se faire qu’au niveau du code. Elle doit aussi s’appliquer à l’ensemble de la chaîne d’outils exploités par le DevOps. Il faut donc également aborder la question de l’autorisation d’accès à ces outils. En effet, la majorité de ces outils peut interagir avec le code, à commencer par l’outil de contrôle de source. Si son accès n’est pas suffisamment contrôlé et sa configuration mal construite, il est probable que du code non validé soit poussé sur la branche principale. De même, il ne faut pas se contenter des configurations par défaut des outils. Il est nécessaire d’interroger les experts de la sécurité de l’entreprise pour qu’elles deviennent conformes aux règles définies par la gouvernance.

En tant qu’expert en développement informatique et Partenaire Microsoft Gold DevOps, SoftFluent peut vous accompagner de manière proactive et pragmatique dans la mise en place d’une démarche DevOps.

Nous disposons de connaissances sur de nombreux outils du marché, incluant par exemple Team Foundation Server et sa version cloud Azure DevOps Services.

Pour en savoir plus, contactez-nous.

Christine Moronval

Responsable Communication chez Volkswagen puis Directrice de Clientèle dans le groupe DDB, elle rejoint SoftFluent avec plus de 20 ans d'expérience en Marketing/Communication.

Profil de l'auteur