Vous êtes sur la page 1sur 50

Etude thorique et pratique de RC5, RC6, SNORT et RADIUS & leurs applications

Ralis par :
Younes ASIMI Yassine SADQI Mohamed ZAOUI

Encadr par :
Prof. Ahmed ASIMI

Sommaire

RADIUS :
I. II. III. IV. INTRODUCTION GENERALE .................................................................................................. 3 LE PROTOCOLE RADUIS ........................................................................................................ 4 FONCTIONNEMMENT DU PROTOCOLE RADUIS ................................................................ 11 Configuration du RADIUS : cas Windows 2003 .................................................................. 14 Introduction ................................................................................................................................ 15 Configuration gnrale du serveur ............................................................................................ 17 Centralisation des clients d'accs distant l'aide du serveur IAS ........................................... 21 Configuration des clients d'accs distance et scurisation de l'accs distance................. 28 Conclusion .................................................................................................................................... 31

SNORT :
I. II. III. Introduction ...................................................................................................................... 32 Dtection d'attaques : les IDS .......................................................................................... 32 Mise en oeuvre d'IDS........................................................................................................ 36

RC5 : 45 RC6 :
I. II. III. Le chiffrement par bloc...................................................................................................... 48 Prsentation de lalgorithme RC6 ...................................................................................... 48 Principes de lalgorithme ................................................................................................... 48

RADIUS
I. INTRODUCTION GENERALE
Remote Authentication Dial-In User Service est un systme qui fait de l'AAA (Authentication,Authorization and Accounting). Utilis depuis longtemps dj par bon nombre de fournisseurs d'accs l'internet pour authentifier leurs clients et leur communiquer une configuration IP. RADIUS est galement trs utile pour scuriser un rseau Wi-Fi, ou mme un rseau filaire, dans certaines conditions. la scurisation d'un rseau Wi-Fi (authentification WPA2-TLS), la scurisation d'un rseau filaire (authentification des stations par adresse MAC).

Ce type de scurisation s'avre fort intressant si l'on dispose d'un rseau proposant un accs filaire et Wi-Fi, avec des utilisateurs susceptibles de venir y connecter leur ordinateur portable. Par dfinition, ce type de machine chappe totalement au contrle de l'administrateur et peut tre la source de bien des soucis. Les services prsents par RADUIS sont capables d'authentifier des utilisateurs distants, suivant de multiples modes plus ou moins scuriss, en s'appuyant sur une base connaissances allant du simple fichier texte l'annuaire LDAP, en passant par une base de donnes de type SQL,

denregistrer des informations sur chaque login et ainsi de renvoyer au demandeur des paramtres varis pouvant, suivant le cas, tre une configuration IP, un numro de LAN virtuel etc. Ainsi RADIUS a deux possibilits dauthentifier les stations soit depuis leur adresse MAC connues sur notre rseau filaire, en utilisant un systme de type login/password , avec le protocole CHAP (Challenge-Handshake Authentication Protocol), ventuellement en assignant un numro de VLAN suivant la machine et soit avec un certificat x.509 sur le rseau Wi-Fi, en utilisant EAP-TLS. Le serveur RADIUS peut fonctionner en s'appuyant uniquement sur des fichiers texte. Mais pour grer des multiples clients on aura besoin dutiliser une base MySQL pour stocker les adresses MAC des clients. Outre la souplesse qu'apportent des outils comme phpmyadmin pour grer la liste des clients, cette solution offre l'avantage de ne pas ncessiter de redmarrage le serveur chaque modification de la base.

II.

LE PROTOCOLE RADUIS 1. Lauthentification

Cest le processus qui prouve quune identit appartient bien celui qui la prsente un identifiant est propos au serveur radius. Il doit vrifier quil est bien prsent dans sa base et aussi il faut vrifier que celui qui prsente cet identifiant peut prouver quil en est bien le propritaire. Il existe plusieurs mthodes dauthentification on cite les plus courantes : Adresse MAC (faible, pas de preuve) Login/mot de passe Certificat Il s'agit d'authentifier une machine lorsqu'elle se branche sur le rseau afin de lui autoriser ou refuser l'usage du rseau, Cette authentification est indpendante d'autres authentifications vers des systmes d'exploitation ou applications.

Authentification rseau : Branchement physique sur le rseau Authentification Autorisation d'usage Authentification applicatives : Authentification sur le systme d'exploitation (windows, Linux) Authentification sur une application Les principaux objectifs dauthentification Scuriser un rseau filaire ou sans-fil Pour interdire les postes inconnus Pour placer les postes connus a des endroits spcifiques du rseau (vlan) de faon dynamique. Pour savoir quelle machine est connecte et o elle est connecte Savoir qui se connecte sur quelle prise Eviter une utilisation illicite du rseau par des inconnus Affecter les machines sur des rseaux virtuels (cloisonnement) Affecter une machine sur le mme vlan que lorsquelle Se connecte sur le rseau filaire. Authentification + cryptage

2. Mcanisme dauthentification
Afin de se connecter lquipement cot client, le client RADIUS rcupre dabord toutes les informations ncessaires (login, mot de passe). La mthode de rcupration de ces informations dpend de la configuration du client. Il peut sagir directement dun prompt invitant lutilisateur entrer ces informations, ou bien dutiliser les valeurs transmises par le protocole de communication (ex : PPP). Le client RADIUS cre ensuite un paquet de type Access-Request contenant les informations dont le serveur RADIUS a besoin (nom, mot de passe, ID du client, ID du port). Si un mot de passe est prsent, il sera hach en utilisant MD5. Une fois que le serveur reoit la requte, il vrifie dabord que le client partage un secret avec lui, puis rcupre les informations concernant lutilisateur. Celles-ci sont extraites dune base de donnes qui peut tre locale au serveur RADIUS, ou bien appartenir un autre serveur RADIUS (dans ce cas, le serveur RADIUS jouera lui-mme le rle de client). Si un mot de passe doit tre communiqu, il sera vrifi par le serveur. Dans le cas o lune des informations transmises par le client savre incorrecte, le serveur retourne un paquet Access-Reject indiquant au client que la connexion a t refuse et pouvant contenir un message dexplication. Dans le cas contraire, le serveur retourne un paquet AccessChallenge . Le paquet contient un nombre alatoire que le client doit chiffrer. En retour, le client met de nouveau le paquet Access-Request mais contenant cette fois la rponse au challenge. Le serveur peut alors renvoyer : i. un paquet Access-Accept si lauthentification est valide ; ii. un paquet Access-Reject dans le cas contraire ; iii. un paquet Access-Challenge si un complment dinformation est ncessaire.

b. Lautorisation Cest le fait de dterminer quels sont les droits de lutilisateur. Par exemple, aprs stre logu, lutilisateur peut essayer dutiliser certaines commandes. Lautorisation dtermine alors si lutilisateur peut ou non les utiliser. Dans certaines implmentations, lidentification et lautorisation sont regroups en une seule tape. Lors de l Access-Accept, le serveur ajoute, dans le paquet, une liste de valeurs correspondant aux paramtres de lutilisateur. Elles sont utilises par le NAS qui ralise la phase dautorisation. Si elles sont valides, lutilisateur est alors connect. Suivant la configuration du Network Access Server, elle peut ne pas tre ralise, auquel cas, aucune autorisation ne sera effectue. Ainsi ce terme a un sens trs large tel que : i. Accs ou refus de la connexion au rseau ii. Affecter un Nde VLAN iii. Donner une adresse IP iv. Positionner des ACLs v. Excuter une commande (filtrage, routage) Mais il faut voir ces autorisations comme des attributs de connexion (Reply-item) c. Comptabilisation (accounting)

Cela consiste mesurer les ressources quun utilisateur consomme, en terme dchange rseau, de ressources systme,... Cela sert en fait logguer un certain nombre dinformations sur lutilisateur. Cela permet de connatre la fois les services demands par lutilisateur et la quantit de ressources requises. Les trois points dfinis ci-dessus sont importants pour une bonne gestion et une bonne scurit dun rseau. Ils devraient tre disponibles au point dentre dun rseau. Tous les utilisateurs distants accdent au rseau au travers dun NAS (Network Access Server), aussi appel Remote Access Server, ou Terminal Server. Un NAS est une interface qui accepte un accs distant travers une ligne tlphonique ou RNIS. Le NAS connecte les utilisateurs distants au rseau interne (Local Area Network). Aprs stre connect, lutilisateur distant a accs toutes les ressources du rseau interne (serveurs, partages, communication avec les autres utilisateurs, ...) Au dmarrage dun service, le NAS met un paquet Accounting-Start au serveur RADIUS. Le NAS centralise les informations, puis les envoie au serveur au moment de la fermeture du service dans un paquet Accounting Stop (quantit transmise, dbit, bande passante, temps dmission, ...). Lors de lenvoi du paquet Access-Accept , le serveur ajoute, dans le paquet, une liste de valeurs correspondant aux paramtres de lutilisateur. Elles sont utilises par le lquipement cot client qui ralise la phase dautorisation. Si elles sont valides, lutilisateur est alors connect.

d.

Principe du protocole RADIUS

Le standard RADIUS est bas sur un ensemble dattributs relatifs aux utilisateurs. Ils sont tous stocks dans la base RADIUS du serveur. Au cours dune connexion, un change dinformation a lieu 6

