of 28 /28
SDLC dans le contexte Agile et DEVOPS --> Objectif: DEVSECOPS Par: Etienne T. Sadio ISACA Québec – Conférences Sécurité des systèmes d'information dès leur conception 05 décembre 2018

SDLC dans le contexte Agile et DEVOPS --> Objectif: DEVSECOPS · SDLC dans le contexte Agile et DEVOPS --> Objectif: DEVSECOPS Par: Etienne T. Sadio ISACA Québec –Conférences

  • Author
    others

  • View
    9

  • Download
    1

Embed Size (px)

Text of SDLC dans le contexte Agile et DEVOPS --> Objectif: DEVSECOPS · SDLC dans le contexte Agile et...

  • SDLC dans le contexte Agile et DEVOPS --> Objectif:

    DEVSECOPS

    Par:

    Etienne T. Sadio

    ISACA Québec – Conférences Sécurité des systèmes d'information dès leur conception05 décembre 2018

  • @Me

    Etienne SadioConseiller principal en sécurité de information – In Fidem

    Enseignant au département informatique – Ulaval

    Chercheur au Laboratoire de sécurité informatique (LSI) - Ulaval

    - 2 -

    @moi8407e[email protected]@ift.ulaval.ca

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

    mailto:[email protected]:[email protected]

  • Agenda

    • SDLC (Systems development life cycle) et sécurité• SDLC dans un contexte Agile• SDLC + Agile => DevOps• DEVSECOPS: Culture• DEVSECOPS: Comment?

    • Conteneurisation• Transformation de l'espace de développement• Déploiement continu

    • Infrastructure as Code

    • Continuous configuration automation (CCA)

    • Automatisation des tests de sécurité• Mise en place de tests de sécurité en contexte d'intégration continu• Intégration des tests de sécurité au pipeline de livraison

    - 3 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Cycle de vie des applications

    Proposition Planification Exigences Conception Développement Tests Déploiement Exécution Réformer

    • Quel est notre objectif?

    • À quel moment faut-il intégrer la sécurité?

    Maintenir/Améliorer

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

    4

  • Améliorer la sécurité tout au long du cycle de vie

    Proposition

    Proposition de sécurité

    Planification

    Planification de sécurité

    Exigences

    Exigences de sécurité

    Conception

    Architecture de sécurité

    Développement

    Programmation.sécurisée

    Tests

    Tests de la sécurité

    Déploiement

    CM de la sécurité

    Exécution

    Surveillance

    Réformer

    Maintenir/Améliorer

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

    5

  • Agenda

    • SDLC (Systems development life cycle) et sécurité• SDLC dans un contexte Agile• SDLC + Agile => DevOps• DEVSECOPS: Culture• DEVSECOPS: Comment?

    • Conteneurisation• Transformation de l'espace de développement• Déploiement continu

    • Infrastructure as Code

    • Continuous configuration automation (CCA)

    • Automatisation des tests de sécurité• Mise en place de tests de sécurité en contexte d'intégration continu• Intégration des tests de sécurité au pipeline de livraison

    - 6 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • SDLC dans un contexte Agile

    • L’industrie du logiciel a adopté massivement les méthodes Agile,

    • L’agilité a des impactes sur les pratiques de production des applications

    • L’agilité entraine une évolution:• du cycle du développement;

    • des tests;

    • des méthodes de livraison applicative.

    • …

    - 7 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • SDLC dans un contexte Agile

    Product Backlog Sprint planngmeeting

    Sprint Backlog

    Product owner Team

    Scrum master réunion quotidienne

    stand-up

    Sprint review

    Sprint rétrospective

    Répartition des tâches

    L’équipe s’engage à traiter autant de

    fonctionnalités de priorité élevée qu’il

    peut être complété à la fin du sprint

    Inputs from:• Les clients,• Équipe,• Manageur,• …

    1-3 weekSprint

    «

    « «Liste priorisée des fonctionnalités requises et des bugs à corriger

    Livraison des fonctionnalités etMAJ de la version

    du produit

    - 8 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Agenda

    • SDLC (Systems development life cycle) et sécurité• SDLC dans un contexte Agile• SDLC + Agile => DevOps• DEVSECOPS: Culture• DEVSECOPS: Comment?

    • Conteneurisation• Transformation de l'espace de développement• Déploiement continu

    • Infrastructure as Code

    • Continuous configuration automation (CCA)

    • Automatisation des tests de sécurité• Mise en place de tests de sécurité en contexte d'intégration continu• Intégration des tests de sécurité au pipeline de livraison

    - 9 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • SDLC + Agile => DevOps

    Dev Team Ops Team

    DevOps

    Organisation classique

    Dev Team Ops Team

    DevOps Team

    Transformation ou Fusion

    • Transformer l'équipe Dev en une équipe de DevOps• Formation• Responsabilité• Confiance

    • Fusion l'équipe Dev et l'équipe Ops Team pour créer une nouvelle équipe DevOps• Transfert de connaissances interne et progressif• Apprendre les uns des autres• Formation

    - 10 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • SDLC + Agile => DevOps

    - 11 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Agenda

    • SDLC (Systems development life cycle) et sécurité• SDLC dans un contexte Agile• SDLC + Agile => DevOps• DEVSECOPS: Culture• DEVSECOPS: Comment?

    • Conteneurisation• Transformation de l'espace de développement• Déploiement continu

    • Infrastructure as Code

    • Continuous configuration automation (CCA)

    • Automatisation des tests de sécurité• Mise en place de tests de sécurité en contexte d'intégration continu• Intégration des tests de sécurité au pipeline de livraison

    - 12 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • La Culture DEVSECOPS

    “The purpose and intent of DevSecOps, is to build on the mindset that ‘everyone is responsible for security’ with the goal of safely distributing security decisions at speed and scale to those who hold the highest level of context without sacrificing the safety required.”

    Shannon Lietz

    Source: Hypergrid

    - 13 -

    • DevOps + Security = DevSecOps

    • SecDevOps ou DevSecOps?

    • Pour Nous: SecDevOps = DevSecOps.

    • Mais il faut comprendre: SecDevSecOpsSec

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • La Culture DEVSECOPS

    Architecte de sécurité

    - 14 -

    Product Backlog Sprint planngmeeting

    Sprint Backlog

    Product owner Team

    Scrum master réunion quotidienne

    stand-up

    Sprint review

    Sprint rétrospective

    Répartition des tâches

    L’équipe s’engage à traiter autant de

    fonctionnalités de priorité élevée qu’il

    peut être complété à la fin du sprint

    Inputs from:• Les clients,• Équipe,• Manageur,• …

    1-3 weekSprint

    «

    « «Liste priorisée des fonctionnalités requises et des bugs à corriger

    Livraison des fonctionnalités etMAJ de la version

    du produit

    • La sécurité devient une préoccupation partagée.

    • Intégrer un spécialiste « AppSec » pour aider l'équipe.

    La sécurité devient une fonctionnalité

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • Agenda

    • SDLC (Systems development life cycle) et sécurité• SDLC dans un contexte Agile• SDLC + Agile => DevOps• DEVSECOPS: Culture• DEVSECOPS: Comment?

    • Conteneurisation• Transformation de l'espace de développement• Déploiement continu

    • Infrastructure as Code

    • Continuous configuration automation (CCA)

    • Automatisation des tests de sécurité• Mise en place de tests de sécurité en contexte d'intégration continu• Intégration des tests de sécurité au pipeline de livraison

    - 15 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Transformation

    DEVSECOPS: Comment?

    • Transformation de l’équipe

    DevOpsTeam

    La sécurité devient une préoccupation partagée..

    DevOpsTeam

    Intégration d’un expert en sécurité

    Formation

    « L'apprentissage est le travail des développeurs »

    DevSecOpsTeam

    Integrating security into DevOps to deliver "DevSecOps" requires changing mindsets, processes and technology. Security and risk management leaders must adhere to the collaborative, agile nature of DevOps to be seamless and transparent in the development process, making the Sec in DevSecOps silent.

    Neil MacDonald – Gartner

    - 16 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • DEVSECOPS: Comment?

    • Adaptez vos outils et processus de test de sécurité aux développeurs, et non l'inverse;

    • Arrêtez d'essayer d'éliminer toutes les vulnérabilités pendant le développement;

    • Concentrez-vous d'abord sur l'identification et l'élimination des vulnérabilités critiques connues

    • Ne vous attendez pas à utiliser DAST / SAST traditionnel sans modifications;

    • Formez tous les développeurs sur les bases du codage sécurisé, mais ne vous attendez pas à ce qu'ils deviennent des experts en sécurité;

    • Adopter un modèle éprouvé de la sécurité et implémenter un outil de collecte des exigences de sécurité simples;

    • Éliminer l'utilisation de composants vulnérables connus à la source;

    • Sécuriser et appliquer la discipline opérationnelle aux scripts d'automatisation

    • Implémenter un contrôle de version fort sur tous les codes et composants

    • Adopter une mentalité d'infrastructure immuable

    - 17 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • DEVSECOPS: Comment?

    • L'automatisation est un impératif dans tout environnement DevSecOps, du moins là où cela a du sens.• Système de contrôle de version

    • Intégration continue

    • Test continu

    • Gestion de la configuration et déploiement (CMD)

    • Contrôle continu

    • Conteneurisation

    • Orchestration

    - 18 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Agenda

    • SDLC (Systems development life cycle) et sécurité• SDLC dans un contexte Agile• SDLC + Agile => DevOps• DEVSECOPS: Culture• DEVSECOPS: Comment?

    • Conteneurisation• Transformation de l'espace de développement• Déploiement continu

    • Infrastructure as Code

    • Continuous configuration automation (CCA)

    • Automatisation des tests de sécurité• Mise en place de tests de sécurité en contexte d'intégration continu• Intégration des tests de sécurité au pipeline de livraison

    - 19 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Conteneurisation

    Source: redhat

    - 20 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Conteneurisation

    - 21 -

    Les conteneurs vous permettent d'assembler et d'isoler des applications avec leurenvironnement d'exécution complet contenant tous les fichiers nécessaires pour lesexécuté.

    Les applications conteneurisées sont faciles à déplacer d'un environnement à un autre(développement, tests, production, etc.), tout en conservant toutes leurs fonctions.

    CRI-O - minikube

    Docker

    LXC

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • Transformation de l'espace de développement

    • Le post développeur devient un écosystème

    • Testez votre code dans un contexte plus réaliste avant de le pousser dans un dépôt (GIT, SVN).

    • le développeur devient plus indépendant.

    dans

    - 22 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

  • Déploiement continu - Infrastructure as Code

    Dev Team Ops Team

    Organisation classique DevOps

    Dev Team Ops Team

    DevOps Team

    Transformation ou Fusion

    IAC

    • Moins d'erreur• Vitesse• Répétition - industrialisation• Standardisation• Impératif pour une équipe DevSecOps• Iaas: portabilité

    - 23 -

    • IAC est un type d'infrastructure informatique que les équipes opérationnelles peuvent administrer et mettre à disposition automatiquement, par code plutôt que par traitement manuel.

    • Pourquoi?

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • Déploiement continu – Continuousconfiguration automation (CCA)

    - 24 -

    • IaC a besoin d’un CCA

    • Automatisation continue de la configuration (CCA) est la méthodologie ou le processus d'automatisation du déploiement et de la configuration des paramètres du logiciel.

    • Les outils de gestion de la configuration sont utilisés pour contrôler les modifications et les mises à jour des paramètres de l'infrastructure ou des applications..

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • Automatisation des tests de sécurité

    Pas de problème!! J'aime écrire des

    scripts

    - 25 -

    • Dans les projets réalisés en intégration continue, la livraison du projet induit à la fois la livraison de l'infrastructure et de l'application.

    • Un déploiement doit se faire de manière automatique. • Les tests de sécurité doivent faire partie du processus de déploiement.• Chaque fois qu‘une nouvelle version d'une application doit être livrée

    dans un environnement, il faut:• Tester l'infrastructure qui accueille l’application; • une fois que l’application est déployée, faire des tests de sécurité d'applicative;

    • Objectif: Intégration des tests de sécurité au pipeline de livraison.

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • - 26 -

    Comment?

    Intégration des tests de sécurité au pipeline de livraison

    Création du projet

    •Ajouter IaC + scripts des tests de sécurité

    •Création de l’inventaire de configuration et de déploiement

    •Scripts de déploiement de l’application

    Développement

    •Configurer le monitoring pour les tests dynamiques

    •Configurer la journalisation

    Commit and Push

    •Demander une revue de code par ses paires

    Compilation

    •Analyse statique du code source

    •Tester les librairies externes

    •Publier les rapports

    Déploiement

    •Test l’infrastructure

    •'Test de sécurité applicative (analyste dynamique, injection, fuzzing...)

    •Publier les rapports

    Tag

    •Étiquetage d’une nouvelle version

    •Publier une release note qui intègre les liens vers les rapports de sécurité

    CodeFactor

    Spring Boot Actuator

    ASVS 3.0

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • - 27 -

    Composition minimale d’un projet DevSecOps

    Intégration des tests de sécurité au pipeline de livraison

    Pro

    jet

    Dev

    SecO

    ps • Dockerfile

    • jenkinsfile

    • deploy.Jenkinsfile

    • delivery.Jenkinsfile

    • tag.Jenkinsfile

    • dependency-check-suppression

    • requirements.yml

    • scanApp.Jenkinsfile

    ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne Sadio

  • Merci

    @[email protected]@ift.ulaval.ca

    - 28 -ISACA Québec – Conférences AppSec - 05 Dec 2018 - Étienne

    Sadio

    mailto:[email protected]:[email protected]