Beruflich Dokumente
Kultur Dokumente
Bastien DUFOUR
Adrien GONZALEZ
Introduction 2
Conclusion 19
Bibliographie 20
1
Introduction
Très tôt dans son histoire, l’Homme a trouvé des moyens d’inscrire ses pensées et
ses découvertes dans le temps : dessin, gravure, écriture, imprimerie et enfin informatique.
Les politiques de sécurité ont dû s’adapter à ces évolutions, devant imaginer un nombre
croissant de parades à l’altération des documents.
Nous verrons par la suite certains types de documents concernés par ces problèmes,
puis nous parlerons des différentes vulnérabilités qui leurs sont propres.
Nous exposerons ensuite une contre-mesure permettant de limiter les risques
encourus lors de l’utilisations de documents électroniques provenant d’un milieu l’extérieur.
Pour finir nous aborderons une possible perspective de détection de documents
électroniques malveillant.
2
I. Documents électroniques : généralités et
spécificités
Enfin, l’un des principaux problème que nous allons rencontrer est aussi une grande
qualité des documents électroniques : c’est leur intelligence croissante.
En effet ils sont de moins en moins statiques et peuvent par exemple permettre de remplir
un formulaire ou encore de faire appel à des fonctions, et ce sont ces mêmes fonctionnalités
qui seront exploitées par des individus mal intentionnés, par exemple pour introduire
subrepticement un code source malveillant dans un document.
De plus les formats et supports utilisés doivent être régulièrement contrôlés car
l’évolution technologique et le temps peuvent rendre obsolètes,vulnérables ou illisibles les
données.
3
Si une seule de ces couches est compromise, la sécurité du document complet l’est
également [7]. Il faut donc mettre en place des mécanismes de protection à toutes les
échelles pour se prémunir des attaques.
En effet, les supports d’information ont évolué avec l’humanité, allant des murs des
cavernes au papier en passant par les tablettes d’argiles. De même, les documents
électroniques, supports de l’information numérique évoluent. Ils ont donné naissance à une
multitude de formes : documents textuels, images, bases de données…
Chacune de ses formes est constitué de différents formats, ayant chacun des
spécificités qui leurs sont propres. Ce sont ces spécificités qui ont donné naissance aux
différentes vulnérabilités des documents électroniques. En effet, connaissant la grande
diversité de formats existants, on réalise à quel point il est difficile d’assurer la sécurité de
chacun.
Bien sûr cette difficulté est renforcée par le fait que les formats évoluent, comme on
l’a dit précédemment, et qu’il faut donc sans cesse s’adapter.
Le format est un mot-clé très important, car c’est la convention qui va définir les
règles d’interprétation, d’enregistrement, d’échange et de présentation de données binaires :
c’est donc le principal vecteur de vulnérabilités des documents.
A noter qu’un format peut être mis au point par un organisme privé ou un organisme de
normalisation : on parlera respectivement de format propriétaire ou standard.
4
Une autre caractéristique sépare les formats en deux autres catégories [8] :
5
II. Quelques attaques connues
Il est aujourd’hui commun de créer ou de lire des données grâce à des logiciels tels
que : Word, LATEX, Adobe Reader. Malheureusement il est très compliqué de créer des
logiciels n’ayant aucune faille et c’est un fait trop peu connu de la conscience collective. Le
“commun des mortels” pense être en sécurité en manipulant des fichiers textes par exemple
puisqu’ils ne contiennent à première vue pas de code exécutable et ne semble pas pouvoir
interagir pas leurs propres moyens avec le reste de l’ordinateur. Cependant cette idée reçue
est fausse: la preuve en est qu’en 2009, 80% des failles informatiques ont été réalisées par
le biais de documents pdf [1]. Nous allons voir dans cette partie certaines failles contenues
dans des logiciels ou formats qui permettent l’écriture ou la lecture de documents
électroniques.
6
Ici cela n’a pas de conséquence car le fichier créé est inoffensif mais il est facile
d’imaginer que ce fichier pourrait être remplacé par un fichier exécutable malveillant qui
pourrait ensuite être exécuté en exploitant une autre faille.
Cette faille de sécurité est déjà assez importante mais elle peut être amplifiée par
l’utilisation d’un logiciel contenant lui-même une vulnérabilité. MikTex est un logiciel de
Window XP qui en 2011 a permis une faille de sécurité conséquente. En effet il ne
comprenait pas de restriction d’écriture ou de lecture au dossier et sous dossier où se trouve
le fichier .tex [4]. Ceci permet donc d’écrire par exemple un Script Java dans le dossier où
se trouvent les programmes s'exécutant à chaque redémarrage. Ce script pourra par
exemple avoir pour fonction de propager le malware sur son réseau local ce qui permet au
final d’avoir la possibilité de créer un réseau de botnet [4]. On pourra voir le cycle de vie de
ce virus sur la figure 2.1.
7
2. Injections XXE
De nos jours, notre relation avec internet est plus étroite que jamais. C’est un outil
que nous utilisons tous quotidiennement que ce soit pour des besoins personnels ou
professionnels. On peut dire sans prendre de risques que la grande majorité des entreprises
possèdent un site internet qui aura une fonction plus ou moins importante allant de la
communication à la vente de produits/services.
Cependant même si le fait d’avoir un site en ligne peut paraître inoffensif c’est parfois
tout à fait l’inverse : cela peut devenir un point d’entrée vers des informations sensibles ou
une possibilité de perturbation du site lui-même.
Les sites qui sont affichés par notre moteur de recherche sont en fait tout simplement
des documents électroniques : plus précisément des documents HTML ou XHTML. Des lors
qu’il y a du XML il y a la présence d’un XML Parser qui permet de créer un document
XHTML à partir d’un document XML[12]. C’est à partir de ces Parser qu’une faille va pouvoir
être utilisée, en abusant d’une de leurs fonctionnalités.
Les XML sont liés à des documents DTD qui vont déterminer les règles auxquels ils
doivent répondre pour être valides.Tout le problème est que ces documents peuvent être
écrits de manière externe puis liés au document XML qui sera traité par le XML Parser[12].
Voici un exemple de document DTD externe qui est associé grâce à une requête
POST au document XML sur le site suivant : http://example.com/xml HTTP/1.1
Ici le serveur distant reconnaît maintenant la variable bar que nous avons définit en
tant que la chaîne de caractère “World”.
Cela semble inoffensif cependant si le XML Parser ne limite pas l’espace mémoire qu’il est
capable d’utiliser cette faille permet de créer un dénis de service. On pourra en effet créer
8
des entités dans des entités et surcharger le serveur en rendant sa réponse trop
conséquente[12].
figure 2.3 : Exemple d’une attaque pouvant créer un dénis de service [12]
Cependant cette faille permet bien plus que de demander au serveur d’afficher une
réponse conséquente. En effet on peut aussi lui demander d’afficher des données
auxquelles lui seul à accès car elles sont pour les autres protégées par un pare-feu. Ce type
d’attaque est appelé Server-side Request Forgery attack (SSRF). Voici un schéma explicatif:
9
figure 2.5 : Schéma du résultat d’une injection XXE [12]
Si on définit la variable bar en donnant le chemin vers un fichier, le fichier passwd par
exemple, on pourra alors récupérer son contenu. Dans cet autre exemple, on récupère le
contenu du fichier lsb-release:
10
3. Portable Document Format
Le but premier du Portable Document Format (PDF) est de permettre aux personnes
de s’échanger et d’utiliser des documents électroniques de manière libre et sans contraintes.
De part sa réputation fiable et sûre, le format PDF est un format qui à l’heure actuelle est
très utilisé notamment dans le secteur professionnel. Ce dernier point nous amène à notre
sujet car de part sa forte utilisation et son image de document sûr, il représente un grand
danger. En effet, peu de personnes se méfient d’un document au format PDF. Il est alors
possible d’arriver à véroler ces documents grâce à des attaques, que nous allons aborder
par la suite, dans le but de les transmettre à des personnes qui les ouvriront sans se soucier
des risques.
“Les documents PDF sont des documents binaires [...] ce qui leurs permet d’être plus
facilement transportables et d’éviter toute perte de données.”[9] Il sont notamment structurés
d’une certaine manière qui est commune à tous les documents PDF.
Il est important de savoir que, bien que le langage PDF soit un langage qui n’utilise
pas les structures de contrôle au sein de son code [9], il est possible d’utiliser certaines de
ses fonctions à des fins malveillantes. Nous ne les aborderons pas toutes (car il en existe un
nombre important) mais tenterons simplement de cerner les moyens qui permettent de
compromettre un document au format PDF.
Une des plus grosses vulnérabilités du langage PDF provient de la fonction launch
[9]. En effet, cette fonction permet d’exécuter des actions sur le système d’exploitation
comme son nom le suggère. Les possibilités pour utiliser cette fonction de manière
malintentionnée sont très variées et peuvent aller de la simple farce jusqu’au vol de données
ou à l'exécution de code malveillant qui, comme on le sait, peut s’avérer destructeur pour un
ordinateur.
11
Une autre fonction intéressante est la fonction javascript. Elle permet lors de
l’ouverture d’un PDF d'exécuter un fichier Javascript [9], c’est un langage qui propose
beaucoup de fonctionnalités et donc beaucoup de possibilités en termes d’actions
malveillantes. Cette fonction peut notamment permettre de contourner certains systèmes
mis en place pour assurer la sécurité sur les ordinateurs [9] ce qui le rend très intéressant
pour les attaques.
Dans l’exemple de la figure 2793, l’utilisation de la fonction javascript sert à ouvrir une
fenêtre de discussion [9] ce qui est assez inoffensif. Cependant en sachant que le Javascript
est un langage qui fournit un grand nombre de possibilités en terme d'action, il est facile
d’imaginer qu’il est possible d’utiliser cette fonction de manière malintentionnée.
Il est évident qu’il existe des mécanismes de sécurité pour éviter à un utilisateur de
subir une attaque via un PDF. C’est le cas d’un système qui fait en sorte qu’une fenêtre
d’avertissement s’ouvre pour demander si l’utilisateur est sûr de vouloir lancer le code qui
pourrait être malintentionné [9]. Malheureusement, certains moyens permettent de
contourner cette sécurité comme le prouve Didier Stevens en changeant directement le
message affiché dans la fenêtre d’avertissement par un autre message incitant à accepter
l'exécution du programme malveillant [5].
12
III. Contre mesure associée : les certificats
numériques
Pour ce genre d’activités, il est absolument nécessaire que les différentes parties en
présence aient la possibilité de s’identifier mutuellement. En effet la dématérialisation
accélérée des échanges pose de nouveaux problèmes de confiance, car il devient difficile
d’être sûr à cent pour cent de la personne à qui on a à faire, ce qui soulève d’importantes
questions juridiques sur l’identification (“communiquer une identité préalablement
enregistrée”) et l’authentification (“rapporter la preuve de son identité par le biais d'une
vérification”) [3] dématérialisation et traçabilité.
13
Ainsi les messages peuvent être signés de la manière suivante [2]
Cependant encore une fois, pour que la vérification soit possible, il est impératif que
le destinataire ait la clé publique de l’émetteur. A grande échelle il ne peut pas lui fournir
personnellement et en général, il l’envoie donc en même temps que le message.
Malheureusement, il est maintenant question de vérifier que la clé est bien celle de
l’émetteur, ce qui est difficilement faisable.
On se rend bien compte ici que l'existence d’une “autorité externe, fiable, permettant
de certifier la clé publique fournie par l’émetteur d’un message” est nécéssaire[2].
L’obtention d’un tel certificat est assez simple, il suffit pour l’utilisateur de générer une
bi-clé puis d’envoyer un formulaire et la clé publique à l’autorité de certification qui accorde
ou non l’obtention du certificat. La fonction de gestion des certificats va ensuite générer ce
certificat puis le signer et notifier l’utilisateur de la réussite du processus.
14
On pourrait ici se poser la question de la vérification de l’autorité de certification mais
nous n’entrerons pas dans ces détails. Il faut simplement savoir que les autorités de
certifications sont elles mêmes certifiées par une autorité supérieure ou par certification
croisée[2].
Ainsi, cette contre mesure permet d’assurer l’intégrité d’un document ainsi que
l’authentification de son émetteur avec une grande fiabilité.
15
IV. Perspective
Un type de système pouvant répondre à ces attentes à l’heure actuelle est le réseau
de neurones informatique. Le principe de ce système est complexe dans son
fonctionnement mais reste assez simple à comprendre. Il s’inspire directement du
fonctionnement du cerveau humain avec ses milliards de neurones interconnectés les uns
aux autres permettant de traiter des informations complexes et surtout d’acquérir une notion
d’apprentissage.
Ci-dessus, on retrouve le modèle d’un neurone artificiel ainsi que les éléments pour
comprendre son fonctionnement. En effet, un neurone artificiel est un élément qui va
prendre plusieurs informations en entrée et qui, à l’aide d’un intégrateur va en faire une
16
somme pondérée. Ce résultat nommé n sur la figure sera soumis à une fonction de transfert
et le résultat de cette opération sera la sortie du neurone artificiel [10].
Une fois ce fonctionnement compris, notre but est donc de proposer un système de
réseau de neurones capable de prendre en entrée un document électronique spécifique et
de détecter si celui-ci est vérolé ou non. Pour arriver à cette étape finale, il est nécessaire de
passer par une étape d’apprentissage durant laquelle le but sera de faire comprendre à
notre système les éléments caractéristiques d’un document vérolé.
17
Cette phase d’apprentissage du système est très importante car c’est d’elle dont va
dépendre la performance du système final. Avant toute chose, il est important de préciser la
définition de la notion d’apprentissage qui va le mieux coller au contexte d’un réseau de
neurones artificiels. La définition proposées est donc la suivante :
Dans notre cas, l’apprentissage se fera donc en injectant des documents sains et
des documents vérolés dans notre système et de regarder la sortie de ce dernier pour voir
son analyse. Si il se trompe, il faudra analyser pourquoi il s’est trompé et modifier en
réaction les poids de certaines entrées de neurones dans le système afin de rendre le
système le plus performant possible [10].
18
Conclusion
Nous avons pu voir au début de ce rapport que nos vies sont de plus en plus
dépendantes de l'informatique et que nous construisons bon nombre de choses à partir de
documents électroniques. De ce fait et du fait que l’informatique est encore jeune et
imparfaite, il en vient sans surprise que cela pose des problèmes de sécurité, autant pour
des particuliers que pour des entreprises. En effet nombreux sont les types de fichiers que
nous considérons par défaut comme sans dangers alors qu’ils sont en fait des vecteurs de
virus importants. Ce manque de conscience général cela les rend d’autant plus dévastateurs
car leur propagation devient aisée. Il est en effet facile de piéger une personne aléatoire en
lui envoyant un pdf vérolé, un fichier latex à compiler ou bien de causer du tort à une
entreprise dont le site internet manque de protection.
Ce ne sont que quelques failles parmis un grand nombre mais cela laisse imaginer
le domaine du possible quand on est mal intentionné et bien formé. Pour se protéger contre
tout ceci la société évolue et fait évoluer internet avec elle, on pourra citer notamment les
certificats numériques qui apportent de l’information sur la provenance et l’intégrité d’un
fichier. Cependant il reste difficile de lutter contre le manque de sûreté des documents
électroniques car ils sont tous différents et donc possèdent des failles différentes ainsi que
des réactions spécifiques. Devant la difficulté et la complexité de cette tâche on peut
imaginer combattre le feu par le feu et reléguer cette tâche de détection de virus à
l’intelligence artificielle.
19
Bibliographie
[1]
Hovav Shacham, Eric Rescorla, et Steve Checkoway, « Don’t take LATEX files from
strangers ». 06-avr-2011. URL :
https://pdfs.semanticscholar.org/4f64/f88522c3bda3818a160183c8db38db501eeb.pdf.
[5]
[6]
20
[7]
[10]
[11]
21