Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
hypervisor rootkit
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
flg_bachelors
TS
2024
hypervisor rootkit
Commits
95edad26
Verified
Commit
95edad26
authored
3 months ago
by
iliya.saroukha
Browse files
Options
Downloads
Patches
Plain Diff
wip: proof reading chap 2
parent
e8d8241d
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
thesis/chapters/chap2.tex
+26
-31
26 additions, 31 deletions
thesis/chapters/chap2.tex
with
26 additions
and
31 deletions
thesis/chapters/chap2.tex
+
26
−
31
View file @
95edad26
...
@@ -42,26 +42,23 @@
...
@@ -42,26 +42,23 @@
Ayant posé les bases fondamentales de la virtualisation de plateforme, dans ce
Ayant posé les bases fondamentales de la virtualisation de plateforme, dans ce
chapitre nous débuterons par aborder de manière plus détaillée la notion
chapitre nous débuterons par aborder de manière plus détaillée la notion
d'hyperviseur, de son intéraction avec l'hôte et les
\acrshort
{
vm
}
s sous sa
d'hyperviseur et de ses divers types. Dans un second temps, nous introduirons
supervision.
le concept d'utilisation d'hyperviseurs en guise d'outil offensif, appelé
\acrshort
{
vmbr
}
ou
\acrshort
{
hvm
}
\textit
{
rootkit
}
. Finalement, nous dresserons
Dans un second temps, nous introduirons le concept d'utilisation d'hyperviseurs
l'état de l'art de ce type d'attaque en expliquant leur fonctionnement et
en guise d'outil offensif, appelé
\acrshort
{
vmbr
}
ou
\acrshort
{
hvm
}
\textit
{
rootkit
}
leurs différences respectives.
dans la sphère de la sécurité informatique. Afin de dresser l'état de l'art
de ce type d'attaque, nous recenserons quelques implémentations existantes en
expliquant leurs fonctionnements et différences respectives.
\section
{
Hyperviseur
}
\label
{
sec:hyperviseur
}
% (fold)
\section
{
Hyperviseur
}
\label
{
sec:hyperviseur
}
% (fold)
Tout au long du Chapitre~
\ref
{
chap:la
_
virtualisation
_
les
_
fondements
_
et
_
techniques
}
,
Tout au long du Chapitre~
\ref
{
chap:la
_
virtualisation
_
les
_
fondements
_
et
_
techniques
}
,
les termes
d'
hyperviseur
ou
\acrshort
{
vmm
}
ont été passablement
utilisés sans
les termes
\say
{
hyperviseur
}
et
\say
{
\acrshort
{
vmm
}
}
ont été passablement
avoir été pour autant
définis de manière exhaustive. Un hyperviseur,
au sens
utilisés sans avoir été
définis de manière exhaustive. Un hyperviseur,
dans le
de la virtualisation, est un logiciel permettant
\textbf
{
l'instanciation
}
et
contexte
de la virtualisation
de plateforme
, est un logiciel permettant
\textbf
{
gestion
}
d'environnements virtuels en leur
attribuant des ressources
\textbf
{
l'instanciation
}
et
\textbf
{
gestion
}
d'environnements virtuels en leur
computationnelles mises à disposition par l'hôte.
Dans sa thèse de 1973
attribuant des ressources
computationnelles mises à disposition par l'hôte.
intitulée
\textit
{
\say
{
Advanced Principles for Virtual
Computer Systems
}}
,
Dans sa thèse de 1973
intitulée
\textit
{
\say
{
Advanced Principles for Virtual
Robert P. Goldberg propose de distinguer les hyperviseurs en deux types
Computer Systems
}}
\cite
{
goldberg
_
architectural
_
1973
}
, Robert P. Goldberg
distincts :
propose de distinguer les hyperviseurs en deux types
distincts :
\begin{itemize}
\begin{itemize}
\item
\textbf
{
Type 1
}
, appelé aussi natif ou
\textit
{
bare-metal
}
\item
\textbf
{
Type 1
}
, appelé aussi natif ou
\textit
{
bare-metal
}
...
@@ -81,12 +78,12 @@ distincts :
...
@@ -81,12 +78,12 @@ distincts :
\begin{itemize}
\begin{itemize}
\item
Un hyperviseur de type 2, à l'inverse d'un type 1, est hébergé
\item
Un hyperviseur de type 2, à l'inverse d'un type 1, est hébergé
par le système d'exploitation natif de la machine. Ce
\acrshort
{
vmm
}
par le système d'exploitation natif de la machine. Ce
\acrshort
{
vmm
}
se concr
e
tise sous forme de
processus régis par l'
\acrshort
{
os
}
,
se concr
é
tise sous forme de
sous-système du noyau régis par
cependant il partage le même niveau de privilège que le noyau,
l'
\acrshort
{
os
}
, il partage, de ce fait, le même niveau de
notamment afin d'accéder au
\acrshort
{
cpu
}
pour virtualiser
privilège que le noyau. Ceci est nécessaire notamment afin
celui-ci entre plusieurs
\acrshort
{
vm
}
s.
\acrshort
{
kvm
}
ainsi
d'accéder au
\acrshort
{
cpu
}
pour virtualiser celui-ci entre
que VirtualBox de Oracle sont des exemples d'hyperviseurs
plusieurs
\acrshort
{
vm
}
s.
\acrshort
{
kvm
}
ainsi que VirtualBox
de type 2.
de
Oracle sont des exemples d'hyperviseurs de
type 2.
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
...
@@ -117,12 +114,10 @@ système inefficaces.
...
@@ -117,12 +114,10 @@ système inefficaces.
Selon la définition du
\acrshort
{
nist
}
\cite
{
editor
_
rootkit
_
nodate
}
, un
Selon la définition du
\acrshort
{
nist
}
\cite
{
editor
_
rootkit
_
nodate
}
, un
\textit
{
rootkit
}
\footnote
{
Logiciel malveillant furtif
}
est un ensemble d'outils
\textit
{
rootkit
}
\footnote
{
Logiciel malveillant furtif
}
est un ensemble d'outils
permettant à un attaquant, après l'obtention d'un accès privilégié
permettant à un attaquant, après l'obtention d'un accès privilégié
(
i.e
.
\textit
{
root
}
) sur le système ciblé, de conserver cet accès, effectuer de
(
c-à-d
.
\textit
{
root
}
) sur le système ciblé, de conserver cet accès, effectuer de
la surveillance ainsi que d'exfiltrer des données sensibles tout en restant
la surveillance ainsi que d'exfiltrer des données sensibles tout en restant
invisible du point de vue de la victime.
invisible du point de vue de la victime. Divers types de
\textit
{
rootkit
}
s
existent cependant ceux-ci peuvent être regrouper en deux grandes familles :
Divers types de
\textit
{
rootkit
}
s existent cependant ceux-ci peuvent être
regrouper en deux grandes familles :
\begin{itemize}
\begin{itemize}
\item
\textit
{
User mode
}
\item
\textit
{
User mode
}
...
@@ -145,7 +140,7 @@ regrouper en deux grandes familles :
...
@@ -145,7 +140,7 @@ regrouper en deux grandes familles :
plus néfastes du fait qu'il s'exécute avec le même niveau de
plus néfastes du fait qu'il s'exécute avec le même niveau de
privilège que le noyau du système d'exploitation. Ceci sont
privilège que le noyau du système d'exploitation. Ceci sont
souvent élaborés sous forme de pilotes malveillants (Windows)
souvent élaborés sous forme de pilotes malveillants (Windows)
ou bien de module noyau (GNU/Linux). Ce type de logiciels
ou bien de module
s
noyau (GNU/Linux). Ce type de logiciels
malveillants s'exécutant au niveau du noyau peuvent avoir un
malveillants s'exécutant au niveau du noyau peuvent avoir un
accès sans restriction à la mémoire utilisées par des processus
accès sans restriction à la mémoire utilisées par des processus
en mode utilisateur, modifier la table des appels systèmes afin
en mode utilisateur, modifier la table des appels systèmes afin
...
@@ -159,7 +154,7 @@ regrouper en deux grandes familles :
...
@@ -159,7 +154,7 @@ regrouper en deux grandes familles :
\section
{
État de l'art
}
\section
{
État de l'art
}
Au tournant des années 2000, une approche avant-gardiste d'implémentation de
Au tournant des années 2000, une approche avant-gardiste d'implémentation de
\textit
{
rootkit
s
}
s a émergé. Celle-ci se base sur l'utilisation d'un hyperviseur
\textit
{
rootkit
}
s a émergé. Celle-ci se base sur l'utilisation d'un hyperviseur
dans le but de
\textbf
{
subvertir
}
l'
\acrshort
{
os
}
hôte du système. De ce fait,
dans le but de
\textbf
{
subvertir
}
l'
\acrshort
{
os
}
hôte du système. De ce fait,
le système d'exploitation
\say
{
natif
}
se retrouvait cantonner dans une machine
le système d'exploitation
\say
{
natif
}
se retrouvait cantonner dans une machine
virtuelle et par conséquent se voyait retirer son niveau de privilège maximale
virtuelle et par conséquent se voyait retirer son niveau de privilège maximale
...
@@ -186,12 +181,12 @@ exécutant Windows XP comme \acrshort{os} natif. Pour cet hôte, ils installent
...
@@ -186,12 +181,12 @@ exécutant Windows XP comme \acrshort{os} natif. Pour cet hôte, ils installent
l'état du
\acrshort
{
vmbr
}
au début de la première partition utilisée et relogent
l'état du
\acrshort
{
vmbr
}
au début de la première partition utilisée et relogent
les données contenus à cet endroit vers d'autres blocs inutilisés sur le disque.
les données contenus à cet endroit vers d'autres blocs inutilisés sur le disque.
L'étape suivante du virus consiste à modifier la séquence de démarrage du
L'étape suivante du virus consiste à modifier la séquence de démarrage du
système hôte. Les auteurs du papier mettent en avant le fait que les anti
-
virus,
système hôte. Les auteurs du papier mettent en avant le fait que les antivirus,
même ceux de l'époque, peuvent détecter des modifications effectuées au
même ceux de l'époque, peuvent détecter des modifications effectuées au
\acrshort
{
mbr
}
\footnote
{
Enregistrement d'amorçage maître
}
. Afin de ne pas
\acrshort
{
mbr
}
\footnote
{
Enregistrement d'amorçage maître
}
. Afin de ne pas
être détecté par ces logiciels préventifs, la manipulation des blocs liés à la
être détecté par ces logiciels préventifs, la manipulation des blocs liés à la
zone d'amorçage se fait lors des ultimes phases de l'extinction du système
zone d'amorçage se fait lors des ultimes phases de l'extinction du système
lorsque la majorité des sous-systèmes du noyau, notamment les anti
-
virus, ont
lorsque la majorité des sous-systèmes du noyau, notamment les antivirus, ont
terminé leur exécution. Toujours dans le cas de Windows XP, dans leur
terminé leur exécution. Toujours dans le cas de Windows XP, dans leur
\say
{
module noyau
}
les auteurs enregistrent une routine de gestion d'événements
\say
{
module noyau
}
les auteurs enregistrent une routine de gestion d'événements
du nom de
\verb
|
LastChanceShutdownNotification
|
. Lorsque celle-ci est appelée
du nom de
\verb
|
LastChanceShutdownNotification
|
. Lorsque celle-ci est appelée
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment