Affichage des articles dont le libellé est Truecrypt. Afficher tous les articles
Affichage des articles dont le libellé est Truecrypt. Afficher tous les articles

dimanche 4 avril 2010

L’authentification “pre-boot” n’est pas sans faille…

Un récent article de Joanna Rutkowska de Invisible Things décrivait comment récupérer le mot de passe utilisé pour l'authentification “pre-boot” avec TrueCrypt.

Voici une brève description du scénario d’attaque.

“Bertrand vient d’arriver à l’hôtel. Demain c’est le grand jour: la remise des prix attribués aux meilleurs vendeurs, et Bertrand en fait partie. Le lendemain, Bertrand laisse son PC éteint à l’hôtel, il traitera ses mails ce soir en rentrant. La femme de chambre profite de l’absence de Bertrand pour faire booter le PC sur sa clef USB afin de l’infecter. En rentrant Bertrand démarre son PC, entre le mot de passe de sa solution d’authentification et d’encryption “pre-boot”, saisie son mot de passe système et traite ses messages. Le lendemain matin Bertrand quitte l’hôtel comme à l’accoutumé en y laissant son PC éteint. La femme de chambre n’a plus qu’à faire booter le PC de Bertrand sur sa clef USB pour récupérer le mot de passe d’authentification et d’encryption “pre-boot”. Et Bertrand n’en sait rien! Il est maintenant simplement nécessaire d’”emprunter” le PC de Bertrand pour récupérer les informations souhaitées.”

Comme l’indique Joanna Rutkowska, TrueCrypt n’est pas la seule cible potentielle de ce type d’attaque.

Je n’ai pas résisté à l”envie de voir comment fonctionnait l’attaque dans un cas réel.

J’ai donc installé TrueCrypt sur mon PC portable et encrypté avec TrueCrypt ma partition système. En faisant cela lors du démarrage de mon PC, le mot de passe TrueCrypt m’est demandé pour permettre le lancement de mon Windows XP et la saisie de mon mot de passe système habituel.

Joanna Rutkowska dans son article nous fournit une image pour nous permettre de créer rapidement une clef USB bootable contenant l’exécutable pour récupérer le mot de passe de TrueCrypt. Mais j’ai personnellement rencontré quelques difficultés pour recréer cette image. Heureusement nous trouvons dans l’article d’Invisible Things le code source nous permettant de mieux comprendre l’attaque et de la reproduire avec quelques variantes.

Comme vous le savez déjà, si vous êtes un lecteur assidu de ce blog, je dispose d’une clef USB “bootable” avec Backtrack 3. Je vais donc simplement faire booter mon PC sur ma clef USB, puis lancer l’exécutable modifié et recompilé pour infecter TrueCrypt.

Après avoir copié le code source de l’exploit sur la clef USB et booté sur la clef, jetez un œil au répertoire qui contient le code source. Dans notre exemple:

> cd /mnt/sdb1/Misc/evilmaid/evilmaid-tc

snapshot3

Vous pouvez ensuite ouvrir avec votre éditeur préféré le fichier Makefile. On y trouve les commandes permettant de compiler notre exécutable. On note la présence d’un fichier “c” et d’un fichier “asm” qui contiennent le code de l’exploit. Le fichier “asm” est un fichier assembleur compilable avec nasm.

Vous pouvez alors compiler l’exécutable. Si vous rencontrez des difficultés avec le Makefile, vous pouvez exécuter les 3 lignes suivantes:

> nasm –f elf logger.asm

> gcc –m32 –c patch_tc.c

> gcc –m32 –o patch_tc patch_tc.o logger.o

Votre exécutable est alors patch_tc.

snapshot4

Puis allez dans le répertoire stick. Dans notre cas:

> cd /mnt/sdb1/Misc/evilmaid/stick/

snapshot2

On y trouve le script “shell” stage2 qui est le point d’entrée principal de l’exploit. Le fichier stage2 est à modifier dans notre contexte. Ouvrez le fichier avec votre éditeur préféré:

snapshot5

Les lignes suivantes sont à changer:

- On associe la variable BASE au répertoire dans lequel se trouve notre exécutable patch_tc. Dans notre cas:

BASE=/mnt/sdb1/Misc/evilmaid/evilmaid-tc

- On vérifie que le disque cible correspond bien à /dev/sda. C’est notre cas.

- On commente les lignes permettant de monter le répertoire contenant notre exécutable dans la fonction run_evilmaid

Notre clef est prête pour la mise en œuvre de l’exploit.

