pfSense : Faille OpenSSL heartbeat ( Heart Bleed bug ) – CVE-2014-0160

pfSense est-il impacté par la faille du paquet OpenSSL dite du bug heart bleed ? La réponse est multiple

Table des matières

Introduction

Les utilisateurs de pfSense, la célèbre appliance de sécurité Open Source, se posent la question fort importante. Est-ce que mon pfSense est impacté par la faille du paquet OpenSSL dite du bug heart bleed (CVE-2014-0160) ? La réponse est multiple :

Version 2.03 :

Cette version de pfSense utilise une version d’OpenSSL non touché par la faille (0.9.8y). Ouf 🙂 ! Par contre, si vous utilisez le package Unbound, désactivez-le le temps de la mise à jour !

Version 2.1 et 2.1.1 :

Et oui, vous êtes vulnérables 🙁 !

OpenVPN

OpenVPN n’est exposé à cette faille que si il est utilisé en mode SSL/TLS sans clé d’authentification TLS. Si vous avez suivi le wizard, normalement vous êtes tranquille.

Les solutions palliatives

Modifications sur pfSense

  1. Ne pas ouvrir votre interface web à tout le net
  2. Si vous utilisez OpenVPN sans l’authentification TLS, vous devez modifier la configuration ou suspendre le service temporairement.
  3. D’autres paquets dépendent d’OpenSSL, mais en général le risque que la faille soit exploitée via ceci est faible. Mais s’ils ne sont pas critiques, le mieux est de les désactiver.

Snort

Des règles pour Snort viennent d’être publiées soit par l’équipe du projet, soit par de gentilles personnes.

Et le patch officiel ?

La version 2.1.2 qui corrige cette faille va sortir dans les prochaines heures. Suivez les commits sur github.

Quelques rappels utiles

Il ne faut jamais exposer l’interface de management à internet. Accédez-y via une machine local, ou via le VPN, ou encore via SSH. Changer le port par défaut de l’interface web, mettez un vrai mot de passe bien secure.

Si votre installation se révèle être vulnérable, suite à la mise à jour vous devez révoquer vos anciennes clés privées, en générer de nouvelles et créer de nouveaux certificats pour vos nouvelles clés.

NAS Synology OpenVPN : changer le port d’écoute par défaut

Les NAS Synology sont de très belles machines intégrant des fonctionnalités très intéressantes. Nous allons parler de la fonction serveur VPN, et notament OpenVPN.

Le serveur OpenVPN est intégré maintenant par défaut, il suffit donc de l’activer. Par contre, dans la configuration part défaut, il n’est pas possible de modifier le port d’écoute ni le protocole. Mais rassurez-vous, même si via l’interface web, on ne peut le faire, en cli c’est très facile.

Connectez vous en ssh sur votre NAS Synology, puis éditer à l’aide de vi le fichier de conf d’OpenVPN :

vi /usr/syno/etc/packages/VPNCenter/openvpn/openvpn.conf

et ajouter 2 lignes :

proto tcp
port 443

Ce qui vous donne le fichier de conf suivant :

push "route 192.168.1.0 255.255.255.0"
push "route 10.8.0.0 255.255.255.0"

dev tun
# les lignes à ajouter manuellement

port 443
proto tcp
management 127.0.0.1 1195
server 10.8.0.0 255.255.255.0
dh /var/packages/VPNCenter/target/etc/openvpn/keys/dh1024.pem
ca /var/packages/VPNCenter/target/etc/openvpn/keys/ca.crt
cert /var/packages/VPNCenter/target/etc/openvpn/keys/server.crt
key /var/packages/VPNCenter/target/etc/openvpn/keys/server.key
max-clients 3
persist-tun
persist-key
verb 3
#log-append /var/log/openvpn.log
keepalive 10 60
reneg-sec 0
plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
client-cert-not-required
username-as-common-name
duplicate-cn

Ensuite, vous redémarrer le serveur OpenVPN.

Vous pouvez maintenant vous connecter en VPN à votre NAS. Ah oui, petite précision, il faut modfier le fichier de configuration que vous exportez de l’interface web de votre Synology. Voici ce que vous devez obtenir :