entre le serveur et le client (NAS). Le standard RADIUS propose un certain nombre dattributs qui doivent tre mis en uvre. Mais beaucoup dimplmentations spcifiques du protocole apportent leur propre jeu dattributs. Le protocole RADIUS permet une authentification utilisateur/mot de passe ou utilisateur/challenge/rponse ou les deux, qui peuvent tre configure spcifiquement pour chaque utilisateur. La vrification est ralise par le serveur RADIUS, qui retourne alors un authentication reply au NAS qui a mis la requte. Tous les clients RADIUS communiquent gnralement travers le rseau local sur un serveur unique, ce qui rend la tche de ladministrateur plus simple. La gestion des utilisateurs et de leurs droits est alors plus facile par rapport plusieurs serveurs quil faudrait mettre jour simultanment sur le rseau. Toutes les informations changes entre le serveur Radius et le client Radius passent par des attributs (Un nom et une valeur), on distingue deux types dattributs : 1. Les attributs envoys par les clients au serveur Radius(Request-Items) ii. User-Name iii. Calling-Station-Id iv. Called-Station-Id 1. Envoys par le serveur Radius aux clients(Reply-Items) v. Tunnel-Private-Group-Id vi. Framed-IP-Adress (Pas compatible avec EAP)

Le protocole RADIUS est bas sur un change de paquets utilisant le protocole UDP. Le port gnralement employ est le 1645, bien quil devrait tre normalement configur sur le port 1812 pour viter des conflits avec le service Datametrics. Le protocole utilise 4 types de paquets suffisants pour assurer toutes les transactions (hors accounting) pour effectuer une authentification RADIUS :

Access-Request Envoy par le NAS contenant les informations sur le client qui souhaite se connecter (login/mot de passe, adresse MAC), ce paquet contient l'identit de l'utilisateur qui se connecte ( username/password ou CN du certificat ou MAC adresse) Access-Accept Envoy par le serveur pour autoris la connexion si la vrification des informations est correct aprs linterrogation de sa base d'authentification. Ce paquet peut contenir une liste d'attributs correspondant aux services qui sont autoriss (par exemple le vlan). Access-Reject Envoy par le serveur pour refuser une connexion en cas dchec de lauthentification ou pour mettre fin une connexion et pour informer le client que sa requte est rejete. En principe ce paquet peut tre mis tout moment pour mettre fin une connexion, mais certains quipement ne supporte pas. Access-Challenge Envoy par le serveur pour demander la rmission dun access-request ou des informations complmentaires. Format des trames :

Code (1 octet): access-request access-accept access-reject accounting-request accounting-response access-challenge Identifier (1 octet) : utilis pour associer les requtes et les rponses Unique pour chaque authentification Identique pour une retransmission Longueur (2 octets): Taille total du message (de 20 4096 octets) Authentificateur (16): Lorsque le client NAS envoi un paquet access-request il inclut un authentificateur appel request-authenticator qui est une squence alatoire. Le serveur rpond par un paquet access-accept ou accept-reject ou accept-challenge avec un response-authenticator compos avec les informations contenues dans le paquet access-request, le request authenticator et un secret partag avec le NAS et le tout crypt MD5.

Le NAS est alors en mesure de vrifier que le serveur qui rpond est bien celui qu'il a contact. Request Authenticator (16 octets): Un nombre alatoire unique Response Authenticator (16 octets): MD5 (Code + ID + Length +RequestAuth + Attributes + Secret) Les transactions RADIUS ont pour but de vhiculer des attributs et leur valeur entre le client NAS et le serveur. Ces attributs et leur valeur sont appels paires attribut-valeur (AVP= attributvalue pair), Ils permettent au client de communiquer des informations au serveur (password, MAC adresse) et au serveur de communiquer les paramtres des autorisations qu'il dlivre (vlan) ou bien demander des informations complmentaires.

Un attribut est caractris par son type et sa valeur (ventuellement nulle) Integer Enumerated IP address Chane de caractres Date Binaire Vendor-specific Il y a beaucoup d'attributs standards mais peu sont utilisables dans le cas d'une utilisation avec 802.1x. Par exemple l'attribut CALLBACK-NUMBER contient le numro de tlphone sur lequel il faut rappeler le client. Ce qui est inutile dans notre cas Les attributs standards : Chaque attribut possde un numro d'identification. Seul ce numro est transmis dans les paquets. Called-Station-Id : Contient l'adresse MAC de l'quipement NAS Calling-Station-Id : Contient l'adresse MAC de la machine de l'utilisateur. NAS-IP-Address : Adresse IP de l'quipement NAS NAS-Port : Port sur lequel est connect le supplicant User-Name User-Password Les attributs vendor : Les fabricant de matriel rseau (NAS) ont parfois intgr leurs quipements des attributs spcifiques en plus des attributs standards dfinis dans le RFC. Ces attributs sont encapsuls dans l'attribut standard vendor-specific qui a pour numero 26. Ils sont appels VSA = Vendor Specific Attribut.

Vendor ID: N d'immatriculation du fabricant (NMPECS= Network Management Private Enterprise Codes (RFC1700) Attribut number Comme pour les attributs standards, les vendor-attributs possdent un numro d'identification. Ce numro est rpertori dans un dictionnaire spcifique au fabricant. e. Modules et attributs programmables Il est possible dcrire des programmes qui sexcuteront pendant le processus dauthentification/autorisation. Deux mthodes : i. Au moyen de modules dclars dans la configuration Radius ii. Avec lattribut Exec-Program-Wait dans la base de donnes. Exemples : Gnrer des lignes de logs spcifiques Envoyer un mail avant expiration Faire des vrifications supplmentaires Modifier dynamiquement la base de donnes Dans le fichier de configuration du daemon FreeRadius (radiusd.conf) on dfini un module spcifique.

Ce module est appel dans une des sections de radiusd.conf.

Ecrire le programme appel

10

Appel dun programme dans les attributs stocks dans la base de donnes (utilisation de lattribut Exec-Program-Wait.) Exemple : Envoi dun mail avant date dexpiration

Ecriture du programme correspondant .

III. FONCTIONNEMMENT DU PROTOCOLE RADUIS


Le protocole RADIUS repose principalement sur un serveur (le serveur RADIUS), reli une base didentification (base de donnes, annuaire LDAP, etc.), sur un client RADIUS, appel NAS (Network Access Server), faisant office dintermdiaire entre lutilisateur final et le serveur. Lensemble des transactions entre le client RADIUS et le serveur RADIUS est chiffr. Le serveur RADIUS peut faire office de proxy, cest--dire transmettre les requtes du client dautres serveurs RADIUS. Le serveur traite les demandes dauthentification en accdant si ncessaire une base externe : base de donnes SQL, annuaire LDAP, comptes dutilisateurs, de machines ou de domaines. Un serveur RADIUS dispose pour cela dun certain nombre dinterfaces ou de mthodes.6 Un utilisateur envoie une requte au NAS afin dautoriser une connexion distance. Le NAS achemine la demande au serveur RADIUS. Le serveur RADIUS consulte sa base de donnes didentification afin de connatre le type de scnario didentification demand pour lutilisateur. Soit le scnario actuel convient, soit une autre mthode didentification est demande lutilisateur. Le serveur RADIUS retourne ainsi une des quatre rponses suivantes : ACCEPT : lidentification a russi. REJECT : lidentification a chou. 11

CHALLENGE : le serveur RADIUS souhaite des informations supplmentaires de la part de lutilisateur et propose un dfi .

Une autre rponse est possible : CHANGE PASSWORD o le serveur RADIUS demande lutilisateur un nouveau mot de passe. Change-password est un attribut VSA (Vendor-Specific Attributes), cest--dire quil est spcifique un fournisseur. Suite cette phase dit dauthentification, dbute une phase dautorisation o le serveur retourne les autorisations de lutilisateur. Donc la demande dauthentification contient un nom d'usager et un mot de passe (chiffr avec MD5 ou un autre algorithme) dont la validit sera compare avec le couple identifiant-mot de passe enregistr dans un annuaire centralis (gnralement un service d'annuaire LDAP). L'identifiant et le mot de passe sont dchiffrs au moyen d'un se-cret partag entre le client et le serveur Radius. Si les informations fournies sont correctes, le serveur Radius renvoie une chane numrique alatoire que le client utilisera pour faire sa demande d'accs au rseau. rception de celle-ci, le serveur Radius inscrit l'usager authentifi sur le rseau en lui attribuant une adresse IP par l'entremise du serveur DHCP. Le protocole Radius dispose galement de fonctions pour comptabiliser le temps de connexion. Le serveur Radius conserve au sein d'un fichier de traces la date et l'heure de connexion et de dconnexion de l'utilisateur, ou transmet ces informations une base de donnes. noter, toutes ces connexions s'effectuent en mode session grce au protocole UDP. EAP (Extended Authentication Protocol), un mcanisme de contrle d'accs au niveau d'Ethernet bas sur un service dauthentification RADUIS. Connu galement sous le numro 802.1x, EAP intercepte la demande d'inscription d'un adaptateur Ethernet sur le segment du rseau dont il dpend et la soumet une authentification Radius. D'un intrt limit pour les rseaux locaux d'entreprise, ce protocole assure en revanche une scurisation efficace pour les rseaux locaux radio. EAP garantit en effet qu'un utilisateur non-autoris ne puisse pas accder la zone de couverture dans laquelle il se trouve. En thorie donc, Radius cumule presque tous les avantages. Cependant, l'exploitation, le protocole rvle non seulement des contraintes qui compliquent son dploiement, mais aussi des failles de scurit inquitantes. Ainsi, une tude rcente ralise par Infoguard, un cabinet d'experts amricain, dmontre que l'identifiant gnr par le client, permettant au serveur Radius de reconnatre l'origine d'une requte, autant que le secret partag, utilis pour chiffrer et dchiffrer l'change du mot de passe de l'utilisateur, sont vulnrables aux attaques de pirates chevronns. Cela permet un pirate ayant observ et captur une demande de requte et sa rponse, de 12

