Le «pare-feu» applicatif Introduction Pré-requis - configuration Pré-requis - installation



Documents pareils
WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Sécuriser les applications web

Présentation de la solution Open Source «Vulture» Version 2.0

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity

Rapport de certification ANSSI-CSPN-2010/05. ModSecurity v2.5.12

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Vulnérabilités et sécurisation des applications Web

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

Apache en tant que reverse proxy

Sécuriser les applications web de l entreprise

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Sécurité des réseaux Les attaques

Serveur Web Apache. Jean-Marc Robert Génie logiciel et des TI

Internet. Web Sécurité Optimisation

Les utilités d'un coupe-feu applicatif Web

Linux sécurité des réseaux

TP N 2. Mise en œuvre d un Reverse Proxy Apache. Installation et configuration de ModSecurity 2.1

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Vulnérabilités et solutions de sécurisation des applications Web

Création d un «Web Worm»

Bon ben voilà c est fait!

Application Web et J2EE

ADF Reverse Proxy. Thierry DOSTES

Projet Administration Réseaux

Tutoriel compte-rendu Mission 1

1 La visualisation des logs au CNES

MANUEL D INSTALLATION D UN PROXY

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Web Application Firewalls (WAF)

Proxy et reverse proxy. Serveurs mandataires et relais inverses

DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications.

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

1. Formation F5 - Local Traffic Manager Configuring (LTM)

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Un reverse proxy, pour quoi faire?

La Sécurité des Données en Environnement DataCenter

CS REMOTE CARE - WEBDAV

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Formation en Sécurité Informatique

Installation de SCCM 2012 (v2)

Zoom sur Newtest LDAP intégration

S Catalogue des Formations Sécurité. Présentation. Menu. Présentation P.2 Nos formations P.3 Modalités P.9 Bulletin d inscription P.

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Ce guide détaille pas à pas les étapes d installation et de configuration de la solution jusqu'à la sauvegarde des BDD.

Tutoriel de formation SurveyMonkey

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Le serveur HTTPd WASD. Jean-François Piéronne

akersia Présentation de compétences et technologies Janvier 2008 Frédéric Laplagne: Jordi Segués:

TEST D INTRUISION. Document Technique

Aperçu technique Projet «Internet à l école» (SAI)

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

La Gestion des Applications la plus efficace du marché

Une approche positive du filtrage applicatif Web. Didier «grk» Conchaudron Sébastien «blotus» Blot

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Serveur proxy Squid3 et SquidGuard

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Serveur Mandataire SQUID

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Réseau - Sécurité - Métrologie - Data Center. Le leader du marché allemand des UTM débarque en France avec des arguments forts!

Dans le cadre de SECURIDAY Et sous le thème de Computer Forensics Investigation SECURINETS. Analyse des fichiers LOG. Tarek LABIDI (RT3)

WDpStats Procédure d installation

Mise en place d un serveur Proxy sous Ubuntu / Debian

MISE EN PLACE DU FIREWALL SHOREWALL

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Protection des protocoles

TAGREROUT Seyf Allah TMRIM

ENDPOINT SECURITY FOR MAC BY BITDEFENDER

Hébergement de site web Damien Nouvel

Installation et configuration du CWAS dans une architecture à 2 pare-feux

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

TUNIS LE : 20, 21, 22 JUIN 2006

Réseaux et protocoles Damien Nouvel

Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

USERGATE PROXY & FIREWALL. Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

SQUID Configuration et administration d un proxy

Pilote KIP certifié pour AutoCAD. Guide de l utilisateur État de l imprimante KIP

CASE-LINUX MAIL - ROUNDCUBE

Automatisation de l administration système

Les réseaux des EPLEFPA. Guide «PfSense»

pare - feu généralités et iptables

Teste et mesure vos réseaux et vos applicatifs en toute indépendance

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure

Architectures web/bases de données

Outils de traitements de logs Apache

Transcription:

Le «pare-feu» applicatif Introduction Pré-requis - configuration Pré-requis - installation ADF, Montpellier septembre 2008

Attaques : ««visant des applications web et en particulier PHP fondées sur possibilité de faire exécuter des commandes via telle faille mod_security : Définir des règles -filtrant la plupart des requêtes

mod_security ATTAQUES Attaques fondées sur possibilité de faire executer des commandes : Des applications WEB ( PHP en particulier) avec des règles filtrant la plupart des requêtes Faille(s) Wget / uname /rm /mv /pwd /chmod /lynx /perl /chr /curl /fetch /cd /cmd/

