-
Rarchitecture du pare-feu d'ALCASAR pour un
comportement dynamique
Rapport de stage technique du cycle ingnieur ESIEA
Auteur : Jean-Baptiste Couprit 4A Matre de stage : Franck
BouijouxTuteur ESIEA : Richard Rey
Soutenu le : 18 juillet 2014
Laboratoire de Cryptologie et Virologie Oprationnelles38, rue
des Docteurs Calmette et Gurin
Parc Universitaire53000 Laval
02 43 59 24 24
Priode du 07 avril au 07 aot 2014
-
RsumCe rapport traite de la refonte du pare-feu d'ALCASAR
(Application Libre pour le Contrle d'Accs
Scuris et Authentifi au Rseau). ALCASAR est un contrleur d'accs
au rseau permettant de protger lesconnexions de ses utilisateurs,
que ce soit partir d'un ordinateur, d'un tlphone portable, ou
encore d'unetablette. Par consquent, cet quipement doit tre plac
entre un routeur d'accs Internet (box) et sesutilisateurs. Ce
projet libre sous licence GPLv3 est bas sous la distribution
franaise Mageia et intgreplusieurs logiciels libres (Apache,
Netfilter, OpenSSL, Dnsmasq, etc). Ce logiciel permet de tracer,
imputeret authentifier ses utilisateurs, ce qui lui permet de
rpondre aux exigences franaises lgales etrglementaires.
Mon travail au sein de l'quipe a t de changer la philosophie du
pare-feu d'ALCASAR. Un pare-feu est un logiciel dont le but est de
faire respecter des politiques de scurit rseau, travers un
ensemblede rgles. De cette manire, les flux de donnes peuvent tre
contrls. Le pare-feu de l'actuelle versiond'ALCASAR (V2.8) dfinit
des rgles universelles et figes, ce qui implique que tous les
utilisateurs hritentdes mmes droits, pralablement fixs par
l'administrateur du systme. L'objectif de la refonte du
pare-feutait de mettre en place des rgles dynamiques, personnalises
chacun. Grce cette nouveaut, chaqueutilisateur aura des droits qui
lui seront propres, et qui seront grs indpendamment dans le
pare-feu. Decette manire, il sera dsormais possible de faire
cohabiter sur un mme systme, une structure d'entrepriseo le
directeur ne veut pas tre filtr, tout en ayant un groupe d'employs
avec un premier niveau de filtrageet un second groupe avec un
second niveau de filtrage, ainsi qu'une personne avec le plus grand
niveau derestrictions. chaque connexion d'un utilisateur ALCASAR,
le pare-feu s'adaptera automatiquement celui-ci afin de lui
attribuer les rgles qui lui sont propres.
Ce document rcapitule l'ensemble de mes travaux effectus au
cours de quatre mois de stage aulaboratoire CVO, de la prise en
main d'ALCASAR, la refonte du pare-feu, en passant par les
difficultsrencontres, et surtout, la manire dont elles ont t
surmontes.
2Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
AbstractThis report deals with the ALCASAR's (Application Libre
pour le Contrle d'Accs Scuris et
Authentifi au Rseau) firewall recasting. ALCASAR is a network
access controller which is able to protectits users' connections,
from a computer, a smartphone, or a tablet. Therefore, this device
must be placedbetween a router and its users. This open-source
project under GPLv3 licence is based on the frenchdistribution
Mageia and includes severals free softwares like Apache, Netfilter,
OpenSSL, Dnsmasq, etc. Itsfeatures are to impute, trace and
authenticate its users, allowing it to respect legal requirements
andregulations.
My work in the ALCASAR team, was to change the philosophy of the
firewall. A firewall is asoftware which aims to enforce network
security politics, through a set of rules. By this way, data
streamscan be handled. The firewall of the current ALCASAR version
(V2.8), defines fixed and universal rules,which involves that all
users inherit from same rights, beforehand, fixed by the system
administrator. For thenext version (V2.9) which will be released in
a couple of months, the purpose was to implement a dynamicfirewall,
that is to say, with the adding or not of rules according users.
With this innovation, each user willhave own rules, which will be
handled independently in the firewall. By this way, it will be
possible to have,on a same system, without changing any rights, for
example, a company structure in which the directordoesn't want to
be filtered, while having a group of employees with a low level
filtering, an other group ofemployees with a medium level of
filtering and a single person with an high filtering level. For
eachconnection to ALCASAR, the firewall will automatically fit, in
order to attribute rules to users.
This document summarizes all my work during my four month
internship, at the CVO laboratory,from the beginning, to the
recasting of the firewall, through the difficulties, and most
importantly, how theywere overcome.
3Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
Table des matirestablissement
d'accueil..................................................................................................................................7Prsentation
d'ALCASAR.............................................................................................................................7Architecture
de ce
document.........................................................................................................................9Problmatique..............................................................................................................................................10
Sujet........................................................................................................................................................10Pourquoi
un pare-feu dynamique
?.........................................................................................................10
1 - Ajout de
fonctionnalits..............................................................................................................................112
- Fusion des pages ticket rapide et ticket
usager...........................................................................................123
- Amliorations de la partie Filtrage
........................................................................................................14
Liste
noire....................................................................................................................................................14Liste
blanche................................................................................................................................................16
4 - Pare-feu
dynamique....................................................................................................................................175
- Mise jour de Mageia 2 vers Mageia
4......................................................................................................19
Basculement.................................................................................................................................................19Compilation
d'un
paquet..............................................................................................................................19Rsolution
d'un bogue
...........................................................................................................................19Annexe
1 : Architecture
d'ALCASAR.........................................................................................................22
4Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
Table des illustrationsIllustration 1: Logo
d'ALCASAR......................................................................................................................7Illustration
2: Exemple de rseau avec
ALCASAR...........................................................................................8Illustration
3: Interception
client........................................................................................................................8Illustration
4: Panel d'administration
d'ALCASAR...........................................................................................9Illustration
5:
Pare-feu......................................................................................................................................10Illustration
6: Aiguillage d'un
usager...............................................................................................................10Illustration
7: Description d'une
catgorie........................................................................................................11Illustration
8: Cration d'un
usager..................................................................................................................12Illustration
9: Ticket gnr par
ALCASAR....................................................................................................13Illustration
10: Catgories de la liste
noire.......................................................................................................14Illustration
11: Blocage par le
pare-feu............................................................................................................14Illustration
12: Rhabilitation et filtrage d'adresses
IP.....................................................................................15Illustration
13: Fichiers d'adresses
IP...............................................................................................................15Illustration
14: Catgories de la liste
blanche..................................................................................................16Illustration
15: Filtrage
usager.........................................................................................................................17
5Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
RemerciementsJe remercie toutes les personnes ayant particip de
prs ou de loin la russite de ce stage,
l'ensemble du personnel du laboratoire CVO qui a su m'accueillir
et m'intgrer l'quipe et toutparticulirement les personnes suivantes
:
Monsieur Richard Rey : pour m'avoir fait l'honneur d'tre mon
tuteur, pour m'avoir guid et pauldurant cette exprience pleine
d'intrts.
Monsieur Franck Bouijoux : qui m'a accompagn tout au long de ce
stage, bnficier de sonexprience a t trs enrichissant et instructif.
Je le remercie pour tout le temps qu'il m'a consacr ainsi quepour
les responsabilits qu'il m'a confies, ce qui m'a permis de beaucoup
apprendre.
6Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
Introduction
tablissement d'accueilEn tant qu'lve ingnieur en quatrime anne
l'ESIEA, j'ai pour but de mettre en pratique
l'ensemble de mes connaissances travers un stage technique en
entreprise. L'objectif d'un tel stage est nonseulement d'acqurir de
l'exprience sur le monde du travail qui m'attend dans quelques
mois, mais aussid'approfondir mes comptences travers un projet
extrascolaire.
L'entreprise m'ayant accueillie est le Laboratoire de
Cryptologie et Virologie Oprationnelles (CVO),dirig par monsieur
ric Filiol, appartenant l'cole Suprieure d'Informatique,
lectronique etAutomatique, situe Laval (53). Ce laboratoire et l'un
des quatre que compte l'ESIEA. Parmi ceux-ci noustrouvons :
Un laboratoire en Ralit Virtuelle et Systmes Embarqus (RVSE)
Un laboratoire d'Art et de Recherche NUMrique (ARNUM)
Un laboratoire d'Acquisition et Traitement des Images et du
Signal (ATIS)
Le laboratoire CVO est implant l'ESIEA de Laval depuis 2007. Au
dpart, il s'agissait d'unlaboratoire travaillant en collaboration
avec le Laboratoire de Virologie et de Cryptologie de
l'coleSuprieure et d'Application des Transmissions (ESAT) de
Rennes, jusqu' accueillir dfinitivement lesressources de l'ESAT en
2008. Sous tutelle du Ministre de la Dfense, ce laboratoire est
habilit menerdes recherches dites classifies de dfense et est
rattach l'cole doctorale de l'cole Polytechnique dePalaiseau.
l'heure actuelle, cette structure comprend quatre
enseignants-chercheurs temps complet, deuxingnieurs de recherche
ainsi que six doctorants. Les thmes des recherches abords sont les
suivants :
Cryptologie symtrique, cryptologie asymtrique, cryptanalyse et
cryptographie
Systmes stganographiques
Virologie informatique
Guerre informatique
Scurit des environnements embarqus
Algorithmie et implmentation scurise
Prsentation d'ALCASARALCASAR (Application Libre pour le Contrle
d'Accs Scuris et Authentifi au Rseau) est un
contrleur d'accs au rseau libre, sous licence GPLv3, exploitant
Mageia. Il a t cr par Rexy et 3abtux etest toujours en
dveloppement. Sa version actuelle est la V2.8. Il s'agit d'un
portail permettant de scuriserl'accs un rseau, en authentifiant,
traant et imputant les connexions des utilisateurs, quelque soit
lessupports utiliss (ordinateurs, tablettes ou encore tlphones
portables). L'authentification est ralise lasuite de l'interception
d'une station du rseau qui est effectue par un identifiant et un
mot de passe.L'administrateur du systme cre les comptes usagers, ou
les groupes d'usagers, avec la possibilit d'allouer
7Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 1: Logo d'ALCASAR
-
chacun un grand nombre d'attributs tels que leur priode de
connexion, la date d'expiration du compte, lataille maximale de
transfert de donnes, et bien d'autres. Si une personne ne possde
pas d'identifiants, ellesera bloque.
L'imputabilit et la traabilit sont raliss grce un systme de
journalisation par fichiers, ce quipermet d'avoir une trace de
chaque activit utilisateurs (tlchargements, consultation de
courrierslectroniques, navigation, etc.). De plus, ALCASAR garantit
le respect de la vie prive de chaque utilisateuren chiffrant les
flux lis l'authentification et l'impossibilit de modifier les
fichiers de traces desconnexions. De ce fait, il y a non-rpudiation
des traces. Tout ceci permet par consquent de rpondre auxexigences
des politiques d'accs.
La scurit, quant elle, est ralise grce un pare-feu coupl un
antivirus afin de protger chaqueutilisateur des menaces extrieures
d'une part, ainsi que de modules spcifiques afin de protger
chaqueutilisateur de tentatives de piratage interne d'autre
part.
ALCASAR fonctionne sur un ordinateur ddi plac entre le routeur
d'accs Internet (box) et unrseau de consultation. Il est totalement
indpendant des technologies utilises.
ALCASAR est destin aux grandes structures telles que les htels,
les coles, les aroports, etc. Il estaussi utilis comme outils
d'apprentissage pour les filires de la scurit rseau.
Du point de vue du client, ALCASAR intercepte les
utilisateurslors de la demande d'une page web suite au lancement
d'unnavigateur, et demande des identifiants pour pouvoir
bnficierd'un accs Internet.
Nous pouvons trouver sur cette page les principalesinformations
de l'entreprise et du portail. L'usager, s'il lesouhaite, a la
possibilit de changer son mot de passe. Tantqu'une personne n'est
pas authentifie, l'accs Internet esttotalement bloqu. Une fois
authentifi, un utilisateur seretrouve dirig sur la page qu'il
demandait lors de soninterception. Ds lors, une session scurise lui
est attribue, etsa vie prive respecte. En fonction de son niveau de
filtrage,
8Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 2: Exemple de rseau avec ALCASAR
Illustration 3: Interception client
-
dtermin par un administrateur, un usager aura ou n'aura pas le
droit de naviguer sur certains sites.
Du point de vue de l'administrateur, ALCASAR offre un centre de
gestion complet permettant devisualiser l'tat du rseau et des
services lancs, de grer les utilisateurs en leur allouant par
exemple unedure de connexion maximale, une limitation de la bande
passante, une date d'expiration de compte, etc. Unsystme de liste
noire / liste blanche est intgr afin de filtrer la navigation des
usagers en slectionnant descatgories de sites par exemple le
shopping, chat, audio-vido, etc. Un systme de visualisation
destatistiques d'exploitation du rseau est aussi intgr, permettant
de voir en temps rel le taux de donnestransfr. Cette interface
offre galement la possibilit de rcuprer les archives des fichiers
journaux,pouvant tre utilises dans la cadre d'enqutes judiciaires.
Cette interface est accessible distance, au moyend'un tunnel scuris
et chiffr (SSH).
Architecture de ce documentCe document dcrit tout d'abord la
problmatique lie ma priode de stage, en dtaillant l'utilit
d'un pare-feu dynamique dans le projet ALCASAR. Il se poursuit
par l'amlioration de certains points del'interface
d'administration, comme l'amlioration de la gestion de la liste
noire, ou la simplification du menud'administration. Dans la partie
suivante, nous dtaillerons l'amlioration du filtrage par liste
noire grce l'ajout du filtrage par adresse IP. Cette prcdente tape
nous permet d'arriver au coeur de mon stage : lamodification du
pare-feu. Cette partie rcapitule les tapes de mes tudes et
recherches sur le pare-feu envue de l'amlioration de son
comportement. Enfin, j'voquerai la bascule du support de Mageia 2
versMageia 4.
9Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 4: Panel d'administration d'ALCASAR
-
Problmatique
SujetAfin de dbuter mon stage dans les meilleures conditions
possible, j'ai tudi l'installation et le
fonctionnement d'ALCASAR avant le dbut de celui-ci afin de me
familiariser avec ses principalesfonctionnalits et son
architecture. ALCASAR tant beaucoup plus qu'un simple contrleur
d'accs, ilintgre un grand nombre de fonctionnalits
(authentification, filtrage, traage, etc.), et l'tudier dans
saglobalit demande beaucoup de temps. la suite de cette tude, ayant
eu la chance de choisir mon sujet destage, je me suis dirig vers la
partie de filtrage des usagers ralise par le pare-feu Netfilter. Le
but tant derendre un pare-feu non plus statique, mais dynamique,
c'est dire s'adaptant chaque utilisateur, d'o lesujet suivant :
Rorganisation des flux du pare-feu d'ALCASAR.
Un pare-feu, pouvant tre matriel ou logiciel, permet de faire
respecter des politiques de scuritrseau, travers un ensemble de
rgles. De cette manire, les flux de donnes entre Internet et un
rseau deconsultation peuvent tre contrls.
La mise en place d'un pare-feu joue un rle crucial pour la
scurit d'un rseau local. En effet, unpare-feu permet d'interdire
les connexions dfinies comme illgitimes en provenance d'Internet,
tout enlaissant circuler librement les autres connexions. Pour
cela, un pare-feu analyse les adresses IP, lesprotocoles, les ports
source et de destination, et, suivant la politique qui lui aura t
dicte, autorisera,ignorera ou rejettera les paquets qui transitent.
Un pare-feu n'offre cependant pas une scurit absolue. Eneffet,
plusieurs autres lments sont ncessaire pour couvrir l'ensemble du
domaine (antivirus, serveurmandataire, dtecteurs d'intrusion, bon
comportement des utilisateurs, etc.). ALCASAR tant un projet
libreet gratuit, il se devait d'intgrer un pare-feu libre, et
surtout rput. C'est la raison pour laquelle Netfilter at
choisi.
Pourquoi un pare-feu dynamique ?Le pare-feu de l'actuelle
version d'ALCASAR (V2.8) tant statique, cela
signifie que ses rgles s'appliquent pour l'ensemble des
utilisateurs du rseau deconsultation. La future version d'ALCASAR
V2.9 ayant pour but d'attribuer desniveaux de filtrage diffrents
par utilisateur, cette approche a donc d trerepense afin
d'attribuer des rgles diffrentes en fonction des usagers.
Celasignifie qu'un utilisateur ne sera plus dirig vers un unique
chemin, mais seraaiguill lors de sa connexion en fonction de son
niveau de filtrage.
10Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 6: Aiguillage d'un usager
Illustration 5: Pare-feu
-
1 Ajout de fonctionnalitsLes premires tches qui m'ont t confies
avaient pour but de me faire dcouvrir le fonctionnement
d'ALCASAR pour pouvoir descendre plus en profondeur par la suite
: la partie pare-feu, se situant au coeurdu systme. J'ai donc eu
pour mission d'amliorer certains points de l'interface
d'administration, et plusparticulirement le filtrage des sites web
(liste noire). ALCASAR dispose d'un systme de filtrage de sitesweb
qui s'appui sur la liste noire de Toulouse
(http://dsi.ut-capitole.fr/blacklists/), nous offrant
diffrentescatgories interdire allant des sites de jeux aux sites
pdophiles. Dans la version 2.8 d'ALCASAR, ladescription des
catgories tait crite la main par un membre de l'quipe d'ALCASAR.
Cela peut poserproblme, car cette liste est en constante volution
et par consquent, des catgories peuvent tre ajoutes ouenleves, ce
qui gnre des erreurs. Mon rle a donc t d'automatiser cette tche. La
liste noire intgre unedescription des catgories, j'ai donc bascul
le systme afin qu'il s'appuie pour chaque catgorie, sur
ladescription fournie. Ainsi, lors du tlchargement, la liste est
traite afin d'tre diffrents endroits et c'est ce moment que le
script rcupre les descriptions et les affecte aux catgories.
Ensuite, lorsque l'on cliquesur une catgorie dans le panel
d'administration, la page PHP va chercher l'information et
l'affiche.
ce moment prcis, nous ne disposions qued'une description et
l'administrateur ne pouvaitpas savoir ce qui se trouvait rellement
dans lescatgories (tant composes de noms de domaine,d'URL et
d'adresses IP). Dans la continuit decette dmarche, j'ai implment un
codepermettant d'afficher le nombre de noms dedomaine, d'URL et
d'adresses IP que contientchaque catgorie et c'est ce moment que
j'airencontr ma premire difficult. Certainescatgories contiennent
plus d'un million de nomsde domaine, d'URL ou d'adresses IP et
calculerleur nombre prenait environ neuf secondes enPHP sur disque
dur, ce temps d'attente tantbeaucoup trop long pour
l'administrateur, j'aidcid de faire appel un code plus rapide,
leBASH, qui lui offre des fonctions en langage C
optimis. Aprs la mise en place de celui-ci, nous sommes passs de
neuf secondes une seconde pour lestrs grosses catgories, ce qui est
plus acceptable. Enfin, dans le but de permettre l'administrateur
devisualiser ce que contiennent rellement les catgories, des liens
sur les nombres de noms de domaine,d'URL et d'adresses IP ont t
crs. Lors d'un clic sur ces liens, les premires lignes de chaque
fichier sontaffiches, ce qui donne un aperu de ce que contient une
catgorie. ce point, si un utilisateur cliquait parexemple, sur le
nombre d'adresses IP, puis sur le nombre d'URL, le calcul de ces
nombres tait refait chaque fois, ce qui n'tait pas une solution
adapte. J'ai donc choisi de faire les calculs une seule fois
lorsd'un clic sur les catgories et de passer les nombres obtenus en
paramtres lors de l'appel de la page web(mthode GET). De cette
faon, le temps d'attente n'intervient qu'une seule fois.
Cette premire partie s'est acheve avec la mise en place du
nombre total d'adresses IP, d'URL et denoms de domaines que compte
la liste noire dans le panel d'administration, afin de donner un
aperu de cequ'elle contient, globalement.
11Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 7: Description d'une catgorie
-
2 Fusion des pages ticket rapide et ticket usagerMa mission
s'est poursuivie par la simplification de l'interface
d'administration en fusionnant la page
de cration d'un usager et celle de cration d'un ticket rapide,
car celles-ci convergent vers le mme but. Decette faon,
l'administration du systme est simplifie. La page de cration d'un
ticket rapide offre lapossibilit de crer un usager avec des
attributs gnraux tels que l'e-mail, la date d'expiration du compte,
lenombre de connexions simultanes, etc., contrairement la page de
cration d'un usager qui elle, offre uneplus large gamme
d'attributs. Parmi ceux-ci, nous pouvons trouver le temps maximal
d'une connexion, lenombre maximal de donnes transfres ou encore la
limitation de la bande passante. Le but a t de crerune unique page
(cration d'un usager), pouvant s'tendre si l'administrateur le
souhaite. La page de crationd'un ticket rapide a t employe, sur
laquelle j'ai rajout un bouton permettant d'tendre le choix
desattributs, ce qui permet de rendre l'utilisation de l'interface
plus intuitive.
C'est aussi grce cette page qu'ALCASAR offre la possibilit aux
usagers de s'authentifierautomatiquement lorsque leur adresse MAC
est reconnue, en renseignant leur adresse MAC la place dunom
d'utilisateur et le mot password pour le mot de passe, lors de la
cration de leur compte. Dans laversion 2.8 d'ALCASAR,
l'administrateur, pour la cration d'un tel compte, doit entrer une
adresse MACuniquement de la forme 08-00-27-F3-DF-68, ce qui peut
poser problme si l'administrateur se trompe. C'estla raison pour
laquelle j'ai mis en place un systme d'expressions rgulires afin
que l'administrateur puisseentrer une adresse MAC du type
08-00-27-f3-df-68, 08:00:27:F3:DF:68 ou encore 08:00:27:f3:dF:68.
Unefois l'adresse MAC reconnue, celle-ci est transforme en un
format unique compatible avec les champs de labase de donnes. Ce
mcanisme permet de limiter le risque d'erreurs de la part de
l'administrateur.
Une fois un compte cr, un ticket est gnr par ALCASAR,
rcapitulant les informations d'uncompte, pour tre donn
l'utilisateur.
12Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 8: Cration d'un usager
-
Dans la version 2.8, lorsqu'un administrateur veut crer un
compte avec une adresse MAC, un ticketest gnr, ce qui peut s'avrer
inutile, parce qu'un utilisateur n'a besoin d'aucune information
(mot de passe,identifiant) pour se connecter, son adresse MAC tant
reconnue, il se fait automatiquement connecter. J'aidonc supprim
l'appel la gnration automatique d'un ticket lors de la cration d'un
tel compte.
13Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 9: Ticket gnr par ALCASAR
-
3 Amliorations de la partie Filtrage
Liste noireMa mission s'est ensuite poursuivie en descendant un
peu plus en profondeur dans le systme. Pour
la partie filtrage des usagers, ALCASAR s'appuie sur la liste
noire de Toulouse (http://dsi.ut-capitole.fr/blacklists/). Il
s'agit d'une archive diffuse par l'Universit de Toulouse 1,
permettant un meilleurcontrle de l'utilisation d'Internet. En
effet, cette archive contient d'une part une liste noire
composed'adresses IP, d'URL et de noms de domaine frauduleux,
pornographiques, dangereux, etc., regroups encatgories (Radio,
Adult, Bank, etc), et d'autre part, une liste blanche regroupant
des sites jugs fiables etinoffensifs. Cette archive est activement
maintenue non seulement, par des dizaines de contributeurs,
maisaussi par des robots explorant Internet.
Dans son menu d'administration, ALCASAR propose un filtrage des
usagers bas sur la liste noire.Avec ce filtrage, un administrateur
a la possibilit de mettre jour la liste noire, et de slectionner la
ou lescatgories qu'il souhaite interdire pour son rseau de
consultation.
S'il le souhaite, l'administrateur peut rhabiliter ou filtrer
des noms de domaine prcis, ou encore desURL. Dans la version 2.8,
le filtrage par adresse IP n'est pas prsent. Mon travail a donc t
d'intgrer ausystme un filtrage par adresse IP venant complter celui
des URL et des noms de domaine, jusqu'maintenant non utilis du fait
d'un temps d'attente trop important au niveau de l'ajout de ces
adresses dans lepare-feu, mais dsormais surmontable au moyen de
l'intgration de SET par le noyau Linux. Un SET peuttre assimil une
sorte de tableau dans lequel nous pouvons ajouter ce que l'on dsire
dans le but de letraiter au niveau du pare-feu, ce qui vite de crer
des centaines de rgles (coteux en temps).
Ma premire approche a consist faire une boucle alimentant un SET
dans le pare-feu nommBlacklist_ip_blocked avec les adresses IP des
catgories slectionnes par l'administrateur, puis d'ajouterdes rgles
bloquant ces adresses IP. La taille du SET correspondant au nombre
d'adresses IP des catgoriesslectionnes. Les limites de cette
approche sont vite apparues. En effet, cette mthode
fonctionneparfaitement sur un petit nombre d'adresses IP, mais
lorsqu'une catgorie d'un million d'adresses IP estajoute, le temps
d'attente devient alors inacceptable. Pour rsoudre ce problme, aprs
des recherches plusapprofondies, j'ai remarqu que les SET, grs avec
la commande BASH ipset pouvaient tre sauvegardsdans des fichiers
textes, afin de repeupler un SET dans le futur. J'ai donc dcid de
tester cette mthode afin
de comparer le temps d'attente avec le prcdent. Les tests sesont
avrs fructueux, puisque la remise en mmoire d'un SETde plus d'un
million d'entres, grce un fichier de sauvegarde,prend quelques
secondes contre quelques minutes pour lapremire mthode. Suite cette
tude, afin d'optimiser le code,j'ai donc pris l'initiative, avec
l'accord de mon matre de stage,de crer un fichier de sauvegarde par
catgorie, respectant leformat attendu par la commande ipset, la
suite dutlchargement de la liste noire. Cette mthode me
permettantdonc de directement, et rapidement, peupler le
SETBlacklist_ip_blocked avec les fichiers de sauvegarde dechaque
catgorie slectionne. Par la suite, si un utilisateur
connect souhaite aller sur une des adresses IP appartenant ce
SET, il est bloqu par le pare-feu, dans le cas
14Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 10: Catgories de la liste noire
Illustration 11: Blocage par le pare-feu
-
inverse, il navigue librement.
Une fois cette solution intgre, il fallait offrir la possibilit
l'administrateur, de pouvoir rhabiliterou filtrer les adresses IP
qu'il souhaite, sans pour autant dsactiver ou activer une catgorie
complte. Deplus, la rhabilitation et le filtrage des URL tant
inappropris (le plus souvent, un site complet est interditd'accs ou
autoris), ils ont donc t supprims afin de mettre en place le systme
d'adresse IP.L'administrateur peut alors, librement ajout ou
rhabiliter, des adresses IP. Au niveau du pare-feu, le
filtragepersonnel d'adresses IP se traduit par l'ajout de ces
adresses dans le SET Blacklist_ip_blocked. Si desadresses doivent
tre rhabilites, elles sont supprimes du SET. La taille du SET est
gale au nombred'adresses IP des fichiers de sauvegarde slectionns
par l'administrateur, plus les adresses IP filtres, moinsles
adresses IP rhabilites.
De plus, afin de satisfaire une demande des utilisateurs
d'ALCASAR, j'ai mis au point un systmed'ajout de fichiers
d'adresses IP destins tre filtrs. Si un administrateur veut ajouter
sa liste noired'adresses IP bloquer, il pourra dsormais le faire
dans la version V2.9 d'ALCASAR.
Une fois envoys ALCASAR, ces fichiers d'adresses IP ne sont pas
simplement ajouts au SETBlacklist_ip_blocked. Ils sont d'abord
reconstruits afin d'viter les erreurs au niveau du pare-feu.
C'est--dire que chaque fichier est parcouru dans son intgralit afin
d'en extraire uniquement les adresses IP (viades expressions
rgulires). De cette faon, mme si le fichier contient du texte comme
des commentaires, ilne sera pas pris en compte. Ensuite, le fichier
est modifi afin de ne mettre qu'une seule adresse IP par ligneet
les doublons sont limins. Une fois cette procdure termine, la
syntaxe des fichiers de sauvegarde pourles SET est mise en place,
afin que l'ajout des adresses IP dans le SET Blacklist_ip_blocked
soit le plusrapide possible. Bien entendu, la taille du SET est
recalcule en fonction de ces fichiers ( la taille du SET estgale au
nombre d'adresses IP des fichiers de sauvegarde slectionns par
l'administrateur, plus les adressesIP filtres, moins les adresses
IP rhabilites, plus le nombre d'adresses IP que contient chaque
fichier ajoutpar l'administrateur). Si le fichier d'adresses IP
ajout par l'administrateur contient des adresses IP djprsentes dans
la liste noire de Toulouse, celles-ci sont ignores. Ce problme
permet d'tre rsolu avec leparamtre -! passer la commande ipset
.
15Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 12: Rhabilitation et filtrage d'adresses IP
Illustration 13: Fichiers d'adresses IP
-
Liste blancheLe systme de liste blanche n'tant pas prsent dans
la version V2.8 d'ALCASAR, j'ai eu pour tche
de la rendre oprationnelle pour la future version. Contrairement
une liste noire qui filtre certains sites, uneliste blanche
n'autorise que certains sites et bloque les autres. Concernant les
noms de domaine, il a fallumettre en place un nouveau serveur lger
DNS : Dnsmasq, n'autorisant que les noms de domaine descatgories
slectionnes par l'administrateur, et bloquant les autres. Ce
problme tant rsolu, un deuxime afait son apparition : une personne
connaissant l'avance une adresse IP peut joindre le site sans tre
filtre.Dans le but de rsoudre ce problme, j'ai dans un premier
temps contact monsieur Fabrice Prigent de laliste noire de Toulouse
afin qu'il fournisse les adresses IP des noms de domaine dans
l'archive de la listenoire. La rponse s'est avre ngative, car un
site peut en cacher d'autres, et par consquent leurs accspourraient
tre bloqus par le premier. Dans un second temps, j'ai dcid de
rcuprer les adresses IP de tousles noms de domaine, avec des
rsolutions DNS, afin de faire le lien au niveau du pare-feu entre
les noms dedomaine et les adresses IP (si l'adresse IP d'un site
n'est pas rpertorie, son accs est bloqu). Pour ce faire,lors du
tlchargement de la liste noire, je faisais une rsolution DNS par
nom de domaine. En les lananttoutes en parallle, un temps d'attente
d'environ deux minutes tait ncessaire. Cette seconde
solutionfonctionnait, jusqu' ce que Google (utilis comme serveur
DNS) assimile ce procd une attaque DOS(dni de service) et par
consquent bloque l'accs ses services. Enfin, en effectuant plus de
recherches, unesolution a merg. Il se trouve que Dnsmasq (logiciel
utilis dans ALCASAR) possde une optionpermettant de peupler un SET
du pare-feu, avec les adresses IP qu'il a rsolues. Grce ce procd,
soit unsite est libre d'accs et nous avons son adresse IP, soit il
est interdit par Dnsmasq qui ne renseigne pas sonadresse IP.
La solution a t la suivante : j'ai cr un SET
whitelist_ip_allowed accueillant les adresses IPproposes par
Dnsmasq. Ensuite, j'ai ajout une rgle dans le pare-feu permettant
de bloquer l'accs un sitesi son adresse IP ne figure pas dans le
SET. De ce fait, soit un utilisateur demande un site autoris,
Dnsmasqle laisse pass et l'adresse IP est ajoute au SET
whitelist_ip_allowed, soit il entre directement une adresseIP dans
la barre de recherche de son navigateur, si celle-ci est prsente
dans le SET, il accde au site, sinonil se trouve bloqu. Concernant
la taille allouer ce SET, je me suis bas sur une moyenne globale
desadresses IP des sites de la liste blanche : sur l'ensemble des
sites, certains ont une seule adresse IP, d'autresen ont deux ou
trois, et des sites comme Google peuvent avoir jusqu' six adresses
IP. Aprs cette tude j'aidonc choisi de prendre la moyenne (6+2+1 /
3 = 3), ce qui donne trois fois plus d'espace pour stocker
lesadresses IP, qu'il y a de noms de domaine, en sachant que les
utilisateurs n'iront jamais sur tous les sites de laliste blanche.
Dans le cas, o les usagers consulteraient tous les sites et que la
taille du SET viendrait neplus suffire (ce qui semble impossible),
la liste blanche fonctionnera encore, car si un SET est
plein,Dnsmasq n'ajoute plus d'adresse IP, et donc permet le
maintien du filtrage.
Enfin, la liste blanche intgre galement un systme d'adresse IP
et de noms de domaine autoriss, aucas o l'administrateur voudrait
autoriser certains sites bloqus.
16Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 14: Catgories de la liste blanche
-
4 Pare-feu dynamiqueMon travail s'est poursuivi en descendant au
coeur du systme, le but tant non plus d'avoir un pare-
feu global, mais d'avoir un pare-feu dynamique, c'est dire
s'adaptant chaque utilisateur en fonction de sonniveau de filtrage.
Pour cela, la premire tape a t de dfinir les niveaux de filtrage
des utilisateurs. Afinde satisfaire un maximum de clients d'ALCASAR
et de rpartir au mieux les filtres, quatre grands niveauxde
filtrages ont t retenus :
1. pas de filtrage
2. filtrage par antivirus
3. filtrage par antivirus + liste noire
4. filtrage par antivirus + liste blanche
J'ai ensuite intgr ces diffrents niveaux de filtrage au systme
de cration de comptes afin quel'administrateur ait la possibilit
d'attribuer chaque utilisateur, un niveau de filtrage.
En base de donnes, ce paramtre est cod de la manire suivante
:
1. aucun paramtre : pas de filtrage
2. 00000001 : l'utilisateur est filtr uniquement par
l'antivirus
3. 00000011 : l'utilisateur est filtr par l'antivirus et la
liste noire
4. 00000101 : l'utilisateur est filtr par l'antivirus et la
liste blanche
Le premier bit correspond l'antivirus, le second la liste noire
et le troisime la liste blanche. Decette faon, ce paramtre pourra
facilement s'adapter d'autres niveaux de filtrage, si l'quipe
d'ALCASARdcide d'en mettre d'autres un jour. L'ajout d'aucun
paramtre en base de donnes si l'utilisateur n'a pas defiltrage est
trs important, car c'est grce cela que s'il fait partie d'un
groupe, les attributs du groupeprendront le dessus sur ceux de
l'utilisateur. En revanche, si un niveau de filtrage diffrent a t
attribu l'utilisateur et que celui-ci fait partie d'un groupe, ce
seront les attributs utilisateur qui seront prioritaires.
Au niveau du pare-feu, ces niveaux de filtrages se sont traduits
par quatre SET :
1. no_filtering_set pour les usagers sans filtrage
2. havp_set pour les usagers filtrs avec l'antivirus
(HAVP+LibClamav)
3. havp_bl_set pour les usagers filtrs avec l'antivirus et par
la liste noire
4. havp_wl_set pour les usagers filtrs avec l'antivirus et la
liste blanche
Aucune taille n'a t renseigne pour ces SET car de base, un SET
peut contenir 65536 entres, cequi est jug comme plus que
satisfaisant en vue du nombre potentiel d'utilisateurs d'ALCASAR
connectssimultanment.
Lorsqu'un utilisateur se connecte, la passerelle d'interception
Coova-Chilli gnre un Hook(dclenche un vnement) nous permettant de
rcuprer en direct les attributs propres l'utilisateur. Grce cette
fonctionnalit, en fonction de l'tat de la variable correspondant au
filtrage, on ajoute l'adresse IP del'utilisateur dans le SET
correspondant. De cette faon, les utilisateurs se trouvent aiguills
vers leur niveau
17Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
Illustration 15: Filtrage usager
-
de filtrage. Ensuite, dans le pare-feu, je dirige les SET dans
le chemin qui leur est destin (voir le schma del'architecture
d'ALCASAR en annexe), en ayant pris soin de camoufler les ports
utiliss afin d'viter lesscans de port, et de filtrer les SET
havp_bl_set et havp_wl_set.
Concernant le filtrage par l'antivirus, deux instances de
l'antivirus doivent tre prsentes. Unantivirus tant en mode
non-transparent afin d'accueillir les paquets provenant de
Dansguardian (servant aufiltrage des URL) dans le cas du filtrage
par la liste noire et un en mode transparent afin d'y
envoyerdirectement les paquets dans le cas du filtrage par
l'antivirus uniquement (via le SET havp_set). J'ai doncintgr ce
procd au systme.
Aussi, afin de rendre le systme de filtrage par noms de domaine
oprationnel, deux nouvellesinstances de Dnsmasq ont t mises en
place. Une nomme Dnsmasq-blacklist , afin de rediriger
lesutilisateurs vers une page de blocage s'ils tentent d'accder un
site bloqu. Une seconde nomme Dnsmasq-whitelist , afin d'interdire
tous les noms de domaine sauf ceux autoriss par la liste
blanche.
18Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
5 Mise jour de Mageia 2 vers Mageia 4
BasculementLa future version d'ALCASAR V2.9, devant sortir sous
Mageia 4, j'ai donc d adapter mon travail
cette nouvelle distribution afin que tout reste fonctionnel. Les
scripts d'installation et de dsinstallation ontt modifis afin
qu'ALCASAR intgre mes modifications lors de son installation, et
les supprime lors de sadsinstallation. De plus, Mageia 4 exploitant
le nouveau lanceur SystemD , diffrents paquets ont d tremodifis et
recompils afin qu'ils puissent s'adapter (Proxy antivirus : HAVP,
Dnsmasq). Enfin, j'aireffectu tous les tests afin d'tre compltement
sr que tout fonctionne convenablement sous ce nouveausystme.
Compilation d'un paquetALCASAR V2.9 fonctionnant sous Mageia 4,
se servait encore du logiciel HAVP (Proxy antivirus)
packag pour Mageia 2. Dsirant acqurir un maximum d'exprience
durant ces quatre mois de stage, j'aivoulu le packager pour Mageia
4. J'ai donc effectu des recherches sur la compilation de paquets,
et bienentendu modifi le code de HAVP pour qu'il s'adapte
l'architecture de Mageia 4. Une fois ce paquettermin, et
s'installant correctement, j'ai eu pour objectif de le proposer
Mageia. Mageia fonctionne avecun systme de Mentoring pour les
nouveaux contributeurs. Dans le but de devenir contributeur, j'ai
priscontact avec l'quipe de dveloppement sur le forum IRC de Mageia
et j'ai demand la procdure suivre.Un site m'a alors t indiqu, sur
lequel je me suis inscrit en indiquant mes connaissances, afin
qu'un Mentorm'accepte. Je suis l'heure actuelle en attente d'une
rponse.
Rsolution d'un bogue Suite la mise jour du logiciel antivirus
LibClamAV (0.98.4), HAVP ne pouvait plus fonctionner,
indiquant que la base de donnes ne pouvait tre charge cause d'un
problme d'allocation de mmoire.Aprs quelques recherches, il s'est
trouv que Clamav avait intgr OpenSSL et que certaines
fonctionsd'initialisation devaient tre appeles par HAVP. J'ai donc
intgr les fonctions intcl_initialize_crypto(void) et void
cl_cleanup_crypto(void) au fichier d'en-tte
correspondant(/usr/include/clamav.h), puis modifi le code source
d'HAVP afin qu'il prenne en compte l'appel cesfonctions. Aprs
recompilation, tout fonctionnait parfaitement. J'ai donc propos un
patch l'quipe deHAVP qui m'a rpondu que ma solution tait correcte,
mais qu'ils attendent un retour de l'quipe de Clamavpour le
moment.
19Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
ConclusionAu cours de cette exprience de quatre mois, j'ai eu la
chance de participer au dveloppement d'un
projet libre, au travers duquel j'ai pu mettre en pratique et
amliorer mes connaissances, que cela soit dupoint de vue de la
scurit des systmes, ou de celui de la programmation. En travaillant
au sein de ce projet,j'ai eu la chance de pouvoir largir mon
exprience en m'intressant la compilation de paquets et larsolution
de bogues, ce qui m'a permis d'entrer en contact avec les quipes
d'HAVP et de Mageia, pourpeut-tre une contribution future. ALCASAR
tant un projet collaboratif, j'ai pu dcouvrir la faon defonctionner
d'un tel projet et donc me familiariser avec des logiciels de
travail collaboratif.
Travailler sur ce projet c'est aussi prendre en considration les
problmes que peuvent rencontrer sesutilisateurs. C'est la raison
pour laquelle, j'ai pu entrer en contact avec quelques membres du
forum afin deleur venir en aide sur des problmes que j'tais en
mesure de rgler, et d'avoir quelques retours de personnesexternes
l'quipe d'ALCASAR propos de la prochaine version.
Pour conclure, j'aurai souhait avoir un peu plus de temps afin
de poursuivre mon travail surALCASAR, pour tudier d'autres branches
d'volution.
20Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
Glossaire
BASH : Bourne-Again Shell
DNS : Domain Name System
GET : tableau des valeurs passes au script courant via les
paramtres d'URL en PHP
GPL : General Public Licence
IP : Internet Protocol
MAC : Media Access Control
PHP : Language de programmation libre pour produire des sites
web
SSH : Secure Shell
URL : Uniform Resource Locator
21Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
Annexes
Annexe 1 : Architecture d'ALCASAR
22Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime
anne Jean-Baptiste Couprit
-
tablissement d'accueilPrsentation d'ALCASARArchitecture de ce
documentProblmatiqueSujetPourquoi un pare-feu dynamique ?
1 Ajout de fonctionnalits2 Fusion des pages ticket rapide et
ticket usager3 Amliorations de la partie Filtrage Liste noireListe
blanche
4 Pare-feu dynamique5 Mise jour de Mageia 2 vers Mageia
4BasculementCompilation d'un paquetRsolution d'un bogue Annexe 1 :
Architecture d'ALCASAR