37
1 ©NBS System Sécurité – Hébergement - Infogérance www.nbs-system.com 1 Sécurité et Firewall Applicatifs 09/05/2011 ©NBS System Sécurité – Hébergement - Infogérance www.nbs-system.com

1 ©NBS System Sécurité – Hébergement - Infogérance 1 Sécurité et Firewall Applicatifs 09/05/2011 ©NBS System Sécurité – Hébergement

Embed Size (px)

Citation preview

1©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com 1

Sécurité et Firewall Applicatifs

09/05/2011

©NBS System Sécurité – Hébergement - Infogérance

www.nbs-system.com

2©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

I. Le web, la bête noire de la sécurité ?

II. Comme si la situation n’était pas déjà assez compliquée comme ça …

III. Quelle contre mesures ?

IV. Firewalls applicatifs

V. Une approche différente du firewall applicatif !

VI. Oui mais …

Sommaire

3©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Le web, la bête noire de la sécurité ?

3©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

4©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Le Web, la bête noire de la sécurité ?

Pour une fois, l’actualité (juste des deux derniers mois, question de place) me donne raison, je ne vais pas me priver !

• MySQL.com• RSA• Sony PSN• HBGarry• Lisamoon• Tous ceux que j’ai oublié• Tous ceux qui ne l’ont pas avoué• Tous ceux qui n’en ont même pas conscience• …

Pas d’inquiétude vis-à-vis de la sécurité web ?

5©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

• MySQL.com : (28 Mars 2011) Base de donnée compromise via une injection SQL

en aveugle, hash de mots de passe déposés sur internet.

• RSA : (15 mars 2011) Même si des schémas d’attaque avancés ont étés utilisés, le point d’entrée reste une vulnérabilité web.

• Sony PSN : (Mai 2011) On ne sait pas (encore) s’il s’agit d’une vulnérabilité applicative, mais le point d’entrée reste un forum (web)

• Lisamoon : (Mai 2011) Vers abusant d’injections SQL pour compromettre des sites web, plus d’UN MILLION de sites infectés

• HBGarry : (Avril 2011) Outre le caractère trollifère de cette histoire, le point d’entrée est ?

Le Web, la bête noire de la sécurité ?

6©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

7©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Le web, la bête noire de la sécurité ?

L’actualité ne fait que confirmer ce que les pentesteurs voient tous les jours.ADMIN’ OR ‘1’=‘1

• La sécurité web est aujourd’hui le point faible de la plupart des systèmes informatiques :• Applicatifs et sites web « historiques »• Développeurs mal sensibilisés• Coût prohibitif de la mise en place d’un pare-feu applicatif

• Les sites développés en 2011 continuent d’être vulnérables ! (il ne sert à rien de se mentir)

Pensez vous que vos sites web soient exempts de failles ?

Sont-ils correctement isolés ?

8©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Comme si la situation n’était pas déjà assez compliquée comme ça …

8©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

9©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Comme si la situation n’était pas assez compliquée comme ça …

Les techniques d’obfuscation des attaques ne cessent d’évoluer, et rendent de plus en plus complexes les méthodes de détection :

• Encoding complexes, abus des formats et syntaxes exotiques supportées

• Des navigateurs toujours aussi (voir même de plus en plus ?) laxistes

• Le tout combiné avec des sites de plus en plus complexes/interactifs, utilisant de plus en plus d’entrées utilisateurs dans des endroits dangereux (javascript ou autre)

• Il devient de plus en plus complexe d’assurer une couverture des risques à 100%

10©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Patterns d’attaques ou bluff ?1°) $=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$__:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"("+$.__$+")"+"\"")())();

2°) (+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+….+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]])()