Module de Apache 2 Moteur de détection et de prévention d intrusion OpenSource pour les applications Web On parle de : «pare-feu applicatif» Travaille au niveau de la couche application : http Fonctionne sur un mode de règles / filtres Cette version 2.x apporte : «Un support XML ( permet un firewall XML) «Granularité fine dans les règles apportant grandes précisions «5 phases d intervention possibles

Filtrages de requêtes, de patterns,.. Filtrages HTTPS, données compressées Stoppe des requêtes suspectes avant qu'elles n'atteignent une application PHP Journalisation des requêtes, analyse des logs Analyse de contenu (lors de l utilisation de la méthode POST) des fonctions de prévention d attaques

LUA : langage de programmation Libxml2 : librairie xml PCRE : Perl compatible regular expression NB : privilégier les packages des distributions

Pré-requis : Apache 2 et libxml2 Cas 1 : installation rapide : celle de votre distribution Cas 2 : nous compilons le module télécharger le module 2.5.4 du site web, décompresser Compilation : => mod_security2.so

5 phases - des Règles, Actions, Filtres ADF, Montpellier septembre 2008

document

Possibilité de définir à quelle phase intervenir : différents niveaux «Globalement : SecDefaultAction «log,pass,phase:2» Ou SecRule HTTP_HOST «!^$» «deny,phase:1» «Dans la règle SecRule REMOTE_PORT «@gt 1024»»deny,phase:2»

ARGS traite l'ensemble des arguments, ou accéde à un argument en particulier, ou à tous les arguments sauf un,... AUTH_TYPE pour accéder au type d'authentification ENV HTTP_REFERER pour l'accès au Referer REMOTE_ADDR et REMOTE_HOST pour connaître l'adresse IP ou le reverse DNS du client REQUEST_BODY : corps d'une requête REQUEST_HEADERS : en-tête d'une requête REQUEST_METHOD : la méthode HTTP utilisée RESPONSE_BODY et RESPONSE_HEADERS : l'ensemble de la réponse

Coder / Décoder en base64 Décoder un url Enlever des espaces Calculer des empreintes md5 ou sha1.

Allow auditlog : journaliser l'action dans le fichier d'audit capture: sauvegarder la transaction, 10 captures sont possibles chain: permet d enchaîner plusieurs règles ctl : mettre à jour les règles de filtrage deny : bloque la requête et l'interprétation des autres règles. drop : coupe la connexion au niveau TCP exec : lance un script externe (pour bloquer une adresse par exemple) log : journalise la transaction

phase : précise la phase durant laquelle la règle sera mise en place proxy : relaye la requête vers un autre serveur (si mod_proxy est installé) redirect : redirige le client vers une url donnée sanitisearg, sanitisematched, sanitiserequestheader. actions de nettoyage severity : spécifie le niveau d'une alerte status : spécifie la réponse HTTP : 403, 404,...

SecRule est la principale directive : SecRule VARIABLES OPERATEUR [ACTION] Variables : spécifie la variable que l on veut tester Exemple :le client possède t il l adresse 192.168.1.1? SecRule REMOTE_ADDR «^192\.168\.1.1 Opérateur : est précédé par @ : lt, gt, ; la négation est représentée par! SecRule REMOTE_PORT «@lt 1024» Action : précise ce que l on veut faire SecDefaultAction «log,pass,phase:2» OU «deny,log,status:400,phase:2»

LoadFile /usr/lib/libxml2.so.2 modsecurity.conf LoadModule security2_module LoadModule unique_id_module modules/mod_unique_id.so SecRuleEngine On SecRequestBodyAccess On (activation inspection du champs des requêtes) SecResponseBodyAccess On (activation inspection des trames réponses) # changer la bannière du serveur SecServerSignature " MON_SERVEUR" SecDebugLog modsec2_debug.log SecDebugLogLevel 3 (notices)(0=nolog 1=err only 2=warning 4=détails 5=détails handled 9=tout est journalisé et détaillé) # bloquer l accès au fichier testhsc avec un message SecRule REQUEST_FILENAME "testhsc" log,deny,status:403,msg: non permis-testhsc

