L`usage des proxy dans une infrastructure réseau
Transcription
L`usage des proxy dans une infrastructure réseau
Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 L'usage des proxy dans une infrastructure réseau Travail de Recherche Bibliographique mots clés: proxy, performance, sécurité, IDPS, cache, serveur L'usage des proxy page 1 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 Table des matières 1. Introduction ...................................................................................................... 4 1.1. Définition............................................................................................................... 4 1.2. Bénéfices des proxys............................................................................................. 4 2. Mutualiser une ressource....................................................................................6 2.1. le proxy côté client................................................................................................. 6 2.1.1. Présentation rapide .................................................................................................. 6 2.1.2. Que mettre en cache?............................................................................................... 6 2.1.3. Objets non-cachables................................................................................................7 2.1.4. Objets cachables....................................................................................................... 7 2.1.5. Cache de niveau 2......................................................................................................8 2.2. Le reverse-proxy ou proxy côté serveur............................................................... 9 2.3. Le proxy d'interceptions...................................................................................... 10 2.4. Pertinence d'utilisation des proxy-caches........................................................... 11 2.4.1. Paradoxe du cache.................................................................................................. 11 2.4.2. Problèmes résultant de l'utilisation de caches.........................................................12 3. Proxy comme passerelles applicative............................................................... 13 3.1. Diversité des protocoles supportés..................................................................... 13 4. Renforcement de la sécurité avec un serveur proxy..........................................14 4.1. Contexte ............................................................................................................. 14 4.2. Infrastructure renforcée avec un proxy............................................................... 15 4.2.1. Problèmes ............................................................................................................... 15 4.2.2. Solution typique .................................................................................................... 16 5. Conclusion........................................................................................................ 19 L'usage des proxy page 2 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 6. Références........................................................................................................ 20 6.1. Documents normatifs.......................................................................................... 20 6.2. Article Web........................................................................................................ 20 6.3. produits............................................................................................................... 21 L'usage des proxy page 3 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 1. Introduction 1.1.Définition Le proxy ou serveur mandataire est un serveur informatique qui a pour fonction de relayer des requêtes entre un poste client et un serveur, afin d'assurer une passerelle vers une application de haut niveau. L'utilité des serveurs mandataires est importante, notamment dans le cadre de la sécurisation des systèmes d'information. Le logiciel de serveur proxy les plus célèbre sont les serveurs proxy web, comme par exemple Squid. A cette définition issue de Wikipédia, on comprend que le proxy à un rôle spécial par rapport au modèle client serveur: il est intercalé entre le client et le serveur, avec la particularité de s'intercaler au niveau applicatif. Il ne reste qu'à dérouler les conséquences de ce décalage et de tous les avantages que l'architecte réseau peut en tirer. 1.2.Bénéfices des proxys Les proxys sont des passerelles applicatives, elles ont des rôles assez divers : 1. on peut faire des traitements sur les requêtes: 1. validation de la requête, 2. filtrage de contenu: antivirus, antispam, antispyware. 3. gestion d'accès. 2. on peut mutualiser une ressource commune afin d'optimiser le fonctionnement d'une partie de l'infrastructure: 1. en étant placé à proximité du client, 2. en étant placé à proximité du serveur, 3. Les proxys sont des relais intelligent du réseau qui peuvent être utilisé 1. pour équilibrer la charge des serveurs, 2. associé avec d'autres éléments pour sécuriser un segment de réseau, 3. de façon invisible ou non. L'usage des proxy page 4 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 On observe d'abord qu'ils y a de nombreux usages du proxys. En observant le marché on constante que ses différents rôles sont souvent remplis par des produits différents, même s'ils peuvent travailler ensemble. C'est pourquoi on détaille les points intéressants de chacun des rôles. Puisque le bénéfices qu'on verra sont réels, on indiquera aussi les limites qui leurs sont intrinsèques: on observe par exemple qu'il y a une condition sinequa none pour utiliser un serveur proxy en tant que passerelle applicative. Il faut que le protocole transporté supporte les altérations sur les requêtes ou les données qui pourraient être introduite par le « proxy ». Ceci réduit le champs d'action des proxy sur les connexions sécurisées. L'usage des proxy page 5 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 2. Mutualiser une ressource 2.1.le proxy côté client 2.1.1. Présentation rapide L'usage le plus célèbre d'un serveur proxy est le fonctionnement en serveur relais et cache, lorsqu'il est utilisé à « proximité » du client. Il est alors utilisé comme un moyen de supprimer les échanges inutiles sur une connexion de mauvaise qualité (coût, performance) et diminuer les temps de chargements. Cette mauvaise connexion pouvant être un réseau local par rapport à une connexion internet. Ce genre d'application à beaucoup régressé avec l'apparition de connexions large bande pour les entreprises. L'idée de base est de dire que si on télécharge une fois la page d'accueil de Google et qu'on la distribue localement à chaque nouvelle demande on économise de la bande passante. Cette idée n'est pas dénuée de fondements mail quelques éléments permettent de la discuter. Illustration 1: Schéma d'un réseau avec proxy (www.commentcamarche.net ) 2.1.2. Que mettre en cache? La mise en cache, c'est à dire l'action de stocker un document dans le serveur proxy afin de l'avoir à disposition en prévision d'une prochaine requête est extrêmement problématique. L'usage des proxy page 6 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 Dans le contexte WEB, Cisco a développé un protocole propriétaire afin de permettre un soit disant meilleur dialogue entre les caches et les routeurs. Il s'agit du Web Cache Communication Protocol disponible en version 2 à partir de l'IOS 12.0. 2.1.3. Objets non-cachables On aurait tord de penser que tous les documents sont identiques aux yeux des proxy-caches. Le proxy cache ne doit pas pas être un point de faiblesse d'une infrastructure réseau sécurisée. Par mesure de précaution on lui interdit de stocker toutes les données d'authentification qui transitent par lui. Par données d'authentifications, il faut comprendre les mécanismes d'authentifications propres au protocole sur lequel intervient le proxy. Dans le cas du web, ce n'est pas les données d'authentification de l'application Web transportée dans le document mais les données d'authentification du protocole HTTP, ce qui est significativement différent. L'autre point important c'est que le serveur proxy-cache n'est pas en mesure d'intervenir sur les flux chiffrés car il ne peut simplement pas les interpréter. Les flux chiffrés sont les flux de données utilisant IPSec ou SSL ( HTTPS, FTPS dans l'exemple du Web). 2.1.4. Objets cachables On a vu une méthode afin de savoir si l'objet transitant par le proxy est cachable ou non. Cependant, tout n'est pas joué car le fonctionnement du proxy étant, on le souhaite, le plus possible discret, le grand problème est d'activer le service et non de le désactiver. C'est là ou on comprend que le proxy doit nécessairement avoir une bonne compréhension du protocole transporté. HTTP est un protocole idéal à observer pour comprendre le fonctionnement du proxy. En effet, comme tout stockage intermédiaire, on a des difficultés à savoir quoi mettre en cache et pour combien de temps. En effet, ce protocole, lorsqu'il transmets un document ajoute des méta-données qui sont en fait les commandes du protocole. HTTP permet d'expliciter le statut du document vis-à vis de la mise en cache. La RFC 2616 décrit plusieurs header pouvant être interprété par les caches L'usage des proxy page 7 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 ( 14.9, 14.19, 14.20, 14.21, 14.24 à 14.29). Le but est de contrôler si le fichier à été modifié depuis le dernier transfert, de vérifier si le fichier n'a pas été modifié, de vérifier s'il n'a pas expiré. Cette approche est une approche collaborative des proxy web. En effet l'application doit prendre en compte les headers spéciaux pour tirer partie de ces fonctionnalités. Cette approche est réaliste dans le cadre d'un intranet car toutes les pièces de celui-ci seront contrôlé par une volonté centralisée (DSI...). Dans le cadre « internet », rien n'est moins évident: on a aucune garantie que le mécanisme sera largement utilisé. C'est donc au cache de prendre une décision en ce basant sur la connaissance du fichier qu'il aura. Selon sa configuration le cache peut se résoudre à stocker les documents correspondant à certains types mimes, comme les images. Les objets difficilement cachables sont les pages dynamiques parce que puisqu'elles sont générées à la volée, elles peuvent devoir être unique. Dans ce cas, il faudra que l'application qui génère les pages gère le cache explicitement, ce qui est assez rarement déployé. 2.1.5.Cache de niveau 2 Tous les navigateurs modernes utilisent des caches locaux pour effectuer plus rapidement le rendu des pages. Ceci a pour conséquence que le proxy cache devient de fait un cache de niveau 2, mais toujours sans l'intelligence lui permettant d'anticiper les demande qu'on lui fera. L'usage des proxy page 8 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 2.2. Le reverse-proxy ou proxy côté serveur Lorsqu'il est à proximité du serveur, le proxy relaie 1 serveur pour n clients. Ce comportement est suffisement spécifique pour être distingué du premier fonctionnement vu. Ce mode permet de réduire l'étendue des objets cachables, afin de s'assurer de la taille du cache. Cependant on conserve les autres problèmes. Le premier avantage de cette méthode est la performance puisque on va séparer les fonctions de génération de données et leurs distribution. Ce n'est pas exactement le même service vendu par les société de distribution de contenu comme Akamai ou Velocix, mais le principe est voisin. Les reverse-proxy doivent collaborer avec les applications qu'ils distribuent: le minimum en étant compatible ou sinon en établissant un mécanisme transparent pour l'utilisateur. Dans le cas d'un serveur web le plus simple est de déclarer le serveur proxy comme serveur web dans le DNS. Dans ce cas l'utilisateur est complètement aveugle du fonctionnement réel de l'infrastructure d'hébergement. Le proxy peut avoir en plus de sa fonction de distribution, le rôle de bout d'un tunnel SSL, ainsi la fonction cache n'est pas gênée le chiffrage des données. Pour les produits qui sont capables de gérer plusieurs serveur applicatif simultanément mais lorsqu'on ne dispose que d'un unique certificat, c'est une solution efficiente. L'inconvénient majeur que l'on trouve dans ce cas c'est que le proxy sera un « single point of failure », c'est à dire le point faible de l'infrastructure en L'usage des proxy page 9 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 terme de disponibilité. 2.3.Le proxy d'interceptions D'après plusieurs documents, on trouve mention de caches « spécifiques » aux fournisseurs d'accès, on peut siter AOL. Ce sont des caches qui permettent de rendre les documents les plus populaires plus rapidement disponible. Ils sont souvent configuré pour être transparents et sont invisibles à l'utilisateur. La majorité des documents témoignent que ses techniques ont eu des effets négatifs, comme l'incompréhention des webmestre sur les adresses vues dans les logs ou pas d'effet du tout côté client. L'usage des proxy page 10 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 2.4. Pertinence d'utilisation des proxy-caches 2.4.1. Paradoxe du cache Jean-Claude Sohm posait le paradoxe suivant en 2002: Le cache accélèretil les consultations ? Il existe de par le monde un peu plus de 38 millions de sites web régulièrement actifs. Ils mettent à notre disposition un peu plus de deux milliards de pages web. La probabilité pour que deux internautes, dont les besoins en information sont indépendants, demandent la même page, vaut donc 5.10-10. Si le proxy dessert cent utilisateurs, et si chacun d'eux télécharge 10 pages web, il existe moins d'une chance sur un million pour que le proxy joue son rôle de cache, et ce pour une seule page. Si les décideurs qui signent les bons de commande connaissaient mieux Internet et le calcul des probabilités, on ne vendrait pas beaucoup de serveurs proxy pour leur rôle de cache ! Il semble paradoxal que l'on puisse obtenir un gain significatif alors qu'à priori le recouvrement des besoin est faible. Ce paradoxe peut se résoudre si on ajoute les hypothèses fortes suivantes: ● ● ● il faut que la population d'utilisateur aient des besoins fortement correlés, par exemple une classe, une même équipe, les pages consultées sont le sont suffisament souvent (minimum d'utilisateurs), les besoins des utilisateurs sont restreints afin de ne pas mettre en cache tout internet (maximum d'utilisateur). On pourrait aussi se demander si le gain offert de temps en temps par le proxy est suffisant pour compenser la latence sur le réseau causée par les cache miss, c'est à dire lorsque le proxy est obligé de recharger la page dans son cache. Cependant on trouve plusieurs études démontrant l'utilité des proxy et même des études sur la L'usage des proxy page 11 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 méthodologie à employer. D'après ces études le gain maximum possible est de 40 % de la bande passante. Cependant dans les conditions réelle ont peut être assez loin de ces performance, ainsi on peut lire des gain de performance négatif sur certain rapport généré par « calamaris » publié sur internet. Parce qu'il est opensource et largement adopté, squid possède un grand nombre d'outils pour évaluer l'efficacité du cache, comme calamaris. voir http://www.squid-cache.org/Scripts/ . 2.4.2.Problèmes résultant de l'utilisation de caches Les difficultés liées aux services de caches sont bien connues et relativement circonscrites. Il s'agit essentiellement de problèmes de synchronisation de documents. Ca peut-être génant dans le cas d'une application web, ça l'est plus dans d'autres cas. L'usage des proxy page 12 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 3. Proxy comme passerelles applicative. 3.1. Diversité des protocoles supportés Le proxy est un hôte du réseau qui va profiter de sa connaissance au 7 du niveau OSI du protocole applicatif transporté. Le concept de proxy n'est pas absolument lié au service Web et on trouve des plateforme capable de faire des relais pour tous les protocoles. Beaucoup de services utilisent des systèmes similaires aux proxys. Par exemple le protocole NTP ( Network Time Protocole ) utilise un arbre pour se synchroniser sur le serveur racine sur les serveurs de strate 1. L'implémentation d'un service DNS produit une mise en cache les dernières résolutions effectuées afin de ne pas réitérer toujours les mêmes requêtes. Des produits comme MS IAS ou FreeRadius sont capables d'être proxy pour le protocole IAS. Enfin, dernier exemple, Oracle Connexion Manager est un proxy pour le client SQL Oracle. Ce proxy est capable de gérer l'identité des clients, de faire de la réécriture de requête. La grande diversité des clients s'explique par le fait que certaines entreprises utilise systématiquement des proxys pour renforcer la sécurité des applications. L'usage des proxy page 13 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 4. Renforcement de la sécurité avec un serveur proxy 4.1. Contexte Cette connaissance du protocole par le proxy va se concrétiser dans le protocole transporté: on va pouvoir intervenir sur les options du protocoles, sur l'identité des utilisateurs et sur les données transportées. La conséquence est que l'on peut détecter le transport de virus, l'utilisation abusive du service, ou la tentative d'utilisation d'une faille de sécurité connue sur une implémentation d'un serveur. Les proxys sont un lieu de choix pour mettre en oeuvre des services de sécurité. Les serveurs proxys sont des machines qui vont intercepter tous le trafic réseau. Au contraire des commutateurs de niveau 2,3 et 4, le proxy va interpréter les données au niveau applicatif. Cela lui donne la possibilité de rassembler les paquets fragmentés afin d'avoir une vision extensive des données et éventuellement les interpréter. Les services que l'on exécute le plus souvent sur des serveurs sont un service de détection et de prévention d'intrusion et tout ce qui peut servir à valider les requêtes qui vont traverser le proxys. Les Appliances Arkoon FAST360 sont capables d'avoir des fonctionnalité IDPS pour un jeu de protocoles courant. Ce sont les modules FAST dans la terminologie Arkoon. On observe ses modules pour les protocoles HTTP, FTP, SMTP... On constate que les commandes du protocoles et les données sont analysées par plusieurs règles de bon usage du protocoles et les données sont scannées à la volée à la recherche de signature de virus connus et de signature de spam connues. Pour être précis, l'antivirus est soustraité chez Sophos et l'antispam chez Dolphian et bientôt chez CommTouch. L'usage des proxy page 14 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 4.2. Infrastructure renforcée avec un proxy 4.2.1.Problèmes L'avantage ultime du pare-feu est de permettre d'améliorer la sécurité des réseaux avec un proxy de type « reverse proxy ». Il y a de nombreux avantages qui lui permettent de répondres à ce problème. ● Le filtrage par ACL ou State Full Packet Inspector n'est pas suffisant, parce qu'on veut ouvrir un port sur internet, ● Les scénaris d'attaques sont souvent long et compliqués, utilisent des failles applicatives et évadent totalement les mesures prises au niveau 4 car elles ne vérifiées pas les requêtes, ● Renforcer la sécurité du serveur n'est pas possible car c'est une boite noire livrée par le fournisseur, ● Installer des patches pour enlever les vulnérabilités connues et corrigées revient à prendre le risque qu'un serveur en production s'arrête de fonctionner, ● Installer des patches contraint à revalider l'installation du serveur, afin de vérifier si toutes les extensions utilisées sont compatibles ( ou que les mises à jours sont disponibles ), ● Il est impossible de mettre à jour car le logiciel n'est pas supporté ou les failles ne sont pas corrigées suffisament rapidement, ● ● ● Il est trop couteux pour vous de changer les serveurs, Il est intéressant d'avoir un système qui peut détecter les vulnérabilités non encore connue, Contrôler l'accès aux ressources. L'usage des proxy page 15 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 4.2.2. Solution typique La solution typique est d'ajouter un reverse proxy en plus du pare-feu. On constitue une DMZ dédiée au reverse proxy et on isole cette DMZ d'internet avec un parefeu SPI et aussi du réseau local avec un autre pare-feu. Illustration 2: Reverse Proxy dans une infrastructure sécurisée On remarque que les appliances pare-feu professionnelles propose ce genre d'infrastructure tout en un, avec les facilités de ce genre de produits pour être monté en haute disponibilité, en équilibrage de charge ou en cluster. L'usage des proxy page 16 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 La structure logique ressemble à la maquette lorsque le proxy est joué par l'appliance. Les bénéfices de la solutions sont : ● Les attaquants ont perdus la lisibilité du réseau interne, ● Les attaquants ne peuvent plus attaquer directement votre application métier. Même au cas ou le serveur est compromis, alors il sera difficile d'extraire des données du serveur ou de diffuser des virus à cause des pare-feux positionnés dans les deux directions. ● On doit être capable de conserver la stabilité du serveur de production même lorsque des failles sont publiées (et corrigées) parce qu'il n'est plus directement exposé aux menaces, ● Le point sensible en terme de sécurité est limité à une machine ( ou groupe de machine ) qui sont normalement conçues pour pouvoir être mise à jour simplement puisqu'elles sont là pour la sécurité, ● Vous pouvez utiliser votre proxy pour établir des services de chiffrement et de répartissage de charge. ● Vous avez un point sur lequel vous pouvez loguer les accès à partir des critères L'usage des proxy page 17 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 pertinents connu au niveau applicatif. Cependant, cette solution n'est pas ultime et n'interdit pas de configurer correctement le serveur de production, elle ajoute une machine qu'il faudra garantir contre la défaillance et enfin, on augmente la latence sur le lien. Il faut ensuite utiliser un système IDPS de bonne qualités, il existe des techniques simple pour tenter d'echaper aux IDPS qui font du string matching. Sur les Appliances Arkoon, le fait d'exécuter un antivirus sur les flux provoque un ralentissement du téléchargement au fur et à mesure que la taille du fichier augmente. L'usage des proxy page 18 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 5. Conclusion Le concept de serveur proxy est un concept ancien en réseau et il s'est enrichi de nombreux aspect. Du point de vue de la sécurité, il apporte une sécurité de haut niveau de façon automatique. Du point de vue performance, un reverse proxy est discutable, ainsi qu'un proxy cache normal. Le reverse proxy en tant que cache (distribué) pour fournir des données ne pourra pas non plus disparaïtre: c'est le fond de commerces de grandes entreprises de l'internet. Il est difficile de se passer des services d'antivirus réseau ou d'antispam, ce qui indique que le proxy aura toujours un rôle à jouer, même si les constructeurs de routeurs ont tendances à vouloir occuper le marché du reverse proxy pour l'aspect sécurité. L'usage des proxy page 19 sur 21. Pierre-Emmanuel Périllon 10200712 Master SIR-APP promotion 2007-08 6. Références 6.1. Documents normatifs ● HTTP/1.1: Header Field Definitions http://www.w3.org/Protocols/rfc2616/rfc2616 sec14.html ● RFC 3143 Known HTTP Proxy/Caching Problems http://tools.ietf.org/html/rfc3143 ● RFC 2616 Hypertext Transfer Protocol HTTP/1.1 http://tools.ietf.org/html/rfc2616 6.2. Article Web ● ● ● ● ● ● Proxy server Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Proxy_server Serveur proxy ou mandataire, firewall ou parefeu JeanClaude Sohm http://cerig.efpg.inpg.fr/Note/2002/proxy2.htm RR4782.pdf (Objet application/pdf) Online Measurement of Web Proxy Cache ftp://ftp.inria.fr/INRIA/publication/publipdf/RR/RR4782.pdf Squid weekly Proxy Report (27.Jan 08 06:47:20 03.Feb 08 04:45:23) http://calamaris.nanthrax.net/weekly.html Jesse Caulfield » Blog Archive » A Discussion of Caching Proxy Services http://netthink.com/archives/164 Caching Proxies: Limitations and Potentials http://ei.cs.vt.edu/~succeed/WWW4/WWW4.html ● Caching Tutorial for Web Authors and Webmasters http://www.mnot.net/cache_docs/ ● IDS Evasion Techniques and Tactics http://www.securityfocus.com/infocus/1577 L'usage des proxy page 20 sur 21. Pierre-Emmanuel Périllon 10200712 ● Master SIR-APP promotion 2007-08 Reverse Proxys Pattern Peter Sommerlad ReverseProxybook1.pdf (Objet application/pdf) http://www.modsecurity.org/archive/ReverseProxybook1.pdf ● Webmaster.Info : Informations sur le proxy AOL http://webmaster.aol.fr/proxyinfo.html ● Calamaris Home Page http://cord.de/tools/squid/calamaris/Welcome.html.de 6.3. produits ● ● ● Arkoon Présentation et points forts http://www.arkoon.net/FAST360R.html DOLPHIAN Core Engines For Dynamic Content Filtering http://www.dolphian.com/antispam_for_isp.php AntiSpam Engine AntiSpam Layer AntiSpam OEM http://www.commtouch.com/site/Products/anti_spam_sdk.asp ● Snort.org http://www.snort.org/ ● Squid .http://www.squidcache.org/ ● Squidgard http://www.squidguard.org/ ● DLFP: MySQL Proxy http://forge.mysql.com/wiki/MySQL_Proxy ● ● Web Cache Communication Protocol v2 Cisco Systems http://www.cisco.com/en/US/docs/ios/12_0t/12_0t3/feature/guide/wccp.html Configuring Oracle Connection Manager http://download west.oracle.com/docs/cd/A97630_01/network.920/a96580/cman.htm L'usage des proxy page 21 sur 21.