2.2.5 La sécurité autour des pare-feu
Un pare-feu est un équipement physique
(matériel) ou logique (logiciel) de réseau servant de
système de protection pour les ordinateurs domestiques. Il peut
également servir d'interface entre un ou plusieurs réseaux
d'entreprise afin de contrôler et éventuellement bloquer la
circulation des données en analysant les informations contenues dans les
flux de données (cloisonnement réseau). La situation
géographique d'un pare-feu est illustrée à la figure
2.13.
Figure 2.10 : situation d'un pare-feu dans
l'entreprise[2]
Toute la question est de savoir comment reconnaître les
paquets à accepter et à refuser. Il est possible de travailler de
deux façons :
Mémoire présenté et soutenu par Bertrand
MOHOTE TADZONG Page 42
Sécurisation d'un réseau intranet : cas de
CAMTEL
V' interdire tous les paquets sauf ceux d'une liste
prédéterminée ;
V' accepter tous les paquets sauf ceux d'une liste
prédéterminée.
En règle générale, un pare-feu utilise la
première solution en interdisant tous les paquets, sauf ceux qu'il est
possible d'authentifier par rapport à une liste de paquets que l'on
souhaite laisser entrer. Cela comporte toutefois un inconvénient :
lorsqu'un client de l'entreprise se connecte sur un serveur à
l'extérieur, la sortie par le pare-feu est acceptée puisque
authentifiée. La réponse est généralement
refusée, puisque le port sur lequel elle se présente n'a aucune
raison d'accepter ce message s'il est bloqué par mesure de
sécurité. Pour que la réponse soit acceptée, il
faudrait que le serveur puisse s'authentifier et que le pare-feu lui permette
d'accéder au port concerné.
L'autre option est évidemment beaucoup plus dangereuse
puisque tous les ports sont ouverts sauf ceux qui ont été
bloqués. Une attaque ne se trouve pas bloquée tant qu'elle
n'utilise pas les accès interdits.
Avant d'aller plus loin, considérons les moyens
d'accepter ou de refuser des flots de paquets. Les filtres permettent de
reconnaître un certain nombre de caractéristiques des paquets,
comme l'adresse IP d'émission, l'adresse IP de réception, parfois
les adresses de niveau trame, le numéro de port et plus
généralement tous les éléments disponibles dans
l'en-tête du paquet IP. Pour ce qui concerne la reconnaissance de
l'application, les filtres sont essentiellement réalisés sur les
numéros de port utilisés par les applications.
Un numéro de port est en fait une partie d'un
numéro de socket, ce dernier étant la concaténation d'une
adresse IP et d'un numéro de port.
Les numéros de port correspondent à des
applications. Les principaux ports sont recensés au tableau 2.1.
Mémoire présenté et soutenu par Bertrand
MOHOTE TADZONG Page 43
Sécurisation d'un réseau intranet : cas de
CAMTEL
Tableau 2.1 : principaux ports TCF et UDF
[2]
Un pare-feu contient donc une table, qui indique les
numéros de port acceptés.
Le tableau 2.2 donne la composition d'un pare-feu classique, dans
lequel seulement six ports sont ouverts, dont l'un ne l'est que pour une
adresse de réseau de classe C spécifique.
Mémoire présenté et soutenu par Bertrand
MOHOTE TADZONG Page 44
Sécurisation d'un réseau intranet : cas de
CAMTEL
Tableau 2.2 : composition d'un pare-feu classique
[2]
Les pare-feu peuvent être de deux types, proxy et
applicatif. Dans le premier cas, le pare-feu a pour objectif de couper la
communication entre un client et un serveur ou entre un client et un autre
client. Ce type de pare-feu ne permet pas à un attaquant
d'accéder directement à la machine attaquée, ce qui donne
une forte protection supplémentaire. Dans le second cas, le pare-feu
détecte les flots applicatifs et les interrompt ou non suivant les
éléments filtrés. Dans tous les cas, il faut utiliser des
filtres plus ou moins puissants.
2.2.5.1 Les filtres
Les filtres sont essentiellement appliqués sur les
numéros de port. La gestion de ces numéros de port n'est
toutefois pas simple. En effet, de plus en plus de ports sont dynamiques. Avec
ces ports, l'émetteur envoie une demande sur le port standard, mais le
récepteur choisit un nouveau port disponible pour effectuer la
communication. Par exemple, l'application RPC (Remote Procedure Call)
affecte dynamiquement les numéros de port. La plupart des applications
P2P (Peer-to-Peer) ou de signalisation de la téléphonie
sont également dynamiques.
L'affectation dynamique de port peut être
contrôlée par un pare-feu qui se comporte astucieusement. La
communication peut ainsi être suivie à la trace, et il est
possible de découvrir la nouvelle valeur du port lors du retour de la
demande de transmission d'un message TCP. À l'arrivée de la
réponse indiquant le nouveau port, il faut détecter le
numéro du port qui remplace le port standard. Un cas beaucoup plus
complexe est possible, dans lequel l'émetteur et le récepteur se
mettent directement d'accord sur un numéro de port. Dans ce cas, le
pare-feu ne peut détecter la communication, sauf si tous les ports
sont
Mémoire présenté et soutenu par Bertrand
MOHOTE TADZONG Page 45
Sécurisation d'un réseau intranet : cas de
CAMTEL
bloqués. C'est la raison essentielle pour laquelle les
pare-feu n'acceptent que des communications déterminées à
l'avance.
Cette solution de filtrage et de reconnaissance des ports
dynamiques n'est toutefois pas suffisante, car il est toujours possible pour un
pirate de transporter ses propres données à l'intérieur
d'une application standard sur un port ouvert. Par exemple, un tunnel peut
être réalisé sur le port 80, qui gère le protocole
HTTP. À l'intérieur de l'application HTTP, un flot de paquets
d'une autre application peut passer. Le pare-feu voit entrer une application
HTTP, qui, en réalité, délivre des paquets d'une autre
application.
Une entreprise ne peut pas bloquer tous les ports, sans quoi
ses applications ne pourraient plus se dérouler. On peut bien sûr
essayer d'ajouter d'autres facteurs de détection, comme l'appartenance
à des groupes d'adresses IP connues, c'est-à-dire à des
ensembles d'adresses IP qui ont été définies à
l'avance. De nouveau, l'emprunt d'une adresse connue est assez facile à
mettre en oeuvre. De plus, les attaques les plus dangereuses s'effectuent par
des ports qu'il est impossible de bloquer, comme le port DNS. Une des attaques
les plus dangereuses s'effectue par un tunnel sur le port DNS.
Encore faut-il que la machine réseau de l'entreprise
qui gère le DNS ait des faiblesses pour que le tunnel puisse se terminer
et que l'application pirate s'exprime dans l'entreprise. Nous verrons à
la section suivante comment il est possible de renforcer la
sécurité des pare-feu.
Pour sécuriser l'accès à un réseau
d'entreprise, une solution beaucoup plus puissante consiste à filtrer
non plus aux niveaux 3 ou 4 (adresse IP ou adresse de port) mais au
niveau applicatif. Cela s'appelle un filtre applicatif. L'idée est de
reconnaître directement sur le flot de paquets l'identité de
l'application plutôt que de se fier à des numéros de port.
Cette solution permet d'identifier une application insérée dans
une autre et de reconnaître les applications sur des ports non conformes.
La difficulté avec ce type de filtre réside dans la mise à
jour des filtres chaque fois qu'une nouvelle application apparaît. Le
pare-feu muni d'un tel filtre applicatif peut toutefois interdire toute
application non reconnue, ce qui permet de rester à un niveau de
sécurité élevé.
|