5- Scan / filtres SecFilterScanPost On Off (scanne les variables POST) SecFilterDefaultAction + Action à prendre par defaut SecFilterDefaultAction «deny,log, status:400» => interdit requêtes invalides

: des options utiles : v2.x Création de filtres : SecFilter SecFilter /bin/ls (interdit commande ls, exec, ) Des filtres plus précis SecFilterSelective THE_REQUEST «wget» SecFilterSelective ARG_PHPSESSION «!^[0-9a-z]*$» SecFilterSelective COOCKIE_PHPSESSIONID «!^[0-9az]*$» SecFilterSelective REQUEST_METHOD TRACE

#bloquer tout ce qui contient mot viagra ou mortgage ou herbal SecFilter «viagra mortgage herbal» SecFilter scanne toute la requete #Scanne variable(s) post uniquement ou autres champs SecFilterSelective «POST_PAYLOAD» «viagra» SecFilterSelective «HTTP_REFER» «(viagra toto mortgage)» #rediriger agent google SecFilterSelectve «HTTP_USER_AGENT» «Google» nolog, redirect:http://www.google.com

#Applications Web # Vérifier la valeur numérique d une variable SecRule ARGS:maVar "!(^[0-9]*$)" log,deny,status:403 # test une valeur d une liste blanche avec home et liens SecRule ARGS:file "!(^(home liens)\.php$)" log,deny,status:403 # Détection attaque type Injection SQL (modification d une variable utilisée dans la requête SQL) SecFilter «or.+1[[:space]]*=[[:space]]

# attaque sur BD SecFilter «exec.+xp_» ( souvent attaques par xp_cmdshel) SecFilter «@ @ [[ alnum : ]]+» (tout attaché) SecFilter «exec.+sp_» SecFilter «load [[:space]]+data» SecFilter «delete [[:space]]+from» SecFilter «create [[:space]]+table» SecFilter «update.+set.+=» SecFilterSelective ARGS «drop [[:space]]+database» SecFilterSelective ARGS «drop [[:space]]+table»

modsecurity_crs_10_config.conf modsecurity_crs_20_protocol_violations.conf modsecurity_crs_21_protocol_anomalies.conf modsecurity_crs_30_http_policy.conf modsecurity_crs_35_bad_robots.conf modsecurity_crs_40_generic_attacks.conf modsecurity_crs_45_trojans.conf modsecurity_crs_50_outbound.conf modsecurity_crs_55_marketing.conf modsecurity_localrules.conf

LoadFile /usr/lib/libxml2.so.2 LoadModule security2_module modules/mod_security2.so LoadModule unique_id_module modules/mod_unique_id.so <IfModule mod_security2.c> # This is the ModSecurity Core Rules Set. # Basic configuration goes in here Include modsecurity.d/modsecurity_crs_10_config.conf # Protocol violation and anomalies. Include modsecurity.d/modsecurity_crs_20_protocol_violations.conf Include modsecurity.d/modsecurity_crs_21_protocol_anomalies.conf # HTTP policy rules Include modsecurity.d/modsecurity_crs_30_http_policy.conf

# Here comes the Bad Stuff... Include modsecurity.d/modsecurity_crs_35_bad_robots.conf Include modsecurity.d/modsecurity_crs_40_generic_attacks.conf Include modsecurity.d/modsecurity_crs_45_trojans.conf Include modsecurity.d/modsecurity_crs_50_outbound.conf # Search engines and other crawlers. Only useful if you want to track # Include modsecurity.d/modsecurity_crs_55_marketing.conf # Put your local rules in here. Include modsecurity.d/modsecurity_localrules.conf </IfModule>

modsecurity_crs_10_config.conf. # bloquer le bot DTS agent SecFilterSelective HTTP_USER_AGENT "DTS Agent" # Empecher l'acces fichier /etc SecFilterSelective THE_REQUEST "/etc" # Empecher une attaque transversale de répertoire SecFilter "\.\./" # Empêcher téléchargement de fichiers ou certaines commandes SecFilterSelective THE_REQUEST "echo " SecFilterSelective THE_REQUEST "uname " SecFilterSelective THE_REQUEST "mkdir " SecFilterSelective THE_REQUEST "cmd " SecFilterSelective THE_REQUEST "mv " SecFilterSelective THE_REQUEST "links -dump " SecFilterSelective THE_REQUEST "links -dump-width " SecFilterSelective THE_REQUEST "links -dump-charset " SecFilterSelective THE_REQUEST "links http:// " SecFilterSelective THE_REQUEST "links ftp:// "

