Sécurité

Authentification à deux facteurs sous Ubuntu à l'aide d'une Yubikey

tux-secuJ'ai récemment acquis une Yubikey que j'utilise en conjonction de lastpass. Cette clé me permet d'effectuer une authentification à deux facteurs. J'ai donc souhaité étendre ce concept sous un système Gnu/Linux[1]. Pour cela il faut d'abord ajouter une source qui contient la librairie PAM pour la yubikey.

$ sudo add-apt-repository ppa:fredrikt/yubico
$ sudo apt-get update
$ sudo apt-get install libpam-yubico

Sous Mint / Ubuntu, seul le super utilisateur à le droit d'écrire sur le périphérique usb de Yubico. C'est gênant pour notre utilisation car les processus d'authentification qui ne seraient pas lancés en tant de root ne supporteraient pas l'utilisation de la yubikey.
C'est par exemple le cas de gnome-screensaver, c'est l'utilisateur connecté qui exécute ce process. Donc, si on laisse ubuntu dans l'état initial, on peut ouvrir une session avec lightdm, mais on ne pourra jamais débloquer l'écran de veille car  la yubikey n'est pas accessible :

gnome-screensaver-dialog: USB error: Access denied (insufficient permissions)


Il faut donc ajouter une règle udev permettant de faire appartenir le device USB à un groupe dans lequel on mettra les utilisateurs qui veulent utiliser la yubikey pour l'authentification pam.
Tout d'abord on crée le groupe : 

$ addgroup yubikey

Puis , on ajoute l'utilisateur qui possède la yubikey dans le groupe : 

$ adduser toto yubikey

Enfin on crée un fichier /etc/udev/rules.d/71-yubikey.rules qui contient la ligne suivante : 

$ sudo echo 'SUBSYSTEM=="usb",ACTION=="add",ATTR{idVendor}=="1050",ATTR{idProduct}=="0010",GROUP="yubikey"' > /etc/udev/rules.d/71-yubikey.rules

Pour ma part j'ai redémarré le système pour que tout soit pris en compte, mais il suffit peut être de lancer les commandes :

$ sudo udevadm control --reload-rules
$ sudo service lightdm restart

Il faut savoir que la yubikey dernière génération[2] dispose de deux slots de configuration permettant ainsi de l'utiliser de deux manières différentes. Par défaut le slot1 est configuré pour générer un mot de passe à usage unique. Lors d'une utilisation de cette méthode le mot de passe généré est vérifié auprès du serveur yubicloud de chez yubico. Cette méthode est valable mais elle nécessite une connexion internet. Hors si ce n'est pas gênant pour l'authentification sur un service en ligne, ça l'est pour l'authentification sur un ordinateur qui peut potentiellement être déconnecté du réseau.
Il faut alors configurer le slot2 pour une utilisation en mode challenge/response.

Pour cela il faut installer l'outil de personnalisation fourni par yubico. Sous les ubuntu like rien de plus simple : 

$ sudo apt-get install yubikey-personalization-gui

Puis on lance l'outil graphique[3] :

$ yubikey-personalization-gui

Il faut alors cliquer sur l'onglet "Challenge-Response" puis sur le bouton "HMAC-SHA1". Ensuite dans la partie "Configuration Slot" cliquer sur "Configuration Slot 2", laisser toutes les options par défaut puis cliquer sur le bouton "Write Configuration" de la partie "Actions".
Une fois cette étape effectuée on peut utiliser notre yubikey à la fois pour la génération de mots de passe à usage unique mais aussi en mode challenge-response.

Il faut maintenant associer notre yubikey à un compte utilisateur présent sur l'ordinateur. Pour cela, il faut utiliser la commande "ykpamcfg".
Normalement cette commande suffit :

$ ykpamcfg -2 -v

La yubikey est maintenant associée à l'utilisateur, il faut donc configurer pam pour qu'il utilise la yubikey comme deuxième facteur d'authentification.
Tout d'abord, il convient de faire une copie de sauvegarde du fichier /etc/pam.d/common-auth :

$ sudo cp /etc/pam.d/common-auth /home/toto/

Puis, il faut modifier le fichier en question pour qu'il ressemble à cela : 

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.

