Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici
Jusqu'au 31/05 : Une offre vous attend. en cliquant ici
  1. Livres & vidéos
  2. DevSecOps - Développez et administrez vos services en toute sécurité (2e édition)

DevSecOps Développez et administrez vos services en toute sécurité (2e édition)

Informations

Livraison possible dès le 26 mai 2025
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-409-04973-6
  • EAN : 9782409049736
  • Ref. ENI : EP2DEVSECOPS

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-04974-3
  • EAN : 9782409049743
  • Ref. ENI : LNEP2DEVSECOPS

Les points forts du livre :

  • Un ancrage opérationnel fort grâce à l’implémentation concrète d’un pipeline CI/CD sécurisé,
  • Une approche approfondie de la sécurité des conteneurs et de Kubernetes, avec des outils éprouvés,
  • Une couverture complète des fondamentaux de cybersécurité et des pratiques avancées de sécurisation du code
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Expert
  • Nombre de pages 758 pages
  • Parution mai 2025
  • Niveau Expert
  • Parution mai 2025

Cet ouvrage sur l’approche DevSecOps est destiné à tout membre d’une équipe IT ou de développement souhaitant intégrer la sécurité dans sa pratique quotidienne et disposer des bons outils pour sécuriser ses développements à chaque étape du cycle de vie des services.

L’auteur commence par expliquer l’impact de l’implémentation de la sécurité sur le fonctionnement des équipes, avant de présenter les notions d’intégration continue et de déploiement continu (CI/CD). En guise de mise en pratique, il propose notamment l’implémentation d'un pipeline d'intégration continue en Python avec Gitlab-CI.

L’ouvrage détaille ensuite l’utilisation de Docker et Kubernetes dans une approche DevSecOps. À travers plusieurs exemples, il montre comment déployer un site Wordpress avec Docker Compose, analyser la sécurité des images Docker avec Dockle et Trivy, sécuriser un cluster Kubernetes avec Kube-Bench, Kube-Hunter et les CIS Benchmark et analyser la sécurité des fichiers YAML décrivant les objets Kubernetes avec KubeLinter et Checkov. Les limitations connues de Docker et les contraintes spécifiques de Kubernetes sont également abordées.

Les notions importantes de cybersécurité sont explicitées, avec un accent sur les Denial of Service, les attaques Man-in-the-Middle, les injections et le Brute Force. Les concepts de cryptographie sont explorés en détail, couvrant le chiffrement symétrique et asymétrique, les algorithmes de hash, les PKI et l’intégration de TLS 1.3. Des pratiques modernes de gestion des clés avec des KMS et des approches avancées comme l’architecture Zero Trust et la cryptographie post-quantique sont introduites.

Un chapitre explore la sécurité du développement avec le SDLC et le SSDLC, le Threat Modeling, la publication d’une Secure Coding Checklist et l’utilisation de WebGoat pour créer un environnement de Pentest. Les bonnes pratiques liées à la gestion des événements et la supervision de la stack applicative sont abordées avec des outils comme Prometheus et Grafana.

Enfin, un nouveau chapitre est dédié à l'intelligence artificielle générative et à la manière dont elle s'intègre dans une démarche DevSecOps. Après avoir abordé le fonctionnement général de la GenAI, l'auteur montre comment l'utiliser pour mettre en oeuvre un pipeline utilisant GitLab-CI et Gemini, capable de détecter et de corriger automatiquement les vulnérabilités d'un code.

 

Avant-propos
  1. Public concerné par le livre
  2. Prérequis
  3. Objectifs et fil conducteur
