Pare-feu - Atelier Informatique de Gratentour
Transcription
Pare-feu - Atelier Informatique de Gratentour
Sur l’usage des Pare-feu O CTY V ERSION 1.0 - 20 SEPTEMBRE 2004 http ://octy.free.fr/ Table des matières 1 Introduction 1 2 Communiquons 2.1 Une adresse pour échanger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Organisons la communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 5 3 Les pare-feu 3.1 Limitations et rôles d’un pare-feu . . . . . . . 3.2 Définition d’une zone de confiance . . . . . . 3.3 Filtrage par logiciels et apprentissage . . . . . 3.4 Filtrage par les caractéristiques de connexion 3.5 Autres fonctionnalités des pare-feu . . . . . . 3.6 Tests et configuration . . . . . . . . . . . . . 4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 11 15 18 19 23 ii Table des figures 2.1 2.2 2.3 Résultats de la commande ipconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . Interconnexion logiciels/ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Résultats de la commande netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.14 3.13 3.15 3.16 3.17 Sépration de zones . . . . . . . . . . . . . . . . . . . . . . . . Definition de la zone de confiance dans le pare-feu Kerio . . . . Règles de décision par logiciels . . . . . . . . . . . . . . . . . . Interception d’une connexion sortante vers Internet, sans règle . Interception d’une connexion entrante depuis Internet, sans règle Interception d’une connexion sortante . . . . . . . . . . . . . . Détection de la modification d’un logiciel . . . . . . . . . . . . Lancement d’un logiciel à partir d’un autre . . . . . . . . . . . Consultation et modification de la liste de regles de filtrage . . . Ajout d’une règle de filtrage . . . . . . . . . . . . . . . . . . . Sélection d’un numéro de port pour la définition d’une règle . . Requête «ping» autorisée . . . . . . . . . . . . . . . . . . . . Alarme sur l’application d’une règle de filtrage . . . . . . . . . Requête «ping» refusée . . . . . . . . . . . . . . . . . . . . . Test des ports de mon ordinateur . . . . . . . . . . . . . . . . . Test des ports de mon ordinateur après ajout de règles . . . . . . Blocage de Netbios . . . . . . . . . . . . . . . . . . . . . . . . iii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 7 10 10 12 12 13 13 14 14 15 16 17 17 17 18 20 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Chapitre 1 Introduction L’idée de rédiger ce modeste guide est née des fils de discussions récurents, que l’on trouve au détour des forums sur Internet, autour de l’emploi des pare-feu. Nombre d’utilisateurs semblent être perdus face à ce type d’outils car il est vrai que leur utilisation est parfois déroutante. Leur utilisation semble, à tort dans la majorité des cas, nécessiter une connaissance approfondie de l’informatique actuelle ou des protocoles utilisés sur la toile par les ordinateurs. A l’heure ou les systèmes de paiement, les services de gestion bancaire en ligne ou la télé-déclaration des révenus se démocratisent, s’ouvrir sur Internet nécessite une prise de conscience. De la même manière que pour ces mécanismes qui utilisent activement Internet, les données stockées sur votre ordinateur (photos, comptes bancaires, courrier,. . .) peuvent être la cible d’actes malveillants dès que votre ordinateur est capable d’interagir avec «l’exterieur». Un certain nombre de composants de sécurité sont nécessaires pour ne pas avoir de déconvenue ou de mauvaises surprises (compte en banque allégé, données personnelles publiées,. . .). Le pare-feu en est un, certains systèmes (Windows XP muni du Service Pack 2 par exemple -SP2-) disposent d’un firewall intégré, d’autres nécessitent l’ajonction d’un outil (logiciel ou matériel) dédié. Associé au pare-feu, il est également un composant primordial : l’utilisateur. Une des meilleurs protection est l’utilisation intelligente de votre ordinateur et du pare-feu. Le but de ce document est de montrer que cela n’est finalement pas si compliqué et que quelques regles de bon sens permettent de s’en sortir pas si mal. Pour ce faire il a pour but d’expliquer sur quels principes basiques fonctionne un pare-feu et ce que vous êtes en droit d’en attendre. Avec à la démocratisation d’Internet, on dénombre de plus en plus d’utilisateurs francophones qui ne sont pas à l’aise avec des guides d’utilisation ou manuels rédigés en anglais, j’ai donc privilégié la rédaction de ce mini guide en français. Il n’est pas rare que les demandes de conseils auxquelles certains utilisateurs avertis répondent sur les forums de discussions s’accompagnent d’un critère de francophonie, soit pour le logiciel à utiliser soit pour les documents. Je ne suis pas un spécialiste de la technologie utilisée par les pare-feu ou de leur développements. Je présente ici simplement une expérience acquise dans leur utilisation en espérant qu’elle pourra être 2 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 utile à d’autres. Je me dédouane également classiquement, il ne serait en être question autrement dans le domaine de la sécurité informatique : Je decline toute responsabilité quant à la perte de données, d’intégrité du système ou de l’ordinateur, suite à l’application des informations contenues dans ce document. Notamment en cas de faille ou de configuration incorrecte du logiciel pare-feu et/ou du système pouvant exposer le système et les données qu’il éberge à des menaces malveillantes de toute nature que ce soit. J’ai tenté de minimiser les détails techniques pour adresser un public le plus large possible. Un utilisateur averti trouvera probablement ce document ennuyeux, c’est normal, je n’ai pas vocation à faire un précis de technologie. Ce document contient des illustrations et exemples basés sur l’utilisation de d’un système particulier, et ne constitue en aucun cas un jugement de valeur sur la sécurité de ces éléments : – Microsoft Windows XP Familial SP1 – Pare-feu Kerio Personnal Firewall 4 L’objectif n’étant pas de fournir une description détaillée du fonctionnement des principaux outils disponibles sur le marché (notamment dans un soucis de stabilité de mon système d’exploitation). Cependant, toute contribution bénévole (au même titre que celle-ci) visant à étendre les illustrations vers d’autres systèmes d’exploitation ou pare-feu (logiciel ou matériel) seront les bienvenues et intégrées, sans obligation de temps, à ce document. Enfin, toute remarque constructive est également la bienvenue pour assurer une mise à jour corrective ou évolutive. La première partie de ce document décrit les principes suivants lesquels un ordinateur communique classiquement via Internet. Les bases étant posées, les pare-feu perdrons peu à peu de leur mystère mystère, les principes généraux d’utilisation ainsi que des exemples seront présentés dans la deuxième partie. 50 51 Chapitre 2 Communiquons 54 Ce chapitre explique comment votre ordinateur echange des informations avec d’autres machines via Internet. Il permet ainsi de fixer le vocabulaire que l’on retrouve traditionnellement lors de la configuration et l’utilisation courante d’un pare-feu. 55 2.1 Une adresse pour échanger 52 53 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 Le réseau Internet regroupe des millions d’ordinateurs, tous techniquement capable de communiquer l’un avec l’autre, sans ambiguïté. Pour parvenir à ceci votre ordinateur possède une adresse unique c’est son adresse IP (Internet Protocol). On peut faire une analogie, en simplifiant, avec l’adresse postale (sans mention nominative - elle représentera un autre service plus tard -). Dans la réalité c’est un peu différent car les fournisseurs d’accès à Internet disposent chacun d’une plage d’adresses limitée. Dans la majeur partie des cas les utilisateurs disposent alors d’une adresse IP dite dynamique (à l’opposée d’une adresse IP statique ou fixe). Lorsque que vous possédez une adresse IP dynamique votre fournisseur d’accès à Internet vous en attribue une différente pour chaque session (entre la connexion à Internet et la déconnexion). Si vous ne savez pas qu’elle type d’adresse IP vous possédez il y a de fortes chances que vous soyez en IP dynamique. L’accès à une IP statique est souvent un service qu’il faut demander explicitement et parfois payant, puisque votre fournisseur en a un nombre limité. Cela a un intérêt lorsque vous souhaitez que votre ordinateur puisse être toujours accessible, sans que l’on soit obligé de vous «chercher». Dans ce cas, l’analogie avec une adresse postale est totale. C’est le cas des personnes qui souhaitent mettre à disposition un service sur Internet (serveur, forums,. . .). Bien qu’il existe aujourd’hui des outils permettant de communiquer automatiquement son adresse lorsqu’elle change. Avoir une adresse IP dynamique n’est pas dénué d’intérêt d’un point de vue sécurité. En effet une personne qui cherche à penétrer votre système est obligée de rechercher votre ordinateur entre chaque session car vous changez systématiquement d’adresse. Un attaquant digne de ce nom aura d’autres moyens pour vous pister, mais cela met déjà en place une première barrière. 2.1 Une adresse pour échanger 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 4 Une adresse IP est constituée de quatre nombres entiers, chacun étant compris entre 0 et 255. Cela permet donc de fournir des adresses pour 4294967295 ordinateurs, c’est le codage adopté depuis des années par le standard IPv4 (Internet Protocol Version 4, codage des adresses sur «32 bits»). Cela peut sembler suffisant pour fournir les adresses à tous les ordinateurs existants et cela pour encore plusieurs dizaines d’années. Dans la pratique cela est faux car les adresses ne sont pas attribuées de manière anarchique. Elles sont structurées en domaines et certaines adresses ne seront jamais utilisées. Pour palier à cela (entre autre) la communauté scientifique travaille depuis plusieurs années à la spécification et au déploiement d’IPv6 qui code les adresses IP sur «64 bits» offrant ainsi un espace d’adressage de 18446744073709551615 possibilités, ce qui devrait nous mettre à l’abri pour un moment. À ce jour, la plupart des ordinateurs connectés à Internet (la très grande majorité en fait) n’utilise que le standard IPv4. Il existe plusieurs méthodes pour connaître l’adresse IP de votre ordinateur, notamment en fonction des outils livrés lors de votre abonnement par votre fournisseur d’accès. Sous windows XP, la méthode «universelle» consiste à tapper la commande ipconfig dans une fenêtre de commande (habituellement accessible par le menu «Démarrer/Tous les programmes/Accessoires/Invite de commandes». La figure 2.1 présente le résultat, indiquant la présence d’une carte réseau ethernet (ce n’est pas forcément le cas) et une connexion au réseau Free ADSL avec une adresse IP attribuée de 82.65.56.87. C:\>ipconfig Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . connexion . . . . . . . . . . . . . . . : : 10.0.0.10 : 255.255.255.0 : connexion . . . . . . . . . . . . . . . : : 82.65.56.87 : 255.255.255.255 : 82.65.56.87 Carte PPP Free ADSL : Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . C:\> F IG . 2.1 – Résultats de la commande ipconfig 2.2 Organisons la communication 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 5 Pour faciliter la mémorisation d’adresses, il est possible pour certaines d’utiliser une forme plus littérale. Par exemple www.google.fr représente celle d’un serveur Web bien connu. Si vous saisissez cette adresse dans votre navigateur il ne sera pas capable de former des messages à destination du serveur avec une adresse sous cette forme. La première action executée par votre navigateur est donc de demander sa traduction en une représentation plus classique pour lui (sous la forme d’une série de quatre nombres). C’est le rôle des serveurs DNS (Domaine Name serveur). Dans tous les cas lorsque votre pare-feu emettera une alarme concernant une connexion sortante ou entrante, il vous indiquera au moins l’adresse IP sous forme de nombres. A retenir Sur Internet les ordinateurs sont identifiés par une adresse IP composée de quatre nombres entre 0 et 255 (souvent représentés séparés par des points). Exemple : 82.65.56.87. Cette adresse peut être soit dynamique soit fixe. 2.2 Organisons la communication Pour présenter les adresses IP nous avons évoqué les communications entre odrinateurs. Dans la pratique ce n’est pas tout a fait exact, en fait se sont les programmes, qui s’executent sur les ordinateurs, qui communiquent entre eux. Par exemple lorsque vous ouvrez un navigateur Web et que vous saisissez l’adresse d’un serveur (www.free.fr par exemple), le navigateur va communiquer avec le serveur correspondant en utilisant les ressources logiciels et matérielles de votre ordinateur. Sur les systèmes d’exploitations actuels (Windows XP, Linux, MacOS,. . .) qui nous permettent d’utiliser les ressources des ordinateurs il s’execute plusieurs logiciels «simultanéments». Chacun d’entre eux à la possibilité de communiquer avec d’autres logiciels via Internet. Étant donné que votre ordinateur possède une adresse IP unique il a fallu mettre en place un système permettant à chaque logiciel de ne pas interférer dans la communication des autres. C’est le système des ports. En reprenant l’analogie postale, le port serait le nom d’une personne particulière résidant à l’adresse donnée. Il est représenté par un nombre positif. Lorsqu’un logiciel a besoin de communiquer sur Internet il s’attribut un port, on dit alors qu’il ouvre un port. Par la suite, le logiciel s’attend alors à ce que toutes les informations qui lui sont destinées arrivent par ce port, on dit qu’il écoute un port. Dans la pratique c’est votre système d’exploitation qui reçoit ou émet l’ensemble des données en provenance ou à destination d’Internet. Ces informations sont découpées en paquets élémentaires ayant un format standardisé compréhensible par les autres ordinateurs. Les formats les plus connus (protocoles) sont TCP («Transmission Control Protocol») et UDP («User Datagram Protocol»). Dans la plupart des cas, tous ces paquets élémentaires contiennent non seulement l’information qui transite mais également une entête indiquant entre autre : 2.2 Organisons la communication 6 F IG . 2.2 – Interconnexion logiciels/ports 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 – l’adresse IP de l’émetteur – l’adresse IP du destinataire – le port du destinataire À la réception d’un paquet le système d’exploitation, qui maintient une liste de tous les ports ouverts par vos applications, détermine à quel logiciel sont destinés les informations. Le logiciel qui est normalement à l’écoute du port dont il a demandé l’ouverture est informé de l’arrivée de données, qu’il peut par la suite lire et interpréter. La figure 2.2 schématise ce principe. Le nombre de ports ouvrable simultanément est limité par ordinateur, notamment en fonction des capacités du système d’exploitation. De plus le codage des numéros de de port dans les paquets élementaires limite les numéros de 1 à 65535. Un logiciel peut ouvrir plusieurs ports simultanément. Certains numéros de port sont implicitement réservés à des usages particuliers. Par exemple, les logciels serveurs Web sont classiquement associé au port 80 pour recevoir des requêtes de pages. Si vous saisissez www.voila.fr dans votre navigateur il formulera une demande qui contiendra l’adresse IP de destination correspondante (récupérée sur un serveur DNS) et le port 80. Il est possible de forcer l’adressage vers un port particulier en spécifiant le numéro à la suite d’une adresse, séparés par deux points. Par exemple les adresses www.voila.fr et www.voila.fr :80 saisies dans votre navigateur aboutirons au même résultat alors que www.voila.fr :1563 ne don- 2.2 Organisons la communication 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 7 nera rien. L’ordinateur dont l’adresse est www.voila.fr n’ayant probablement pas de logiciel en cours d’execution qui ait ouvert le port 1563. Vous avez probablement entendu parler de «scan de ports». Il s’agit d’un attaquant à la recherche d’une victime. Une fois une adresse IP choisie (aléatoirement généralement) l’attaquant balaie l’ensemble des ports de la machine pour détecter ceux qui sont ouverts, c’est à dire ceux derrière lesquels un logiciel est capable de recevoir et d’interpréter des informations. C’est la phase préliminaire à un type d’attaque. La seconde phase consiste à identifier le logiciel qui est à l’écoute d’un des ports ouvert pour éventuellement en exploiter les faiblesses. Un scan de ports est difficilement exploitable pour un attaquant si les logiciels qui ont ouvert les ports n’ont pas de faiblesses identifiées. Il est primordial de maintenir ses logiciels à jour avec les différents correctifs proposés par les éditeurs (la fonctionnalité Windows Update disponible sous Windows XP par exemple). La commande netstat, toujours dans la fenêtre d’invite de commandes donne la liste des connexions actives sur votre ordinateur. La figure 2.3 représente l’état des connexions lors d’un accès au serveur Web adsl.free.fr, l’extension des adresses avec le suffixe :htpp signifie implicitement le port 80. C:\>netstat Connexions actives Proto TCP TCP TCP Adresse locale pcperso-home:1138 pcperso-home:1139 pcperso-home:1140 Adresse distante dgroup.proxad.net:http 80.15.238.18:http dgroup.proxad.net:http Etat ESTABLISHED ESTABLISHED ESTABLISHED F IG . 2.3 – Résultats de la commande netstat 161 162 163 164 165 La même commande utilisée avec une option (netstat -a) fournie la liste des toutes les connexions TCP actives et les ports TCP et UDP actuellement utilisés en écoute. Pour rappel TCP et UDP sont les principaux protocoles utilisés sur Internet, ces standards définissent comment et sous quelles formes les informations sont échangées entre les ordinateurs. A retenir Les logiciels qui s’executent sur votre ordinateur ouvrent et écoutent des ports, ce qui permet au systéme d’exploitation de leur transmettre sans ambiguïté des informations en provenance d’Internet. Ces informations ont étés acheminées jusqu’a votre ordinateur grâce à son adresse IP unique. 166 167 168 169 170 171 172 173 174 175 176 177 Chapitre 3 Les pare-feu Les pare-feu peuvent prendre plusieurs formes : – celle d’un logiciel indépendant s’executant sur votre ordinateur ; – celle d’un logiciel ou service mis en œuvre dans votre système d’exploitation (c’est le cas dans Windows XP SP2) ; – celle d’un «firmware» implanté dans un matériel spécifique. C’est le cas des routeurs disposant d’un module pare-feu. Dans la première catégorie on trouve des produits proposés gratuitement (généralement sous une forme limitée) pour un usage non commercial. Par exemple, par ordre alphabétique : – Kerio Personal Firewall 4, http ://www.kerio.com – ZoneAlarm, http ://www.zonelabs.com 179 Le premier (Kerio Personal Firewall) servira à illustrer mes propos en présentant leur mise en œuvre. 180 3.1 Limitations et rôles d’un pare-feu 178 181 182 183 184 185 186 187 188 189 190 Le rôle de base d’un pare-feu et de contrôler les communications qui sont établies entre les logiciels s’executant sur votre ordinateur et ceux des machines distantes visibles à travers un réseau (Internet ou autre). Par contrôler on entend autoriser ou refuser les connexions mais aussi les répertorier dans un journal d’activité si nécessaire. En général, mais il y a des exceptions que nous présenterons par la suite, le contrôle ne s’effectue pas sur le contenu mais sur le contenant. Plus précisément sur les caractéristiques de la connexion. Parmi les fonctionnalités les plus courantes des pare-feu, et que l’on détaillera avec un exemple, on trouve souvent : – définition d’une zone de confiance, constituée d’éléments pour lesquels les communications ne sont pas suspectes (votre ordinateur par exemple) ; 3.2 Définition d’une zone de confiance 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 9 – définition d’une liste de logiciels suceptibles de communiquer des informations vers l’une des zones définies. Pour chaque logiciel il est possible d’autoriser ou refuser l’établissement d’un canal de communication ; – définition d’une liste de ports et protocoles à autoriser ou refuser ; – définition d’une liste d’adresse IP à autoriser ou refuser pour l’établissement d’une communication ; – la tenue d’un journal dans lequel le pare-feu va répertorier certains évènements que vous lui aurez demander de surveiller ; – la surveillance de l’intégrité des logiciels ; – filtrage de certaines adresses Internet «littérales» ; – blocage des «cookies» ; – emmission d’alarmes sur certains évènements configurables ; – ... En aucun cas un pare-feu n’est un outil de détection ou d’éradication de virus, chevaux de troie ou autres codes malicieux, contrairement aux anti-virus qui peuvent les detecter avant qu’ils ne deviennent actifs. Un pare-feu correctement utilisé et configuré pourra cependant en bloquer les conséquences en interceptant une tentative de connexion illégitime en provenance ou a destination de votre ordinateur. Un pare-feu n’a d’autre choix que de suivre des règles pour décider du caractère légitime ou non d’une communication. Ces règles sont issues de sa configuration. En général, en cas d’ambiguïté le pare-feu vous notifie un problème nécessitant une intervention de votre part. 215 Cependant, la majeur partie des pare-feu grand public et à usage personnel disposent d’une interface simplifiée permettant de fixer le niveau de sécurité requi (souvent traduit par faible, moyen ou fort). Ce niveau est utilisé pour activer ou désactiver un ensemble de règles plus ou moins restricives et prédéfinies par l’éditeur du logiciel. 216 3.2 Définition d’une zone de confiance 212 213 214 217 218 219 220 221 222 223 224 225 226 227 Une fois installé le pare-feu va scruter le fonctionnement de votre ordinateur et notamment toutes les connexions qui seront établies par les logiciels. Les règles qui seront définies ultérieurement seront faites pour contrôler ce qu’il va rentrer ou sortir de la zone de confiance. Elle peut être symbolisée comme une zone de libre échange ou il existe deux niveaux de contrôle, un aux frontières externes et un à l’intérieur. La figure 3.1 schématise cette séparation opérée par le pare-feu, entre la zone de confiance que vous créez et Internet. La zone de confiance est généralement formée des composants constituant votre système et suceptibles d’emettre ou recevoir des communications. Par exemple si vous disposez de deux ordinateurs en réseau, chacun des deux peut avoir confiance en l’autre. Il est alors possible de définir une zone de confiance contenant ces deux ordinateurs (identifiés par leur adresse IP). 3.2 Définition d’une zone de confiance 10 F IG . 3.1 – Sépration de zones 228 229 230 231 232 233 234 235 236 Il est évident que cette zone ne doit pas contenir d’éléments non contrôlés (des adresse IP d’ordinateurs sur Internet par exemple). Pour un usage domestique classique (un ordinateur connecté à Internet), la zone de confiance ne contient que le matériel lié à l’odinateur. Par exemple : – l’ordinateur lui même car les logiciels fonctionnant sur un même ordinateur peuvent utiliser des ports pour communiquer entre eux. Votre ordinateur est identifié par l’adresse IP 127.0.0.1. C’est l’adresse IP «loopback», elle n’est pas interprétée comme une adresse IP d’une machine sur un réseau, mais comme étant l’ordinateur émetteur lui même. – éventuellement une carte réseau. F IG . 3.2 – Definition de la zone de confiance dans le pare-feu Kerio 237 238 239 La figure 3.2 présente la fenêtre de configuration de la zone de confiance (dite zone de sécurité dans Kerio Personal Firewall 4), disponible par l’onglet gauche «Sécurité du réseau» puis l’onglet suppérieur «Zone sécurisé». 3.3 Filtrage par logiciels et apprentissage 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 11 Les pare-feu grand public ne gère généralement qu’une zone de confiance la deuxième zone étant constituée de tout ce qui n’est pas dans la première. Cela reste suffisant pour la plupart des utilisations classiques. De plus pratiquement tous les pare-feu detectent automatiquement votre matériel à l’installation et créent une zone de confiance. Il vous suffit donc, après l’installation, de vérifier son contenu et l’adapter à vos besoins (ajouter ou supprimer des composants). A retenir Le pare-feu s’intercalle entre les logiciels de votre ordinateur et Internet. Il défini généralement deux zones (dont une de confiance) et contrôle les échanges entre les deux zones et les activités dans la zone de confiance. 3.3 Filtrage par logiciels et apprentissage A la suite de son installation, des pare-feu tels que ZoneAlarm ou Kerio Personal Firewall 4 ne connaissent rien de vos habitudes et logiciels favoris et donc des connexions légitimes qui font suite à une utilisation classique de votre ordinateur. Les pare-feu maintiennent une liste des logiciels ayant fait une demande de connexion par le passé et l’action qui en a découlé : – autorisation systématique ; – refus systématique ; – demande à l’utilisateur. La figure 3.3 présente la configuration par logiciels du pare-feu de Kerio, accessible par l’onglet gauche «Sécurité du réseau» puis l’onglet suppérieur «Applications». On y retrouve pour chaque logiciel (les noms sont floutés dans la capture d’écran) les actions à tenir en cas de connexion entrante ou sortante, dans la zone de confiance ou Internet. Ce pare-feu offre également la possibilité de tracer dans un journal les requêtes de connexions des logiciels ainsi que d’émettre une alarme quand certains d’entre eux ont une telle activité. En l’absence de règles explicites, chaque logiciel qui tentera de mettre en œuvre une connexion sera bloqué par le pare-feu qui vous informera de cette tentative et attendra une décision de votre part. Les figures 3.4 et 3.5 représentent les établissements de connexions pour lesquelles le pare-feu n’a pas de règle de décision : – la figure 3.4 est l’interception d’une communication à destination d’Internet, demandée par le logiciel «latex» (excellent «compilateur» de texte avec lequel je rédige ce document) et à destination de l’ordinateur 195.83.118.1 sur son port 59912. Cette connexion fait suite à une action de ma part sur le logiciel, qui nécessite de télécharger une extension. Il n’y a donc pas d’ambiguïté et je peux donc autoriser cette communication. De plus, ayant moi même installé ce logiciel en connaissance de cause, je peux également cocher l’option créer une règle pour cette communication et ne plus me demander pour autoriser les futures connexions ; 3.3 Filtrage par logiciels et apprentissage 12 F IG . 3.3 – Règles de décision par logiciels F IG . 3.4 – Interception d’une connexion sortante vers Internet, sans règle 272 273 274 275 276 277 278 279 280 281 282 – la figure 3.5 quant à elle indique que le logiciel Kerio (le pare-feu lui même) a reçu une demande de connection en provenance d’Internet, et plus précisément de la part de l’ordinateur 195.139.120.94 port 15098. Demande refusée. Cette phase pendant laquelle le pare-feu nécessite votre intervention est une phase d’apprentissage, chaque réponse pouvant générer, si vous le souhaitez, une nouvelle entrée dans la table des autorisations/refus systématiques. A tout moment, en cas d’erreur, vous pouvez changer la règle de décision pour un logiciel grâce à la fenêtre représentée figure 3.3 (ou son équivalente pour un autre logiciel). Il n’est pas toujours facile de prendre une décision d’autorisation ou de refus dans le cas d’une connexion sortante. Quand la connexion remontée par le pare-feu est sans ambiguïté par rapport au logiciel que l’on est en train d’utiliser et l’action que l’on vient d’effectuer, il est facile de choisir. Par exemple lorsque l’on veut consulter ces courriels (avec le logiciel Outlook par exemple), il ne faut pas 3.3 Filtrage par logiciels et apprentissage 13 F IG . 3.5 – Interception d’une connexion entrante depuis Internet, sans règle F IG . 3.6 – Interception d’une connexion sortante 283 284 285 286 287 288 289 290 291 292 s’étonner d’avoir une alerte, telle que représentée figure 3.6, qui correspond à une requête de récupération de courrier électronique (pop3 est un protocole spécialisé pour la récupération de courriel et associé par défault au port 110). Il est moins évident de prendre position sur des connexions qui sont effectuées automatiquement soit par le système d’exploitation soit par d’autres logiciels. Certains peuvent effectivement scanner régulièrement des serveurs à la recherche de mise à jour ou pour des applications «instantannées» (du type de MSN Messenger par exemple). Il ne faut pas hésiter à faire des tests, un par un, afin de pouvoir revenir facilement en arrière en cas de problème. Après la création d’une règle, il est toujours possible de la modifier. Certains pare-feu disposent également d’une possibilité de sauvegarde et restauration des régles. 3.3 Filtrage par logiciels et apprentissage 14 F IG . 3.7 – Détection de la modification d’un logiciel 293 294 295 296 297 298 299 300 301 Une fois qu’une règle a été definie pour un logiciel il ne faut pas que celui-ci soit mofifié (par un virus ou un attaquant). Si vous accordez votre confiance à un navigateur Web et créez une règle d’autorisation systèmatique, il ne faut pas que celui-ci soit infecté par un virus et commence à émettre des informations personnelle à destination d’un ordinateur sur Internet. Tous les pare-feu disposent donc d’un système de serveillance des logiciels et bloquent leur execution si un changement a été détecté, comme le montre la figure 3.7. De la même manière lorsqu’un logiciel en execute un autre, le processus est intercepté pour en informer l’utilisateur, comme le montre la figure 3.8. Dans cet exemple, j’ai fais la demande d’une mise à jour du logiciel Firefox qui lance alors le programme permettant de l’effectuer (setup). F IG . 3.8 – Lancement d’un logiciel à partir d’un autre 3.4 Filtrage par les caractéristiques de connexion 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 15 3.4 Filtrage par les caractéristiques de connexion Filtrer les établissements de communications par le logiciel qui en fait la demande n’est pas toujours suffisant. Il peut être nécessaire par exemple de bloquer un numéro de port quelque soit le logiciel, ou pour un logiciel particulier bloquer qu’un seul numéro de port ou protocole. Toutes les combinaisons sont possibles. Ce type type de filtrage est maintenant proposé par tous les pare-feu et peut être généralement configuré (en connexion entrante ou sortante) pour : – un port ou une plage de port ; – une adresse IP ou une plage d’adresse ; – un protocole. Cette possibilité d’affiner le filtrage permet de limiter les ports ouverts sur votre ordinateur et de limiter les risques d’intrusions. La figure 3.9 (accessible à partir de la fenêtre de configuration du filtrage par logiciel - figure 3.3 - par le bouton inférieur «Filtrage. . .») permet de consulter et ajouter des règles de filtrage (la liste des ports filtrés sur mon ordinateur est floutée pour des raisons évidentes de sécurité). F IG . 3.9 – Consultation et modification de la liste de regles de filtrage 317 318 319 L’ajout de nouvelles règles se fait à partir de la fenêtre de dialogue représentée figure 3.10. Elle permet de composer, de manière intuitive, des règles de filtrage en fonction des logiciels et/ou des ports et/ou des adresses IP des ordinateurs distant. La figure 3.11 présente la saisie d’un numéro de port pour 3.4 Filtrage par les caractéristiques de connexion 320 321 16 la création d’une règle. Le port peut être défini soit directement par son numéro soit par le protocole couremment utilisé sur ce port. F IG . 3.10 – Ajout d’une règle de filtrage 322 323 324 325 326 327 328 329 330 331 A titre d’exemple et d’entraînement vous pouvez essayer de créer une règle pour bloquer un protocole et voir les conséquences sur une commande qui l’utilise. Par exemple, la commande ping (à partir d’une invite de commande) permet de savoir si un ordinateur distant est bien connecté et peut vous répondre. Cette commande n’utilise pas de port défini, elle est un peu particulière et est en fait caractérisée par l’emploi du protocole ICMP («Internet Control Message Protocol»). En l’absence de règle, un «ping» sur le serveur Web de la société Free donne le résultat représente figure 3.12. Essayez maintenant de filtrer ce protocole, il suffit pour cela (dans la fenêtre représentée figure 3.10 d’ajouter le protocole ICMP et de le bloquer (dans les deux sens par exemple). Valider vos modifications par une série de «Ok» jusqu’à la fermeture de la fenêtre principale de configuration. En executant à nouveau la même commande vous devriez obtenir le résultat présenté figure 3.13. 3.4 Filtrage par les caractéristiques de connexion 17 F IG . 3.11 – Sélection d’un numéro de port pour la définition d’une règle C:\>ping www.free.fr Envoi d’une requête ’ping’ sur www.free.fr [213.228.0.42] avec 32 octets de données : Réponse Réponse Réponse Réponse de de de de 213.228.0.42 213.228.0.42 213.228.0.42 213.228.0.42 : : : : octets=32 octets=32 octets=32 octets=32 temps=262 ms TTL=62 temps=187 ms TTL=62 temps=296 ms TTL=62 temps=62 ms TTL=62 Statistiques Ping pour 213.228.0.42: Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes : Minimum = 62ms, Maximum = 296ms, Moyenne = 201ms F IG . 3.12 – Requête «ping» autorisée 332 333 334 Si de plus, vous avez activé une alarme sur le déclanchement de cette règle (dans la fenêtre de création de règles, figure 3.10) vous aurez une notification visuelle du bloquage, telle que représentée figure 3.14. F IG . 3.14 – Alarme sur l’application d’une règle de filtrage 3.5 Autres fonctionnalités des pare-feu 18 C:\>ping www.free.fr Envoi d’une requête ’ping’ sur www.free.fr [213.228.0.42] avec 32 octets de données : Délai Délai Délai Délai d’attente d’attente d’attente d’attente de de de de la la la la demande demande demande demande dépassé. dépassé. dépassé. dépassé. Statistiques Ping pour 213.228.0.42: Paquets : envoyés = 4, reçus = 0, perdus = 4 (perte 100%), F IG . 3.13 – Requête «ping» refusée 340 Si vous laissez quelques règles de filtrage associées à des alarmes vous serez prévenu en temps réel des fins de non recevoir effectuées par votre pare-feu. Une simple alarme sur les requêtes «ping» permet de prendre conscience que votre machine est constamment sollicitée de l’exterieur. Pendant la rédaction de ce simple paragraphe l’alarme que j’ai activée pour illutrer mes propos avec des captures d’écran c’est declanchée trois fois. Toutes pour des requêtes consistant à vérifier si mon ordinateur est présent sur le réseau Internet et toutes en provenance d’adresse IP inconnues. 341 Cela permet, si cela était encore nécessaire, de se convaincre de la nécessité d’installer un pare-feu. 335 336 337 338 339 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 3.5 Autres fonctionnalités des pare-feu Les fonctionnalités décrites précédemment constituent le minimum pour un pare-feu efficace et correctement configurable. Pour augmenter l’efficacité de leurs outils, les éditeurs les dotent d’autres fonctionnalités améliorant soit la sécurité, soit le confort d’utilisation. Vous pourrez les découvrir en parcourant les différents menus et options de votre pare-feu préféré ainsi que le manuel d’utilisation. On peut y trouver : – pour les sytèmes plus complexe, l’ajout de la notion d’heure et date dans la création des règles. On peut ainsi ouvrir certains ports à des moments précis ou l’on a programmé une mise à jour par exemple ; – un système d’analyse du contenu des requêtes Web. Permettant de filtrer l’accès à des sites Internet en fonction de mot-clefs contenus dans leur adresse littérale. Cela permet entre autre de filtrer les bannières publicitaires contenues dans certaines pages Web ; – un système de bloquage de «cookies». Ce sont des petits fichiers texte enregistré sur votre ordinateur à la demande d’une page Web. Ces fichiers peuvent contenir des informations sur votre 3.6 Tests et configuration 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 19 ordinateur. Ils peuvent être relu par la suite lors d’un accès ultérieur à la même page Web. Ils permettent donc (en s’affranchissant du problème des adresse IP dynamiques) de garder une «mémoire» de votre passage et éventuellement de ce que vous avez déjà fait sur le site en question. Ils permettent à beaucoup de sociétés de faire du «data-mining», c’est à dire de collecter des informations sur vos habitudes pour ensuite réaliser un marketing ciblé et vous proposer des produits correspondant à votre profil ; – la mise à jour automatique du pare-feu. Cela n’est pas systématique mais est pourtant un point essentiel. La sécurité informatique est une course permanente entre les défenseurs et les attaquant. Il est primordial que les logiciels s’executant sur votre ordinateur soient tenus à jour. Il en va de même pour votre pare-feu ; – la detection d’intrusions, réalisée sur des attaques classiques et répertoirées ou sur des évènements inconsistants. Essentiel également à mon sens. 3.6 Tests et configuration Comment configurer son pare-feu dans la pratique ? Il existe un certain nombre de protocoles et de ports attribués, et donc a priori légitimes. De nombreux logiciels utilisent quant à eux des numéros de ports quelconques. Difficile alors de faire des règles de filtrage et bien configurer son pare-feu. Il existe cependant quelques outils (gratuits) qui permettent de réaliser un test rapide de votre ordinateur afin d’éliminer les failles les plus évidentes (la liste n’est évidemment pas exaustive) : – http ://check.sdv.fr/ – http ://scan.sygate.com/ – https ://grc.com/x/ne.dll ?bh0bkyd2 – http ://www.pcflank.com/ – ... Ces outils automatiques vont générer des requêtes à destination de votre ordinateur pour contrôler les ports ouverts. Ces tentatives seront donc normalement détectées par votre pare-feu qui vous demandera de prendre position : toujours refuser l’accès à ces test pour que les résultats soient significatifs. 3.6 Tests et configuration 20 F IG . 3.15 – Test des ports de mon ordinateur 384 385 386 387 388 389 390 391 Le premier de ces sites émet un rapport tel que présenté figure 3.15. On peut alors remarquer que trois ports sont ouverts sur ma machine. En ce qui me concerne, ces protocoles ne me sont pas utiles, mais il est parfois difficile de prendre une décision. Une des possibilité est de faire une règle de filtrage sur chacun des ports, dont on soupçonne qu’ils sont utiles, avec notification d’une alarme. Dans ce cas, si un logiciel a besoin d’ouvrir et communiquer par l’un de ces ports vous en serez averti. Vous pourrez alors garder ou supprimer cette règle en fonction du logiciel qui réclame l’usage de ce port. Pour a part, après trois nouvelles régles et un nouveau test, j’obtiens la figure 3.16 F IG . 3.16 – Test des ports de mon ordinateur après ajout de règles 3.6 Tests et configuration 392 393 394 395 396 397 398 21 Le deuxième site de test scanne votre ordinateur et s’attache à en retrouver le nom et les services (logiciels à l’écoute d’au moins un port et susceptible de répondre à une sollicitation externe) qui s’executent. Le nom de votre ordinateur et donc potentiellement votre identité peut être accessible depuis Internet avec le service Netbios (disponible au moins sur Windows). Si ce site arrive à extraire votre nom, vous pouvez réaliser une règle pour bloquer Netbios, comme présenté figure 3.17 (ce service utilise plusieurs ports et protocoles). F IG . 3.17 – Blocage de Netbios 399 400 401 402 403 404 405 406 407 Un second test viendra confirmer que le nom de votre ordinateur n’est alors plus accessible via Internet. Le troisième test scanne les ports entre 0 et 1056, ceux «réservés» pour des services classiques. Ce test représente, sous forme de tableau, les ports qui sont vérifiés en indiquant par couleur leur état : – rouge, ouvert ; – bleu, fermé ; – vert, furtif. Le meilleur étant «furtif», en effet si l’ensemble de vos ports ne trahissent aucune activité alors votre ordinateur est invisible depuis Internet. C’est une excellente protection contre les attaquants (automa- 3.6 Tests et configuration 408 409 410 411 412 413 414 415 416 417 22 tiques ou humains) qui recherchent des cibles. Un port fermé a refusé une connexion mais a trahi sa présence en donnant une réponse. Un port furtif ne prend même pas la peine de répondre. Enfin le dernier exemple est un site très complet proposant différents types de tests. Il propose également une base de connaissance dans laquelle il répertorie les règles à définir en fonction de certains logiciels connus. Il dipose également d’une base de connaissance sur l’utilisation des ports (indispensable lorsque l’on commence à configurer son pare-feu). Le site est en anglais ce qui peut rendre difficile l’interprétation des résultats des tests mais il n’est pas insurmontable d’obtenir la liste des règles pour son logiciels favori (menu « Firewall rulesets») ou la descritpion de l’usage courant d’un port (menu «Ports database»). 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 Chapitre 4 Conclusion J’espère que ce document aura permis de démistifier l’usage des pare-feu et vous fournira un point de départ pour aller plus loin. Le réseau Internet contient de nombreux sites sur le sujet comme par exemple : – http ://www.firewall-net.com/fr/, en français ; – http ://www.pcflank.com/, en anglais ; – ... A vous maintenant de configurer votre pare-feu favori, pour vous faire la main et améliorer vos connaissances avant de pouvoir choisir de vous même un logiciel payant ou non, il existe de nombreux pare-feu gratuits ou utilisables temporairement (par ordre alphabétique) : – Look’n’Stop ; – Kerio Personal Firewall 4 ; – Outpost Firewall ; – Zone Alarm ; – ...