reproduire l'change et d'obtenir ainsi frauduleusement un accs "lgal" sur le rseau. " Le secret partag lui-mme peut tre dcod facilement ds que l'on est parvenu se procurer un nom d'utilisateur et un mot de passe valides. " Le protocole autorise l'utilisation du mme secret partag pour un nombre illimit de clients, relve l'expert. Ce qui signifie que dans beaucoup de cas, la dcouverte d'un seul secret partag permet de collecter tous les identifiants d'utilisateurs qui seront transmis au serveur Radius. Les secrets partags sont bien tous diffrents et suffisamment complexes pour ne pas tre trouvs trop facilement constitue pour l'instant la seule dfense possible. Car il n'existe pas de relle solution disponible ce jour. L'espoir ne semble pas mme devoir venir de Diameter. Ce protocole d'authentification, actuellement en cours de finalisation par l'IETF, prvoit certes des mcanismes de scurit, mais les limite l'change d'informations entre serveurs Diameter. Pour autant, cette version rvise de Radius est attendue. Tournant le dos l'architecture client-serveur classique qui handicape Radius (un client doit mettre une requte pour dmarrer le processus d'authentification), Diameter permettra au serveur de dtecter l'entre d'usagers non encore autoriss sur le rseau. Plus important, le protocole prvoit aussi des mcanismes d'change, d'interrogation distance et de dlgation d'autorit entre les serveurs d'authentification. L'autorisation dlivre par un serveur sera ainsi valable non seulement pour son propre rseau, mais aussi pour tous les rseaux relis, et ce, selon des permissions prdfinies dans le cadre des informations reues de l'usager.

Radius centralise l'authentification

1. Accder au serveur RAS


Access-Request : un paquet IP spcifique, mis par l'agent logiciel d'une passerelle RPV ou d'un serveur d'accs. Celui-ci contient l'identifiant et le mot de passe de l'utilisateur chiffrs.Secret partag : une chane de 16 caractres alphanumriques utilise par le serveur et les clients Radius pour se reconnatre entre eux.Identifiant de requte : gnralement limit un simple compteur, ce champ du paquet de requte permet l'ouverture d'une session d'authentification sur le serveur Radius.

2. Scuriser le sans-fil
13

Avec l'avnement des connexions sans fil, l'IETF a mis au point le protocole EAP (Extensible Authentification Protocol), un mode de ngociation avec les serveurs d'authentification fond sur l'change de cls communes et de certificats. Ce protocole, qui est propos par Cisco, Microsoft et RSA, serait plus fiable que WEP.

3. Authentifier
En recevant la requte, le serveur Radius vrifie auprs du serveur LDAP que l'utilisateur est bien prsent dans la base d'annuaire. La connexion s'effectue en utilisant le mode de transmission UDP, plus souple que TCP. Ce choix d'UDP par l'IETF rpond au besoin d'une connexion permanente sans rengociation, comme c'est le cas avec TCP.

4. Attribuer l'adresse IP
Aprs avoir authentifi l'utilisateur en interrogeant un annuaire LDAP, le serveur Radius retourne une autorisation d'accs chiffre au client, sous la forme d'un numro unique et alatoire. De cette faon, le serveur s'assure que le client Radius ayant mis la requte est bien celui qui est habilit traiter la rponse. rception de celle-ci, le client met nouveau une requte d'accs grce laquelle il obtiendra l'adresse IP dont l'usager besoin pour tre connect au rseau.

Claude

IV. Configuration du RADIUS : cas Windows 2003

14

Introduction
Prsentation du service routage et accs distant Le service Routage et Accs Distant encore appel RRAS (pour Routing and Remote Access Service) possde deux fonctions principales :

Il permet de faire communiquer entre-eux des rseaux diffrents ou des sous-rseaux diffrents (routage) Il permet des clients situ dans une zone gographiquement loigne de l'entreprise d'accder au rseau interne de l'entreprise (accs distance)

Dans cet article nous dtailler la mise en place de l'accs distance avec le service Routage et accs distant de Microsoft Windows 2003 Server. Infrastructure logicielle et matrielle de l'accs distance a/ infrastructure logicielle Pour tre mis en place dans un environnement Microsoft, l'accs distance requiert la prsence de plusieurs services:

un logiciel d'accs distants client (intgr au systme d'exploitation depuis la sortie de Windows 95) le service Routage et Accs distant le service d'annuaire Active Directory

Comme nous le verrons ultrieurement, il est possible d'utiliser un service spcifique nomm IAS (Internet Authentification Service) pour centraliser les demandes d'authentification des clients d'accs distant. b/ infrastructure matrielle Gnralement, une machine ddie est utilise pour jouer le rle de contrleur de domaine et une autre machine est utilise excuter le service Routage et Accs Distant. Voici une topologie rseau type en ce qui concerne l'accs distance :

Comme le montre le schma ci-dessus, divers types de rseau peuvent utiliss pour tablir la connexion entre l'ordinateur client et le serveur d'accs distant. Les trois principaux sont : 15

les connexions VPN (Virtual Private Network) qui utilisent un rseau public (le plus souvent Internet). les connexions d'accs distance qui utilisent un Rseau Numrique Intgration de Service (RNIS), comme par exemple Numris de l'oprateur tlphonique France Tlcom. les connexions sans fil (ou wireless) qui utilisent des technologies bases sur la propagation d'ondes (infrarouge, bluetooth, WiFi, WiMAX,...).

En consquence, plusieurs types de clients sont distinguables :


les clients VPN les clients d'accs distance les clients sans fil

Principe de fonctionnement de l'accs distance L'tablissement d'une connexion d'accs distance passe par plusieurs tapes : 1. Un client contacte le serveur d'accs distant et lui envoie un identifiant avec un mot de passe pour tenter de s'authentifier. 2. Le serveur d'accs distant commence par vrifier si l'identifiant et le mot de passe correspondent un utilisateur de l'annuaire Active Directory : c'est la phase d'authentification. 3. Si l'utilisateur s'est authentifi avec succs, alors le serveur d'accs distant compare les paramtres de la demande de connexion avec toutes les stratgies d'accs distant existantes. 4. Si les conditions d'une stratgie d'accs distant correspondent avec les paramtres de la demande de connexion, alors le serveur d'accs distant vrifie si l'utilisateur a l'autorisation de se connecter distance au rseau de l'entreprise : c'est la phase d'autorisation. 5. Si l'utilisateur est autoris se connecter distance au rseau de l'entreprise, alors les conditions du profil d'accs distant de la connexion sont vrifies. 6. Si toutes les conditions du profil d'accs distant sont vrifies alors la connexion est autorise et le client reoit une adresse IP.

les tapes de l'tablissement d'une connexion d'accs distance

16

Configuration gnrale du serveur


Lancer la console et activer le service Routage et Accs distant

Il faut taper rrasmgmt.msc dans la boite de dialogue excuter pour lancer la console Routage et Accs Distant. Pour activer le service, il faut faire un clic droit sur le nom du serveur et cliquer sur Configurer et activer le routage et l'accs distant.

L'assistant installation du serveur de routage et d'accs distant se lance.

17

On slectionne les services ncessaires.

L'assistant se termine.

18

Une fois le service Routage et Accs Distant install, l'arborescence se complte et on a accs plus d'options :

Interface Rseau : liste les cartes rseau et les modems actuellement connects la machine et permet d'ajouter des connexions de numrotation la demande. Clients d'accs distant : liste le nombre de clients actuellement connects au serveur d'accs distant et offre la possibilit de forcer la fermeture des sessions d'accs distants. Ports : Un port est un priphrique virtuel permettant aux clients de se connecter au serveur. Le nombre de ports configurs est paramtrable pour chaque type de connexion (par exemple, il est possible de dfinir un nombre de ports pour les connexions via le protocole PPTP). Cette vue permet de constater l'tat actif ou inactif de chaque port. Routage IP : Permet de configurer le routage des paquets IP. Il est possible ici de configurer les interfaces, d'ajouter des protocoles (comme le NAT, OSPF ou RIPv2) afin de permettre la dcouverte automatique de routeurs. Cette fentre permet aussi de dfinir une interface en tant qu'agent de relais DHCP.

19

