Prechádzať zdrojové kódy

Corrections et reformulations

Alexandre Janniaux 6 rokov pred
rodič
commit
3badad7a73

+ 12 - 11
chapters/thanks.tex

@@ -1,12 +1,13 @@
 \textit{Avant le début de ce rapport, je tiens à remercier l'ensemble des
-membres de l'entreprise VideoLabs, m'ayant apporté une expérience très
-accueillante lors de mon stage. Je souhaite tout particulièrement remercier
-Jean-Baptiste Kempf, Simon Latapie, Adrien Maglo et Thomas Guillem pour leur
-encadrement sans faute, mais aussi Pierre Lamot et Romain Vimont pour leur aide
-sur la mise en place des projets que j'ai conduits. J'aimerais également
-mentionner les discussions avec les communautés de Libtorrent, NaN,
-Zestedesavoir et Rezel qui m'ont guidés vers des solutions lorsque j'étais
-bloqué. Enfin je dois mentionner Matthieu Buffer qui m'a sensiblement guidé dans
-la réalisation de la sandbox, particulièrement pour toutes les questions de
-sécurité. La liste ne serait finalement pas exhaustive sans l'ensemble des
-personnes ayant relu ce travail.}
+membres de l'entreprise VideoLabs pour leur accueil chaleureux et pour m'avoir
+apporté une expérience enrichissante lors de mon stage. Je souhaite tout
+particulièrement remercier Jean-Baptiste Kempf, Simon Latapie, Adrien Maglo et
+Thomas Guillem pour leur encadrement et leur implication, mais aussi Pierre
+Lamot et Romain Vimont pour leur aide sur la mise en place des projets que j'ai
+conduits.  J'aimerai également mentionner les discussions avec les communautés
+de Libtorrent, NaN, Zestedesavoir et Rezel qui m'ont guidé vers des solutions
+lorsque j'étais bloqué. Enfin je dois mentionner Matthieu Buffer qui m'a
+sensiblement guidé dans la réalisation de la sandbox, particulièrement pour
+toutes les questions de sécurité. La liste ne serait finalement pas exhaustive
+sans l'ensemble des personnes ayant relu ce travail, en particulier Kamélia
+Daudel pour son attention constante le long de son écriture.}

+ 8 - 8
chapters/vlc_introduction.tex

@@ -19,14 +19,14 @@ En second lieu, je ferai une présentation technique simple du fonctionnement
 interne de VLC pour couvrir les besoins des autres parties tout en mentionnant
 des points d'attentions pour l'implémentation de la sandbox.
 
-En troisème partie, je mettrai en avant mes recherches et les mécanismes que j'ai
-mis en place pour intégrer incrémentalement une architecture multi-processus au
-sein de VLC. La finalité de l'intégration de cette architecture est d'apporter
-du «sandboxing» dans VLC, terme qui sera décrit dans ladite partie. Il
-s'agissait de la mission centrale de mon stage donc une grande attention sera
-portée à détailler le contexte, les problématiques à résoudre lors de son
-intégration, les difficultés rencontrées et les points à améliorer, de façon à
-offrir une trace réutilisable pour la compréhension du travail.
+En troisème partie, je mettrai en avant mes recherches et les mécanismes que
+j'ai mis en place pour intégrer incrémentalement une architecture
+multi-processus au sein de VLC. La finalité de l'intégration de cette
+architecture est d'apporter du «sandboxing» dans libvlc. Il s'agissait de la
+mission centrale de mon stage donc une grande attention sera portée à détailler
+le contexte, les problématiques à résoudre lors de son intégration, les
+difficultés rencontrées et les points à améliorer, de façon à offrir une trace
+réutilisable pour la compréhension du travail.
 
 En quatrième partie, je détaillerai tout particulièrement l'implémentation Linux
 et les solutions techniques pratiques liées aux points évoqués dans la partie

+ 5 - 4
chapters/what_is_sandboxing.tex

@@ -89,7 +89,8 @@ sans pour autant que ce jeton soit forgeable.
 
 Les jetons d'accès, ou plus couramment «capabilities», constituent l'une des
 meilleures méthodes de description des accès et évitent des problématiques comme
-le «confused deputy problem» \cite{ConfusedDeputy} dans la littérature. La comparaison entre
-l'implémentation Linux et les tentatives d'implémentation sous Windows vont
-révéler cette nature dans la suite. Nous tenterons tout particulièrement de
-concevoir l'API entre nos processus avec de tels objets \cite{ObjectsAsCaps}.
+le «confused deputy problem» \cite{ConfusedDeputy} dans la littérature. La
+comparaison entre l'implémentation Linux et les tentatives d'implémentation sous
+Windows vont révéler ceci dans la suite, Linux permettant bien plus facilement
+de construire ces jetons. Nous tenterons tout particulièrement de concevoir
+de tels objets pour décrire l'API entre nos processus\cite{ObjectsAsCaps}.