Introduction au DevSecOps
  1. Qu'est-ce que le DevOps ?
    1. 1. Bob le développeur
    2. 2. Alice l’opérationnelle
    3. 3. À la recherche d’une (bonne) définitiondu DevOps
    4. 4. Récapitulatif de ce qu’est le DevOpset ouverture vers le DevSecOps
  2. Le CALMS et les cinq piliers du DevOps
    1. 1. Le « c » de laculture
    2. 2. L’automatisation : une méthodeindispensable
    3. 3. Le Lean ou le zéro déchet
    4. 4. En DevOps, il faut tout mesurer
      1. a. L’enseignement du TDD (Test Driven Development)
      2. b. Quelques exemples de mesures
    5. 5. Le sharing (partage) au centre de toute la cultureDevOps
    6. 6. Et le DevSecOps ?
  3. La transformation des équipes par le DevSecOps
    1. 1. Le business d’aujourd’hui
    2. 2. Le fonctionnement dans « l’ancienmonde » en silos
    3. 3. Les premiers changements apportés par leDevOps
    4. 4. Quelques optimisations apportées par le DevSecOps
    5. 5. Quelques clés pour faire adopter le DevSecOpspar les équipes
    6. 6. L’avènement des T-Shaped Peoples
  4. La gestion des plateformes Cloud de manière sécurisée
    1. 1. Segmentation des environnements et des applications
    2. 2. Gestion des accès et des identités(IAM) sur le Cloud
    3. 3. Gestion et analyse des logs
    4. 4. Utilisation de dépôts et d’artefactsrestreints
  5. La transformation du business par le DevSecOps
    1. 1. Une nouvelle façon de travailler
    2. 2. La règle du IN : Input, Involveet Invest (contribution, implication et investissement)
    3. 3. Le « Shift Left »
    4. 4. Quelques statistiques
    5. 5. DevSecOps, business et sécurité
  6. L’IA générative dans le DevSecOps
    1. 1. Introduction à l’IA générative
    2. 2. Rôle de l’IA générativedans le DevSecOps
    3. 3. Exemples d’utilisation
    4. 4. Défis et considérations éthiques
  7. Conclusion
Intégration et déploiement continus (CI/CD)
  1. Présentation générale de Git
    1. 1. Concepts fondamentaux de Git
      1. a. Histoire de Git
      2. b. Système de gestion de versions centralisé
      3. c. Système de gestion de versions distribué
      4. d. Comparaison des deux systèmes de gestionde versions
      5. e. Gestionnaire de versions et SCM (Source Control Management)
    2. 2. Maîtrise des principaux termes utilisésdans Git
    3. 3. Le workflow (les différentes étapes)de Git
  2. L’intégration continue
    1. 1. La phase de build
    2. 2. Les phases de tests
    3. 3. Les prérequis à une bonne intégrationcontinue
      1. a. Le dépôt de code permettant de fairedu versioning
      2. b. Le standard de code
      3. c. Le serveur d’intégration continue
  3. Créer votre propre pipeline CI (Continuous Integration)
    1. 1. Architecture de GitLab-CI
      1. a. Serveur GitLab et Runners
      2. b. Les Shared Runners de GitLab.com
      3. c. Pourquoi utiliser GitLab-CI ?
    2. 2. Développement d’un simple scriptPython
    3. 3. Installation de Git sur Windows
    4. 4. Push du code sur votre dépôt GitLab
    5. 5. Mise en œuvre du lint avec GitLab-CI
    6. 6. Mise en œuvre de tests de sécurité avecGitLab-CI
  4. Aller plus loin avec GitLab-CI
    1. 1. Exécuter plusieurs jobs en parallèle
    2. 2. Gérer les « secrets » etles données confidentielles
    3. 3. Analyser les temps d’exécution despipelines
  5. Le Continuous Delivery
    1. 1. Les bénéfices du Continuous Delivery
    2. 2. Les différences avec le déploiementcontinu
  6. Déploiement continu
    1. 1. Quelques règles de bonnes pratiques
    2. 2. Méthode Blue/Green
    3. 3. Méthode Canary Releases
  7. Conclusion