Stratgies d'accs distant : Une stratgie d'accs distant est un ensemble de conditions dfinissant qui pourra accder distance au rseau et quelles seront les caractristiques de cette connexion. Les critres d'acceptation ou de refus de connexions sont trs varis. Il est possible de configurer une stratgie pour refuser ou accepter un connexion suivant une plage horaire, appartenance un groupe, type de service, protocole utilis, temps maximum de connexion etc L'ordre de placement des stratgies est trs importante car c'est la premire stratgie concerne qui servira accepter ou refuser la connexion. Les stratgies d'accs distant ne sont pas stockes dans l'active Directory, mais dans le fichier local IAS.mdb. Une solution pour appliquer les mme stratgies d'accs distant plusieurs serveur d'accs distant est d'utiliser un serveur utilisant le protocole RADIUS. Le serveur RADIUS de Microsoft se nomme IAS (Internet Authentification Service) et se prsente sous la forme d'un service optionnel. Connexion par accs distant : Cette fentre permet de paramtrer la journalisation (emplacement du journal, types d'vnements enregistrer,...)

Les paramtres du serveur d'accs distant

Des paramtres gnraux sont accessibles en faisant un clic droit sur le nom du serveur puis en slectionnant proprits. Les options intressantes au niveau de l'accs distance (les autres options concernent le routage) sont :
o o o o

le choix d'activer ou non l'accs distance (onglet Gnral) le choix du protocole utilis pour l'authentification des utilisateurs (onglet Scurit) la possibilit de choisir comment le serveur d'accs distant va attribuer les adresses IP aux clients (soit dans un pool d'adresses statique, soit via le protocole DHCP) la possibilit de choisir avec quelle interface rseau le serveur d'accs distant doit obtenir les baux DHCP pour les clients. 20

la possibilit de choisir quels sont les vnements qui seront stocks dans le journal (onglet Enregistrement).

Les protocoles d'authentification

Le service Routage et accs distant propose plusieurs protocoles plus ou moins scuris pour authentifier les utilisateurs distant :

PAP (Password Authentification Protocol) est un protocole non scuris car les identifiants et les mots de passe sont envoys en clair (c'est--dire sans cryptage) entre le client et le serveur d'accs distant. SPAP (Shiva Password Authentification Protocol) permet aux machines clientes quipes avec du matriel de marque Shiva de se connecter au serveur d'accs distant. Les mots de passe sont protgs par un cryptage rversible (faible scurit). CHAP (Challenge Handshake Authentification Protocol) autorise le cryptage des mots de passe envoys du client vers le serveur d'accs distant. MS-CHAP (Microsoft CHAP) est un protocole propritaire de Microsoft bas sur CHAP. Il utilise le protocole de cryptage MPPE (Microsoft Point-to-Point Encryption) et est support depuis Windows 95. MS-CHAP V2 est une amlioration du protocole MS-CHAP avec des cls de cryptage plus fortes et une authentification mutuelle entre le client et le serveur d'accs distant. Il a t implment partir de Windows 98. EAP (Extensible Authentification Protocol) est un protocole volutif qui permet d'authentifier du matriel propritaire de manire scurise.

Centralisation des clients d'accs distant l'aide du serveur IAS


Prsentation et installation d'IAS Lorsque l'on dispose de plusieurs serveurs d'accs distant, il peut s'avrer fastidieux de mettre en place une stratgie d'accs uniforme. La solution la plus simple reste de mettre en place un serveur utilisant 21

le protocole RADIUS (pour Remote Authentication Dial-In User Service) qui permet une autorisation et une authentification des utilisateurs distant de manire centralise. Microsoft a dvelopp son propre serveur RADIUS qui s'intgre Windows 2003 Server sous la forme d'un service optionnel. Ce service se nomme IAS pour Internet Authentification Service.

Une fois en place et correctement paramtr le serveur IAS joue le rle d'intermdiaire entre les serveurs d'accs distant et le contrleur de domaine Ceci modifie donc les tapes lors de l'tablissement d'une connexion d'accs distance : 1. Un client contacte le serveur d'accs distant et lui envoie un identifiant avec un mot de passe pour tenter d'tablir la connexion. 2. Le serveur d'accs distant (qui est un client RADIUS du point de vue du serveur IAS) envoie la demande d'authentification au serveur IAS en UDP via les ports 1812 et 1813. 3. Le serveur IAS excute les phases d'authentification et d'autorisation auprs d'un contrleur de domaine 4. Si l'utilisateur distant a correctement t identifi alors le serveur IAS compare les stratgies d'accs distant configures avec la demande de connexion du client. 5. Si les paramtres de la demande de connexion concordent avec une stratgie d'accs distant alors le serveur IAS envoie un message au serveur d'accs distant qui fournit ensuite une adresse IP au client.

Pour lancer l'installation du service IAS, allez dans le panneau de configuration, puis slectionnez ajout/suppression de programmes. Cliquez ensuite sur le bouton Ajouter ou supprimer des composants de Windows.

22

Dans la premire fentre de l'assistant Composants de Windows, slectionnez l'option Services de mise en rseau.

Enfin cchez la case Service d'authentification Internet puis cliquez sur OK. Enfin faites suivant pour lancer l'installation d'IAS.

Une fois le service install, vous pouvez y accder en tapant ias.msc dans la boite de dialogue excuter ou bien en cliquant sur Service d'authentification Internet dans les outils d'administration. Configuration d'IAS Voici une capture d'cran de la console Service d'authentification Internet : 23

Client RADIUS Le conteneur Clients RADIUS liste l'ensemble des serveurs d'accs distants qui sont des clients vis-vis du serveur IAS. Pour qu'un serveur d'accs distant fasse partie de cette liste, il suffit de l'y ajouter en utilisant l'assistant Ajouter un client RADIUS.

Pour ajouter un client RADIUS, il suffit d'entrer son nom de domaine pleinement qualifi (FQDN) ou bien son adresse IP ainsi qu'une chane de caractre permettant de le reconnatre facilement.

24

Il faut ensuite choisir le type de technologie RADIUS utiliser (ici RADIUS standard), une cl partage (optionnelle) pour crypter les changes entre le client et le serveur IAS. On peut aussi ccher la case Les requtes doivent contenir l'attribut de l'authentificateur de message qui aura pour effet de forcer le client RADIUS s'authentifier chaque connexion auprs du serveur IAS en envoyant une signature numrique.

Connexion par accs distant Le conteneur Connexion par accs distant permet de configurer la journalisation. Il est par exemple possible de choisir les informations qui seront enregistres.

25

Mais aussi, l'emplacement, le format et la frquence d'actualisation du fichier journal.

Stratgie d'accs distant Le conteneur Stratgie d'accs distant est identique celui prsent dans la console Routage et accs distant. Il stocke l'ensemble des stratgies d'accs distant disponibles pour chaque serveur d'accs distant.

3-) Configuration du serveur d'accs distant pour utiliser IAS Pour que les serveur d'accs distant envoie les demandes d'authentifications vers le serveur IAS, il est ncessaire de modifier leur configuration originelle. Pour cela il faut lancer la console Routage et Accs distant (vous pouvez taper rrasmgmt.msc dans la boite de dialogue excuter) puis faire un clic 26

droit sur le nom du serveur, puis proprits. Sectionnez ensuite l'onglet Scurit et vous devriez accdez la fentre ci-contre. Choisissez Authentification RADIUS dans la liste droulante Fournisseur d'authentifications, puis cliquez sur le bouton Configurer.

Dans la fentre Authentification RADIUS, cliquez sur le bouton Ajouter.

27

Vous devez saisir le nom DNS pleinement qualifi du serveur IAS dans le champ rserv cet effet. Si vous avez choisi d'utilis une cl pr-partage lors de l'ajout du serveur d'accs distant dans la liste des client RADIUS du serveur IAS, vous devez saisir la mme cl en cliquant sur le bouton Modifier. Si vous avez cch l'option Les requtes doivent contenir l'attribut de l'authentificateur de message, lors de l'ajout du serveur d'accs distant dans la liste des client RADIUS du serveur IAS, alors vous devez aussi ccher la case Toujours utiliser l'authentificateur de messages. Ainsi chaque demande d'accs distant, le serveur d'accs distant enverra une signature numrique permettant de l'identifier en tant que client RADIUS auprs du serveur IAS. Vous pouvez ventuellement modifier le port par dfaut pour envoyer les messages d'authentification vers le serveur IAS.

Une fois toutes ces modifications effectues vous devez redmarrer le service Routage et accs distant pour que les modifications soient prises en compte.

Configuration des clients d'accs distance et scurisation de l'accs distance


Prsentation du rseau priv virtuel (VPN) Une connexion rseau priv virtuel ou VPN (Virtual Private Network) permet deux entits de communiquer entres-elle de faon scurise en passant par un rseau public (non scuris) comme Internet. Les rseaux privs virtuels sont souvent utiliss dans le cadre de l'accs distance car ils permettent un utilisateur lambda d'accder aux ressources internes de l'entreprise en utilisant un rseau dont le cot de location est faible (Internet) de manire scurise. Pour cela les rseaux privs virtuels utilisent des protocoles spcifiques comme PPTP ou bien encore L2TP/IPSec appels protocole de tunnel. Les protocoles de tunnel chiffrent les trames de donnes puis encapsulent ces trames dans des paquets IP qui sont envoys sur Internet. La scurit des donnes est maximale puisque les adresses IP prives (celle du client et du serveur d'accs distant) sont chiffres. Il est donc impossible pour un utilisateur non autoris d'avoir accs aux donnes circulant sur la toile.

