diff --git a/presentations/defense/defense.qmd b/presentations/defense/defense.qmd index 7568274e5bb0a4f25f6285174920184dc3d614c5..31b2879e6f72efe5ef8fb9e996d4167a600ed2ab 100644 --- a/presentations/defense/defense.qmd +++ b/presentations/defense/defense.qmd @@ -22,9 +22,7 @@ format: ## Cadre académique -::: {.incremental} ::: {.callout-tip title="Projet de semestre"} -- Préparation au travail de Bachelor - Travail **autonome** d'une complexité moyenne - Approche rigoureuse / scientifique ::: @@ -37,7 +35,6 @@ format: - Étude de _rootkit_ basé sur la virtualisation - Subversion de l'OS natif - Furtivité offerte par ce genre de technique -::: ## Approche méthodologique @@ -48,7 +45,6 @@ format: - Début **d'implémentation** d'un _POC_ (Dec-Jan 2025) - Module noyau GNU/Linux - Extensions matérielles Intel VT-x (documentation technique) - - Virtualisation du CPU - **Étude** détaillée de Blue Pill (Fév-Mars 2025) - Mise en place d'un hyperviseur léger - Migration à la volée de l'OS @@ -66,12 +62,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 -::: . . . @@ -83,12 +77,10 @@ pertinence. ## Axiomes liés à la sécurité -::: {.incremental} - **Isolation**/**_sand-boxing_** de chaque environnement virtuel - **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 -::: ## _Hardware-assisted full virtualization_ @@ -103,12 +95,10 @@ ne générant pas de **_trap_**[^1] ::: {.columns} ::: {.column width="50%"} -::: {.incremental} - \small \textbf{Déduplication} des anneaux de protection (\textcolor{red}{root}/\textcolor{teal}{non-root}) - \small VMM opère en CPU \textcolor{red}{root} mode - \small Exécution d'une instruction privilégiée : - \footnotesize On passe le contrôle au VMM à travers un **`VMExit`** (_world-switch_) -::: ::: ::: {.column width="50%"} @@ -140,7 +130,6 @@ of a computer system **without being detected**"_ [^2] ## Valeur offensive ajoutée par un hyperviseur -::: {.incremental} - Point de départ $\rightarrow$ \textcolor{red}{Ring 0}, on se situe déjà au **même niveau** que le **noyau de l'OS** - _Hijacking_ complet du système possible @@ -152,20 +141,17 @@ le **noyau de l'OS** - Détection plus **complexe** - le _malware_ et l'OS \textcolor{red}{ne sont plus} sur le **même pied d'égalité** -::: # Blue Pill, les points clés ## Historique -::: {.incremental} - \small 1ère démonstration lors du _Black Hat Briefings_ du 3 août 2006[^3] - \small Développé par Joanna Rutkowska (Invisible Things Labs, Qubes OS) - \small VMBR utilisant les **instructions matérielles** exposées par les CPUs x86 - \small \textbf{Premier exemple} d'un rootkit \textbf{HVM} (_hardware-assisted virtual machine_) - \footnotesize Basé initialement sur la technologie AMD-V (Pacifica, _aka_ SVM), puis porté sur Intel VT-x -::: . . . @@ -274,13 +260,11 @@ de la 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 à chaque _world-switch_ - VMEntry $\rightarrow$ état du CPU en mode \textcolor{red}{root} - VMExit $\rightarrow$ état du CPU en mode \textcolor{teal}{non-root} -::: <!-- ## À l'ordre du jour -->