Utilisation de Docker en DevSecOps
  1. Introduction à Docker
    1. 1. L’histoire de la création de Docker
    2. 2. Les différentes éditions de Docker
    3. 3. L’utilisation de Docker sur Windows
    4. 4. L’installation étape par étapede Docker Desktop sur Windows
      1. a. Vérification de votre version de Windows
      2. b. Installation de WSLv2 et du Linux Kernel Package
      3. c. Installation de Docker Desktop
      4. d. Vérification de l’installation deDocker
    5. 5. La méthode alternative en cas d’anciennesversions de Windows
      1. a. Téléchargement et installation deDocker Toolbox
      2. b. Exécution et vérification de l’installationde Docker Toolbox
    6. 6. L’installation étape par étapede Docker sur Linux
      1. a. Désinstallation de toutes les anciennes versions
      2. b. Utilisation du script de Docker
      3. c. Ajout de l’utilisateur actuel au groupe deDocker
      4. d. Vérification de l’installation deDocker
      5. e. Installation de docker-compose
    7. 7. La plateforme Play with Docker
    8. 8. Le point sur la virtualisation
    9. 9. Les conteneurs et leurs spécificités
    10. 10. Les limitations connues de Docker
  2. Commencer à utiliser des conteneurs Docker
    1. 1. Les commandes de base
      1. a. La commande docker version
      2. b. La commande docker info
      3. c. La commande docker
    2. 2. Les premières manipulations sur les conteneurs
      1. a. Obtenir la liste des conteneurs
      2. b. Lancer un simple serveur web
      3. c. Arrêter et supprimer les conteneurs
      4. d. Afficher les logs et les processus d’un conteneur
      5. e. Obtenir plus d’informations sur un conteneur
      6. f. Obtenir le taux d’utilisation des ressourcesd’un conteneur
      7. g. Aller à l’intérieur deson conteneur
    3. 3. Les actions effectuées par un « dockercontainer run »
    4. 4. Le premier exercice pour apprendre à lancerdes conteneurs
      1. a. Instructions de l’exercice
      2. b. Correction de l’exercice
  3. Configurer et utiliser les réseaux et le DNS de Docker
    1. 1. L’utilisation du NAT (Network AddressTranslation)
      1. a. Les adresses IPv4 privées
      2. b. La fonction du NAT
    2. 2. Le fonctionnement réseau de Docker
      1. a. Les bonnes pratiques réseau
      2. b. Les différents types de réseauxsur Docker
    3. 3. Les commandes réseau de Docker
      1. a. Obtenir les informations d’un réseaude Docker
      2. b. Créer de nouveaux réseaux Docker
      3. c. Attacher un conteneur à un réseauspécifique
  4. Trouver et créer ses propres images Docker
    1. 1. Utilisation de Docker Hub
    2. 2. Analyse du cache d’une image Docker
      1. a. La commande docker image history
      2. b. Les couches d’une image Docker
    3. 3. Éléments basiques d’unfichier Dockerfile
      1. a. Contenu d’un fichier Dockerfile
      2. b. Exemple de Dockerfile
    4. 4. Commandes pour taguer et pousser ses images
      1. a. Taguer une image
      2. b. Pousser une image sur le repository distant
      3. c. S’authentifier auprès de DockerHub (ou un autre dépôt)
      4. d. Builder son image Docker
  5. Faire persister les données au sein des conteneurs
    1. 1. Durée de vie d’un conteneur
    2. 2. Utilisation des volumes dans Docker
      1. a. Comprendre quand utiliser les volumes dans Docker
      2. b. Utiliser la commande docker volume prune
      3. c. Vérifier les volumes configuréssur un conteneur
      4. d. Obtenir la liste des volumes
      5. e. Obtenir des informations détailléessur un volume
      6. f. Créer un nouveau volume
      7. g. Gestion des snapshots de volumes
    3. 3. Utilisation du bind mounting dans Docker
      1. a. Comprendre quand utiliser les bind mounts dans Docker
      2. b. La syntaxe du bind mounting
  6. Déployer un site WordPress avec Docker
    1. 1. Utilisation de WordPress
    2. 2. Composition de WordPress
    3. 3. Intérêts d’utiliser WordPressavec Docker
    4. 4. Contenu de la partie Front-End de WordPress
      1. a. Les principaux fichiers du Front-End
      2. b. Les principaux répertoires du Front-End
    5. 5. Organisation de la base de données
    6. 6. Communication entre Front-End et base de données
    7. 7. Configuration des conteneurs
    8. 8. Création d’un site WordPress surPlay with Docker
  7. Sécuriser l’hôte Docker
    1. 1. Les CIS Benchmarks
      1. a. Introduction aux CIS Benchmarks
      2. b. Utilisation de l’outil Docker Bench for Security
    2. 2. Les erreurs de configuration les plus communes
      1. a. Vérifier que le démon Docker estcorrectement audité
      2. b. Vérifier que les logs sont stockéssur un support distant centralisé
      3. c. Vérifier que les conteneurs ne peuvent acquérirde nouveaux privilèges
    3. 3. L’utilisation de Lynis pour auditer son système
  8. Sécuriser les conteneurs et les images Docker
    1. 1. Architecture d’un pipeline CI/CDpour les images Docker
    2. 2. Construction d’un fichier Dockerfile
    3. 3. Mise en place du système de lint du Dockerfile
      1. a. Utilisation de l’outil Hadolint
      2. b. Création du dépôt Git
      3. c. Paramétrage de Git pour préparerle job de lint
      4. d. Vérification du job de lint
      5. e. Correction du fichier Dockerfile
    4. 4. Mise en place du job de build de l’imageDocker
      1. a. Création de la nouvelle branche
      2. b. Donner la possibilité aux jobs de faire duDocker
      3. c. Configuration du fichier .gitlab-ci.yml
      4. d. Vérification et merge de la nouvelle branche
    5. 5. Mise en place du job de test de l’image Docker
      1. a. Création de la nouvelle branche
      2. b. Réflexion autour des tests à réaliser
      3. c. Configuration du fichier .gitlab-ci.yml
      4. d. Vérification et merge de la nouvelle branche
    6. 6. Mise en place des tests de sécurité
      1. a. Présentation des différents outils
      2. b. Création de la nouvelle branche
    7. 7. Utilisation de Dockle pour les tests de sécurité
      1. a. Configuration du fichier .gitlab-ci.yml pour le jobde Dockle
      2. b. Analyse des résultats pour Dockle
      3. c. Correction du fichier Dockerfile
    8. 8. Utilisation de Trivy pour les tests de sécurité
      1. a. Configuration du fichier .gitlab-ci.yml pour le jobde Trivy
      2. b. Analyse des résultats pour Trivy
  9. Conclusion