Vérifie que les requêtes sont conformes aux règles de construction du protocole HTTP Teste : -présence de NULL -- méthodes HEAD et GET -- taille des trames -- contenu entête HTTP -- construction de la request line

Complète le précédent : JOURNALISE signale dans les LOGS des ANOMALIES Alerte : -Utilisation adresse locale -- requête HTTP0.9 -- rejet de la requête initiale

restreint/autorise Blocage de méthodes telles CONNECT, TRACE, DEBUG extension de fichiers,.ini, fichiers de bases de données Limitation de tailles upload

Permet d inscrire des robots qui n en seraient pas Intervient en phase 2

Met en place des règles contre des attaques génériques XSS, injection SQL,.. -Fixe les sessions --injections sql aveugles -- attaques XSS -- attaques ouvertures de fenetres de commandes shell --injections diverses ( ldap, ssi, coldfusion )

Détecte et interdit les accès aux chevaux de troie connus Ce fichier devra être tenu à jour régulièrement en téléchargeant les règles ou bien en les insérant manuellement dans le fichier

Détecte et interdit les trames contenant des informations susceptibles dêtre utilisées pour des actions malveillantes

INFORMATION : Principalement journalisation et log de transactions en provenance de -Google --Yahoo -- MSN

1- partie requête et réponse des applications peuvent s arrêter ou bloquer 2- consommation mémoire le «body» est parfois conservé en mémoire gérer les tailles de réponses ( c est possible avec la v 2.x) pas de probleme avec un reverse-proxy peut surcharger le serveur 3- consommation CPU - vérifier le CPU-Bound Pas de problème dans un contexte de reverse proxy 4- nécessite une personnalisation des règles 5- n est pas un outil infaillible

. -Cf Doc. Modsecurity en pdf -Cf liste des codes erreurs modsecurity -Cf liste des codes erreurs http ADF, Montpellier septembre 2008

ordre dans le fichier nom fichier code message 3 crs_55 910006 robot google 2 crs_55 910007 robot yahoo 1 crs_55 910008 robot msn 5 crs_40 950001 sql injection attack 11 crs_40 950002 system command access 9 crs_40 950004 xss: attack cross script 10 crs_40 950005 file injection 12 crs_40 950006 system command access 2 crs_40 950007 sql injection attack 14 crs_40 950008 cold fusion injection de doc 1 crs_40 950009 request header session fixation 15 crs_40 950010 ldap injection 16 crs_40 950011 ssi injection 17 crs_40 950013 php injection 19 crs_40 950018 persistant universal pdf attack 20 crs_40 950019 email injection 1 crs_45 950110 trojan : backdoor access 404 3 crs_40 950903 request header referer 4 crs_40 950904 sql injection attack 6 crs_40 950905 sql injection attack 7 crs_40 950906 sql injection attack 13 crs_40 950907 system command access / user agent 501 8 crs_40 950908 sql injection attack 18 crs_40 950911 http splitting attack 2 crs_45 950921 trojan : backdoor access 3 crs_45 950922 trojan : backdoor access 6 crs_30 960010 request content not allowed by policy 5 crs_30 960032 method not allowed by policy 7 crs_30 960034 http protocol version not allowed 8 crs_30 960035 url file extension restricted 9 crs_30 960038 http header restricted 10 crs_30 960902 modsecurity doesnt support encoding 11 crs_30 960903 modsecurity doesnt support encoding 1 crs_50 970002 2 crs_50 970003 sql 3 crs_50 970004 IIS 5 crs_50 970007 zope 6 crs_50 970008 cold fusion 7 crs_50 970009 php info 8 crs_50 970010 isa server 9 crs_50 970012 word 10 crs_50 970013 directory - authorisé 11 crs_50 970014 jsp - asp 13 crs_50 970015 php 15 crs_50 970016 cold fusion 16 crs_50 970018 IIS 19 crs_50 970021 weblogic 18 crs_50 970118 appli non disponible 17 crs_50 970901 appli non disponible 14 crs_50 970902 php source code 12 crs_50 970903 jsp - asp 4 crs_50 970904 IIS 1 crs_35 990002 bad robots : scanner web site 4 crs_35 990011 automatic program explore web site 3 crs_35 990012 rogue web site crawler 2 crs_35 990901 bad robots : scanner web site