Aujourd'hui, les périphériques USB se multiplient, et en
particulier, les périphériques de stockage que l'on appelle désormais couramment
"clés USB" (ou aussi "memory sticks"). Ce type de "clé"
est devenu très courant, aussi bien dans le cadre professionnel que personnel.
Elle est très mobile : elle suit l'utilisateur et se branche sur tous les
ordinateurs auquels ce dernier à accès (au bureau, à la maison, à l'occasion de
présentations, dans un cyber-café, etc…).
En fait, ce type de périphérique présente des dangers, que nous
détaillons ici en nous intéressant successivement :
- au
cas où l'on cherche à attaquer la clé,
- puis
au cas où la clé est utilisée pour attaquer le poste de travail sur lequel
elle est branchée.
Nota : fondamentalement, les dangers exposés ici sont
similaires à ceux que l'on a connu du temps des disquettes, mais cette fois à
un échelle de grandeur bien supérieure.
La clé menacée
Le premier danger pour une clé USB est qu'elle peut
facilement être perdue (ou volée). Si elle contient des données sensibles, alors
ces données sont à la disposition de celui qui trouve ensuite la clé.
De même, le contenu de la clé peut être subtilisé au moment
où la clé est branchée sur un ordinateur étranger. Par exemple, il suffit que sur
ce poste étranger ait été installé une application comme "USB Dumper"
(application présentée en juin 2006 lors de la conférence française SSTIC),
pour qu'ensuite, à chaque fois qu'une clé USB est insérée dans la machine, le
contenu intégral de la clé soit recopié sur le disque dur du poste.
Les données placées sur une clé USB sont donc très exposées
au vol et il est donc fortement recommandé de les protéger en les stockant sur
la clé uniquement sous forme chiffrée. Une solution simple peut être par exemple
de stocker les documents sensibles dans un simple fichier "ZIP"
protégé par mot de passe. Si cette solution n'est pas la plus robuste (il
existe des logiciels de "cassage" des mots de passe ZIP) elle a
l'intérêt d'être simple à mettre en œuvre, presque universelle (il est rare de
trouver un ordinateur qui ne dispose pas d'un logiciel de type
"WinZip"), et non trivialement contournable si le mot de passe choisi
pour l'archive ZIP n'est pas trop simple (typiquement, un mot de passe de 12
caractères ne pourra pas être "cassé" facilement). Bien sûr cette
solution simple n'est adaptée que pour les "petits secrets
ordinaires", les "gros secrets" méritant eux un chiffrement plus
robuste.
Nota : Certaines clés USB sont vendues avec un logiciel
permettant de protéger le contenu de la clé. La robustesse de cette protection est à
évaluer au cas par cas (il s'agit de solutions "propriétaires").
Un autre aspect préoccupant avec les clés USB est qu'il
n'est pas toujours possible d'effacer de façon sure un fichier préalablement stocké
sur une clé. En effet, avec certains types de clés, les logiciels d'effacement
sécurisés (logiciels de "wiping" qui écrasent les données en écrivant
de multiple fois par-dessus) ne sont pas efficaces car ces clés utilisent un
algorithme de "wear-levelling" pour maximiser la durée de vie de la clé. Un bloc mémoire sur
une clé USB ne pouvant être écrit qu'un nombre fini de fois (par exemple 10 000
fois), l'algorithme de "wear-levelling" limite cet effet d'usure en changeant
l'emplacement attribué à un bloc mémoire à chaque fois que ce bloc est écrit
Dans ce cas, écrire plusieurs fois sur le même bloc mémoire (pour le
"wiper") n'a donc pas l'effet prévu (puisque ce n'est pas le même
bloc physique qui est écrasé à chaque écriture). Ici encore, le chiffrement
nous parait une solution appropriée, puisqu'il n'y a pas nécessité d'effacer de
façon sure un fichier chiffré.
Nota : A notre connaissance, il n'existe pas de moyen de
savoir si une clé implémente ou non le "wear-levelling".
La clé malicieuse
Ce second cas de figure correspond au cas où la clé est
cette fois utilisée pour attaquer le poste sur lequel elle est branchée.
Une première façon de réaliser ce type d'attaque est de
placer sur la clé un fichier infecté (cela peut être fait manuellement par une
personne malveillante, ou automatiquement par un virus), puis d'attendre que la
clé soit branchée sur un nouvel ordinateur et que le fichier infecté soit exécuté.
Ce principe peut sembler simpliste, mais pourtant le risque d'une telle attaque
est réel.
Une banque américaine a fait réaliser une expérimentation
(cf. l'article cité ci-dessous à la rubrique "pour plus d'information")
qui a consisté à abandonner vingt clés infectées à des endroits fréquentés par
les employés de la
banque. Quinze de ces clés ont été ramassées puis branchées
sur un ordinateur de l'entreprise. Plusieurs utilisateurs ont ensuite activé un
fichier malicieux présent sur la clé (ce fichier avait l'apparence d'une photo)
et ont ainsi involontairement infecté leur poste de travail.
Sur les ordinateurs n'ayant pas désactivé la fonction
"Autorun" (qui permet le lancement automatique des CD-ROM dès leur
insertion), il est aussi possible de rendre l'attaque plus efficace en
déclenchant automatiquement l'exécution du fichier malicieux dès l'insertion de
la clé USB. Normalement
la fonction "Autorun" ne fonctionne pas pour une clé USB (parce que celle-ci
est reconnue par Windows comme un disque amovible, et donc jugée non sure).
Cependant, il est possible de faire passer certaines clés USB pour un CD-ROM :
lorsque la clé est insérée, Windows voit alors cette clé comme étant un CD-ROM
(au lieu d'un disque amovible) et exécute automatiquement le fichier "autorun.inf"
présent sur la clé. Ceci
peut être réalisé très facilement avec les clés USB ayant le label
"U3". La norme "U3" permet d'embarquer sur des clés USB des
applications autonomes qui s'exécutent sur la clé. Les clés conformes
"U3" sont disponibles couramment depuis l'automne 2005, et depuis
l'été 2006 la méthode pour configurer une clé U3 en clé d'attaque a été
largement diffusée sur Internet.
Indépendamment de la fonction "Autorun", il est
aussi théoriquement possible de déclencher l'exécution automatique d'un code
malicieux présent sur la clé
USB si une faille dans les pilotes USB est découverte. Nous
qualifions ce risque de théorique parce qu'à notre connaissance aucune faille
concrète de ce type n'a encore été publiée, mais visiblement il existe des
recherches dans cet axe (cf. la présentation "CanSecWest 2005" citées
dans la rubrique "Pour plus d'information").
Pour limiter globalement cette seconde catégorie de risques,
nous recommandons de :
- considérer
comme suspect tout fichier inconnu trouvé sur une clé USB (et a fortiori
de considérer comme suspecte une clé USB que l'on vous prête).
- désactiver
la fonction "Autorun" de Windows (cf. le lien donné pour cet
aspect dans la rubrique "Pour plus d'information").
Pour plus
d'information