diff --git a/presentations/dry-run/dry-run.qmd b/presentations/dry-run/dry-run.qmd index b63a5871aca614461b8d6349e5cf8875a14a8918..28e231f853bd71c169874a71f3bf53297e7fb863 100644 --- a/presentations/dry-run/dry-run.qmd +++ b/presentations/dry-run/dry-run.qmd @@ -23,12 +23,10 @@ format: ## Enjeux de la virtualisation de plateforme ::: {.incremental} +- Permettre l'exécution de **plusieurs OS** sur une **seule** et même **machine** - Exploiter **efficacement** les **ressources computationnelles** - **Faciliter** et **centraliser** la **gestion des ressources IT** en entreprise -<!-- BUG: not sure about this cross-architecture stuff --> -- Développement et déploiement de solutions logiciels **indépendamment** de -**l'architecture sous-jacente** ::: . . . @@ -43,7 +41,6 @@ pertinence ::: {.incremental} - **Isolation**/**_sand-boxing_** de chaque environnement virtuel - <!--- TODO: add something about the MMU and shadow page tables--> - **Impossibilité** (du moins théorique) de s'échapper de son environnement - **Ne doit affecter** en \textcolor{red}{\textbf{aucun cas}} **l'hôte** ou **la couche de virtualisation** (VMM) sous-jacente @@ -149,12 +146,6 @@ Est simplement chargé en tant que pilote Windows (`.sys`) [^4]: [Subverting Vista™ Kernel For Fun and Profit](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2008/08/20084218/BH-US-06-Rutkowska.pdf) -<!--HACK: à voir si je fais les deux ci-dessous--> - -<!--## Cloudskulk--> -<!----> -<!--## CoVirt--> - # _Reverse-Engineering_ ## Hyperviseur sous forme de module noyau chargeable @@ -174,18 +165,42 @@ région allouée et initialisée ## Anatomie d'un _world-switch_ +::: {.incremental} - Chaque CPU possèdent une région **VMCS** (_"Virtual Machine Control Structure"_) - Semblable en tout genre à la région **VMXON** - Est utilisé pour sauvegarder l'état du CPU ou vCPU à chaque _world-switch_ - VMEntry $\rightarrow$ état du CPU en mode \textcolor{red}{root} - VMExit $\rightarrow$ état du CPU en mode \textcolor{teal}{non-root} +::: # Méthodes de détection ## _Timing analysis_ -# Conclusion +::: {.incremental} +- Construire un ensemble d'opérations nécessitant des `VMExit` +- Établir une _baseline_ temporelle sur un hôte **pas soumis** à l'attaque +- Calculer les **différences de temps** entre la _baseline_ et un sujet infecté +::: -# Références bibliographiques +## Détection de virtualisation -- [Rootkits: User Mode](https://www.infosecinstitute.com/resources/general-security/rootkits-user-mode-kernel-mode-part-1/) +::: {.incremental} +- Vérifier si l'on est reparable par `systemd-detect-virt` + - Permet de détecter de manière granulaire QEMU, `kvm` et les technologies + de containerisation (e.g. `docker`) +- De même, avec [`VMAware`](https://github.com/kernelwernel/VMAware) +- Cf. projet de semestre de M. Ricardo Dos Santos +::: + +# Conclusion + +::: {.incremental} +- Approfondissement des connaissances liées à la virtualisation de plateforme +- Recensement des enjeux liés à la cybersécurité + - Étude de l'utilisation d'hyperviseur en guise de _rootkit_ +- Développement d'un hyperviseur à l'aide des instructions matérielles x86 +- Études des méthodes de détection + - Analyse temporelle + - Détection de virtualisation +:::