+ 26 - 25
chapters/why_sandboxing.tex

@@ -30,6 +30,32 @@ noyau du système et des API de sandboxing, soit parce que le code n'est pas
 suffisamment robuste ou suffisamment découplé de l'application. Il faut donc
 mettre une attention particulière à la vérification des mesures mises en place.
 
+\section{Exemples d'attaques}
+
+Si les objectifs et besoins décrits au dessus paraissemt trop théorique, il est
+possible de prendre des exemples de la vraie vie pour se convaincre d'avoir
+besoin de ces mesures. L'exemple le plus connu de sandbox intrusive est celle
+de Chromium, qui s'appelle lui-même «The Most Secure Browser.» Le développement
+de Chromium est basé depuis ses commencements sur un modèle de sandbox.
+L'application a donc dès le départ été écrite avec l'isolation des modules en
+tête. Plusieurs exemples d'attaques ont été montrées, comme celle de TODO:Xxxx
+utilisant des techniques de fuzzing pour trouver un déréférencement de pointeur
+invalide dans l'optimisation Just-In-Time du moteur javascript qui tourne dans
+un processus «Renderer» plus ou moins dédié à l'onglet. Les failles peuvent
+ainsi toujours exister, mais restent confinées au contenu apportant leur
+exploitation.
+
+TODO: lien
+
+Malheureusement tout n'est pas complètement pensé pour la sécurité et une des
+fonctionnalités qui était activée par défaut sur quelques distributions Linux
+permettait à un site de faire télécharger un fichier sans l'accord de la
+personne. Or, pour les personnes utilisant Gnome ou KDE, un tracker de fichier
+tourne en tâche de fond afin d'indexer les métadonnées des fichiers, en
+particulier des images et vidéos. Ces trackers utilisent la plupart du temps
+directement GStreamer ou ImageMagik pour pouvoir parser les fichiers et extraire
+les métadonnées.
+
 \section{Dans VLC}
 
 % TODO expliquer ce qu'est une CVE
@@ -59,28 +85,3 @@ C'est d'autant plus vrai lorsque la libvlc, qui utilise directement ces
 modules, peut être utilisée dans d'autres applications potentiellement plus
 critiques.
 
-\section{Exemples d'attaques}
-
-Si les objectifs et besoins décrits au dessus paraissemt trop théorique, il est
-possible de prendre des exemples de la vraie vie pour se convaincre d'avoir
-besoin de ces mesures. L'exemple le plus connu de sandbox intrusive est celle
-de Chromium, qui s'appelle lui-même «The Most Secure Browser.» Le développement
-de Chromium est basé depuis ses commencements sur un modèle de sandbox.
-L'application a donc dès le départ été écrite avec l'isolation des modules en
-tête. Plusieurs exemples d'attaques ont été montrées, comme celle de TODO:Xxxx
-utilisant des techniques de fuzzing pour trouver un déréférencement de pointeur
-invalide dans l'optimisation Just-In-Time du moteur javascript qui tourne dans
-un processus «Renderer» plus ou moins dédié à l'onglet. Les failles peuvent
-ainsi toujours exister, mais restent confinées au contenu apportant leur
-exploitation.
-
-TODO: lien
-
-Malheureusement tout n'est pas complètement pensé pour la sécurité et une des
-fonctionnalités qui était activée par défaut sur quelques distributions Linux
-permettait à un site de faire télécharger un fichier sans l'accord de la
-personne. Or, pour les personnes utilisant Gnome ou KDE, un tracker de fichier
-tourne en tâche de fond afin d'indexer les métadonnées des fichiers, en
-particulier des images et vidéos. Ces trackers utilisent la plupart du temps
-directement GStreamer ou ImageMagik pour pouvoir parser les fichiers et extraire
-les métadonnées.

+ 1 - 2
chapters/windows_ipc.tex

@@ -21,8 +21,7 @@ mais ne fournissent pas de sockets locaux ou anonymes.  Ceux-ci passent par la
 pile réseau pour l'envoi de message. On notera cependant l'implémentation de
 «TCP Loopback Fast Path» depuis Windows Server 2012. Cette fonctionnalité
 conserve la sémantique du protocole TCP tout en désactivant des fonctionnalités
-comme l'algorithme de Nagle.
-\footnote{\url{https://blogs.technet.microsoft.com/wincat/2012/12/05/fast-tcp-loopback-performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast-path/}}
+comme l'algorithme de Nagle. \cite{WindowsFastTCPLoopback}
 C'est donc ce qui ressemble le plus aux sockets Unix, excepté l'accès au réseau
 et le passage de descripteur de fichiers.