3°) ï¾Ïï¾ï¾= /ï½ï½Â´ï¼ï¾ ~â»ââ» //*´âï½*/ ['_']; o=(ï¾ï½°ï¾) =_=3; c=(ï¾Îï¾) =(ï¾ï½°ï¾)-(ï¾ï½°ï¾); (ï¾Ðï¾) =(ï¾Îï¾)= (o^_^o)/ (o^_^o);(ï¾Ðï¾)={ï¾Îï¾: '_' ,ï¾Ïï¾ï¾ : � � � � � � � � � �� � �� � � � � � � � � � � � � � � � � � � � � � � � � � �((ï¾Ïï¾ï¾==3) +'_') [ï¾Îï¾] ,ï¾ï½°ï¾ï¾ :(ï¾Ïï¾ï¾+ '_')[o^_^o -(ï¾Îï¾)] ,ï¾Ðï¾ï¾:((ï¾ï½°ï¾==3) +'_')[ï¾ï½°ï¾] }; (ï¾Ðï¾) [ï¾Îï¾] =((ï¾Ïï¾ï¾==3) +'_') [c^_^o];(ï¾Ðï¾) ['c'] = � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �((ï¾Ðï¾)+'_') [ (ï¾ï½°ï¾)+(ï¾ï½°ï¾)-(ï¾Îï¾) ];(ï¾Ðï¾) ['o'] = ((ï¾Ðï¾)+'_')� � � � � � � � � � � � � � � �

4°) javascript:alert('XSS')

5°)setter=alert,a=/XSS/.source

Comme si la situation n’était pas assez compliquée comme ça …

11©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Les technologies – et les navigateurs - continuent d’évoluer, et ce n’est pas pour arranger les choses :

• HTML5 • Javascript offrant le support du multi-threading• Javascript offrant la possibilité de réaliser des communications autres que HTTP• L’impact potentiel d’un cross-site-scripting ne sera plus jamais le même !• Apparition des IDN (noms de domaine accentués)

Comme si la situation n’était pas assez compliquée comme ça …

Il devient de plus en plus complexe d’assurer

une couverture des risques à 100%

12©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Quelles contre mesures ?

12©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

13©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Quelles contre-mesures ?

• Des bons développeurs, sensibilisés aux problématiques de sécurité ?

• Le pentesteur : Vu ce que l’on voit au quotidien, cela va être long• Le RSSI : Les développeurs sont coûteux à former dans un domaine qui n’est pas

leur cœur de métier

• Ce n’est pas pour tout de suite malheureusement, l’histoire se répète, et le suivi des vulnérabilités parle de lui-même :

• Le 9 Mai 2011 : Onze exploits pour des vulnérabilités web publiées depuis le début du mois

• Le 9 Mai 2011 : Trois exploits pour des vulnérabilités « autres » (BOF en tout genres) publiés depuis le début du mois

14©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Quelles contre-mesures ?

• De plus, le niveau technique requis pour exploiter une vulnérabilité web est, dans 95% des cas très faible:

• L’exploitation (et donc l’écriture d’un exploit) d’une vulnérabilité type heap/stack overflow est bien plus complexe.

• Concernant l’exploitation d’une vulnérabilité web, bien souvent, Google combiné à un copier/coller peut faire l’affaire !

• On ne compte plus le nombre de « defacement », souvent révélateurs de la mentalité et du niveau technique de l’attaquant.

Et pour les « anciens » sites ?

15©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Firewalls applicatifs

15©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

16©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Firewalls applicatifs

• Un WAF est un mécanisme placé en amont de l’applicatif à protéger

• Son but est de détecter les motifs dangereux et de les bloquer

• Il existe (beaucoup) d’implémentations propriétaires, vendues sous formes d’appliances, et effectuant (plus) ou moins bien leur travail

• Il existe aussi une option open-source : mod_security, module de la fameuse fondation Apache

17©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Firewalls applicatifs

• Mod_security est un très beau/bon produit, bénéficiant déjà d’une bonne maturité, MAIS :

• S’il s’agit de protéger autre chose que du Apache, il faut l’utiliser en reverse-proxy, avec mod_proxy, qui, lui, n’a pas très bonne réputation

• Il repose sur des règles complexes, qu’il faut mettre à jour régulièrement

• Ou alors payer un « feed » pour des règles plus fines, mais qu’il faut quand même mettre à jour régulièrement

18©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Firewalls applicatifs

• De manière plus générale, les WAFs posent certains problèmes :

• Configuration souvent complexe• Maintenance des règles de sécurité• Reporting• Réponse en profondeur aux problèmes• S’il ne s’agit pas d’un produit open-source, cout d’entrée & de licence important,

et cout augmentant en fonction du trafic !

Probablement la raison du très faible taux d’adoption des WAFs !

19©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Une approche différente du firewall applicatif !

19©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

20©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Introducing NAXSI

NginxAntiXssSqlInjection

Un module (open-source bien sur !) de firewall applicatif pour NGINX

21©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

d

Introducing NAXSI

• Ce module a été conçu, avant tout, pour nos besoins et pour les besoins de nos clients (L’hébergement infogéré est le deuxième métier de NBS System !)

• Celui-ci adopte une philosophie simple :

• Des patterns extrêmement simples• Une configuration accessibles aux non experts, avec un auto apprentissage• Pas de mise à jour des règles• Un logiciel ayant pour objectif de rester SIMPLE

• Un logiciel utilisable par des techniciens faisant de l’exploitation et non seulement par un expert en sécurité

22©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Introducing NAXSI

• NAXSI repose sur NGINX, le reverse-proxy/serveur web venu du froid

• NGINX est orienté hautes performances, capable de gérer 10K de connexions simultanées avec moins 10Mo de mémoire

• Il s’agit d’un projet très actif, et que nous utilisons notamment en tant que reverse proxy en environnement de production :

• 1000 sites web, dont 600 de e-commerce• 1 To de trafic total par jour (web uniquement)• Plus de 300 serveurs physiques• 4 Nginx actifs pour gérer la quasi-totalité du trafic

23©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Introducing NAXSI

• Le concept de NAXSI est de rester simple :

• Interdire les caractères qui n’ont rien à faire dans une requête normale :• < > ‘ ; ….

• Et appliquer de la liste blanche sur les pages nécessitant des caractères anormaux

• Pas de base de signature à maintenir, et les règles sont extrêmement simples et claires !

• Le module se voulant simple au possible, toute l’intelligence associée à ce genre de mécanisme est externalisée, dans l’objectif d’être fortement interopérable !

24©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Mode de fonctionnement

24©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

25©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Mode de fonctionnement

• Un set de règles communes, peu nombreuses (moins de 50)

• Avec une syntaxe simple, et faciles à comprendre :• MainRule "str:/*" "msg:mysql comment (/*)" "mz:BODY|URL|ARGS" "s:$SQL:8"

id:1003;• MainRule "rx:http://|https://" "msg:protocol scheme" "mz:BODY|ARGS" "s:

$RFI:4" id:1007;

• Qui ne devraient donc pas demander d’être maintenues, car reposant sur des primitives très simples !

26©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Mode de fonctionnement

• Combinée avec une configuration « par site » pour gérer les listes blanches :

BasicRule wl:1304 "mz:$URL:/site/v1.2/images/interne/home_inscription_news.jpg|URL" id:0;

• Et de manière plus générale, le comportement :

• CheckRule "$SQL >= 8" BLOCK;• CheckRule "$RFI >= 4" BLOCK;• CheckRule "$TRAVERSAL >= 4" BLOCK;• CheckRule "$XSS >= 2" LOG;• CheckRule "$XSS >= 8" BLOCK;

• Pouvoir apporter une réponse « par site » :• DeniedUrl "http://myvulnerablesite/denied_page.php";

27©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Mode de fonctionnement

• Toutes les informations sur le pourquoi et le comment d’une requête bloquée sont transmises à la page dite de « blocage ».

