Archives de catégorie : Outils

Liste d’outils utilisables en SSI.

TrueCrypt

Que penser de TrueCrypt ? C’est l’un des plus étonnants mystères de ces dernières années dans le petit monde de l’informatique.

TrueCrypt est un utilitaire permettant de chiffrer ses documents, voire des volumes entiers sur vos disques plus ou moins durs. Très utilisé, et même recommandé par des personnes de confiance, l’utilitaire a disparu du jour au lendemain (littéralement), sans donner d’explication convaincante1. D’autant plus étonnant que des initiatives avaient abouti à la réalisation d’un audit du code (qui est à peu près en open source), sans que l’on trouve en première approche de grosse faille ou de faiblesse particulière, à peine un mois plus tôt. Par ailleurs, en 2013, l’ANSSI avait fait réaliser une certification de premier niveau (CSPN), c’est-à-dire que fonctionnellement il répond bien à la cible de sécurité choisie.

Une communication discrète…

L’équipe de développement s’est toujours montrée discrète, ce qui est la fois un gage de sécurité (au sens où il est alors difficile de faire pression sur les auteurs) mais aussi une source d’inquiétude car il est alors impossible de connaître la notoriété ou la réputation des personnes impliquées.

…jusqu’à la fermeture !

Car ce jour là, le site fut modifié brutalement pour indiquer que le logiciel ne devait plus être considéré comme sûr, et qu’il fallait se tourner vers BitLocker, le produit de chiffrement de Microsoft dont la sécurité est difficilement évaluable puisqu’il s’agit d’un produit commercial, dont les sources sont inconnues (le retro engineering étant interdit sur les produits Microsoft), et surtout en provenance d’un éditeur soumis comme tous les autres à la législation américaine et aux agences fédérales.

Pourquoi ?

On nage alors dans le paradoxe : les développeurs de l’outil permettant d’échapper au big brother promeuvent d’un seul coup un outil sur lequel plane la suspicion ! Certains penchent pour un gag order, qui consiste en une obligation de silence, pratique relativement usuelle en droit anglo-saxon, en lien avec par exemple une interdiction de continuer à développer le logiciel (j’imagine) ou l’obligation d’y inclure une porte dérobée, ce qu’auraient refusé évidemment les développeurs.

D’autres pensent à de gros problèmes de structure et de conception, n’induisant pas de faille majeure au moment de l’examen du code, mais que les avancées technologiques rendent nécessaires de revoir, avec un coût de réécriture trop important pour les développeurs.

On peut aussi penser que c’est par lassitude, ou suite à la découverte de leur propre chef d’une faille trop importante, mais cela me semble peu probable au vu de leur communication quasi-provocatrice.

Par ailleurs, la dernière version publiée (7.2) de l’outil a été expurgée de toutes les parties de code concernant le chiffrement, ne laissant à l’utilisateur que la possibilité de déchiffrer ses données, pour ne pas les perdre, mais sans plus pouvoir les protéger. Pourquoi s’en donner la peine ? Sauf dans le cas d’une faille béante dans le mécanisme de chiffrement qui le rendrait impropre à une protection correcte des données, mais aucun des audits postérieurs à cet arrêt n’a révélé de tels problèmes.

Peut-on encore l’utiliser ?

Certains le font. En tout cas la version 7.1a2, la dernière contenant toutes les fonctionnalités et qui a été auditée, sans qu’on n’y trouve de faille sévère.

Il existe un site web assez curieux, truecrypt71a.com, qui se prétend extérieur au projet mais dont l’auteur connaît parfaitement tous les détails de TrueCrypt, et où certains passages sont rédigés à la 1ère personne (« nous », en parlant du développement de TrueCrypt). C’est une mine de renseignements, et on peut y trouver les sources et les binaires (avec des éléments d’identifications comme des signatures GPG).

Comment monter un conteneur sous Linux ?

J’ai dû me poser la question (pour le boulot), et on peut très bien le faire sans installer TrueCrypt. Il faut toutefois installer cryptsetup, un utilitaire permettant une configuration un peu plus simple (car il y a en réalité tout un tas d’autres outils mis en oeuvre).

Sur un Raspberry, sous Raspbian 10, il faut installer les packages suivants :

  • cryptsetup_1.7.3-4_armhf.deb
  • cryptsetup-bin_1.7.3-4_armhf.deb
  • libcryptsetup4_1.7.3-4_armhf.deb

On les trouve sur le site officiel de Raspbian, à l’adresse https://archive.raspbian.org/raspbian/pool/main/. Les numéros de versions changeront au fur et à mesure des mises-à-jour.

Ensuite il y a une petite manip, en trois étapes (trouvée ici) :

  • Attacher le fichier conteneur à un périphérique virtuel (loopback device) ;
  • Ouvrir le conteneur avec cryptsetup ;
  • Enfin monter le conteneur dans le filesystem.

En pratique :

$ sudo losetup /dev/loop0 nom_fichier_conteneur
$ sudo cryptsetup --type trcrypt open /dev/loop0 nom_conteneur
$ sudo mount /dev/mapper/conteneur point_de_montage

On peut donner n’importe quel nom au conteneur, qui sera ensuite accessible via /dev/mapper/nom_conteneur. On peut vérifier la 1ère étape comme suit :

$ losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE     DIO LOG-SEC
/dev/loop0         0      0         0  0 /jean/test.tc   0     512

Sources

Pare-feu

Un pare-feu (je sais : pare-feu pour les petits français) est une des bonnes pratiques de sécurité que je recommande. Bon sang de bonsoir, c’est même l’outil de base le plus indispensable et surtout (alors que ça ne semble pas évident au premier abord) le plus efficace pour lutter contre les attaques sur votre serveur web.
Un firewall (en français : pare-feu) est un dispositif (qui peut être logiciel ou matériel) permettant de filtrer ce qui peut passer sur un réseau ou sur une machine.

Pare-feu réseau

Quel firewall utiliser ?

Pour un ordinateur personnel ou un petit serveur web, il s’agit souvent d’un programme qui va se loger dans un recoin du système et qui filtre selon des règles qu’on peut paramétrer. Il en existe plein, mais dans le cadre d’un petit serveur web de type Linux, je recommande shorewall qui se base sur iptables

L’outil iptables est considéré comme fiable et efficace. Pourquoi rajouter une couche avec Shorewall ? Parce qu’iptables est assez pénible à paramétrer, et que shorewall le fait pour vous à partir de règles un peu plus simples.

L’avantage de Shorewall est qu’il permet relativement simplement de paramétrer un outil très puissant et très efficace, IPTables. Pour simplifier, IPTables est la partie accessible de netfilter qui est le mécanisme de filtrage du noyau Linux.

Comme un utilisateur, même root, n’a pas accès directement au noyau, on passe par IPTables pour configurer les règles de filtrage.

Comme ces règles de filtrage sont malgré tout un tantinet complexes à écrire, à vérifier, et surtout à rendre cohérentes, des outils proposent de le faire pour vous. Shorewall en est un parmi d’autres, il a l’avantage de simplifier le travail et d’être en mode texte.

Pare-feu applicatif

mod security est un exemple de pare-feu applicatif.