jeudi 23 janvier 2014

Haka est sorti: TCP/IP security is not boring anymore!

Il y a trois ans, je publiais un article intitulé "TCP/IP security is boring" dans lequel j'indiquais que la sécurité TCP/IP était devenue ennuyeuse.
La sécurité remonte sur les couches hautes, et les firewalls sont finalement limités dans leur usage: on coche une case pour appliquer une politique de sécurité sans jamais pouvoir sortir du carcan initial prévu par l'outil.

Mais le projet HAKA voit le jour, et je vais en faire un peu sa pub [1].

Je fais partie de l'équipe qui développe le projet HAKA, et avec HAKA la sécurité réseau ne sera plus jamais ennuyeuse. Haka est un langage orienté sécurité et réseau permettant d'accéder à n'importe quel champ protocolaire d'une communication et d'interagir avec celle-ci de manière simple (modification, suppression, création de paquet) sans avoir à se poser des questions compliquées sur la gestion bas niveau (gestion de la mémoire, dissection de protocole, ordonnancement des paquets, etc..). Ceci donne des possibilités illimitées quant à l'application de règles de sécurité et d'analyse des flux réseaux.

Un site web a été ouvert, ainsi qu'un github car HAKA est open-source. Get it, commit, play with it, fork it ou tout autre mot en 'it' :) Une version précompilée pour debian (32 ou 64bits) est disponible afin de pouvoir le tester facilement. Haka peut être lancé sur du trafic live pour l'analyser (le logger, bloquer, modifier, etc..) ou bien sur des pcap. La version 0.1 permet d'accéder à n'importe quel champ IP, TCP et HTTP.

Pour montrer la facilité d'usage de HAKA, des tutoriels montrent comment utiliser Haka. Après l'inévitable Hello World, sont présentés la manière de faire du filtrage sur n'importe quel champ IP/TCP/HTTP puis une méthode originale pour bloquer les navigateurs webs qui ne sont pas à jour en les forçant à être redirigés sur les sites d'update. Puis un module de statistiques est écrit sur une manière de browser des pcaps. Ensuite un exemple de détection de SQL injections est écrit: en une centaine de lignes de code, il devient possible de détecter et bloquer (ou modifier, ou ce que vous voulez en fait) des SQLi sur flux sans utiliser de proxy applicatifs ou autre outil lourd, avec des possibilités d'extensions simples. Pour finir, un exemple de groupe de règles est expliqué.

Pour donner un avant goût, voici un exemple de règle haka:
Pour les exemples, un seul endroit: le site web.

Haka a beaucoup d'autres fonctions qui en font un langage facile à utiliser:
debugger, analyse interactive, API C/Lua pour l'étendre, etc... La version 0.1 permet d'utiliser les règles de sécurité, les versions suivantes vont donner la possibilité de définir une grammaire et une machine à état pour définir soi-même des règles de dissection protocolaire.

Haka, c'est bon, mangez-en :-)
---
[1] Ce blog reste un blog personnel, le site officiel et la communication officielle autour de Haka se fait sur son site web et sur github.