Sécurité des infrastructures de virtualisation et Cloud ComputingVirtualisation et Cloud Computing (STI)
Sécurité des infrastructures de virtualisation et Cloud Computing
Séquencement
Objectifs pédagogiques
L'objectif de ce module est d'approfondir la compréhension du fonctionnement des infrastructure de virtualisation et des technologies sur lesquelles elles se basent pour pouvoir en évaluer, concevoir ou assurer la sécurité.
Pré-requis
| Module | Unité d'enseignement | Semestre |
|---|---|---|
| Programmation C | Principes de la programmation | S5 |
| Réseaux | Initiation Système et Réseau | S5 |
| Programmation système | Initiation Système | S5 |
| Sécurité Informatique | Administration réseaux et système | S6 |
| Sécurité système | Sécurité Informatique | S7 |
| Sécurité réseau | Sécurité Informatique | S7 |
| Administration système Linux | Administration réseaux et système | S6 |
| Principes de la virtualisation et Cloud Computing | Virtualisation et Cloud Computing | S9 |
| Conteneur et Cloud Computing | Virtualisation et Cloud Computing | S9 |
Programme
-
Introduction générale sur les infrastructures cloud et introduction du cadre du module
-
Les conteneurs sous Linux
-
Disponibilité : concepts UNIX et cgroups
-
Isolation avec les namespaces
-
Capabilities Linux
-
seccomp-bpf
-
TD 1 :
-
Conteneurs avec Docker
-
Utilisation de l'interface noyau pour créer des namespaces en C
-
systemd
-
Historique
-
Fonctionnement et usage général
-
Fonctionnalités de sécurité
-
Modèle de menace, surface d'attaque, vulnérabilité potentielles et connues
-
TD 2 :
-
Fonctionnement de systemd & journald
-
Durcissement d'une unit systemd
-
Gestion avec les cgroups
-
SELinux
-
Concepts fondamentaux en sécurité
-
Confidentialité / Intégrité / Diposnibilité
-
Extensions: Authenticité / Auditabilité / Non répudiation
-
Principe du moindre privilège
-
Modèles de contrôle d'accès
-
Contrôle d'accès discrétionnaire (DAC)
-
Contrôle d'accès obligatoire (MAC)
-
Concepts fondamentaux pour SELinux
-
Concepts nécessaires à l'écriture d'une politique SELinux
-
TD 3 :
-
Fonctionnement de SELinux
-
Gestion des contextes et des booléens
-
Ecriture d'un module de politique
-
Confinement des utilisateurs
-
Sécurité des gestionnaires de conteneurs (Podman, Docker, etc.)
-
Fonctionnement d'un gestionnaire de conteneurs
-
Modèle de menace, surface d'attaque, vulnérabilité potentielles et connues
-
Durcissement des gestionnaires de conteneurs
-
Sécurité et durcissement de KVM
-
Fonctionnement de la virtualisation avec KVM
-
Fonctionnement des gestionnaires de machines virtuelles
-
Modèle de menace, surface d'attaque, vulnérabilité potentielles et connues
-
Durcissement des gestionnaires de machines virtuelles et de la virtualisation avec KVM
-
TD 4 :
-
Confinement des conteneurs avec SELinux
-
Création et durcissement d'une image de conteneur
-
Publication d'une image de conteneur sur un registre public
-
Sécurité des infrastructures
-
Fonctionnement général et sécurité d'OpenStack
-
Fonctionnement et sécurité de Kubernetes
-
Sécurité des cloud providers
-
Modèles de déploiement prenant en compte la sécurité
-
Infrastructure as Code
-
Immutable Infrastructure
-
TD 5 :
-
Introduction à Terraform (Infrastructre as Code)
-
Introduction à Fedora CoreOS (Immutable Infrastructure)
-
Sécurité Kubernetes et OpenShift
Modalités d'évaluation
Examen Final sous forme de QCM, réalisé en cours, à la fin de l'intervention.
Project à rendre sous 2-3 semaines, nécessitant la mise en application des compétences acquises lors des TDs :
- Création d'une unit systemd en prenant en compte des contraintes de sécurité
- Création d'un module de politique SELinux pour une application de type démon
- Création (Dockerfile) et exécution d'un conteneur en prenant en compte des contraintes de sécurité
Références bibliographiques
Général :
- https://www.ssi.gouv.fr/administration/guide/recommandations-de-configuration-materielle-de-postes-clients-et-serveurs-x86/
- https://www.ssi.gouv.fr/guide/recommandations-de-securite-relatives-a-un-systeme-gnulinux/
OpenStack :
- https://docs.openstack.org/security-guide/
- https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.2/html/security_and_hardening_guide/index
Kubernetes :
Compétences
3| Réf. | Verbe | Description | Niveau |
|---|---|---|---|
| C2_3 | mettre en place | Mise en oeuvre des fonctionnalités de sécurité proposées par les gestionnaires de conteneurs | 3 |
| C2_3 | mettre en place | Mise en oeuvre des fonctionnalités de sécurité proposées par systemd | 3 |
| C2_6 | mettre en place | Mise en oeuvre des fonctionnalités de sécurité proposées par SELinux | 3 |
Compétences SecNumEdu
| Compétence | Heures cours | Heures pratique | Niveau entrée | Niveau sortie |
|---|---|---|---|---|
| Sécurité de l’électronique et des architectures matérielles | 1 | 0 | 0 | 1 |
| Etude de l'architecture matérielle et logicielle pour la mise en place de systèmes virtualisés et des implications en terme de sécurité. | ||||
| Sécurité des systèmes d’exploitation | 9 | 10 | 2 | 3 |
| Sécurité des conteneurs, de la virtualisation, des orchestrateurs de conteneurs, confinement avec SELinux, systemd. Linux uniquement. | ||||