| ||||||||||||
|
Chapitre
V
La
sécurité sur la
plate-forme
MJES
Sur un réseau informatique, les incidents sont généralement de mieux en mieux maîtrisés et les erreurs sont mieux contrôlées. Mais, il existe une menace de plus en plus grave qui affecte les réseaux, à savoir la fraude et la malveillance informatique. La sécurité a pour objectif de protéger un réseau informatique du piratage et également de détecter toute intrusion et de restaurer les informations en cas d’endommagement de celles-ci. A ce niveau, on a pris en charge d’assurer la sécurité informatique au niveau des différents réseaux locaux des maisons de jeunes ainsi qu’au niveau Back Office du serveur principal. C’est l’architecture même d’un réseau qui fragilise la sécurité d’un site et nous devons être extrêmement vigilants pour garantir aux utilisateurs un réseau fiable et sécurisé. L’objectif de ce chapitre n’est pas d’énumérer toutes les réalisations techniques de sécurité mises en oeuvre sur la plate-forme, mais d’expliquer l’approche utilisée pour parer à d’éventuelles attaques. Nous présentons tout d’abord les aspects de base de la sécurité informatique ainsi que les différents risques qui peuvent survenir pour terminer par une étude concrète de la sécurité sur la plate-forme. Au cours de cette étude nous présentons les principaux mécanismes d’intrusion sur tous les niveaux d’un réseau. Nous détaillons ensuite les protections que nous avons mises en place, puis les tests de sécurité que nous avons effectué. 1
Les Aspects de base de la sécurité informatique
La sécurité dans les systèmes informatiques prend deux aspects, le premier c’est la sécurité physique et le second est la sécurité logique.
1.1
La sécurité physique
Consiste à immuniser le système informatique de l’établissement concernée contre les attaques visant à détériorer le matériel (incendie, sabotage, hypertension, etc) et/ou à voler les composants (station de travail, imprimante, disques, équipements réseaux). Cet aspect ne présente pas de difficulté pour le découvrir, il suffit de mettre le système informatique dans des endroits bien protégés et de fournir des accessoires de surveillance et de sécurité nécessaire pour le protéger ( comme les onduleurs pour éviter les problèmes dus aux coupure de courant, des mécanismes pour contrôler les accès aux locaux, etc).
1.2
La sécurité logique
Ce genre de sécurité touche les données stockées sur un système, traitées par des applications ou en transit sur un réseau. Elle essaye de mettre en place les techniques pour garder la confidentialité, l’intégrité, la disponibilité des informations. Ces trois termes représentent les concepts de base de la sécurité des données. ·
Confidentialité des données : La confidentialité des données correspond à la prévention de la divulgation non autorisée de l’information. Assurer la confidentialité, c’est de faire de sorte que les informations soient inaccessibles (ou incompréhensibles) à des utilisateurs non désignés comme autorisés à y accéder. Violer la confidentialité peut se faire de deux manières totalement distinctes : soit un utilisateur trouve tout seul un moyen illégal d’accéder à l’information confidentielle, soit un utilisateur détenant cette information met celle-ci à la disposition d’utilisateur non habilité à la connaître. ·
Intégrité des données : Assurer l’intégrité des données consiste en la prévention de la modification non autorisée de l’information par un sujet non autorisé à le faire, que l’opération soit réalisée de manière intentionnelle ou non. Protéger l’intégrité des données consiste donc à se prémunir contre une attaque par un utilisateur non autorisé, mais aussi à se protéger contre la défaillance de matériels qui pourrait porter atteinte à l’intégrité des données. · Disponibilité de service : L’accès et l’utilisation des services doit toujours être possible pour les personnes habilitées à le faire, dans le temps le plus bref compatible avec les ressources du système. Toute utilisation des ressources, destinée à ralentir ou à bloquer le système doit pouvoir être détecté. La disponibilité des ressources doit tenir compte des événements intentionnels et des défaillances du système, en mettant en œuvre divers moyens, telle que la redondance pour assurer cette disponibilité. 2
Les risques
La multiplicité et la décentralisation des réseaux augmentent d’autant les risques d’intrusion, il faut en prendre conscience, en mesurer les conséquences éventuelles, et en connaître les causes, afin de prendre les mesures adéquates [15]. Parmi ces risques on peut citer : · Destruction ou corruption d’information : Ceci peut occasionner des pertes de temps considérables aux techniciens et ingénieurs chargés de restaurer l’état du système et des bases de données, de plus si les sauvegardes n’étaient pas régulièrement assurées, cela peut devenir catastrophique. · Détérioration de la qualité de service : Pour le bon fonctionnement de l’établissement, une qualité de service doit être garantie et maintenue, ceci peut entraîner une perte de confiance dans l’outil informatique et le réseau. · Modifications des données d’importance capitale : Ce risque est équivalent au premier précité, mais il faut le mentionner plus fortement car il est plus pernicieux. Il concerne des modifications stratégiques mais non détectables dans l’immédiat. Il y a une certaine gravité si ces modifications ne sont découvertes que trop tardivement. · Utilisation frauduleuse de ressources : Cette intrusion a pour objectif de se connecter sur une machine dont on n’a pas l’autorisation et utiliser des ressources réservés(calcul, espace disque, logiciel, etc.) 3
Etude de la sécurité sur la
plate-forme
3.1
La sécurité sur la plate-forme
La sécurité fait partie des éléments fondamentaux qui ont été pris en compte lors de la mise en place de la plate-forme MJES. La nécessité d’assurer la sécurité de la plate-forme provient essentiellement de trois facteurs : ·
La nature critique du contenu à sécuriser En effet le serveur principal va héberger le portail du ministère ainsi que les différents autres services comme la messagerie et le forum. Ce contenu sera une référence pour les médias nationaux et étrangers ainsi que pour des milliers de jeunes sur l’ensemble du territoire tunisien. ·
L’hétérogénéité de différents intervenants
La plate-forme sera utilisée par différentes personnes dont les objectifs diffèrent. Donc il est préférable de ne rien laisser au hasard et de considérer que tous les risques sont potentiels. ·
Facilité de nuire à un système informatique Aujourd’hui avec la banalisation de l’utilisation d’Internet ainsi que sa propagation à l’échelle mondiale, n’importe qui pourrait se procurer des logiciels tout prêt pour attaquer un système informatique et essayer d’usurper les droits d’administrateur ( ou du super-utilisateur). Face à ces dangers potentiels, nos objectifs sont, dans l’ordre, la prévention, la surveillance et la reconstruction. La prévention consiste à minimiser les risques d’intrusions sur le réseau, la surveillance doit aider à détecter les intrusions éventuelles et la reconstruction permet à l’ensemble du réseau de fonctionner à nouveau sur une base saine lorsque des dégâts ont été constatés. Si on reprend les différentes couches de la pile TCP/IP, on constate que la sécurité concerne l’ensemble des couches. Nous avons regroupé les attaques et les risques d’intrusion en trois niveaux, lesquels sont représentés dans le figure 5.1.
fig. 5.1 - Les différents niveaux d’attaques sur un réseau. · Niveau physique - Le danger d’intrusion provient de l’installation d’un «renifleur», c’est-à-dire de la connexion d’une machine permettant de capter toutes les trames qui transitent sur le réseau. Il suffit alors de les étudier pour obtenir par exemple les mots de passe qui circulent en clair sur le réseau. · Niveau réseau - Pour s’introduire illégalement sur un réseau, le principe est de falsifier l’adresse source IP d’un paquet en la remplaçant par une adresse source interne au réseau dans lequel on veut s’infiltrer. Les «nouveaux» paquets sont alors interprétés comme faisant partie du réseau et sont autorisés à en utiliser tous les services. Il est également possible d’intervenir au niveau TCP/IP mais le mécanisme à mettre en oeuvre est plus complexe. Le protocole TCP utilise un numéro de séquence pour gérer l’ordre des paquets. Ce numéro de séquence est généré aléatoirement. Si le pirate arrive à prédire ce numéro de séquence, il peut créer une séquence de paquets «autorisée» sans recevoir de réponse. · Niveau application - Chaque application possède un protocole de communication et une implantation spécifique, ainsi elle a ses propres trous de sécurité et les méthodes d’intrusion peuvent être très diversifiées. Les applications réseaux fonctionnent sur le mode client-serveur. Le programme client, lancé sur la machine de l’utilisateur envoie des requêtes au serveur. Le serveur est un programme qui reçoit et interprète les requêtes et fonctionne généralement en mode super-utilisateur. Le piratage consiste à détourner l’utilisation du programme serveur pour lui faire exécuter des programmes ou des commandes du shell autres que ceux prévus, dans le but de créer des autorisations d’accès. Les mécanismes d’usurpation utilisés sont souvent de même nature, à savoir : o Le passage de paramètres à un programme interprété par un shell. Le principe sous unix est de passer à ce programme le paramètre demandé suivi du caractère «;» et d’une commande que l’on veut faire exécuter par le programme. Le shell appelé va alors interpréter la première commande, puis la deuxième non prévue par le serveur, le point virgule agissant comme séparateur de commande. o
La provocation du débordement d’une pile ou d’un tampon. Dans
ce cas, il s’agit d’exploiter l’oubli d’un test de débordement d’un
tableau utilisé pour stocker un paramètre du programme exécuté. Pour contrer les attaques du réseau et se protéger au maximum des intrusions, il est primordial d’une part de posséder une bonne connaissance des systèmes et d’autre part de pouvoir obtenir très rapidement des informations, par exemple, par abonnement à des listes de diffusion, ou dans des forums de discussion électronique, ou encore par des organismes centralisant les problèmes de sécurité. Ceci permet de combler les trous de sécurité dans les plus brefs délais. C’est une opération inévitable mais elle est réalisée a posteriori. Il est donc indispensable de faire le maximum de protection de manière préventive. La sécurisation d’un site impose d’effectuer l’identification des risques et leur classification.
3.2
L’identification des risques et la protection mise en œuvre
Toutes les attaques potentielles viennent du réseau de manière soit interne, soit externe. Sécurité interne - Les jeunes possédant un compte sur le réseau ont déjà une équivalence d’accès sur toutes les machines de leur réseau local. La sécurité interne repose essentiellement sur une bonne information et sur une sensibilisation des utilisateurs aux problèmes de sécurité. Sécurité externe - Les accès externes ont la particularité de passer par un point d’accès unique, ce qui facilite le filtrage des informations. Le filtrage peut alors être effectué par un routeur ou/et par une station possédant deux interfaces. La fig. 5.2 représente une telle configuration.
fig. 5.2
- Le filtrage des services Parmi tous les services ouverts sur une station, certains s’avèrent nécessaires pour le fonctionnement interne mais totalement inutile pour les stations extérieures au réseau. C’est le cas, par exemple des services NIS ou NFS, dont l’accès doit être interdit à l’extérieur car ils comportent des trous de sécurité. NIS permet, par exemple, de diffuser le fichier des mots de passe codés, il offre ainsi la possibilité de casser ultérieurement un compte. Une attaque extérieure peut donc se faire de deux manières différentes : soit en utilisant un compte et son mot de passe, soit en passant par un service et en détournant son utilisation. Examinons ces deux possibilités afin de présenter les protections que nous avons mises en place.
3.2.1
La connexion classique par un
compte utilisateur
L’obtention d’un compte permet à son utilisateur de disposer d’un shell et donc d’effectuer la plupart des opérations de connexion comme tout utilisateur licite. La détection d’une telle usurpation d’identité n’est pas aisée et est souvent effectuée par la personne propriétaire du compte. Voyons les différents moyens qu’un intrus peut utiliser pour usurper une identité et quels sont les moyens dont nous disposons pour le contrer. § Utiliser un compte sans mot de passe Certains comptes, comme sync sous Linux Redhat sont positionnés en standard sans mot de passe dans le fichier /etc/passwd. Leur fonction est généralement réduite, par exemple la connexion sous le compte sync provoque la synchronisation entre la mémoire et le disque d’une station Linux, mais elle peut être néanmoins exploitée pour s’introduire sur un réseau. Il nous faut alors soit affecter un mot de passe à de tels comptes, soit les supprimer de notre réseau. § Obtenir un nom de compte utilisateur Il est facile d’obtenir un nom de compte utilisateur dans la mesure où certains services comme finger fournissent la liste des noms de login des personnes connectées sur une station. La solution pour se protéger est généralement de verrouiller de tels services. La suppression d’un service doit cependant s’accompagner d’une information à l’attention des utilisateurs, lesquels n’apprécient généralement pas une restriction de leurs outils de travail. Une fois le nom de compte identifié, il est nécessaire d’obtenir le mot de passe associé à celui-ci, ce qui est tout à fait réalisable.
3.2.2
L’intrusion par un service
Les intrusions sur le réseau peuvent se produire via un service externe, mais aussi par l’intermédiaire d’un service interne dans la mesure où les services internes sont par défaut ouverts à l’extérieur. Sécuriser le site consiste donc à étudier les mécanismes permettant de verrouiller les services internes et à protéger les services externes, comme nous le montrons plus en détails dans ce qui suit.
3.2.2.1
Les services internes
L’objectif de l’intrus est d’obtenir des droits d’accès ou de se créer un compte sur un système en faisant exécuter des commandes par l’intermédiaire d’un service donné. Les services du réseau peuvent être classés en trois catégories : § Les services qui n’ont pas d’utilité directe pour le réseau de manière interne ou externe. Généralement, le système d’exploitation d’une station est livré avec une vingtaine de services actifs de base. Il est important de fermer ces services car ils représentent des trous potentiels. § Les services utilisant un numéro de port fixe, ces numéros de port sont appelés «well known port». Ces services peuvent être verrouillés ou filtrés par un routeur, lequel possède en général des fonctions de filtrage. Le filtrage se fait par autorisation ou interdiction sur les champs adresse, protocole et numéro de port. Ce mécanisme de protection est le plus radical et le moins coûteux, même si les routeurs sont complexes à programmer et s’ils présentent des limitations. Le routeur peut être considéré comme effectuant un service de filtrage fiable, si sa programmation est bien vérifiée et testée. De cette façon, nous avons protégé tout accès aux services comme SNMP,SYSLOG, TFTP et NFS et nous avons restreint l’accès à certains services comme le courrier électronique qui n’est autorisé que sur le serveur du courrier électronique du réseau. Un exemple de configuration utilisé sur nos routeurs est détaillé à l’AnnexeA. §
Les services utilisant les procédures d’appel distante. L’accès
se fait par l’intermédiaire d’un programme en attente sur le port fixe 111,
généralement nommé portmap, qui donne des renseignements sur les
services RPC offerts par la station. Ces services utilisent des numéros de port
aléatoire, dans une tranche définie, c’est le cas par exemple de NIS avec le
démon ypserv. Il n’est donc pas possible d’effectuer un filtrage par
programmation des routeurs puisque le numéro de port utilisé n’est pas
connu. La protection doit s’effectuer de manière logicielle sur la station,
ce qui implique qu’elle soit prévue par le constructeur ou ajoutée par un mécanisme
de correction provisoire.
3.2.2.2
Les services ouverts vers l’extérieur
Lorsqu’un service est ouvert aux utilisateurs extérieurs au réseau, il est primordial d’en utiliser les versions de démons les plus récentes, correspondant généralement aux versions les mieux protégées. Les deux services les plus sensibles et les plus réputés pour leurs trous de sécurité sont : o sendmail : programme de réception et de routage du courrier électronique, o ftp : programme permettant le transfert de fichiers entre machines. La sécurisation de ces deux programmes est identique et consiste à remplacer les versions constructeurs par les versions du domaine publique, lesquelles possèdent les avantages suivants : o la disponibilité très rapide des programmes sources mises à jour suite à la découverte et à la correction d’un trou de sécurité. o l’utilisation d’une version unifiée pour la majorité des systèmes d’exploitation. Plus généralement, nous pensons que la lutte contre les intrusions consiste à implanter uniquement les programmes sensibles dont on possède les sources et qui ont été écrits avec un réel souci de sécurité.
3.3
Les différents niveaux de sécurité sur la plate-forme MJES
Dans cette partie nous essayerons de décortiquer les différents niveaux de sécurité sur la plate-forme, ainsi que l’état de réalisation mise en œuvre à chaque niveau. D’après l’architecture globale de la plate-forme on distingue trois niveaux de sécurité : o Niveau maison de jeunes o Niveau RTD( Réseau de Transmission de Données) o Niveau serveur principal( Back Office) Sans le renforcement de ces trois niveaux, la sécurité de la plate-forme sera menacée. 3.3.1 Niveau maison des jeunesA ce niveau les actions vont portées sur le routeur, le serveur Linux ainsi que les différents postes clients. Les tâches réalisées à ce niveau sont les suivants : §
Le masquage IP (IP-Masquerading) au niveau serveur Linux,
ceci permet de rendre les postes clients inaccessible de l’extérieur et comme
ça on peut contrer les menaces externes. Ce masquage est réalisé à l’aide
de l’outil IpTables sous Linux. §
Configuration du routage au niveau des routeurs pour ne pas
laisser entrer les paquets dont la source est douteuse. Par exemple, interdire
tous paquets dont l’adresse source correspond à une adresse privée de notre
réseau local. Cette mesure permet d’interdire toute opération d’usurpation
d’identité d’une machine de notre réseau local. Pour réaliser cette opération,
nous avons configuré les access-list (ACL) au niveau des routeurs [10]. §
Suppression de tous les services inutiles au niveau du serveur
Linux, surtout ceux qui tournent en mode root. En effet, certains utilisateurs
peuvent profiter de quelques failles de sécurité de certains services pour
s’emparer de privilège root et ainsi compromettre la sécurité du serveur. §
Configuration et test de l’outil de détection d’intrusion snort
[11] . §
Evaluation et test du Firewall Linux IpFilter. § Installation au niveau des postes clients d’un antivirus(Norton) et d’un PC-Firewall (ZoneAlarm). La fig. 5.3 présente l’architecture du réseau après la réalisation de ces différentes tâches de sécurité :
fig. 5.3 – la sécurité au niveau des maisons des
jeunes. 3.3.2 Niveau serveur principalA ce niveau le sécurité va portée sur le serveur d’hébergement du portail de la jeunesse. Les tâches réalisées à ce niveau sont les suivants : §
Sécurisation du serveur WEB IIS 5.0 par définition des différents
niveaux d’authentification de base et configuration du mécanisme de contrôle
d’accès. § Mise en place d’un système sécurisé de mise à jour du portail de la jeunesse (http://www.jeunesse.tn). Ce système repose sur les nouveautés apporté en matière de sécurité du service FTP de IIS 5.0. La fig. 5.4 présente l’architecture de ce niveau après la réalisation de ces différentes tâches de sécurité :
fig.
5.4 – la sécurité au niveau du serveur principal. 3.3.3 Niveau RTDIl est clair qu’une grande partie du trafic sur la plate-forme emprunte le réseau public (RTD) et vu la nature critique de quelques informations qui sont échangées entre les différents réseaux locaux et le Back Office de la plate-forme, il est donc nécessaire de disposer d’un mécanisme assurant la confidentialité et l’intégrité de ces informations. La solution qu’on propose à ce niveau est la technique de Tunneling (fig. 5.5) offert par les VPN (Virtual Private Network) qui permet à une personne autorisé d’accéder à distance aux ressources critiques du serveur principal comme s’il traversait un réseau privé. Cette tâche reste dans le stade de l’étude. Le principe du VPN est basé sur la technique du tunnelling. Cela consiste à construire un chemin virtuel après avoir identifié l’émetteur et le destinataire. Ensuite la source chiffre les données et les achemine en empruntant ce chemin virtuel. Les données à transmettre peuvent appartenir à un protocole différent d’IP. Dans ce cas le protocole de tunnelling encapsule les données en rajoutant une entête permettant le routage des trames dans le tunnel. Le tunnelling est l’ensemble des processus d’encapsulation, de transmission et de désencapsulation.
fig. 5.5 - la sécurité au niveau du RTD. Le degré de réalisation d’une solution de sécurité informatique dépend beaucoup de la spécification des besoins. En effet une solution qui satisfait exactement les besoins contribue certainement à des résultats prometteuses. Donc l’étape de la spécification au cours de laquelle les différents intervenants recensent les besoins en matière de sécurité doit se faire sur une base solide pour ne pas avoir des surprises par la suite.
|