Utilisation de Kubernetes en DevSecOps
  1. Introduction
  2. La prise en main de Kubernetes
    1. 1. Principe de déploiement
    2. 2. Kubernetes nous aide à déployerplus facilement
    3. 3. Kubernetes et le système de « replicas »
    4. 4. Mise à l’échelle grâce à Kubernetes
    5. 5. Quelques limitations
  3. Le concept de cluster
    1. 1. Les composants de Kubernetes
    2. 2. Le Control Plane et les Worker nodes
    3. 3. L’installation de notre premier cluster Kubernetesavec Play with Kubernetes
      1. a. Installer et paramétrer notre Master node
      2. b. Installer et paramétrer nos deux Worker nodes
    4. 4. L’installation de notre premier cluster Kubernetesavec des serveurs Ubuntu 24.04 LTS
  4. La sécurité de son cluster Kubernetes
    1. 1. CIS Benchmarks
    2. 2. Utilisation de Kube-bench
      1. a. Exécuter Kube-bench
      2. b. Corriger les erreurs les plus communes
    3. 3. Utilisation de Kube-hunter
  5. Les objets dans Kubernetes
    1. 1. YAML
    2. 2. Description et utilisation des Pods
      1. a. Les Pods avec un seul conteneur
      2. b. Les Pods avec plusieurs conteneurs
    3. 3. Création d’un premier Pod sur notre cluster
      1. a. En utilisant la commande kubectl run
      2. b. En utilisant un fichier YAML
    4. 4. Utilisation des ReplicaSets
    5. 5. Utilisation des Deployments
      1. a. Créer un Deployment avec YAML
      2. b. Mettre à jour la version de l’image
      3. c. Effectuer un rollback
    6. 6. Fonctionnement réseau avec Kubernetes
    7. 7. Utilisation des services
      1. a. Comprendre ce qu’est un service
      2. b. Déployer notre premier service
      3. c. Utiliser les services NodePort
      4. d. Utiliser les services ClusterIP
      5. e. Utiliser les services LoadBalancer
    8. 8. Contrôle de la disponibilité grâceaux Probes
      1. a. Fonctionnement et intérêt du LivenessProbe
      2. b. Utilisation du LivenessProbe via une requêteHTTP
      3. c. Utilisation du LivenessProbe via une commande
      4. d. Utilisation du ReadinessProbe
  6. Les tests de lint sur les objets Kubernetes
    1. 1. Présentation de l’outil KubeLinter
    2. 2. Configuration de notre pipeline
      1. a. Paramétrage de Git pour préparerle job de lint
      2. b. Vérification du job de lint
    3. 3. Correction de notre Manifest
      1. a. Ajouter un tag à l’image Docker utilisée
      2. b. Utiliser le readOnlyRootFilesystem
      3. c. Utiliser le runAsNonRoot
      4. d. Configurer les limites de CPU et de mémoire
  7. Les tests de sécurité sur les objets Kubernetes
    1. 1. Présentation de l’outil Checkov
    2. 2. Configuration de notre pipeline
      1. a. Paramétrage de Git pour préparerle job de Checkov
      2. b. Vérification du job de Checkov
    3. 3. Correction de notre Manifest
      1. a. CKV_K8S_38: "Ensure that ServiceAccount Tokens are only mounted where necessary"
      2. b. CKV_K8S_31: "Ensure that the seccompprofile is set to docker/default or runtime/default"
      3. c. CKV_K8S_40: "Containers should runas a high UID to avoid host conflict"
      4. d. CKV_K8S_20: "Containers should notrun with allowPrivilegeEscalation"
      5. e. CKV_K8S_8 & CKV_K8S_9 :Configurer le LivenessProbe et le ReadinessProbe
      6. f. CKV_K8S_43: "Image should use digest"
      7. g. CKV_K8S_28: "Minimize the admissionof containers with the NET_RAW capability"
      8. h. CKV_K8S_21: "The default namespaceshould not be used"
      9. i. CKV2_K8S_6: "Minimize the admissionof pods which lack an associated NetworkPolicy"
  8. Conclusion