28

Les protocoles de cryptage utiliss par PPTP et L2TP sont respectivement MPPE et IPSec. 2-) Configurer une connexion VPN sous Windows XP Pour crer une connexion VPN sous Windows XP, affichez la page listant les connexions rseau (clic droit / proprits sur l'icne favoris rseau) puis lancez l'Assistant Nouvelle Connexion et cliquez sur Suivant. Slectionnez Connexion au rseau d'entreprise.

Cliquez sur Suivant, puis sur Terminer pour quitter l'assistant. Vous devez ensuite saisir l'identifiant et le mot de passe utiliser pour s'authentifier auprs du serveur d'accs distant. Vous pouvez choisir d'enregistrer ces informations d'authentification ce qui vitera de les ressaisir l'avenir. Vous pouvez ensuite cliquer sur Se connecter pour tablir la connexion VPN.

29

Les proprits de la connexion permettent de modifier un grand nombre de paramtre comme le protocole d'authentification utiliser (MS-CHAP V2 est le protocole recommand pour obtenir une scurit maximale), les paramtres TCP/IP, l'adresse IP du serveur d'accs distant, ...

Scuriser les accs distants Permettre des utilisateurs distants d'accder aux ressources internes de l'entreprise peut s'avrer risqu du point de vue de la scurit. Voici un ensemble de rgles simples qui permettent de scuriser au mieux une connexion d'accs distance :
o

Centralisez les demandes d'authentifications l'aide d'un serveur RADIUS.

30

o o

Scurisez au maximum le trafic entre le serveur RADIUS et les serveurs d'accs distant (utilisation d'une cl pr-partage, de signatures numriques pour identifier les serveurs d'accs distant, d'IPSec pour crypter les changes de donnes,...). Configurez les stratgies d'accs distant les plus restrictives possibles (limitez les plages horaires, paramtrez une dure d'inactivit de la connexion faible, utilisez uniquement les protocoles MS-CHAP V2 ou EAP pour authentifier les utilisateurs, utilisez le cryptage maximal,...) Si vous utilisez le protocole L2TP/IPSec mettez en place un systme de certificats. Mettez en place une stratgie de groupe verrouillant le compte des utilisateurs distant aprs un certain nombre de tentatives infructueuses.

Vous pouvez aussi envisager l'installation d'un pare-feu comme ISA Server afin d'augmenter le niveau de scurit du rseau interne de l'entreprise.

Conclusion
La console Routage et accs distant (RRAS) regroupe toutes les fonctionnalits ncessaires la cration de connexions d'accs distant. Les mthodes d'accs distant proposes (rseau priv virtuel, sans fil,...) permettent une adaptation tout les cas de figure envisageables. L'association des profils d'accs distant et des stratgies d'accs distant permet de scuriser et de rglementer de faon trs fine une connexion travers un rseau public comme Internet. De plus, la mise en place du service IAS facilite la maintenance des stratgies d'accs distant grce l'utilisation du protocole RADIUS qui permet la centralisation des requtes d'authentification. En conclusion, l'infrastructure intgre Windows 2000/2003 server permet de mettre en place rapidement un service d'accs distance fiable, scuris et hautement paramtrable.

31

SNORT
I. Introduction
Les systmes d'information sont aujourd'hui de plus en plus ouverts sur Internet. Cette ouverture, a priori bnfique, pose nanmoins un problme majeur : il en dcoule un nombre croissant d'attaques. La mise en place dune politique de scurit autour de ces systmes est donc primordiale. Outre la mise en place de pare-feux et de systmes d'authentification de plus en plus scuriss, il est ncessaire, pour complter cette politique de scurit, d'avoir des outils de surveillance pour auditer le systme d'information et dtecter d'ventuelles intrusions. Ce que nous appelons intrusion signifie pntration des systmes d'information mais aussi tentatives des utilisateurs locaux d'accder de plus hauts privilges que ceux qui leur sont attribus, ou tentatives des administrateurs d'abuser de leurs privilges. Les attaques dintrusion peuvent tre rpertories selon trois types : - les attaques rseau ; - les attaques par portes drobes (backdoors) et canaux de communication cachs (cover channels) ; - les attaques sur les services, qui gagnent une importance croissante (de nos jours, peu prs 60% des intrusions se font via le Web). La dtection dintrusion est tudie depuis plus de vingt-cinq ans Les systmes dits passifs de dtection dintrusion (IDS pour Intrusion Detection Systems) ont t dploys de plus en plus largement, suivis aujourdhui par des systmes dits actifs de prvention dintrusion (IPS pour Intrusion Prevention Systems). La recherche en dtection (et prvention) dintrusion est toujours trs active, notamment en raison des volutions rapides et incessantes dans les technologies de linformation et de la communication. Au cours de cette Partie nous verrons comment se protger efficacement face ces intrusions, mais aussi les problmes techniques dduits de ces outils, nouvellement apparus dans le monde informatique.

II.

Dtection d'attaques : les IDS

1. Pourquoi utiliser un IDS ? La surveillance du trafic dun (plusieurs) rseau(x) de machines en vue de la surveillance Temps Rel du trafic, par opposition la consultation des traces ( Logs ) qui se fait forcement en diffr, sans parler des difficults de reprer des failles. Ce que quon peut attendre dun IDS : lmission dalertes qui permettront la dtection de la prparation dune attaque, (scans massifs la recherche de failles sur un ensemble de machines), une attaque en cours (trafic sur des ports correspondants des failles), et posteriori, la dtection dune machine compromise avant quelle ne puisse servir de base dattaques vers dautres systmes. En outre, il permet dditer des rapports permettant davoir une vision globale du degr de scurit dun rseau ou dun ensemble de machines, et cela de diffrents niveaux. A titre dexemple, un rapport 32

destination du management sera synthtique et dgagera des tendances pour mettre en vidence le niveau de vulnrabilit dun rseau. Un des intrts de ce rapport synthtique est de pouvoir suivre lvolution du niveau de scurit dun rseau dans le temps. Ce document est en quelque sorte un indicateur qualitatif concernant la scurit dun rseau ou dun ensemble de machines. Cest un moyen daide la dfinition dune politique de scurit, cest aussi un moyen de suivi de son application, car la mise en uvre dune politique de scurit est un processus continu. Il peut tre utile pour justifier des investissements en matire de scurit en prsentant leur incidence sur le niveau global de scurit. Les rapports destination du personnel technique prsenteront les failles ainsi que les ventuels remdes appliquer pour les supprimer. 2. La dtection dintrusion En scurit informatique, la dtection d'intrusion est l'acte de dtecter les actions qui essaient de compromettre la confidentialit, l'intgrit ou la disponibilit d'une ressource. La dtection d'intrusion peut tre effectue manuellement ou automatiquement. Dans le processus de dtection d'intrusion manuelle, un analyste humain procde lexamen de fichiers de logs la recherche de tout signe suspect pouvant indiquer une intrusion. Un systme qui effectue une dtection d'intrusion automatise est appel systme de dtection dintrusion (IDS). Lorsquune intrusion est dcouverte par un IDS, les actions typiques quil peut entreprendre sont par exemple denregistrer linformation pertinente dans un fichier ou une base de donnes, de gnrer une alerte par e-mail ou un message sur un pager ou un tlphone mobile. Dterminer quelle est rellement l'intrusion dtecte et entreprendre certaines actions pour y mettre fin ou l'empcher de se reproduire, ne font gnralement pas partie du domaine de la dtection d'intrusion. Cependant, quelques formes de raction automatique peuvent tre implmentes par l'interaction de l'IDS et de systmes de contrle d'accs tels que les pare-feu 3. Les diffrents types d'IDS

Les attaques utilises par les pirates sont trs varies. Certaines utilisent des failles rseaux et dautres des failles de programmation. Nous pouvons donc facilement comprendre que la dtection dintrusions doit se faire plusieurs niveaux. Ainsi, il existe diffrents types dIDS dont nous dtaillons ci-dessous les caractristiques principales. a. Les systmes de dtection dintrusions (IDS) Dfinition : ensemble de composants logiciels et matriels dont la fonction principale est de dtecter et analyser toute tentative deffraction (volontaire ou non). Fonctions : dtection des techniques de sondage (balayages de ports, fingerprinting), des tentatives de compromission de systmes, dactivits suspectes internes, des activits virales ou encore audit des fichiers de journaux (logs). b. Les systmes de dtection dintrusions rseaux (NIDS) Objectif : analyser de manire passive les flux en transit sur le rseau et dtecter les intrusions en temps rel. Un NIDS coute donc tout le trafic rseau, puis lanalyse et gnre des alertes si des paquets semblent dangereux. Les NIDS tant les IDS plus intressants et les plus utiles du fait de lomniprsence des rseaux dans notre vie quotidienne, ce document se concentrera essentiellement sur ce type dIDS en tudiant SNORT. c. Les systmes de dtection dintrusions de type hte (HIDS)

33

