All posts filed under “wifi/internet/proxy

La généralisation du filtrage mitm …

Je constate lors de mes divers et nombreux déplacement que le filtrage mitm par les firewall est quelque chose de plus en plus répandu en entreprise et collectivité. J’ai donc décidé d’en parler !

Historique

Revenons a la base, pourquoi l’https a été inventé ?
Dans les entreprise, la nécessité de chiffrer le flux pour éviter qu’un pirate ne puisse récupérer des information sensible devient une nécessité, notamment pour les banques. Les sites de vente en ligne …

Principe de fonctionnement : Le navigateur est capable de vérifier qu’il discute avec le bon serveur grâce au certificat du site web. La connexion est chiffrée et donc illisible par un attaquent positionner sur un routeur par exemple.   Un petite révolution ! On peu maintenant être certain de discuter avec le bon serveur de manière chiffré !

C’est quoi le filtrage mitm ?

Souvent, c’est le firewall de votre entreprise qui va se comporter comme un pirate et analyser tous le trafic pour bloquer ou autoriser la connexion.

Comment ça marche ?

Le principe de fonctionnement est du coup assez simple pour analyser le contenu https. On installe le certificat du fwall dans les différent bundle de certificat des clients (store windows, firefox, logiciel…)
Ensuite lors du surf, le fwall va chiffrer la connexion avec sa clé et va ainsi pouvoir analyser tous le trafic … (mot de passe, mail, image tous y passe)

Que doit on en penser ?

Je ne blâme pas le principe…  En revanche il faut être clair avec ses utilisateurs en leurs indiquant la pratique !

En pratiquant le mitm il faut donc être rigoureux… l’appareil qui fait le filtrage est souvent le fwall, et l’ironie veut que c’est l’appareil qui est directement en frontale sur internet …

Vous vous devez donc (plus particulièrement que d’habitude) de vérifier que votre appareil est à jours, la moindre faille de sécu est critique car le pirate peut déchiffrer le flux https.

De la même manière, si vous remplacez l’appareil et que vous jetez l’ancien. Vous devez vous assurer que la clé privé a bien été supprimé de l’ancien appareil. (cela parait évident mais bon …)

Je constate dans trop de cas que l’option est activée sans vraiment que l’administrateur prenne conscience qu’il est en train de prendre une responsabilité vis à vis de ses utilisateurs.

De la même manière, vous ne devez pas demander a vos utilisateurs d’installer le certificat sur leur poste personnel (pour du wifi invité par exemple)…

Cela m’est déjà arrivé que l’ont me demande d’installer ce genre de certificat dans mon navigateur lors de déplacement. L’admin réseau semblant alors étonné que cela soit un non catégorique de ma part…

Conclusion

Le but n’est pas de blâmer mais plus d’ouvrir un débat sur cette pratique qui se généralise … Si vous êtes utilisateurs je vous invite a en discuter a votre adminsys…

 

comment 0

Solution de parfeu simple et efficace

 

Petit article vite fait pour vous faire découvrir une solution simple et efficace.
On est en règle général tous d’accord pour dire qu’iptables est une solution fiable et efficace mais dont la syntaxe est imbuvable.

J’ai découvert Shorewall a mon nouveau boulot chez tranquilit
Shorewall est une surcouche a iptables ,  permettant de simplifier celui-ci.

J’aime de plus en plus les solutions sans fioriture, pas d’interface web, le tous se résume en quelques fichiers de conf qui deviennent simple a « backuper ».

Le problème avec les solutions tout empaqueter comme pfsense (je ne crache pas sur pfsense non plus) c’est qu’on ne sait pas trop ce qui se passe derrière. J’aime pas trop ça pour débugger c’est pas le top.

L’autre avantage de prendre une solution baser sur linux c’est que vous n’êtes pas lier a un matériel comme sonicwall ou cisco par exemple, et pas de licence …

Bref je vous laisser tester ! Je trouve que ça vaut le coup !

comment 0

Wifi – FreeRadius 802.1x – Squid/SquidGuard