Culture et connaissances en cybersécurité
  1. Quelques éléments de vocabulaire
    1. 1. Le CIA (Confidentialité, Intégrité etDisponibilité)
    2. 2. Le SIEM (Security Information and Event Management)
      1. a. Agrégation et collecte des données
      2. b. Processus de corrélation des données
      3. c. Comparatif des solutions SIEM
      4. d. Intégration du SIEM et du DevSecOps avec Fluentd
  2. Les principales attaques informatiques
    1. 1. Les attaques par reconnaissance
    2. 2. Le Social Engineering
    3. 3. Le phishing
    4. 4. Les attaques par brute force
      1. a. Les différentes catégories de jeuxde caractères
      2. b. Comment résister aux attaques par brute force ?
  3. Les attaques DoS (Denial of Service)
    1. 1. Qu’est-ce qu’une attaque par déni de service ?
    2. 2. Attaque par SYN Flood
    3. 3. Attaque par UDP Flooding
    4. 4. Attaque de type Smurfing
  4. Les attaques sur les pipelines CI/CD
    1. 1. Les attaques Man-in-the-Middle (MITM)
    2. 2. Les attaques DDoS ciblant les pipelines CI/CD
    3. 3. Injections dans les pipelines CI/CD
  5. Les composants de la cryptographie
    1. 1. Principe de fonctionnement du chiffrement
    2. 2. Chiffrement par substitution monoalphabétique
      1. a. Fonctionnement d’un algorithme de substitution monoalphabétique
      2. b. Reconnaissance des substitutions avec l’indice decoïncidence
    3. 3. Chiffrement par substitution polyalphabétique
    4. 4. Chiffrement par transposition
    5. 5. Principes du chiffrement symétrique
    6. 6. Clé publique, clé privéeet chiffrement asymétrique
    7. 7. Fonctionnement des algorithmes de hash
    8. 8. Stockage des mots de passe avec les hash
    9. 9. Les Rainbow Tables
    10. 10. L’algorithme de hash MD5
    11. 11. L’algorithme de hash SHA1
    12. 12. Les algorithmes de hash de la famille SHA2 et SHA3
  6. Les certificats digitaux et les PKI
    1. 1. Qu’est-ce qu’un certificat digital ?
    2. 2. Standards des clés publiques utilisés
    3. 3. Introduction aux PKI (Public Key Infrastructure)
    4. 4. Les acteurs de la certification
    5. 5. Utilisation du certificat par les différentsacteurs
    6. 6. Organisation des PKI et chaîne de certification
  7. Cryptographie moderne et gestion des clés
    1. 1. Introduction au rôle de la cryptographieen DevSecOps
    2. 2. TLS1.3 et DevSecOps
    3. 3. Gestion des clés avancée
    4. 4. Pratiques cryptographiques modernes
      1. a. Zero Trust Architecture
      2. b. Cryptographie post-quantique
  8. Conclusion
