Skip to content
Snippets Groups Projects
Verified Commit bd23e416 authored by iliya.saroukha's avatar iliya.saroukha :first_quarter_moon:
Browse files

wip: basic outline for defense

parent 4eff9a62
Branches
No related tags found
No related merge requests found
---
title: Hypervisor rootkit for the x86 architecture
subtitle: Projet de semestre 2025
author:
- Iliya Saroukhanian
lang: fr-CH
date: today
date-format: long
urlcolor: blue
format:
beamer:
institute: Haute école du paysage, d'ingénierie et d'architecture de Genève -- HEPIA
highlight-style: github
slide-level: 2
theme: metropolis
themeoptions:
- "progressbar=foot"
- "block=fill"
---
# Introduction
## Mise en contexte
## Méthodologie
## Plan de la présentation
# Hyperviseur en guise de _rootkit_
## État de l'art
# Étude de Blue Pill
# HVM _rootkit_ sous GNU/Linux
# Conclusion
## 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
:::
. . .
::: {.callout-important}
\small Au tournant des années **2010**, l'avènement du **_cloud computing_** projette
la virtualisation de plateforme dans une nouvelle ère de popularité et
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_
::: {.callout-note}
\scriptsize Depuis $\sim$ 2005, exposition d'**instructions matérielles** par les _vendors_ CPU (Intel,
AMD) afin de palier au problème introduit par \textcolor{red}{17 instructions privilégiées}
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%"}
![](../dry-run/figs/hardware_assisted_virtualization_repr.png)
:::
:::
[^1]: [Platform Virtualization, Pr. Florent Glück](https://githepia.hesge.ch/flg_courses/virtualization/virtualization_pub_spring24/-/blob/master/course/02-Platform_Virtualization.pdf?ref_type=heads)
# Approche offensive
## Qu'est-ce qu'un _rootkit_
::: {.callout-important}
\small _"A set of software tools that enable an **unauthorized** user to **gain control**
of a computer system **without being detected**"_ [^2]
:::
. . .
| \textcolor{teal}{User mode} | \textcolor{red}{Kernel mode} |
|--------------- | --------------- |
| `LD_PRELOAD` library hijacking | Syscall table _hooking_ |
| Binary patching \footnotesize (e.g. `su`, `passwd`) | Injection de modules/pilotes malicieux \footnotesize(GNU/Linux, Windows) |
[^2]: [Oxford English Dictionary, s.v. "rootkit (n.)," December 2024](https://doi.org/10.1093/OED/6892331220)
## Hyperviseur en guise de _rootkit_
::: {.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
- Bras de fer entre les outils de détection (kernel mode) et le _malware_
- Invisibilité pas forcément garantie !
- _Hypervisor as a rootkit_ $\rightarrow$ un **changement de paradigme**
- Insertion \textcolor{red}{entre} le **noyau de l'OS** et le **matériel**
- \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é**
:::
# État de l'art
## SubVirt
::: {.incremental}
- Papier publié en 2006 par des chercheurs de l'université du Michigan et de
Microsoft[^3]
- Concept originel du **VMBR** (_virtual-machine based rootkit_)
- Basé sur les hyperviseurs VMWare (Linux Target) et Virtual PC (Windows Target)
- Manipulation de la séquence de boot pour se "glisser" en-dessous de l'OS
- **Requiert un redémarrage**
- Chargement de l'OS natif en tant que _guest_ à l'intérieur du VMM
:::
[^3]: [SubVirt: implementing malware with virtual machines](https://ieeexplore.ieee.org/document/1624022)
## Blue Pill
::: {.incremental}
- \small 1ère démonstration lors du _Black Hat Briefings_ du 3 août 2006[^4]
- \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 based virtual machine_)
- \footnotesize Basé initialement sur la technologie AMD-V (Pacifica, _aka_ SVM), puis
porté sur Intel VT-x
:::
. . .
::: {.callout-important}
\scriptsize Migration de l'OS natif **à la volée**, ne requiert pas de
redémarrage du système, 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)
# Blue Pill -- Point clés
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment