Вы находитесь на странице: 1из 12

Livrable semaine 17/03/2010

Mise en place dune solution WAF base de produits open source

Rdig par :Nasredine Boujmil Encadr par : Mr Najib Bazza

Lensemble des livrables raliss chaque semaine reprsente un bilan de taches ralises ainsi que les difficults que jai retrouves au cours de la ralisation et les petites remarques que jai prises .

Livrable 17/03/2011

Cette semaine est a t dune part la premire occasion pour avoir un contact avec un firewall applicatif ( Vulture ) , se documenter auprs de la FAQ et le forum rserv pour ce produit .Ainsi davancer un petit peu au niveau du rapport de stage .

Un petit peu sur Vulture !!!


Vulture est un reverse-proxy offrant des fonctions Web-SSO et firewall applicatif. Vulture est bas sur Apache2, mod_perl et mod_security. Vuture sinterface entre les applications Web et Internet pour offrir scurit et authentification unifie. Les principales fonctionnalits de Vulture sont les suivantes :

Lauthentification unique des utilisateurs avec de nombreuses mthodes supportes o LDAP, SQL, fichier texte, serveur radius, certificats numriques o Conception modulaire qui permet dajouter de nouvelles mthodes dauthentification La propagation de lauthentification sur les applications protges Le chiffrement des flux Le filtrage et la rcriture de contenu Un firewall applicatif bas sur ModSecurity La rpartition de charge

Livrable 17/03/2011

Fonctionnalits Single Sign On


Vulture peut exiger une authentification et imposer un contrle daccs aux utilisateurs. Seuls les utilisateurs authentifis et dment habilits pourront alors accder aux applications protges. Comme prcdemment, Vulture gre plusieurs modes dauthentification. Mais il ne suffit pas dtre authentifi auprs du proxy inverse pour tre authentifi sur les applications. Vulture est capable dauthentifier automatiquement lutilisateur sur les applications quil protge :

Soit en rejouant lidentifiant / mot de passe saisi par lutilisateur (autologon) si les applications partagent la mme mthode dauthentification Soit en rcuprant des informations de profils quil postera de manire transparente aux applications

Vulture permet galement de propager dautres informations destination des applications protges (ex : champs de certificat numrique, informations sur le navigateur client, informations contenues dans un annuaire LDAP, une base SQL ). Auto apprentissage Si aucun profil applicatif nexiste pour une application donne, Vulture proposera lutilisateur de le renseigner lors de son premier accs lapplication. Portail SSO Vulture intgre une fonctionnalit de portail permettant dafficher dynamiquement la liste des applications accessibles un utilisateur une fois connect. Cette liste dpend de la politique daccs dfinie dans Vulture. Profils applicatifs : Fonctionnement par dfaut Les profils applicatifs sont grs par Vulture et conservs de manire scurise (chiffrement avec le mot de passe saisi par lutilisateur pour se connecter) dans la base de donnes interne de Vulture. Si la mthode dauthentification ne demande pas de mot de passe (ex : Certificat numrique), lutilisateur est invit saisir un code PIN pour le chiffrement de son profil. Il lui sera demand chaque nouvelle connexion lapplication pour dchiffrer son profil.

Livrable 17/03/2011

Profils applicatifs : Fonctionnement alternatif Le fonctionnement par dfaut est scuris, mais empche un administrateur de modifier les informations de profil de lutilisateur (puisquelles sont chiffres et que ladministrateur ne dispose pas de la cl de chiffrement). Une option de configuration permet toutefois de dfinir une cl de chiffrement statique pour chiffrer tous les profils applicatif avec une cl unique. Interface de provisionning Vulture intgre une interface sommaire de provisionning pour grer les comptes applicatifs stocks dans la base interne de Vulture.

Il est possible, via des scripts, de crer cette base partir dun rfrentiel existant (il faut dans ce cas avoir accs aux mots de passe des utilisateurs en clair, pour chiffrer le profil avec ce mot de passe) Lutilisateur peut lui-mme renseigner son profil applicatif lors de sa premire connexion lapplication Par dfaut, un administrateur ne pourra que supprimer un profil (ex dun utilisateur qui sest tromp en renseignant son profil)

SSO Forward
Le SSO Forward permet Vulture daller beaucoup plus loin que le simple SSO. Il est en effet possible dassocier un identifiant de connexion, sur Vulture, un profil applicatif, et de transfrer automatiquement ce profil vers lapplication interne (via une methode POST ou une entte authorization) :

1. Lutilisateur sauthentifie sur Vulture 2. Vulture vrifie si lutilisateur peut accder au site 3. Vulture rcupre le profil de lutilisateur 4. Vulture envoi le profil de lutilisateur vers le site

Si lutilisateur ne dispose pas encore de profil, Vulture lui demandera de saisir les informations (ou les enverra automatiquement, en fonction du type de profil). Les mots de passe du profil applicatif sont chiffrs. Le mot de passe de la mthode dauthentification est utilis comme cl de chiffrement.

Livrable 17/03/2011

Si la mthode dauthentification ne demande pas de mot de passe, comme cest le cas pour lauthentification SSL, lutilisateur est invit saisir un code PIN pour le chiffrement de son profil. Il lui sera demand chaque nouvelle connexion lapplication pour dchiffrer son profil. Lorsque le mot de passe de lauthentification de lutilisateur sur Vulture change, Vulture demande alors lancien mot de passe pour dchiffrer le profil chiffr avec lancien mot de passe et le rechiffre automatiquement avec le nouveau mot de passe. Cela permet de sauthentifier avec un mot de passe unique des applications ncessitant chacune un profil (nom dutilisateur, mots de passe) different.
1. Autologon

La propagation autologon, quelle soit de type formulaire POST ou Htaccess, permet de transfrer, inchangs, les logins et mots de passe utilisateurs utiliss sur Vulture. Lutilisateur est ensuite redirig vers la page daccueil de lapplication.
2. Apprentissage

Si aucun profil nest associ une application, Vulture proposera lutilisateur de le renseigner lors de la premire utilisation.

Authentification
Lauthentification sur Vulture permet dinterdire un utilisateur non authentifi daccder (au niveau du flux) aux applications. Vulture supporte diffrentes mthodes dauthentification parmi lesquelles :

Authentification par certificat client x509v3 Authentification LDAP/Active Directory Authentification sur base SQL : MySQL, PostgreSQL, Sybase / SQL Server, SQLite (v2 et v3) Authentification RADIUS

Pour chaque mthode dauthentification une liste de contrle daccs par utilisateur ou par groupe (LDAP) est configurable depuis linterface dadministration. Lensemble des interfaces Vulture est personnalisable. Cela concerne :

La mire dauthentification Le portail SSO prsentant la liste des applications accessibles La mire dauto apprentissage pour les profils applicatifs

Livrable 17/03/2011

Autorisation ACL
Vulture permet de grer des listes de contrle daccs (ACL). Les ACLs permettent de grer les accs aux applications. Ainsi, seuls les utilisateurs faisant parti de la liste pourront accder lapplication associe aprs authentification. Une autorisation est bien diffrente dune authentification. Il est ncessaire de sauthentifier dans un premier temps sur Vulture puis laccs aux applications est ensuite gr par les ACLs. De plus, toutes les mthodes dauthentification SQL et LDAP supportent les ACLs. Les ACLs peuvent tre appliques par utilisateur et/ou par groupe : groupe LDAP ou cl commune pour SQL. Les groupes SQL peuvent tre dfinis en renseignant le nom dune colonne SQL permettant de runir les utilisateurs sous une mme valeur. Contrle daccs par utilisateur :

Contrle daccs par groupe :

Livrable 17/03/2011

Firewall Applicatif
1. Prsentation des fonctionnalits WAF (Web Application Firewall) de vulture Vulture sappuie sur le module mod_security (http://www.modsecurity.org/). ModSecurity est un firewall applicatif Open Source offrant des fonctionnalits de filtrage et de protection trs tendues en contrlant lintgralit des flux Web (headers, contenu, cookies). ModSecurity est activ au sein de Vulture et se configure directement depuis linterface graphique. Il permet doffrir Vulture les fonctionnalits suivantes : Journalisation avance

Toute la transaction est journalise, y compris les requtes POST

Surveillance temps-rel et dtection dattaques Web

Web Intrusion Prevention System

Prvention des attaques et patching virtuel des flux

Modle de scurit ngative : Surveillance des requtes et recherche danomalies, comportement anormaux, attaques Web connues o Calcul dun score de risque pour chaque requte, adresse IP, session applicative, compte utilisateur o Refus des requtes prsentant un score de risque trop lev Modle de scurit positive : Tout est rejet sauf les requtes explicitement autorises Attaques et failles applicatives connues : Systme de rgles de protection permettant de patcher virtuellement les applications : En cas de dcouverte de vulnrabilits, il suffit de pousser une rgle de scurit pour que les applications soient protges, avant mme de scuriser le code source dfaillant.

Systme de rgles et de base de signature rgulirement mise jour

Vulture profite de la base de connaissance mis jour par la communaut

2. Prvention des injections Vulture intgre en standard le module ModSecurity ainsi quun ensemble de groupes de rgles pr-configurs issues du projet ModSecurity Core Rules . Lensemble des rgles est paramtrable depuis linterface dadministration Vulture. Voici pour illustration les diffrentes familles de rgles intervenant dans la prvention des attaques par injection

HTTP protection detecting violations of the HTTP protocol and a locally defined usage policy. 7

Livrable 17/03/2011 Common Web Attacks Protection detecting common web application security attack. Automation detection Detecting bots, crawlers, scanners and other surface malicious activity. Trojan Protection Detecting access to Trojans horses. Error Hiding Disguising error messages sent by the server.

Ces rgles incluent notamment des protections contres diffrents types dinjection et XSS. 3. Protection contre lusurpation de requte En plus des fonctionnalits de base offertes par ModSecurity (utilisation du champ referer pour prvenir lenvoi dinformations POST), Vulture protgera les applications internes contre les usurpations de requtes (attaques XSRF) grce des fonctionnalits spcifiquement dveloppes par Advens :
1. Un token pseudo alatoire sera insr en champ cach dans chaque formulaire offert par les applications protges. 2. Lors de la rception dune requte POST, Vulture exigera ce token et comparera la valeur poste avec celle attendue avant dautoriser la requte. 3. De cette faon si un individu malintentionn tente denvoyer une requte pr formate, cette requte ne sera pas accepte par le serveur (lindividu nayant pas possession de la valeur pseudo alatoire associ au formulaire).

4. Prvention des autres vulnrabilits Vulture embarque le module mod_qos, ce dernier permet de se prmunir des attaques de type DOS. Par ailleurs, la configuration ModSecurity pourra tre adapte pour nautoriser que des formats dinput dfinis au pralable et bloquer le reste.

Rcriture
Vulture est muni de fonctionnalits de rcriture de contenu (que ce soit les enttes HTTP ou le corps des pages). Il est ainsi possible de rcrire tous les lments textes (HTML, CSS, Javascript) des pages accdes au travers des RP. Vulture gre nativement et de manire transparente la rcriture des URLS internes vers des URLS valides depuis lextrieur. Vulture est bas sur le module mod_perl, il est possible dutiliser la puissance des expressions rgulires du langage Perl. 1. Rcriture Interne Vulture est capable de raliser du mappage. En effet, il est possible de raliser de la rcriture dURLs la vole en interne. Exemple : ^/redirect=(.*) => http://$1 [P] 2. Rcriture Externe
8

Livrable 17/03/2011

Le navigateur redirige lutilisateur vers une URL externe. Exemple : ^/redirect=(.*) => http://$1 [R] 3. Rcriture de contenu Vulture est galement en mesure de rcrire la vole le contenu dune page, par exemple remplacer un mot ou un lien.

Haute disponibilit
Vulture supporte les 2 types darchitecture :

Actif/Actif : si vous possdez un quipement en amont (ou via une configuration Round Robin DNS) ce dernier pourra rpartir les requtes indiffremment entre les diffrents proxies inverses du cluster grce un partage des sessions Vulture en temps rel. Actif/Passif : Grce un mcanisme dadresse IP virtuelle (gr par VRRP), Vulture permet dassurer une haute disponibilit de type actif/passif.

La bascule est transparente pour les utilisateurs grce un partage des sessions Vulture en temps rel. La bascule est automatique ds que le serveur secondaire nobtient plus de rponse (ICMP ou sur le service HTTP) de la part du serveur primaire. La bascule peut galement tre manuelle ou scripte (planification dune opration de maintenance par exemple).

Administration
1. Scurisation des flux dadministration Le chiffrement des flux dadministration est activ par dfaut dans Vulture. Lauthentification des administrateurs via un certificat x509 ncessite une lgre reconfiguration de linterface web dadministration. 3. Sauvegarde / Restauration Actuellement, toute la configuration de Vulture est contenue dans un fichier unique quil est possible dexporter automatiquement par SCP, SFTP ou FTP aprs connexion au serveur par SSH. Une fonctionnalit dimport / export de la configuration depuis linterface dadministration doit tre implmente, ce qui rendra inutile toute connexion pralable par SSH.

Livrable 17/03/2011

5. Gestion des journaux Les journaux (logs) sont grs directement par Apache. Il est donc possible de les traiter avec le mme niveau de fonctionnalits :

Paramtrage de la dure de rtention Paramtrage de la verbosit des journaux Paramtrage du format des journaux Envoi temps rel des journaux via des mcanismes SYSLOG

La rotation des logs est active par dfaut et son paramtrage peut tre modifi en console.

Installation de Vulture au niveau dune machine virtuelle Suite des problmes que jai rencontrs lors de linstallation de vulture sous UBUNTU 11.10 jai choisis la distribution debian pour tester vulture :

# apt-get install libapache2-mod-php5 php5-curl apache2-mpm-prefork apache2.2-common \ libapache-session-perl libapache2-mod-perl2 libauthen-radius-perl libio-socket-ssl-perl \ libconvert-asn1-perl libcrypt-blowfish-perl libcrypt-cbc-perl libcrypt-ssleay-perl \ libdbd-pg-perl libdbd-sqlite2-perl libdigest-sha1-perl libhtmlparser-perl libhtml-tree-perl \ libipc-run-perl libmcrypt4 libnet-ldap-perl libperl5.10 liburi-perl libwww-perl php5-ldap \ libmysqlclient15off libdbd-mysql-perl libcache-memcached-perl libstring-crc32-perl \ openssl php5-pgsql php5-sqlite sqlite sudo memcached libcgi-pm-perl php5 # dpkg -i vulture_1.99_i386.deb

10

Livrable 17/03/2011

Puis taper ladresse http://localhost:9090

Utilisateur : admin mot de passe : admin

11

Livrable 17/03/2011

Le menu principal de vulture Les livrables prochains auront comment objet la configuration des rgles au niveau de vulture et de bnficier des diffrents fonctionnalits offerts par ce logiciel open source Rfrences http://vulture.open-source.fr/ www.vultureproject.org/

12

Вам также может понравиться