Il y a un moment maintenant déjà, j’avais fait un article « Pourquoi il ne faut pas utiliser Squid en mode transparent ? ». J’avais là ma solution de filtrage. Mais pas  forcément la solution d’authentification.

J’avais pensée utiliser packetfence, mais c’est plus une solution de NAC. Pfsense est intéressant également, mais ne convenait pas trop à mon projet. Packetfence est d’ailleurs trop gourmand en ressource.

Je suis donc partie sur le principe me faire ma solution faite main, voici une petite vidéo de présentation de ma solution :

comment 0

Wpad Chrome Firefox et isInNet(myIpAddress()

Petite article car j’ai été confronté a un soucis tout bête avec le wpad Chrome, Firefox et ie.

Je souhaitais utiliser un truc du genre :

if(isInNet(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
return proxy_yes;

En gros, si tu est dans le vlan 172.29.0.0 tu n’applique pas le proxy. Mais pour tout le reste oui

Cela fonctionne parfaitement avec ie et firefox mais pas avec chrome 🙁

J’ai donc contacté google pour savoir pourquoi cela ne fonctionnait pas avec eux. Il s’agit en faite d’un bug:  https://code.google.com/p/chromium/issues/detail?id=267101

L’issue est ouverte depuis longtemps mais n’est pas réparée.

Google m’a quand même donnée une solution, utiliser isInNetEx :

comments 2

Pourquoi il ne faut pas utiliser Squid en mode transparent ?

c81f772e265991de09ad69a5a6dfb071

Il faut tout d’abord expliquer la différence entre un surf via un proxy déclaré et un surf sans Proxy.

Lors d’un surf sans Proxy, l’ordinateur contacte directement le serveur qui héberge la page web demandée. Il demande l’IP au DNS puis contacte directement le serveur web en passant par la passerelle.

Dans le cas d’un Proxy déclaré dans le navigateur, la démarche est différente. Lors d’un surf, l’ordinateur ne contacte pas directement le serveur web qui héberge la page que l’on souhaite. Voilà ce qui se passe dans ce cas : Le navigateur constate qu’un Proxy et renseigné lors de la demande de toto.fr le navigateur de l’ordinateur dit :
– Hey serveur Proxy 172.21.254.254:3128, peut-tu surfer pour moi et me donner la page web toto.fr ?

Le serveur Proxy répond :
– Ok, voici la page que tu m’as demandé

Il est au milieu dans le schéma :

280px-Proxy_concept_en.svg

Squid a donc une option de proxy transparent, cette option permet de se mettre à la place de la passerelle, ainsi l’ordinateur pense qu’il discute directement avec le serveur web. Ceci fonctionne très bien avec un surf HTTP, mais ne fonctionne pas du tout avec le protocole HTTPS

Pourquoi ?

Le protocole HTTPS sécurise et chiffre la connexion sur tous les sites les plus connus, il peut également vérifier que la connexion n’a pas été usurpée par un pirate. (vérification du nom de domaine, des certificats et validation par un certificat root). Bref ce protocole a été créé dans le but de protéger une connexion.

header_icon

Squid est capable d’intercepter du surf SSL en mode transparent mais cela nécessite l’installation préalable d’un ca-root. Cette méthode n’est pas du tout appréciée par les sites web, car elle consiste a décrypter la connexion HTTPS en cours. De plus, certains sites web n’utilisent pas le SSL mais le SNI.

Cette méthode est considérée comme une attaque man in the middle :

sslmim

Des solutions comme ALCASAR existent, mais je ne suis pas fan.
Elles loguent et bloquent avec les demandes DNS (Dnsmasq) combinée avec les demandes IP avec iptables, Squid et DansGuardian pour les connexions HTTP.

Les solutions de filtrage transparent proposées par SonicWALL fonctionnent également sur ce type de fonctionnement.

La solution que j’utilise :

La solution la plus propre que j’ai trouvé pour le moment est de déclarer le Proxy. Lorsque l’utilisateur n’a pas le proxy déclaré, il est redirigé vers une page qui lui indique comment configurer son navigateur ou son téléphone pour surfer sur cette connexion.

Suite dans un prochain article… Pour présenter une solution plus fiable !