dev tun
tls-client
### Ajouter votre adresse IP Publique et le port choisi - ici 443 
remote VOTRE_IP_PUBLIQUE 443 
proto tcp-client 
auth-nocache 
# The "float" tells OpenVPN to accept authenticated packets from any address, 
# not only the address which was specified in the --remote option. 
# This is useful when you are connecting to a peer which holds a dynamic address 
# such as a dial-in user or DHCP client. 
# (Please refer to the manual of OpenVPN for more information.) 
#float # If redirect-gateway is enabled, the client will redirect it's 
# default network gateway through the VPN. 
# It means the VPN connection will firstly connect to the VPN Server # and then to the internet. 
# (Please refer to the manual of OpenVPN for more information.)

#redirect-gateway # dhcp-option DNS: To set primary domain name server address. 

# Repeat this option to set secondary DNS server addresses. 

#dhcp-option DNS DNS_IP_ADDRESS 
pull script-security 2 
ca ca.crt 
comp-lzo 
reneg-sec 0 
auth-user-pass

Enjoy.

PfSense : exporter la configuration client OpenVPN

Table des matières

Présentation de PFSense

PFSense est une appliance de sécurité réputée que j’apprécie tout particulièrement. PFSense permet, entre autres fonctions, de jouer le rôle de serveur VPN (IPSEC, PPTP, L2TP et OPENVPN).

Choix du serveur VPN

Je conseille d’utiliser OpenVPN de part sa simplicité (versus IPSEC), sa possibilité de fonctionner un peu n’importe où (même via des réseaux très strict, il suffit de bien configurer les ports) et sa sécurité (versus PPTP et L2TP). Par contre, l’intégration de la configuration pour les utilisateurs mobiles n’est pas toujours simple, notament face à la multitude des systèmes d’exploitations.

Configuration des terminaux

Vous trouverez, grâce à la vivante communauté de PFSense, un package facilitant les exports de configuration, que ce soit vers les ordinateurs sous windows, Linux et MacOSX, mais aussi vers les terminaux mobiles et tablettes comme Android et IOS ( une application Openvpn pour IOS est disponible sur le store US depuis quelques semaines. Peut-être bientôt en Europe, ainsi plus besoin de rooter son idevice afin de profiter d’OpenVPN).

Client Android

Je peux vous conseiller un client Android de qualité qui ne nécessite pas de rooter votre terminal. Il s’agit de FeatVPN . Une version est disponible sur le google store, mais il est recommandé d’installer la version disponible sur leur site web. Faites bien attention de choisir le bon apk selon votre version d’Android.

Procédure d’installation

Apres avoir téléchargé la configuration pour votre utilisateur sous Android sur votre ordinateur via l’interface web de PFSense, il faut copier ce fichier sur la carte SD de votre téléphone ou tablette.

Ensuite, il faut lancer votre FeatVPN, sélectionner « Tunnels », puis le bouton « Add », aller dans la partie « Configuration » et cliquer sur « Load ». Il faut ensuite choisir le fichier que nous venons de copier sur la carte SD. La configuration se fait tout seul. Je vous conseille fortement de ne pas stocker votre mot de passe sur votre terminal Android, car en cas de perte ou de vol, votre réseau sera accessible le temps que vous révoquiez le certificat utilisateur.

Conclusion

Plus de raison de ne plus sécuriser l’accès à votre infrastructure loin de vos bases, PFSense et OpenVPN vous apportent une solution fiable, performante et pérenne.

Quel algorithme de chiffrement symétrique (symmetric cipher) choisir ?

Vous souhaitez installer OpenVPN, OpenPGP, OpenSSH ou une autre solution nécessitant l’utilisation d’un algorithme de chiffrement symétrique. Mais entre AES, Blowfish ou DES vous ne savez pas lequel choisir. Voici un comparatif afin de vous aider à choisir.

Un chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer contrairement au chiffrement asymétrique qui utilise des clés différentes (en fait 2 clés : une clé publique, servant au chiffrement, et une clé privée, servant à déchiffrer).

Un rappel de la réglementation en vigueur en France me semble nécessaire. Toute information chiffrée par un algorithme à clef symétrique ne doit pas utiliser de clé supérieure à 128 bits (« service de confidentialité » défini par les décrets du 17 mars 1999, avec une clef de 128 bits).