Un HIDS se base sur une unique machine, nanalysant cette fois plus le trafic rseau mais lactivit se passant sur cette machine. Il analyse en temps rel les flux relatifs une machine ainsi que les journaux. Un HIDS a besoin dun systme sain pour vrifier lintgrit des donns. Si le systme a t compromis par un pirate, le HIDS ne sera plus efficace. Pour parer ces attaques, il existe des KIDS (Kernel Intrusion Detection System) et KIPS (Kernel Intrusion Prevention System) qui sont fortement lis au noyau. Ces types dIDS sont dcrits un peu plus loin. d. Les systmes de dtection dintrusions hybrides Gnralement utiliss dans un environnement dcentralis, ils permettent de runir les informations de diverses sondes places sur le rseau. Leur appellation hybride provient du fait quils sont capables de runir aussi bien des informations provenant dun systme HIDS quun NIDS. Lexemple le plus connu dans le monde Open-Source est Prelude. Ce framework permet de stocker dans une base de donnes des alertes provenant de diffrents systmes relativement varis. Utilisant Snort comme NIDS, et dautres logiciels tels que Samhain en tant que HIDS, il permet de combiner des outils puissants tous ensemble pour permettre une visualisation centralise des attaques. 4. Les mthodes de dtection Pour bien grer un systme de dtection dintrusions, il est important de comprendre comment celui-ci fonctionne. Une question simple se pose alors : comment une intrusion est elle dtecte par un tel systme ? Quel critre diffrencie un flux contenant une attaque dun flux normal ? Ces questions nous ont amens tudier le fonctionnement interne dun IDS. De l, nous en avons dduit deux techniques mises en place dans la dtection dattaques. La premire consiste dtecter des signatures dattaques connues dans les paquets circulant sur le rseau. La seconde, consiste quant elle, dtecter une activit suspecte dans le comportement de lutilisateur. Ces deux techniques, aussi diffrentes soient-elles, peuvent tre combines au sein dun mme systme afin daccrotre la scurit. a. Lapproche par scnario (misuse detection) Cette technique sappuie sur la connaissance des techniques utilises par les attaquants pour dduire des scnarios typiques. Elle ne tient pas compte des actions passes de lutilisateur et utilise des signatures dattaques (= ensemble de caractristiques permettant didentifier une activit intrusive : une chane alphanumrique, une taille de paquet inhabituelle, une trame formate de manire suspecte) Recherche de motifs (pattern matching) La mthode la plus connue et la plus facile comprendre. Elle se base sur la recherche de motifs (chanes de caractres ou suite doctets) au sein du flux de donnes. LIDS comporte une base de signatures o chaque signature contient les protocole et port utiliss par lattaque ainsi que le motif qui permettra de reconnatre les paquets suspects. Le principal inconvnient de cette mthode est que seules les attaques reconnues par les signatures seront dtectes. Il est donc ncessaire de mettre jour rgulirement le base de signatures. Un autre inconvnient est que les motifs sont en gnral fixes. Or une attaque nest pas toujours identique 100%. Le moindre octet diffrent par rapport la signature provoquera la non dtection de lattaque. Pour les IDS utilisant cette mthode, il est ncessaire dadapter la base de signatures en fonction du systme protger. Cela permet non seulement de diminuer les ressources ncessaires et donc augmenter les performances ; mais galement rduire considrablement le nombre de fausses alertes et donc faciliter le travail des administrateurs rseaux qui analyseront les fichiers dalertes. Cette technique est galement utilise dans les anti-virus. 34

Analyse de protocoles Cette mthode se base sur une vrification de la conformit (par rapport aux RFC) des flux, ainsi que sur lobservation des champs et paramtres suspects dans les paquets. Cependant, les diteurs de logiciels et les constructeurs respectent rarement la lettre les RFC et cette mthode nest pas toujours trs performante. Lanalyse protocolaire est souvent implmente par un ensemble de prprocesseurs, o chaque prprocesseur est charg danalyser un protocole particulier (FTP, HTTP, ICMP, ...). Du fait de la prsence de tous ces prprocesseurs, les performances dans un tel systme sen voient fortement dgrades. Lintrt fort de lanalyse protocolaire est quelle permet de dtecter des attaques inconnues, contrairement au pattern matching qui doit connatre lattaque pour pouvoir la dtecter. Analyse heuristique et dtection danomalies Le but de cette mthode est, par une analyse intelligente, de dtecter une activit suspecte ou toute autre anomalie. Par exemple : une analyse heuristique permet de gnrer une alarme quand le nombre de sessions destination dun port donn dpasse un seuil dans un intervalle de temps prdfini. b. Lapproche comportementale (Anomaly Detection) Cette technique consiste dtecter une intrusion en fonction du comportement pass de lutilisateur. Pour cela, il faut pralablement dresser un profil utilisateur partir de ses habitudes et dclencher une alerte lorsque des vnements hors profil se produisent. Cette technique peut tre applique non seulement des utilisateurs mais aussi des applications et services. Plusieurs mtriques sont possibles : la charge CPU, le volume de donnes changes, le temps de connexion sur des ressources, la rpartition statistique des protocoles et applications utiliss, les heures de connexion, Cependant elle possde quelques inconvnients : - peu fiable : tout changement dans les habitudes de lutilisateur provoque une alerte. - ncessite une priode de non fonctionnement pour mettre en oeuvre les mcanismes dautoapprentissage : si un pirate attaque pendant ce moment, ses actions seront assimiles un profil utilisateur, et donc passeront inaperues lorsque le systme de dtection sera compltement mis en place. - ltablissement du profil doit tre souple afin quil ny ait pas trop de fausses alertes : le pirate peut discrtement intervenir pour modifier le profil de lutilisateur afin dobtenir 18 aprs c. Les mthodes rpandues

En gnral, les IDS mlangent les diffrentes techniques de dtection par scnario en proposant du pattern matching, de lanalyse protocolaire et de la dtection danomalies. De nombreuses techniques et algorithmes sont utiliss dans la dtection dintrusions : Pattern Matching : - algorithmes de recherche de motifs (ex : Boyer-Moore) , - algorithmes de comptage - algorithmes gntiques Analyse Protocolaire : - conformit aux RFC Dtection danomalies : - mthodes heuristiques Analyse statistique : - modles statistiques Analyse probabiliste : - rseaux baysiens 35

Autre analyse comportementale : - rseaux de neurones, - systmes experts + data mining - immunologie, graphes, ... Il est bien sr impossible de dtailler chacun des algorithmes mis en oeuvre dans les IDS.

III.
1.

Mise en oeuvre d'IDS


Historique du SNORT :

