6.3.4 -
Les serveurs de
messagerie :
Le courrier électronique est le service le plus répandu sur
un réseau, du fait de son utilisation courante par la
quasi-totalité des utilisateurs d’un réseau. C’est
également l’un des services les plus vulnérables.
Le
serveur de courrier se compose de trois parties :
- un serveur, qui reçoit le courrier ou l’envoie ;
- un agent de livraison, qui met le courrier dans la boîte de son
destinataire ;
- un agent utilisateur, qui permet à l’utilisateur de lire son
courrier et d’en écrire.
Trois types d’attaques
sont susceptibles d’agir contre un serveur de courrier :
- l’attaque par canal de commandes : le serveur est vulnérable
aux attaques par les commandes qu’il reçoit de
l’extérieur ;
- l’attaque par biais de données : l’agent utilisateur et
l’agent de livraison sont sensibles aux messages eux-mêmes ;
- le bogue de lignes de commandes : un programme peut faire l’objet
d’une manipulation frauduleuse par quelqu’un qui arriverait à
le contrôler.
6.3.4.A - Les aspects
protocolaires :
6.3.4.A.1 - SMTP :
Les échanges de courrier entre serveurs sont en
général gérés par le protocole Simple Mail Transfert
Protocol. Le serveur SMTP examine l’adresse de destination du courrier et
va le relayer vers un autre serveur ou va le délivrer en local, dans les
deux cas après avoir modifié les entêtes.
6.3.4.A.2 - POP :
POP ( Post Office Protocol) est un protocole client-serveur, qui permet
à un utilisateur d’accéder à son courrier
électronique à partir d’une machine cliente, alors que le
courrier est sur un serveur distant.
Les problèmes de
sécurité du protocole POP se posent sur le manque de
confidentialité lors des échanges de données, telles que le
mot de passe utilisé pour se connecter, ou bien le texte du courrier qui
est consulté.
On tolère les connexions POP sortantes, mais pas
celles entrantes. C’est le cas lorsqu’un utilisateur consulte sa
messagerie (sur le serveur) depuis l’extérieur. Ici aussi se pose
le problème de la confidentialité des échanges. S’il
est nécessaire d’utiliser des connexions POP entrantes, on va
chercher à limiter ces connexions sur un seul serveur tournant sur un
seul hôte, afin de limiter la quantité d’informations qui
passe, mais également le nombre de comptes clients
vulnérables.
6.3.4.A.3 - MIME :
Le mécanisme MIME (Multimédia Internet Mail Extensions)
permet de supporter des données contenues dans des messages qui ne soient
pas du texte ASCII (comme des images, du son, l’utilisation de fontes
diverses, etc.).
Bien qu’utilisé, à l’origine, pour
les systèmes de messagerie, la principale utilisation de MIME se fait au
niveau des navigateurs Internet et des serveurs Web, pour décrire le
format de chaque page. En conséquence de quoi les faiblesses de MIME sont
celles qui se posent pour un serveur Web.
6.3.4.B - Le serveur SENDMAIL :
Le serveur SENDMAIL est un agent de transfert de messages utilisé
sur de nombreux systèmes UNIX. SENDMAIL est un serveur extensible
hautement configurable et de paramétrage relativement complexe. SENDMAIL
et ses protections de sécurité ont beaucoup progressé ces
dernières années mais cela reste un programme énorme
comptant plus de 80 000 lignes de code. Dès lors, les
probabilités de trouver de nouvelles vulnérabilités de
sécurité du logiciel SENDMAIL restent élevées (la
dernière vulnérabilité découverte date du mois de
février 2003 avec un accès root possible via un débordement
de tampon !!!).
6.3.4.C - Le serveur POSTFIX :
Le programme Postfix est un système complexe. La version initiale
est composée de 30,000 lignes de code (après suppression des
commentaires). Avec un système aussi complexe, la sécurité
ne peut dépendre d'un seul mécanisme. Dans le cas contraire, une
seule erreur peut suffire à compromettre tout le système. Par
conséquent, Postfix utilise plusieurs lignes de défense pour
maîtriser les dommages issus des logiciels et autres erreurs. Cet ensemble
de programmes est un exemple de développement prenant en compte la
sécurité dès la conception et très peu de
vulnérabilités ont été découvertes.
6.3.4.C.1 - Principe du moindre
privilège :
La plupart des démons de Postfix peuvent être lancés
avec de faibles privilèges dans un environnement encagé (chroot).
C'est particulièrement vrai pour les programmes visibles du réseau
: le serveur et le client SMTP. Bien que le mécanisme chroot même
combiné avec des privilèges restreints, ne soit pas une garantie
contre la compromission, il ajoute un obstacle considérable.
6.3.4.C.2 - Cloisonnement des
processus :
Le programme Postfix utilise des processus séparés pour
isoler l'activité de chacun. En particulier, il n'y a aucun chemin direct
entre le réseau et le programme sensible du point de vue de la
sécurité : l'agent local de livraison. Un intrus doit passer au
travers de plusieurs programmes. Certaines parties du système Postfix
utilisent de multiples threads. La séparation des processus fournit un
meilleur cloisonnement que de multiples threads avec un espace mémoire
partagé.
6.3.4.C.3 - Environnement
contrôlé :
Aucun programme de livraison du programme Postfix ne fonctionne sous le
contrôle d'un processus d'utilisateur. Au lieu de cela, la plupart des
programmes sont sous le contrôle d'un programme résident principal
qui lui-même fonctionne dans un environnement contrôlé, sans
aucune relation parent-enfant avec les processus utilisateurs. Cette approche
élimine les vulnérabilités sur les signaux, les fichiers
ouverts, les variables d'environnement et autres attributs de processus que le
système UNIX passe depuis un parent potentiellement malveillant à
un processus fils.
6.3.4.C.3.a - Mécanisme
Set-uid :
Aucun programme de Postfix n'utilise le dispositif set-uid. L'introduction
de ce concept fut une énorme erreur commise dans l'histoire d'Unix. Le
mécanisme du Set-uid cause plus d'ennui qu’il n’apporte
d’avantages.
6.3.4.C.4 - Gestion de la confiance dans le
contenu des fichiers :
Les programmes de Postfix n'accordent aucune confiance aux données
reçues depuis le réseau. En particulier, Postfix filtre les
données issues de l'expéditeur avant de les exporter via des
variables d'environnement.
6.3.4.C.5 - Gestion de grands volumes de
données :
De manière à prévenir les vulnérabilités
de débordement de tampon, les programmes Postfix allouent dynamiquement
la mémoire et les buffers nécessaires à son fonctionnement.
Les longues lignes d'un message entrant sont coupées en
séquences de taille raisonnable et sont reconstruites à la
livraison.
Les diagnostics sont tronqués (en un seul endroit!)
avant d'être passés à l'interface syslog, afin de
prévenir les débordement de tampon sur les anciennes plateformes.
Cependant, aucune donnée n'est tronquée avant d'être
passée à un appel système ou une routine. Sur certaines
plateformes, le logiciel peut malgré tout avoir des problèmes de
débordement de tampon, suite à des vulnérabilités
dans le logiciel sous-jacent.
Il est à noter qu’aucune
tentative n'est faite pour se protéger contre les trop longs arguments en
ligne de commande.
6.3.4.C.6 - Autres défenses mises en place
par Postfix :
Le nombre d'instances en mémoire de chaque type d'objets est
limité, pour éviter au système de mail de ployer sous la
charge. En cas de problème, le logiciel fait une pause avant d'envoyer
une réponse d'erreur au client, avant de se terminer avec une erreur
fatale ou avant de tenter de redémarrer un programme ayant
échoué. Le but est de prévenir les états
d'emballement.
6.3.4.D - Le serveur Exchange 2000 :
Le logiciel Exchange 2000 Server de Microsoft offre plusieurs
fonctionnalités de sécurité et tire profit des
fonctionnalités de sécurité Windows pour le contrôle
d'accès et l'audit.
6.3.4.D.1 - Utilisation de la
sécurité Windows :
Exchange 2000 Server est pleinement intégré au modèle
de sécurité de Windows 2000. À l'aide de Microsoft Active
Directory, un administrateur qui dispose de tous les droits au sein de
l'organisation Exchange peut assigner des tâches d'administration
particulières à des subordonnés au sein de toute
l'organisation ; par exemple, un administrateur de boîte aux lettres peut
être en mesure de créer de nouveaux comptes et de changer les
autorisations pour les boîtes aux lettres, mais ne pas être
autorisé à modifier les propriétés d'un
connecteur.
Windows 2000 fournit une authentification Kerberos unique
à la connexion, ce qui évite d'avoir à maintenir un
schéma d'authentification séparé et des informations
d'identification utilisateur pour le système de messagerie. Kerberos
garantit que les mots de passe ne sont jamais transmis via un réseau en
texte clair.
6.3.4.D.2 - Mécanisme de protection contre
les attaques de dénis de service :
Au sein du logiciel Exchange 2000, il est possible de spécifier un
nombre maximal de connexions simultanées ainsi qu'une taille maximale et
un nombre maximal de messages pouvant être envoyés pour chaque
connexion. Il est également possible d’établir des
stratégies coût-routage, définir des limites de taille pour
les messages électroniques et les boîtes aux lettres et limiter le
nombre maximal de destinataires pour chaque message. Ces fonctionnalités
peuvent permettre de limiter les risques contre les attaques de déni de
service.
6.3.4.D.3 - Sécurisation des accès
clients :
L'accès aux systèmes de messagerie Exchange Server se fait la
plupart du temps via les stations de travail clientes. Fournir une
sécurité aux clients est tout aussi important que fournir une
sécurité aux serveurs, messages électroniques et
réseaux.
Étant donné que Exchange 2000 Server utilise
le modèle de sécurité Windows, y compris l'authentification
Kerberos, il est possible de limiter l'accès aux stations de travail
à l'aide des mêmes comptes et groupes de sécurité que
ceux utilisés pour spécifier l'accès aux ressources
Exchange. Il est également possible de limiter les emplacements et les
horaires d'accès.
Contrairement aux ordinateurs qui exécutent
Exchange, les ordinateurs clients ne sont probablement pas dans un emplacement
physiquement sécurisé. De manière à empêcher
l'accès non autorisé aux messages électroniques
stockés sur les ordinateurs clients, il est possible de stocker les
fichiers de données clients sur des volumes qui utilisent le
système de fichiers de fichiers encryptés de Windows
2000.
6.3.4.D.3.a - Sécurisation des liaisons
clients/serveur :
Exchange 2000 bénéficie des possibilités
d’utilisation de VPN et/ou IPSec offertes par Windows 2000.
6.3.4.D.3.b - Sécurité des liaisons
applicatives clients/serveur :
Exchange 2000 prend en charge SSL/TLS pour l'authentification et le
chiffrement entre client et le serveur au niveau des applications. Les
applications clientes Exchange qui peuvent communiquer au moyen de TLS ou SSL
peuvent être configurées pour utiliser ces protocoles pour les
connexions en mode WebMail, POP version 3, IMAP version 4rev1, NNTP et
LDAP.
6.3.4.D.4 - Sécurisation des messages
échangés :
Exchange 2000 Server offre la possibilité de signer et/ou de
chiffrer les messages à l'aide du protocole standard S/MIME (cf.
paragraphe
7.2.7 - ). De plus, Outlook prend
en charge les plug-ins clients tiers pour la méthode PGP (cf paragraphe
7.2.2 - ) et autres méthodes de
chiffrement.
6.3.4.E - Le serveur Lotus Notes :
La sécurité a toujours été le secteur
préférentiel de positionnement des logiciels Lotus. La version 6
du logiciel Lotus Notes ne déroge pas à la règle en mettant
en place un certain nombre de dispositifs de sécurité dont les
principaux sont listés ci-dessous :
- Lotus Notes implémente une infrastructure de gestion de clés
sur l’ensemble des dispositifs de messagerie : tous les messages
envoyés entre serveurs sont ainsi automatiquement
chiffrés ;
- Lotus Notes permet la mise en place de listes de contrôle
d’exécution (ECL pour Exécution Control Lists) permettant de
définir le domaine d’exécution (serveur, application,
ressources réseau) dans lequel un programme exécutable ou un
script peut s’exécuter ;
- Lotus Notes permet la mise en place de politiques de sécurité
permettant de définir l’ensemble des paramètres de
sécurité (emplacement des certificats utilisables dans
l’IGC, méthodes d’authentification des utilisateurs,
...).
- Lotus Notes implémente un certain nombre de dispositifs permettant de
lutter contre les messages indésirables (SPAM).
Ce
logiciel de messagerie présente un grand nombre d’avantages
d’un point de vue sécurité. Toutefois le choix de construire
un logiciel présentant plusieurs dizaine de milliers de lignes de code se
retourne quelquefois contre la société : un certain nombre de
vulnérabilités sont régulièrement découvertes
sur Lotus Notes obligeant les sociétés à effectuer des
mises à jour de sécurité fréquentes (sans parler des
mises à jour logicielles elles mêmes particulièrement
nombreuses).