Sécurité du développement et bonnes pratiques
  1. Introduction
  2. Application de la sécurité au SDLC (Software Development Life Cycle)
    1. 1. SDLC et méthodologie
      1. a. Planification & recueil des besoins
      2. b. Conception/design du produit
      3. c. Codage et tests
      4. d. Déploiement et maintenance
    2. 2. SDLC et sécurité des applications
  3. SSDLC (Secure Software Development Life Cycle)
    1. 1. Mise en œuvre du Threat Modeling
      1. a. Déployer le Threat Modeling en entreprise
      2. b. Utiliser le modèle STRIDE
      3. c. Utilisation d’OWASP Threat Dragon
    2. 2. Contraintes de sécurité en agilité
    3. 3. Publication d’une Secure Coding Checklist
      1. a. Input & Output Validation
      2. b. Authentication & Password Management
      3. c. Session Management
      4. d. Cryptographic Practices
      5. e. Data Protection & Communication Security
      6. f. System and Database configuration and security
      7. g. Files and memory management
    4. 4. Architecture d’une application Cloud sécurisée
      1. a. Menaces et responsabilité partagée
      2. b. Bénéfices du Cloud pour la sécurité desapplications
    5. 5. Utilisation de différents environnementspour sécuriser le déploiement
      1. a. Notions générales autour des environnements
      2. b. Exemple avec une application web
  4. TOP 10 de l'OWASP
    1. 1. Introduction au TOP 10 de l’OWASP
    2. 2. Présentation et installation de l’outilWebGoat
    3. 3. A1 Broken Access Control
      1. a. Challenge numéro 2
      2. b. Challenge numéro 3
      3. c. Challenge numéro 4
    4. 4. A2 Cryptographic Failures
      1. a. Challenge numéro 2
      2. b. Challenge numéro 3
      3. c. Challenge numéro 4
      4. d. Challenge numéro 6
    5. 5. A3 Injection
      1. a. Challenge numéro 2
      2. b. Challenge numéro 3
      3. c. Challenge numéro 4
      4. d. Challenge numéro 5
      5. e. Challenge numéro 9
      6. f. Challenge numéro 10
      7. g. Challenge numéro 11
      8. h. Challenge numéro 12
  5. Gestion des évènements de votre infrastructure
    1. 1. Mettre en place un système de centralisationdes logs
    2. 2. Créer des logs efficaces pour vos applications
    3. 3. Générer des logs en Python
      1. a. Introduction au module Logging
      2. b. Utilisation du module
  6. Supervision de la stack applicative avec Prometheus et Grafana
    1. 1. Supervision et métriques
    2. 2. Utilisation de Prometheus et Grafana pour superviserses services
      1. a. Installer Docker, Grafana et Prometheus sur Ubuntu24.04 LTS
      2. b. Accéder à la visualisation sur Grafana
      3. c. Exporter vos métriques systèmesdans Prometheus
      4. d. Exporter vos métriques applicatives dansPrometheus
  7. Conclusion