Sur le PC cible on boote sur la clef USB et on lance stage2. Ce script permet soit d’infecter le PC, soit de lancer un shell, soit de rebooter. On choisit de lancer notre exécutable. Le PC est alors infecté. On attend que notre utilisateur se soit de nouveau connecté à son PC puis on reboote sur la clef et on relance stage2. On obtient le résultat ci-dessous:

snapshot1

Le script détecte que le PC est déjà infecté et récupère alors le mot de passe. Dans notre cas le mot de passe est “ErtyErty”.

C’est gagné…!

Source: Evil Maid goes after TrueCrypt de Joanna Rutkowska. Merci à Matthias pour le lien vers le blog de Joanna Rutkowska!

Tags:

del.icio.us Tags: ,,,,, -

dimanche 10 janvier 2010

Protéger votre clef USB avec une carte à puce

Nous avons vu dans l'article précédent qu'il était possible de protéger sa clef USB en encryptant les données stockées sur la clef en utilisant un mot de passe.

Le mot de passe correspond à une authentification à 1 facteur (ce que je sais). Mais il est aussi possible de renforcer cette authentification en une authentification à 2 facteurs (ce que je possède et ce que je sais). Comment? Et bien tout simplement en utilisant une carte à puce.
Avec une carte à puce pour s'authentifier il est nécessaire d'avoir la carte à puce (ce que je possède) et de connaître le PIN code (ce que je sais). Ce type d'authentification correspond à ce que l'on appelle une authentification forte.
Dans l'article précédent nous avions utilisé TrueCrypt. Eh bien, TrueCrypt permet également d'utiliser une carte à puce à condition que l'on puisse communiquer avec elle en utilisant le protocole PKCS#11.



Qu'est-ce que PKCS#11?

PKCS#11 est une API définissant une interface générique pour périphérique cryptographique. La carte à puce est un périphérique cryptographique et les fabricants de carte ont implémenté cette API pour communiquer avec leurs propres cartes.

C'est la carte à puce de Gemalto (et plus précisément la carte .NET) que nous allons utiliser pour nous authentifier avec TrueCrypt.


Que faire pour communiquer avec la carte à puce Gemalto .NET en PKCS#11?