• Lorsqu’une requête est considérée illégitime, le module retournera un « 302 redirect » vers la page spécifiée en configuration.

• Permet d’externaliser l’intelligence du module :

• Statistiques• Détection des faux positifs• Réponse en deux temps (blocage de l’attaquant ?)

• Permet un bon suivi ‘en temps réel’ des attaques et/ou faux positifs !

28©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais …

28©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

29©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais … la configuration ?

• NGINX peut aussi être utilisé en proxy sortant, et le module transmet toutes les informations du blocage à la page web associée.

• Ce qui permet la mise en place d’un mode d’auto-apprentissage !

30©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais … la configuration ?

• La page de blocage reçoit toutes les informations associées à la requête bloquée :

• Permet de générer les listes blanches directement, et de les écrire dans un fichier :BasicRule wl:1304 "mz:$URL:/site/v1.2/images/interne/home_inscription_news.jpg|URL" id:0;BasicRule wl:1305 "mz:$URL:/boutique/liste_produits.cfm|$ARGS_VAR:vente" id:0;

• L’objectif ici est que les développeurs, pendant leurs phases de développement et test, puissent générer eux même leur listes blanches, simplement en effectuant des scénarios de navigation.

• Comme vous le voyez ci-dessus, la syntaxe des règles est simple, et celles-ci peuvent être revues par un non-expert en sécurité.

31©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais … le reporting?

• La page de blocage reçoit toutes les informations associées à la requête bloquée :

• Permet un traitement « sur mesure » des alertes etc., via du développement web (technologie libre)

• Génération de statistiques• Réponse en profondeur (communication avec un script iptables ?)

• Je ne suis (mal)heureusement pas développeur web, cette partie est donc encore à l’étude.

• Nous espérons pouvoir fournir, lors de la release du module, une interface simple et modulaire.

32©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais … les performances ?

• NAXSI repose sur NGINX, connu pour ses hautes performances.

• Grâce à une architecture logicielle simple, les performances ne s’en feront que très peu ressentir.

• Les premiers tests de charge réalisés :

B1 = Nginx avec le moduleB2 = Nginx sans le module

33©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais … les performances ?

• La ou le module aura les plus mauvaises performances est le cas suivant :• Des requêtes légitimes, mais volumineuses.• Dans un tel cas, le module devra parser l’intégralité des données !

• Dans un tel cas, on relève une baisse de 5% des performances maximales de NGINX

34©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Oui mais … l’exploitation ?

• Il est ainsi possible de désactiver temporairement tout ou partie des règles du module sur un site (ou une page particulière).

• L’objectif est ici de pouvoir amener une réponse technique rapide et adapté à toute problématique de production.

• Pouvoir, à tout moment, et avec UNE ligne de configuration, désactiver partiellement le module !

• Désactiver une règle sur un site :BasicRule wl:1003;

• Désactiver le WAF sur une page d’un site :BasicRule wl:1305 "mz:$URL:/boutique/*" id:0;BasicRule wl:ALL "mz:$URL:/boutique/*" id:0;

35©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Road Map !

35©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com Document confidentiel

36©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

RoadMap

• Le développement initial du module est (presque !) fini, toutes les fonctionnalités présentées ici sont fonctionnelles.

• Mais, avant de distribuer NAXIS, il nous reste a :

• Continuer les tests de performances dans différentes situation• Faire tester notre module par des confrères en sécurité pour avoir des points de

vue extérieurs et techniques (nul n’est infaillible !)

• Nous sommes en train de nous préparer à mettre le module en production sur certains de nos clients en hébergement : l’épreuve du feu !

• Nous avons besoin de votre aide !

• Pentesteurs (Audit du code source et test « live » de la sécurité du produit)• Utilisateurs / RSSI (Donnez nous des idées pour l’interface web !)

37©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com

Q&A

37©NBS System

Sécurité – Hébergement - Infogérancewww.nbs-system.com