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

  • Upload
    others

  • View
    16

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

@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 -

@[email protected]@ift.ulaval.ca

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

Page 11: 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

SDLC + Agile => DevOps

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

Sadio

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

Conteneurisation

Source: redhat

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

Sadio

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

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

Page 26: 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

- 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

Page 27: 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

- 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

Page 28: 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

Merci

@[email protected]@ift.ulaval.ca

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

Sadio