Implémenter le DevSecOps en entreprise
  1. Introduction
  2. Définir des objectifs de sécurité au sein d’une organisation
    1. 1. Utiliser le CIA en entreprise
    2. 2. Identifier les éléments les pluscritiques de votre SI
    3. 3. Mettre en œuvre des métriques etdes propriétés
    4. 4. Diffuser la connaissance auprès des collaborateurs
  3. Développer une culture de la cybersécurité
    1. 1. Mise à disposition d’outils d’entraînementpour les développeurs
    2. 2. Créer des Security Champions au sein des équipes
    3. 3. Formation des collaborateurs non techniques à lacybersécurité
    4. 4. Organisation de post-mortem « blameless » lorsd’incidents
  4. Implémenter un dépôt d'images et d'artefacts
    1. 1. Utilisation d’un dépôtd’artefacts
    2. 2. Utilisation du GitLab Container Registry
      1. a. Pusher nos images sur le GitLab Container Registry
      2. b. Utiliser les images du GitLab Container Registry
      3. c. Mettre en place une politique du cycle de vie desimages
  5. Définir les bons processus de déploiement d’une application
    1. 1. Mise en œuvre de processus de décommissionnement
    2. 2. Automatisation du déploiement
    3. 3. Solutions de déploiement avec Kubernetes
  6. Gérer de façon sécurisée le versioning du code
    1. 1. Scanner les dépôts Git à larecherche de secrets
    2. 2. Utiliser des branches et des tags protégés
    3. 3. Signer vos commits à l’aide des clésSSH
  7. Sécuriser un serveur Nginx
    1. 1. Effectuer un premier scan de serveur Nginx
    2. 2. Implémenter l’anti Drive-By Download
    3. 3. Implémenter le Content Security Policy (CSP)
    4. 4. Implémenter le Referrer-Policy
    5. 5. Implémenter le HTTP Strict Transport Security(HSTS)
    6. 6. Implémenter les Permissions-Policy
  8. Sécuriser un serveur web Apache
    1. 1. Effectuer un premier scan de serveur Apache
    2. 2. Implémenter les mêmes headers quesur Nginx
    3. 3. Désactiver les méthodes HTTP nonutilisées
    4. 4. Mettre à jour la version d’Apache
  9. Conclusion
Analyse de sécurité en DevSecOps
  1. Introduction
  2. SCA (Software Composition Analysis)
    1. 1. État de l’utilisation de l’open source
    2. 2. SCA avec PHP
    3. 3. SCA avec Golang
    4. 4. Quelques autres outils pour le SCA
  3. SAST (Static Application Security Testing)
    1. 1. Introduction au SAST
    2. 2. SAST avec Golang
    3. 3. SAST générique avec Semgrep
    4. 4. Quelques autres outils pour le SAST
  4. DAST (Dynamic Application Security Testing)
    1. 1. Introduction au DAST
    2. 2. Zed Attack Proxy
    3. 3. Utilisation de Zed sur une application vulnérable
    4. 4. Quelques autres outils pour le DAST
  5. Sécurité de l'Infrastructure as Code
    1. 1. Introduction à Terraform
    2. 2. Déploiement d’une topologie sur Google CloudPlatform avec Terraform
      1. a. Configuration initiale de GCP
      2. b. Création de trois VM Compute Engine avecTerraform
    3. 3. Vérification de la sécurité desfichiers Terraform
  6. Développement d'une application Python au sein d'un pipeline DevSecOps
    1. 1. Objectifs
    2. 2. Développer une application web Python avecFlask
    3. 3. Vérifier la sécurité etla syntaxe du code
      1. a. Vérification de la syntaxe par rapport auFlake8
      2. b. Exécution du SAST avec Bandit
      3. c. Vérification du SCA avec Safety
    4. 4. Construire et sécuriser notre image Docker
      1. a. Lint du fichier Dockerfile avec Hadolint
      2. b. Build de l’image Docker
      3. c. Tests de l’image Docker
      4. d. Premiers tests de sécurité de l’imageavec Dockle
      5. e. Seconds tests de sécurité de l’imageavec Trivy
      6. f. Terminer le pipeline avec un push de la release
    5. 5. Construire notre déploiement Kubernetes
      1. a. Effectuer le lint de notre déploiement
      2. b. Corriger notre déploiement
      3. c. Effectuer l’analyse de sécurité denotre déploiement
      4. d. Corriger les alertes de sécurité
    6. 6. Construire et scanner notre service Kubernetes
    7. 7. Finaliser notre pipeline
    8. 8. Récapitulatif des différents fichiersdu dépôt
      1. a. Fichier .docker.gitlab-ci.yml
      2. b. Fichier .gitlab-ci.yml
      3. c. Fichier .kubernetes.gitlab-ci.yml
      4. d. Fichier Dockerfile
      5. e. Fichier deployment.yaml
      6. f. Fichier networkpolicy.yaml
      7. g. Fichier main.py
      8. h. Fichier requirements.txt
      9. i. Fichier service.yaml
      10. j. Fichier templates/password.html
  7. Conclusion