Pour commencer, je ne vais présenter que les algorithmes le plus souvent rencontrés (la liste des algorithme étant existant étant très longue) : IDEA, TripleDES (DES est exclu du fait de sa lenteur et du fait de la possibilité d’une attaque systématique dans un temps raisonnable), CAST-5, blowfish et AES.

Avant de rentrer plus dans le détail, la solidité d’un algorithme dépend fortement de la taille de la clé. Une clé est une donnée qui permet de chiffrer et de déchiffrer une information après traitement par un algorithme. Par exemple, en 1997, une recherche exhaustive de clé de l’algorithme DES a été réussie. DES est basée sur des clés de 56 bits, soit 2 puissance 56 possibilités !

IDEA est un algorithme breveté par la société Suisse Mediacrypt et depuis tombé dans le domaine public (en 2011 en Europe) est dérivé de l’algorithme PES. Il até présenté la première fois en 1991. Il utilise des blocs de 64 bits avec une clé de 128 bits. Depuis la société, a présenté en 2005 son successeur FOX breveté sous le nom IDEA NXT (clé 128 bits/blocs 64 bits ou clé 256 bits/blocs 128 bits).

Publié en 1979, 3DES ou Triple DES a été développé par Walter Tuchman en enchainant 3 traitements successifs de l’algorithme DES. Il utilise 3 clés DES de 56 bits sur des blocs de 64 bits. Il est vulnérable aux attaques de type « rencontre au milieu ». De ce fait, il est admis qu’il fournit une sécurité effective de 112 bits seulement. 3DES est largement utilisé dans l’industrie électronique.

CAST5 ou CAST-128, a été conçu en 1996 utilise des clés allant de 40 à 128 bits pour des blocs de 64 bits. Il est notamment validé par le gouvernement canadien et est utilisé par défaut dans de nombreux produits.

Blowfish est aussi présent dans de nombreuses solutions (par défaut dans OpenVPN par exemple). Présenté en 1993, c’est un algorithme de référence avec AES. Un des gros points forts de Blowfish réside sans sa légèreté qui lui permet d’être utilisé dans le domaine de l’embarqué. A noter, que son créateur, Bruce Schneier, recommande d’utiliser son successeur Twofish.

AES est le standard issu du concours lancé en 1997 par le NIST (National Institute of Standards and Technology). C’est le standard par défaut du gouvernement US. Comme Blowfish, il n’y a pas d’attaque connue contre cet algorithme (hormis par brute force, mais difficilement réalisable en l’état actuel de la technologie).

IDEA3DESCAST-5BLOWFISHAES (128-192-256)
Date de publication19921979199619931998
Dérivé dePESDESSQUARE
Taille des clés (bits)12856, 112 ou 168de 40 à 128, multiple de 8 bits. Par défaut 128 bits.de 32 à 448, multiple de 8 bits. Par défaut 128 bits.128-192-256
Taille de bloc (bits)6464646464-128-128
StructureAdd-Rotate-Xor 8,5 toursSchéma de FeistelSchéma de Feistel – 12 ou 16 toursSchéma de Feistel – 16 toursSubstitution, permutation – 10, 12 ou 14 tours selon la taille de la clé.
VarianteFOX (breveté)CAST-256TWOFISH
Commentaires sur la sécuritéAttaque par collisions possiblesSelon la taille de la clé, des exploits existent.Aucune attaque réalisable connueAucune attaque réalisable connueAucune attaque réalisable connue
Sécurité (/5)44555
Performance (/5)21454
CommentairesIDEA était soumis au brevet jusqu’en 2011 en Europe.La taille de la clé dépend de l’option choisie : 1, 2 ou 3Aussi appelé CAST-128Empreinte mémoire très faible et très performant.Certifié par la NSA.

Il existe plusieurs versions AES128, AES192 et AES256. le chiffre définissant la longueur de la clé.

En conclusion, les 3 algorithmes les plus sécurisés sont CAST-5, AES et Blowfish dont à ce jour, aucune attaque réalisable n’est connue. J’ai une petite préférence pour Blowfish de par sa performance.