# here are the per-package modules (the "Primary" block)
auth required pam_unix.so nullok_secure try_first_pass
auth [success=1 new_authtok_reqd=ok ignore=ignore default=die] pam_yubico.so mode=challenge-response
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
# end of pam-auth-update config

Voilà, à présent lorsque vous voudrez vous authentifier, il faudra connecter la yubikey puis saisir votre mot de passe habituel. Si la yubikey n'est pas présente lors de la saisie du login/mot de passe l'authentification échouera.

[1] : Mint en l'occurence, mais cela fonctionne très bien avec les autres distributions.
[2] : À partir de la version 2.2.
[3] : N'oubliez pas d'insérer votre yubikey dans un port usb.

Source

Multiplication des mots de passe et sécurité

tux-secuAvec l'explosion d'internet nous avons commencé à mettre de plus en plus d'informations en ligne. Sites marchands, établissements financiers, réseaux sociaux, forums et boites mails ne sont que des exemples d'endroits sur lesquels nous laissons une empreinte numérique. Et pour tout cela l'unique protection qui nous est proposée est le bon vieux couple identifiant/mot de passe[1].
Seulement voila, avec la multiplication des mots de passe nous sommes tentés de prendre des raccourcis dangereux en matière de sécurité.

Ainsi, moi comme beaucoup d'autres, j'ai été tenté par les solutions de simplification dans la gestion des accès à mes informations numériques. Je n'avais que 3 ou 4 mots de passes différents que je mettais sur tous les sites, car il faut bien le reconnaitre, se souvenir de plus était difficile pour moi. L'autre travers dans le quel je étais tombé était d'utiliser les fonctions d'enregistrements des mots de passe proposées par les navigateurs ... ouais je sais ...

Toutefois, suite à l'écoute de l'histoire du piratage des comptes de Mat Honan dans l'excellent podcast "Le Rendez-vous Tech" n°93, je me suis (enfin) rendu compte que non seulement mes comptes étaient pas mal vulnérables mais en plus que les conséquences d'un piratage pouvaient être vraiment désagréables[2].
J'ai donc décidé d'augmenter le niveau de sécurité de ma vie numérique mais avec une idée en tête, conserver un maximum de souplesse d'utilisation.

La première étape dans la sécurisation de mes comptes a été de faire appel à un gestionnaire de mots de passe. Dans le cadre professionnel j'utilisais keepass. Bien que keepass soit excellent, j'ai voulu tester lastpass. Je dois avouer que je suis très satisfait de la simplicité qu'offre cette solution tout en augmentant considérablement le niveau de sécurité.
Quel est le principe ? C'est très simple. On part du fait qu'il faudrait un mot de passe très compliqué et différent pour chacun des sites sur lequel on crée un compte. Mais comme il serait très difficile de s'en souvenir, on passerait notre temps avec la procédure de mot de passe perdu. L'idée avec lastpass est de créer un compte chez eux, d'y mettre un mot de passe fort dont on se souviendra et ensuite laisser lastpass se souvenir des autres mots de passe pour vous.
J'ai donc créé un compte chez lastpass puis j'ai téléchargé le plugin pour firefox et chrome. Le programme vous invite à importer les mots de passe stockés dans les navigateurs de sorte que ce soit à présent lastpass qui gère cette partie. Puis, vient la partie un peu longue qui consiste à faire le tour des sites pour changer les mots de passe. J'ai opté pour des mots de passe auto-générés de 25 caractères avec caractères spéciaux. Là encore, on est guidé par lastpass il est très facile de changer et sauvegarder les mots de passe des différents sites. Une fois ce travail rébarbatif effectué, la navigation n'est pas plus compliquée qu'avant. On va sur son site marchand, on clique sur connexion et lastpass remplit les champs pour vous. Pour certains sites "sensibles", il est possible d'indiquer à lastpass de d'abord demander le mot de passe principal avant de compléter les champs de login et password.

