diff --git a/presentations/dry-run/dry-run.qmd b/presentations/dry-run/dry-run.qmd index 814e33d96641468fee0695021d3e323e1bb4ca65..f015c1ba136d7d610ff55704fb7ac3432fc18dfe 100644 --- a/presentations/dry-run/dry-run.qmd +++ b/presentations/dry-run/dry-run.qmd @@ -102,10 +102,10 @@ le **noyau de l'OS** - _Hijacking_ complet du système possible - Bras de fer entre les outils de détection (kernel mode) et le _malware_ - Invisibilité pas forcément garantie ! -- Offre une nouvelle opportunité, un **changement de paradigme** +- _Hypervisor as a rootkit_ $\rightarrow$ un **changement de paradigme** - Insertion \textcolor{red}{entre} le **noyau de l'OS** et le **matériel** - - \textcolor{red}{Ring -1} effectif - - Détection plus complexe + - \textcolor{purple}{Ring -1} effectif + - Détection plus **complexe** - le _malware_ et l'OS \textcolor{red}{ne sont plus} sur le **même pied d'égalité** ::: @@ -151,16 +151,16 @@ redémarrage du système, est simplement chargé en tant que pilote Windows (`.s ## Hyperviseur sous forme de module noyau chargeable ::: {.incremental} -- Concerne l'architecture x86 pour Intel VT-x +- Concerne **l'architecture x86** pour **Intel VT-x** - Détection du CPU et de ses capacités pour la virtualisation (_support for VMX_) - - Appel à `cpuid` avec `eax = 1` (bit 5 _set_ de `ecx`) -- Vérification du _"feature control"_ MSR (_"model specific register"_) pour -déterminer si la virtualisation n'a pas été désactivée depuis le BIOS. + - Appel à **`cpuid`** avec `eax = 1` (bit 5 _set_ de `ecx`) +- Vérification du **_"feature control"_** MSR (_"model specific register"_) pour +déterminer si la virtualisation n'a **pas été désactivée depuis le BIOS** - Initialisation de la région **VMXON** associée à une future VM - Vérification des valeurs dans les registres de contrôle **CR0** et **CR4** - Activation de **VMX** à travers le **bit 13** du registre **CR4** -- Exécution de l'instruction **`vmxon`** avec comme opérande l'adresse de la -région allouée et initialisée +- Exécution de l'instruction **`vmxon`** avec comme opérande **l'adresse physique** +de la région allouée et initialisée ::: ## Anatomie d'un _world-switch_ @@ -168,7 +168,7 @@ région allouée et initialisée ::: {.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_ +- Est utilisé pour sauvegarder l'état du CPU à chaque _world-switch_ - VMEntry $\rightarrow$ état du CPU en mode \textcolor{red}{root} - VMExit $\rightarrow$ état du CPU en mode \textcolor{teal}{non-root} :::