IA générative (GenAI) et DevSecOps
  1. Introduction
  2. Introduction à l'intelligence artificielle générative (GenAI)
  3. Les fondamentaux de la GenAI
    1. 1. Principes de base de l’IA générative
    2. 2. Principaux acteurs de la GenAI
    3. 3. Les différents secteurs d’application
    4. 4. Enjeux et défis éthiques
    5. 5. Limitations techniques et pratiques
  4. Premières utilisations de l’IA générative
    1. 1. Se connecter à l’AI Studio de Google
    2. 2. Interagir avec l’API de GitLab
      1. a. Créer un Access Token
      2. b. Utiliser Curl pour interagir avec l’API REST
      3. c. Utiliser Python pour lister et créer desbranches
    3. 3. Rédaction d’un code vulnérable
    4. 4. Utiliser la GenAI pour détecter et corrigerles vulnérabilités
  5. Pipeline CI/CD DevSecOps avec GitLab-CI et Gemini
    1. 1. Objectifs du pipeline et du code Python
    2. 2. Amélioration du code du fichier main.py
      1. a. Support multifichier
      2. b. Packaging du scan de fichiers dans une fonction etgestion des erreurs
      3. c. Export des résultats dans un fichier JSON
      4. d. Ajout des variables d’environnement
      5. e. Code final du fichier main.py
    3. 3. Améliorations du fichier gitlab-api.py
      1. a. Ajout des variables d’environnement
      2. b. Ajout des variables globales
      3. c. Récupération de l’URL HTTPs du dépôt
      4. d. Configuration de Git
      5. e. Création dynamique de nouvelles branches
      6. f. Appliquer les corrections aux fichiers Python
      7. g. Écriture d’une description dynamique
      8. h. Création de la Merge Request
      9. i. Écriture du __main__
      10. j. Code final du fichier gitlab-api.py
    4. 4. Création du fichier .gitlab-ci.yml
    5. 5. Exécution de notre pipeline
    6. 6. Conclusion
  6. Les nouvelles menaces liées à l'IA générative
    1. 1. Automatisation de campagnes de phishing
    2. 2. Génération automatique de malwares
      1. a. Utilisation de malwares polymorphiques
      2. b. Génération d’exploits ciblés
      3. c. Contre-mesures aux malwares utilisant la GenAI
    3. 3. Manipulation des modèles d’intelligence artificielle
      1. a. Poisoning des modèles d’IA
      2. b. Attaques adversariales
      3. c. Contre-mesures à mettre en œuvre
    4. 4. Augmentation des attaques par brute-force
    5. 5. Confidentialité des données et GenerativeAI
  7. Conclusion
Auteur : Jordan  ASSOULINE

Jordan ASSOULINE

Jordan ASSOULINE travaille depuis plus de 10 ans au sein de contextes innovants autour du DevOps et du DevSecOps. Tour à tour enseignant, auteur ou conférencier, il a accompagné de nombreuses entreprises et professionnels pour l’intégration de la sécurité au cœur de leur pratique. Il a notamment été à l'origine de la création et de la direction d'un Centre Technique d'Excellence d'une ESN spécialisée en DevOps et en cybersécurité. Aujourd'hui, ingénieur chez Google Cloud, il conseille les start-up et les licornes françaises dans la modernisation de leur architecture technique.

En savoir plus

Nos nouveautés

voir plus