Étant donné que je suis un utilisateur d'Android, mon compte google a une vraie importance pour moi. J'ai donc décidé de mettre en œuvre la validation en deux étapes. Cette technique consiste utiliser deux facteurs d'authentification. Dans la pratique lorsque vous voulez vous connecter sur votre compte google, vous devez saisir votre mot de passe habituel[3] plus un code qui vous a été envoyé via sms par google (ou via le Google authenticator[4]). C'est un peu plus long mais vraiment plus sûr. D'autant qu'en plus il vous est possible de définir certains ordinateurs comme étant sûr et depuis lesquels Google ne demandera pas le second code. Toutefois attention, cette méthode est disponible sur les services web de Google, mais lorsque l'on utilise ces services au travers d'applications tierces, ce mécanisme, qui n'avait pas été prévu à l'origine, ne fonctionne pas ( y compris le compte google sur les téléphones Android [sic] ). Google propose alors de générer un mot de passe fort (qui ne sera visible qu'une seule fois) a destination de ces applications. Il faut alors générer un mot de passe, le saisir dans l'application et demander à cette dernière de se souvenir du mot de passe. Là encore ça prend un peu de temps mais rien d'insurmontable.

Si l'on étudie ces nouveaux outils, ils augmentent certes la sécurité si l'on considère chaque compte de manière individuelle, mais de manière globale lastpass représente un gros "SPOF"[5]. Le problème des gestionnaires de mots de passe est que l'on centralise tous les mots de passe au même endroit. C'est presque pire que de tous les noter sur un calepin puisque dans notre cas c'est en plus accessible depuis le net. Alors certes lastpass ne stocke pas les mots de passe en clair, ils sont chiffrés et le seul moyen de les déchiffrer est de connaître le mot de passe principal ( [sic] ). Ok, donc il suffit à un pirate de cracker un seul de vos mots de passe, le plus important, pour avoir accès à toute votre vie numérique... Pas si génial finalement.
Alors, que faire ? Revenir à 3 ou 4 mots de passe que l'on met partout ? Non. Lastpass permet lui aussi de mettre en œuvre une authentification à deux facteurs via l'utilisation d'une Yubikey.
Yubikey est un produit de la société Yubico qui se présente sous la forme d'une clé USB muni d'un bouton. Elle se comporte comme un clavier à une seule touche. Une pression sur cette touche envoie sur l'entrée standard un mot de passe à usage unique. Une fois ajoutée à lastpass, il faudra saisir le mot de passe principal puis appuyer sur le bouton de la clé USB pour être authentifié sur lastpass. C'est bien mieux là déjà non ?

Pour résumer, effectuer ces opérations n'est pas réellement à la porté de tout le monde[6] mais c'est je pense vraiment nécessaire si l'on souhaite bénéficier d'un niveau de sécurité correct sur le net. La sécurité a du mal à faire écho auprès des entreprises et c'est pire pour le grand public. Pourtant, on a pu voir avec l'histoire de M. Honan que le risque existe et que les conséquences peuvent être vraiment désagréables. Alors je ne suis pas dupe, il existe des failles dans tous les systèmes et même avec les nouvelles solutions que j'ai mis en place je reste vulnérable. Mais je pense qu'augmenter le niveau de sécurité est toujours une bonne chose et que même si la protection n'est pas complète elle limitera au moins les dégâts.

 

[1] http://fr.wikipedia.org/wiki/Mot_de_passe
[2] Je ne sais pas pourquoi, mais jusqu'alors j'avais l'impression qu'il n'y avait rien de bien important pour moi sur le net... étrange non ?
[3] Dans mot cas un mot de passe de 25 caractères généré par lastpass.
[4] C'est un logiciel que l'on installe sur smartphone et qui donne le code au lieu de recevoir le sms. C'est la solution que j'ai choisie.
[5] Sauf pour le compte google qui dispose d'une authentification à deux facteurs.
[6] Même si ce n'est pas non plus super complexe.

Messieurs les CA, un peu de sérieux !

tux-secu.pngC'est en substance ce que la fondation Mozilla a demandé aux Autorités de Certification racines après avoir été obligé de retrirer les certificats frauduleux délivrés par DigiNotar. Je ne reviendrai pas sur cette affaire qui est très bien traitée ici, mais il est évident que la délivrance de vrai-faux certificats pose de nombreux problèmes et notamment aux éditeurs de navigateurs web. C'est pourquoi Mozilla a demandé aux Autorités de Certification de procéder à un audit de leur PKI et vérifier que tout est mis en oeuvre pour éviter qu'une telle chose se reproduise.

Au delà de l'aspect technique c'est évidemment la confiance en cette infrastructure de sécurité qui est en jeu. En effet, déjà que peu de décideurs sont impliqués dans la sécurité s'ils ont en plus l'impression que les solutions qu'on leur propose sont trop vulnérables (bien que rien ne soit parfaitement sûr), cela ne va certainement pas les encourager à investir là dedans.

Mais puisque je vous dis que c'est moi le routeur !

tux-secu.pngPetit à petit nos équipements intègrent des piles IPv6. Comme ça le jour où nous nous déciderons à y passer...
Récemment, je suis tombé sur un article de Tux-planet qui traitait d'une faille dans les implémentations du Neighbor Discovery Protocol (NDP) des piles IPv6 de differents systèmes d'exploitation. Serait touchés, entre-autres, Windows 7, Vista et les XP qui contiennent une pile IPv6 (ce qui n'est pas le cas par défaut).
L'article explique comment tester cette faille avec un outil d'attaque IPv6. Je reprends ici l'exemple pour télécharger, compiler et utiliser cet outil sous ubuntu :

 

sudo apt-get install libpcap0.8-dev libssl-dev
wget http://freeworld.thc.org/releases/thc-ipv6-1.4.tar.gz
tar zxvf thc-ipv6-*.tar.gz && rm -f thc-ipv6-*.tar.gz
cd thc-ipv6-*
make
sudo ./flood_router6 eth0

Lire la suite : Mais puisque je vous dis que c'est moi le routeur !

De la faille dans les autoradios

tux-secu.pngVous le savez tous, on vous le dis et on vous le répète télécharger illégalement des musiques c'est le mal absolu (arf ;) ). Oui mais voila, Mme Michu, elle, elle s'en moque car ce qu'elle veut c'est graver ses musiques pour les écouter tranquillement dans sa voiture dernier cri.

Et bien Mme Michu, ne croyez plus être à l'abri dans votre nouvelle voiture qui sait lire des mp3 car des chercheurs des universités de Californie et Washinton sont parvenus à ajouter un bout de code malicieux dans un fichier de musique numérique. Une fois gravé et lu par l'autoradio, le cheval de Troie modifie le firmware de l'autoradio donnant ainsi accès à des fonctions plus critiques de la voiture.
"Il est difficile de penser à quelque chose de plus inoffensif qu'une chanson." indique Stefan Savage professeur à l'université de Californie.

Lors d'une expérience en 2009 (qui incluait aussi d'autres types d'attaques que la musique), Stefan Savage et ses collègues chercheurs, sont parvenus à couper le moteur, bloquer les portes, couper les freins et falsifier l'indicateur de vitesse d'une voiture dernier modèle.

De quoi vous faire regarder votre mp3 d'une autre manière.

sources : Slashdot et Itworld

Un ratissage tentaculaire

tux-secu.pngLe Royaume Uni est en train de subir une attaque visant à récupérer de l'argent frauduleusement. L'outil utilisé par les pirates originaires d'Europe de l'est est un botnet de plus de 100 000 machines zombies dont 98% sont du Royaume Uni.

C'est la société Trusteer, une société spécialisé dans la sécurité du web qui a découvert le botnet basé sur Zeus version 2. Les cybercriminels ont vraiment ratissé large et ont récupéré toutes les informations susceptibles de leur permettre de gagner de l'argent. Ainsi, ils ont dérobé, entre autre, les identifiants des victimes sur leur sites bancaires, les numéros de cartes de paiement, les certificats coté client, les cookies des navigateurs, les identifiants de messagerie et des réseaux sociaux.
ComputerVirusLarge.jpgAvec toutes ces informations ils ont un accès complet aux services en ligne de la victime. Mais il faut ajouté à cela la possibilité qu'ils ont de contrôler la machine zombie. En effet les pirates peuvent télécharger des données, faire exécuter n'importe quel  programme sur la machine de la victime et ont ainsi la possibilité de modifier les pages web que la victimes consulte, y injecter des transactions ou récupérer encore plus d'informations.

Ce botnet est loin d'être le seul en activité, ils sont déjà nombreux basés sur zeus, mais là encore ils en existe de nombreux autres.
Il est fini le temps où le méchant virus infectait notre ordinateur dans le seul but de se répandre, non maintenant tout ça s'est professionnalisé .

 

sources : net-security, slashdot

Du XSS et Google pour localiser quelqu'un

tux-secu.pngLors des conférences Black-Hat de cette année Samy Kamkar a fait la démonstration d'une technique de géo-localisation n'utilisant pas les bases de données habituelles.
Pour cela la victime doit se rendre sur un site web malicieux afin que l'attaquant puisse récupérer ( grâce entre autre à un JavaScript ) l'adresse mac du routeur de la victime. L'attaquant utilise ensuite Google Street View pour localiser le routeur avec une précision de 10 mètres.

Voici la démonstration en vidéo :

Quand c'est chiffré, c'est chiffré !

tux-secu.pngUne news sur slashdot fait état des difficultés que rencontrent la police brésilienne et le FBI pour déchiffrer cinq disques durs.
Daniel Dantas est un banquier brésilien accusé de crimes financiers. Lors d'une opération à son encontre en juillet 2008, la police fédérale brésilienne a saisie cinq disques durs. Hors, il se trouve que ces disques étaient chiffrés  en AES 256 bits avec deux outils de chiffrement différents, l'un deux étant le logiciel open-source TrueCrypt.
Après s'être cassé les dents sur le décryptage des informations, la police brésilienne a fait appel au FBI.  Depuis 2009, le FBI tout comme les experts brésiliens du INC ( l'Institut National de Criminologie ) ont tenté sans succès de venir à bout du chiffrement par l'utilisation d'une attaque par dictionnaire.
La justice brésilienne n'ayant aucun moyen d'obliger M. Dantas ou les éditeurs des logiciels à fournir le mot de passe, les experts espèrent que de futures avancées de la recherche sur le domaine les aideront.

Et moi qui pensais que les gouvernements pouvaient tout déchiffrer ...

Sources : slashdot, globo

Piouland spamé!

tux-secuspamEt ce qui devait arriver, arriva... Le forum de piouland a subit son premier spam de forum un peu avant 10H aujourd'hui.

En effet un curieux nouveau sujet est apparu dans la partie sécurité informatique du forum : "It's for any www.piouland.net habitants...".

Ce sujet contenait un lien vers un site traitant, disons, de femmes à la cuisse légère. Le choix de la section est sans nul doute une preuve de l'humour du posteur frauduleux.

Lire la suite : Piouland spamé!

Nouvelle attaque DoS qui pourrait faire bien mal

tux-secuUne news sur slashdot fait état d'une nouvelle attaque DoS qui pourrait faire de sérieux dégats et cela même via une connexion adsl "moyen" débit.

Lire la suite : Nouvelle attaque DoS qui pourrait faire bien mal

Ton point d'accés j'en veux pas!

tux-secutux-wifiJe suis tombé sur la page d'un outil de sécu wifi plutot sympa: wifitap . J'ai un peu la cagne de vous expliquer ce qu'il fait alors je laisse l'auteur en parler lui même (vive le copier/coller):

"Wifitap est une preuve de concept d'outil de communication sur les réseaux WiFi par injection de trafic.

Wifitap permet de communiquer directement avec une station associée à un point d'accès directement, c'est à dire :

- sans avoir à être associé soi-même ;

- sans passer par le point d'accès.


Wifitap permet à n'importe quelle application d'envoyer et recevoir des paquets par capture et injection de trame 802.11 sur un réseau WiFi simplement en configurant l'interface wj0 de manière adéquate, c'est à dire :

- en lui affectant une adresse IP cohérente avec l'adressage du réseau cible ;

- en routant le trafic désiré à travers elle.

En particulier, c'est une méthode simple d'injection de paquets arbitraires dans des trames 802.11 sans avoir à utiliser de bibliothèque spécifique.

De plus, elle permet de s'affranchir de toute limitation imposée par le point d'accès, comme contourner les système de prévention des communication inter-clients (par exemple PSPF de Cisco) ou encore atteindre plusieurs SSID gérés par le même point d'accès."