Cest en 1998 que Martin Roesch dcide de publier un logiciel de sa conception, dvelopp autour du milieu Open Source : un programme quil appellera finalement Snort, ce qui correspond au verbe ainsi qu lonomatope anglaise du reniflement (sniffing, qui est dailleurs un principe informatique bien connu dans le domaine de ltude approfondie des paquets rseau). Au commencement, il trouvait son systme de dtection anti intrusion plutt lger compar aux logiciels disponibles au march lpoque. Aujourdhui, ce modeste personnage commence seulement tmoigner de lenvergure des fonctionnalits proposes par Snort, et se met en parler comme lune des technologies anti intrusions les plus rpandues dans le monde. Depuis toutes ces annes, le projet Snort a beaucoup mri, et a volu vers un concept plutt riche, ce qui la ainsi fait devenir un outil standard pour la scurit systme et la dtection dintrusions. Des innovations rcentes dans les rgles de comportement, ainsi que dans les fonctions de perception, ont permis de rendre la dtection des processus plus flexible et plus pointue, ce qui fait dsormais de Snort un champion poids lourd de la scurit dans ce domaine. . . De ce fait, le projet Snort sappuie lourdement sur cette mthodologie, et il est prouv, que test aprs test, Snort est en conclusion largement la hauteur, compar aux autres technologies dans ce domaine sur le march. La puissance actuelle de Snort est principalement due la grande efficacit de la communaut dutilisateurs. Sans parler des dveloppeurs plein temps sur ce logiciel, il faut compter un bon millier de programmeurs expriments qui revoient et testent le code sans cesse, et mettent ainsi lpreuve un nombre impressionnant de fonctionnalits, de stratgies, et de jeux de rgles. Cependant, aujourdhui, il semble que le moteur de Snort ne soit plus libre, ce qui appelle donc un certain bouleversement dans loptique de dveloppement qui sen trouve alors grandement controverse. 2. Ressources humaines du projet : Lquipe de Snort est compose de 47 dveloppeurs rguliers (on peut trouver leurs noms ici, cf. http://www.snort.org/about snort/team.html) ainsi que dun nombre trs important de contributeurs occasionnels, pour la plupart, runis dans un des 21 groupes actifs dutilisateur gravitant autour du projet (cf. http ://www.snort.org /community/usergroups.html). Crateur et superviseur : Marty Roesch. Manager du produit Snort : Jennifer Steffens. Responsable de la section Snort Rules : Brian Caswell. Responsable Win32 : Chris Reid. Responsables RPM : JP Vossen, Daniel Wittenberg. Responsable du dveloppement de Snort : Marc Norton. Developpeurs principaux : Marc Norton, Andrew Mullican, Steve Sturges 3. Prsentation du Snort :

36

Snort est un systme de dtection d'intrusions rseau en ' Open Source ', capable d'effectuer l'analyse du trafic en temps rel. On l'utilise en gnral pour dtecter une varit d'attaques et de scans tels que des dbordements de tampons, des scans de ports furtifs, des attaques CGI, des scans SMB, des tentatives d'identification d'OS grce lanalyse des signatures et des rponses caractristiques (fingerprinting), et beaucoup dautres choses encore. Il peut fonctionner selon trois modes principaux : il peut tre utilis comme un simple sniffer de paquets, comme un logger de trafic rseaux (ce qui est fort utile pour dboguer un rseau par exemple puisque ce mode denregistrement des activits rpertorie toutes les interactions entre les machines dun mme rseau), ou comme un vritable systme complet de prvention contre les attaques et les intrusions de tout genre. C'est un trs puissant outil, il est connu comme un des meilleurs IDS sur le march, mme quand il est compar des IDS commerciaux. De nombreuses personnes dans la cette communaut trs active partagent leurs rgles de scurit, ce qui est trs utile si on n'est pas un expert de la scurit et si on veut des rgles jour. La compagnie SourceFire dlivre trs rgulirement de nouvelles rgles de scurit. Elles peuvent tre tlcharges, soit gratuitement mais malheureusement que quelques jours aprs leurs sorties, soit immdiatement pour des espces sonnantes et trbuchantes. 4. Architecture du Snort :

Architecture du snort Un noyau de base : (Packet Decoder) au dmarrage, ce noyau charge un ensemble de rgles, les compile, les optimise et les classe. Durant lexcution, le rle principal du noyau est la capture des paquets. Une srie de prprocesseurs: (Detection Engine) ces derniers amliorent les possibilits de SNORT en matire danalyse et de recomposition du trafic captur. Ils reoivent les paquets directement capturs et dcods, les retravaillent ventuellement puis les fournissent au moteur de recherche des signatures pour les comparer avec la base des signatures. Une srie de Detection plugins : Ces analyses se composent principalement de comparaison entre les diffrents champs des headers des protocoles (IP, ICMP, TCP et UDP) par rapport des valeurs prcises. Une srie de output plugins : permet de traiter cette intrusion de plusieurs manires : envoie vers un fichier log, envoie dun message dalerte vers un serveur syslog, stocker cette intrusion dans une base de donnes SQL. 5. Positionnement de SNORT dans le rseau Lemplacement physique de la sonde SNORT sur le rseau a un impact considrable sur son efficacit. Dans le cas dune architecture classique, compose dun Firewall et dune DMZ, trois positions sont gnralement envisageables :

37

a. Avant le Firewall ou le routeur filtrant :

Positionnement du snort avant le firewall Dans cette position, la sonde occupe une place de premier choix dans la dtection des attaques de sources extrieures visant lentreprise. SNORT pourra alors analyser le trafic qui sera ventuellement bloqu par le Firewall. Les deux inconvnients de cette position du NIDS sont: Primo, le risque engendr par un trafic trs important qui pourrait entraner une perte de fiabilit et secondo, tant situ hors du domaine de protection du firewall, le NIDS est alors expos d'ventuelles attaques pouvant le rendre inefficace. b. Sur la DMZ :

38

Positionnement du snort aprs le firewall

Dans cette position, la sonde peut dtecter tout le trafic filtr par le Firewall et qui a atteint la zone DMZ. Cette position de la sonde permet de surveiller les attaques diriges vers les diffrents serveurs de lentreprise accessible de lextrieur. c. Sur le rseau interne :

Positionnement du snort sur le rseau interne Le positionnement du NIDS cet endroit nous permet dobserver les tentatives dintrusion parvenues de lintrieur du rseau dentreprise ainsi que les tentatives dattaques partir de l'intrieur. Dans le cas dentreprises utilisant largement l'outil informatique pour la gestion de leur activits ou de rseaux fournissant un accs des personnes peu soucieuses de la scurit (rseaux dcoles et duniversits), cette position peut revtir un intrt primordial. 6. Les rgles de SNORT : Les rgles de SNORT sont composes de deux parties distinctes : le header et les options. Le header permet de spcifier le type dalerte gnrer (alert, log et pass) et dindiquer les champs de base ncessaires au filtrage : le protocole ainsi que les adresses IP et ports sources et destination. Les options, spcifies entre parenthses, permettent daffiner lanalyse, en dcomposant la signature en diffrentes valeurs observer parmi certains champs du header ou parmi les donnes.

Composition du rgles de snort Action de la rgle : alert, log, pass Protocole : tcp, udp, icmp Adresses source et destination : src, dest, any Port src / dest : any, nb port, plage de ports avec p1:pn 39

Oprateur de direction : > unidirectionnel, ou <> bidirectionnel Syntaxe des options : combinaison de rgles avec le sparateur ; sparation des mots clefs et des arguments avec : mots clefs : msg, logto, minfrag, ttl, id, dsize, content, offset, depth, flags, seq, ack, itype, idecode, nocase, session 7. Installation & configuration a. Installation du Snort: Donc pour initialiser SNORT sous UBUNTU on peut utiliser la commande aptget install pour tlcharger et installer les paquets ncessaires automatiquement. apache2 Pour le serveur web : #aptget install apache2 MySQLserver pour la base de donnes : #aptget install mysqlserver php5 pour le script orient serveur : #aptget install php5 php5MySQL pour la configuration du php avec mysql : #aptget install php5mysql php5gd pour la librairie graphique : #aptget install php5gd PEAR pours 'PHP Extension' et 'Application Repository' : #aptget install phppear Iptables est un parefeu sous linux : #aptget install iptablesdev Clamav Antivirus : #aptget install clamav snortmysql : #aptget install snortmysql outils de compilation : #aptget install buildessential Libnet est une interface de programmation gnrique rseau qui fournit unaccs plusieurs protocoles. #aptget install libnet1dev Libpcap Libcap est une librairie pour capturer des paquets rseaux: #aptget install libpcap0.8dev Pcre Pcre est une librairie de fonctions utilisant la mme syntaxe et smantique que Perl 5. #aptget install libpcre3dev mysqlclient Librairies de dveloppement MySQL et fichiers header: #aptget install libmysqlclient16-dev CHECKINSTALL Pour installer ou dsinstaller facilement les programmes depuis la source: #aptget install checkinstall Aprs le tlchargement du snort-2.9.0.5, on cre deux dossiers, un pour stocker les fichiers de configuration et l'autre pour stocker les rgles Snort. #mkdir /etc/snort #mkdir /etc/snort/rules

Ensuite on copie les fichiers de configuration de Snort dans le dossier /etc/snort/ : #cp snort-2.9.0.5/etc/* /etc/snort/ 40

Les deux fichiers de configuration dans notre dossier /etc/snort/rules: #cp snor snort-2.9.0.5/etc/classification.config /etc/snort/rules/ #cp snort/ etc/reference.config /etc/snort/rules/ -

classification.config: dfinit des URLs pour les rfrences trouves dans les rgles. reference.config: inclus de l'information pour la prioritisation des rgles.

On peut crer un utilisateur appel snort pour lancer Snort: #useradd snort d /var/log/snort -s /bin/false -c SNORT_IDS

Un dossier de log appartenant l'utilisateur snort: #mkdir /var/log/snort #chown -R snort /var/log/snort

Ensuite : #tar xzf snort2.8.3.1 (dcompression du paquet) #cd snort2.8.3.1 #./configure withmysql enableinline enableclamav enable --dynamicplugins

Configuration du snort avec la base de donne et activation des plugins tel que: --enableinline: pour activer la communication avec le parefeu (iptable) et rendre Snort un IPS (intrusion prevention system) qui ragit lors de la dtection d'une intrusion. --enableclamav: pour amliorer la base des signatures du snort par la configuration avec l'antivirus Clamav, dans ce cas, snort jouera le rle d'un IDS et un antivirus en mme temps. --enabledynamicplugins : pour rendre snort configurable avec les nouveaux plugins mme aprs installation. #make : (compilation du paquet) Erreur dans make :

41

#checkinstall (excution de linstallation) b. Configuration de la base de donnes MYSQL: Premirement, il faut crer la base de donnes MySQL et les tables pour recevoir les logs de Snort: #mysql -u root p >create database snort;

Comme il est dangereux d'accder la base de donnes avec l'utilisateur root, il est ncessaire de crer un utilisateur avec des permissions sur la base de donnes snort uniquement: #grant all on snort.* to snortuser@localhost identified by 'pwd'

Puis on recharge les privilges MySQL: #flush privileges >exit;

Maintenant, nous devons crer les tables dans la base de donnes snort: Par chance, les tables sont dj cres et nous devons juste les trouver et les installer dans la base de donnes: #mysql -u root p snort < schemas/create_mysql

c.

Configuration du snort pour SQL:

Nous devons dvier les logs de Snort dans la base de donnes: Il est juste ncessaire de configurer le login et mot de passe pour accder la base de donnes snort. Dans le fichier /etc/snort/snort.conf, nous devons ajouter ou modifier les lignes entre (#DBSTART#) et (#DBEND#): output database: log, mysql, user=snortuser password=pwd dbname=snort host=localhost

Toujours dans le mme fichier, il faut dcommenter les lignes suivantes: ruletype redalert { type alert output alert_syslog: LOG_AUTH LOG ALERT output database: log, mysql, user=snortuser password=pwd dbname=snort host=localhost }

Configuration de Snort est maintenant termine Pour lancer snort : #snort -u snort -c /etc/snort/snort.conf Cela veut dire que snort est dmarr avec l'utilisateur snort et va charger la configuration stocke dans le fichier /etc/snort/snort.conf. Pour des raisons de scurit, il est toujours conseill de dmarrer des programmes sans l'utilisateur root.

42

Pour lancer snort automatiquement au dmarrage du systme, on peut ajouter une ligne dans le fichier /etc/crontab. @reboot root snort u snort c /etc/snort/snort.conf >> /dev/null

43

RC5
RC5 est un algorithme de chiffrement par blocs avec de nombreux paramtres : taille des blocs, taille de la clef, et nombre de rondes. Ron Rivest en est linventeur et il a t analys par les laboratoires RSA. Il y a deux oprations : ou exclusif, addition et rotation. Les rotations prennent un temps constant sur la plupart des processeurs et les rotations variables sont des fonctions non linaires. Ces rotations qui dpendent la fois de la clef et des donnes constituent la partie intressante. La longueur des blocs est variable dans RC5, mais on se concentrera dans lexemple qui suit sur une taille de 64 bits. Le chiffrement ncessaire 2r 2 mots de 32 bits dpendants de la clef,

S0 , S1 , S2 ,...., S2 r 2 , o r est le nombre de rondes. Pour chiffrer, diviser dabord tout le bloc de texte
en clair en mots de 32 bits : A et B. Il faut alors procder ainsi :

A A S0
B B S1
Pour i variant de 1 r, effectuer :

A (( A B) B) S2i B (( B A) A) S2r 1
La sortie est constitue des registres A et B. Le dchiffrement est tout aussi facile. Partager le texte chiffr en deux mots A et B, et effectuer :

B (( B S2 r 1 ) A) A A (( A S2 r ) B) B B B S1 A A S0

44

Avec la fonction ROTL de chiffrement et la fonction ROTR de dchiffrement sont dfini respectivement :

ROTL( x, y) ((( x) ( y & ( w 1))) | ((x)>>(w-(y&(w-1))))) ROTR(x, y )=(((x)>>(y &(w-1))) | (( x) ( w ( y & ( w 1)))))

La cration du tableau de clef est plus complique mais directe aussi. Commencez par copier les bits de la clef dans un tableau L de c mots de 32 bits (en remplissant si ncessaire le dernier mot avec des zro). Initialisez alors le tableau en utilisant un gnrateur congruentiel modulo 232 :

S0 P Pour i variant de 1 2(r+1)-1, effectuer: Si 1 ( Si Q) mod ulo 232


P=0xB7E15163 et Q=0x9E3779B9 sont des constantes bases sur e. Pour finir, mlangez L et S :

45

i j0 A B0 Effectuer n fois (o n est le maximum de 2(r+1) et c): A Si ( Si A B ) 3 B Li ( Li A B ) ( A B ) i (i 1) modulo 2(r 1) j ( j 1) modulo c


RC5 est en fait une famille dalgorithme. Nous avons dfini RC5 avec des mots de 32 bits de long et des blocs de 64 bits de long : rien nempche lalgorithme de fonctionner avec des mots de 64 bits de long et des blocs de 128 bits de long. Rivest dsigne les ralisations particulires de RC5 par RC5 w / r / b o w est la taille des mots, r le nombre de rondes, et b la longueur de la clef en octets. Pour w =64, P et Q valent respectivement P 0 xB7 E151628 AED2 A6B ET Q 0 x9E3779B9F 4 A7C15 . RC5 est nouveau, mais les laboratoires RSA ont pass un temps considrable lanalyser avec une taille de bloc de 64 bits. Aprs 5 rondes, les statistiques paraissent trs bonnes. Aprs 8 rondes, chaque bit du texte en clair affecte au moins une rotation. Il existe une attaque diffrentielle avec 224 textes en clair choisis pour 5 rondes, 245 pour 10 rondes, et 268 pour 15 rondes. Il ny a bien sr que

264 textes en clair possibles. Aussi cette attaque ne marchera pas pour 15 rondes ou plus. Des
estimations en cryptanalyse linaire indiquent que lalgorithme est sr aprs 6 rondes. Rivest recommande au moins 12 rondes et 16 si possible. Ce nombre pourrait changer. Le code de RC5 :

46

Le rsultat de lexcution :

47

RC6
I. Le chiffrement par bloc
Le chiffrement par bloc (en anglais block cipher) est une des deux grandes catgories de chiffrements modernes en cryptographie symtrique, l'autre tant le chiffrement par flot. La principale diffrence vient du dcoupage des donnes en blocs de taille gnralement fixe. La taille de bloc est comprise entre 32 et 512 bits, dans le milieu des annes 1990 le standard tait de 64 bits mais depuis 2000 et le concours AES le standard est de 128 bits. Les blocs sont ensuite chiffrs les uns aprs les autres. Il est possible de transformer un chiffrement de bloc en un chiffrement par flot en utilisant un mode d'opration comme ECB (chaque bloc chiffr indpendamment des autres) ou CFB (on chane le chiffrement en effectuant un XOR entre les rsultats successifs). Une liste non-exhaustive de chiffrements par bloc :

DES, l'anctre conu dans les annes 70, a t passablement tudi AES, le remplaant de DES Blowfish, Serpent et Twofish, des alternatives AES

Il y en a encore bien d'autres qui sont adapts des besoins particuliers. Certains consomment plus de mmoire ou sont plus gourmands en puissance de calcul. Un chiffrement par bloc peut galement tre utilis comme une fonction de hachage, c'est--dire une fonction sens unique. Une variante de DES est employe pour le systme de mots de passe dans Unix. Une chane contenant uniquement des zros est chiffre avec une cl correspondant au mot de passe (une composante alatoire appele "sel" est encore intgre l'algorithme). Ce chiffrement est itratif et se fait 25 fois avant d'obtenir le rsultat final.

II.

Prsentation de lalgorithme RC6

Le RC6 a t cr en 1998. Il propose des amliorations au RC5 et, comme celui-ci, est fortement dpendant de la transformation de dcalage de bits (rotation). Comme le RC5, il a l'avantage d'avoir une longueur de bloc de donnes variable, un nombre de rounds variable et une cl de longueur variable. Toutefois, il utilise la multiplication, ce qui augmente la diffusion dans chacun des rounds, donc la scurit, et il a d se conformer des spcifications : oprer des blocs de 128 bits diviss en quatre dans le traitement et tre hautement scuritaire par rapport sa complexit. RC6 a t soumis au NIST pour devenir le nouveau standard de la cryptographie avance (Advanced Encryption Standard - AES).

III.

Principes de lalgorithme

48

RC6w/r/b dcrit une famille dalgorithmes de cryptage dont chaque membre est caractris par la largeur des mots traits (w bits), le nombre de rondes r et la taille de la clef (b octets). La version propose pour AES utilise par exemple les paramtres w = 32, r = 20 et b = 16, 24 ou 32.

Quatre oprations distinct.es interviennent lors du cryptage avec RC6w/r/b. La ralisation matrielle des deux premires, dj rencontres lors de notre tude de lalgorithme IDEA, noffre plus aucune difficult: Le OU exclusif bit bit de deux mots de w bits, not . Laddition entire modulo 2w de deux oprandes de w bits, note _. La rotation gauche, note . En tudiant lalgorithme, nous constatons toutefois que le nombre de positions des deux premires rotations est constant

Schma descriptif de lalgorithme de chiffrement RC6. 49

(lignes 4 et 5), alors que celui des deux suivantes varie en fonction des log2w bits de poids faibles des oprandes u et t (lignes 6 et 7). Il faut donc co. ncevoir deux oprateurs distincts. La rotation de log2w positions ne requiert videmment aucune ressource matrielle particulire. En effet, comme

il suffit de permuter les log2w bits de poids forts avec les bits restants lors de leur connexion loprateur . Si le nombre de positions est variable, la rotation seffectue laide dun barrel-shifter. La fonction f (X) = (X(2X +1)) mod 2w = (2X2+X) mod 2w. La conception dun oprateur calculant efficacement f (X) savre cruciale afin de restreindre le temps de cycle dune ronde de calcul. Le prochain paragraphe est consacr ltude de ce problme. Contrairement IDEA, larchitecture utilise pour le dcryptage (algorithme 4.8) diffre lgrement de celle intervenant lors du chiffrement des donnes. Nous constatons en particulier lapparition de la soustraction entire modulo 2w, note _, et de la rotation droite, dsigne par.

Le calcul des sous-clefs, dcrit par lalgorithme 4.9, ncessite deux constantes Pw et Qw. P32 = b7e15163 et Q32 = 9e3779b9 sont respectivement dfinies partir des reprsentations binaires de e2 et du nombre dor diminu de un. Ces valeurs arbitraires peuvent tre choisies par le concepteur dun systme proposant RC6. Il faut toutefois que lauteur dun message et le destinataire utilisent les mmes coefficients Pw et Qw.

50