Il est nécessaire de se procurer une carte à puce (voir le site Web Store Gemalto à l'adresse suivante: http://store.gemalto.com/)

Puis on doit installer la librairie PKCS#11 que l'on peut télécharger à l'adresse suivante:
.NET PKCS#11 Library for Windows OS. Vous trouverez également à l'adresse suivante une documentation qui décrit comment utiliser la carte .NET dans un environnement Windows en utilisant PKCS#11 (Gemalto .NET Smart Cards PKCS#11 Library for Windows User Guide).

La librairie PKCS#11 est stockée sur la clef USB. Ce qui nous évite de devoir installer la librairie PKCS#11 sur chaque machine.

Comment paramétrer TrueCrypt pour utiliser une carte à puce ?
Comme dans l'article précédent, le fichier "protégé" est stocké sur la clef USB.


Vous trouverez ci-dessous les différentes étapes à suivre pour configurer TrueCrypt:
  • Settings / Security Tokens pour ajouter un accès PKCS#11à la carte à puce. Il est nécessaire de préciser le chemin permettant d'accéder à la librairie PKCS#11 de la carte Gemalto .NET

  • Volume password. On doit sélectionner "Keyfiles" pour permettre l'utilisation de la carte à puce. Le choix du mot de passe est alors facultatif.

  • Keyfiles... / Generate Random Keyfile... permet de générer un fichier au contenu aléatoire que nous allons ensuite stocker dans la carte à puce. C'est ce fichier qui sera nécessaire pour ouvrir le disque "protégé". L'accès à ce fichier ne sera permis que par la saisie d'un code PIN.

  • Keyfiles... / Add token Files permet de stocker le fichier sur la carte à puce. Dans notre cas le nom du fichier est smartcard_keyfile. Ce fichier doit ensuite être sélectionné pour apparaître dans la liste Keyfile sous la forme token://slot/0/file/smartcard_keyfile.

Comment utiliser votre disque "protégé" avec PStart?

Vous trouverez ci-dessous les différentes étapes à suivre pour configurer PStart:

  • Ouverture de votre disque "protégé" par carte à puce en utilisant les commandes en ligne de TrueCrypt. Il est nécessaire de configurer PStart pour ouvrir le disque "protégé" en utilisant la commande en ligne de TrueCrypt suivante:

TrueCrypt\TrueCrypt.exe /q /v smartcard_container /e /k token://slot/0/file/smartcard_keyfile /tokenlib \TrueCrypt\PKCS114NET\gtop11dotnet.dll

avec:

/v smartcard_container donne le nom du fichier "protégé" correspondant au disque

/tokenlib indique l'emplacement de la librairie PKCS#11 stockée sur la clef USB

/k indique l'emplacement du keyfile appelé smartcard_keyfile et stocké sur une carte à puce

Pour plus d'informations sur la configuration de PStart vous pouvez vous référer à l'article suivant: Transformer votre clef USB en bureau "mobile"! .

  • Saisie du PIN code pour permettre l'accès au disque "protégé"

  • Fermeture de votre disque "protégé"

Il est nécessaire de configurer PStart pour fermer le disque "protégé" en utilisant la commande en ligne de TrueCrypt suivante:

TrueCrypt\TrueCrypt.exe /q /d /f /s

Note: TrueCrypt en mode portable nécessite que l'utilisateur ait les droits "administrateur" sur sa machine. L'alternative consiste à installer TrueCrypt directement sur la machine de l'utilisateur.

Source: TrueCrypt Encryption Software est téléchargeable sur http://www.truecrypt.org/downloads. PStart est téléchargeable sur http://www.pegtop.de/start/.

dimanche 3 janvier 2010

Encrypter vos clefs USB avec TrueCrypt

Si comme moi vous transportez des informations privées voire confidentielles sur votre clef USB, vous allez aimer ce que nous propose TrueCrypt: protéger le contenu de votre clef USB en l'encryptant.



L'encryptage de votre clef peut s'avérer très utile en cas de perte de votre clef, ou dans le cas où vous connectez votre clef sur une machine corrompue, ou bien dans le cas où tout simplement vous prêtez votre clef USB à un collègue de travail pour lui transmettre des informations, mais vous ne souhaitez pas qu'il voit vos informations confidentielles.


Comment faire pour encrypter votre clef USB?

Grâce à TrueCrypt nous allons créer un fichier sur votre clef USB qui sera vu par notre ordinateur comme un disque. Vous pourrez ainsi copier, supprimer vos fichiers confidentiels sur ce disque "protégé". Bien entendu l'accès au disque ne sera possible qu'à partir du moment où vous aurez saisi votre mot de passe.


Quelles sont les principales étapes de la configuration de votre disque "protégé"?
  • Copie de TrueCrypt sur votre clef USB (version portable de TrueCrypt)

Vous pouvez télécharger TrueCrypt et choisir l'option d'extraction des fichiers sur votre clef USB au lieu de choisir l'option d'installation. Vous pouvez alors lancer TrueCrypt en mode portable en exécutant "TrueCrypt.exe".

  • Création du fichier sur votre clef USB



  • Choix de la méthode d'encryptage


  • Choix du mot de passe


  • Association de votre fichier à un disque de votre ordinateur

Il est nécessaire de sauvegarder le fichier "protégé" dans le répertoire d'installation de TrueCrypt (ici le répertoire d'installation est TrueCrypt). Dans la suite le fichier "protégé" est nommé "fichier_encrypte".


Comment utiliser votre disque "protégé" avec PStart?

  • Ouverture de votre disque "protégé" en utilisant les commandes en ligne de TrueCrypt

Il est nécessaire de configurer PStart pour ouvrir le disque "protégé" en utilisant la commande en ligne de TrueCrypt suivante:

TrueCrypt\TrueCrypt.exe /q /v fichier_encrypte /e

Pour plus d'informations sur la configuration de PStart vous pouvez vous référer à l'article suivant: Transformer votre clef USB en bureau "mobile"! .

  • Saisie du mot de passe

  • Fermeture de votre disque "protégé"

Il est nécessaire de configurer PStart pour fermer le disque "protégé" en utilisant la commande en ligne de TrueCrypt suivante:

TrueCrypt\TrueCrypt.exe /q /d /f /s



Note: TrueCrypt en mode portable nécessite que l'utilisateur ait les droits "administrateur" sur sa machine. L'alternative consiste à installer TrueCrypt directement sur la machine de l'utilisateur.


Source: TrueCrypt Encryption Software est téléchargeable sur http://www.truecrypt.org/downloads. PStart est téléchargeable sur http://www.pegtop.de/start/. Merci à G. (alias glando) pour l'idée d'utiliser les commandes en ligne de TrueCrypt.

Partager avec...