EXIA.CESIRecherche et exploitation de vulnérabilités des IDS         par l’approche polymorphique                         ...
TABLE DES MATIERESIntroduction ..............................................................................................
1.      Background...........................................................................................................
INTRODUCTIONLes systèmes d’informations (SI) représentent aujourd’hui le point névralgique detoutes entreprises quelles qu...
Etat de l’art                                          LES IDSCrées initialement par l’armée américaine puis repris par le...
- Activité de lutilisateur : horaires et durée des connexions, commandes utilisées,  messages envoyés, programmes activés,...
5) INTRUSION PREVENTION SYSTEM (IPS)  Contrairement aux IDS simples, les IPS sont des outils aux fonctions « actives »,  q...
ARCHITECTUREAfin d’être en mesure de pouvoir contourner un IDS, il est primordial d’en connaître lesfonctionnements intern...
2)     CISLCISL (Common Intrusion Specification Language) est le langage définit au sein du CIDF.Son but est de pouvoir dé...
SYSTÈME DE DETECTION D’INTRUSION   Source de             Comportement                                                     ...
ALGORITHMES & SCENARIOS   Deux techniques globales de détections sont mises en place dans un IDS. La première   consiste e...
Plusieurs notions sont mise en place soit de manière :   -   Probabiliste : la construction des profils se font sur la déf...
APPROCHE POLYMORPHIQUEDans cette troisième partie, nous mettons en exergue l’approche polymorphique d’uncode malveillant e...
Schéma d’exécution de notre buffer overflow polymorphique       Shellcode                                       Shellcode ...
de NULL (les fonctions sur les chaînes de caractère s’arrêtent lorsqu’elles rencontrent lecaractère ‘0’).         3) ALPHA...
BILAN DE L’ETAT DE L’ARTL’utilisation d’un IDS n’est qu’un maillon dans l’infrastructure de la politique desécurisation d’...
Data Mining et CIDFAprès avoir identifié les principales caractéristiques côté attaquant et faiblesse des IDSface à une ap...
DATA MINING ET LES IDS L’un des problèmes relatif au détection d’intrusion peut-être réduit par l’approched’une classifica...
Training Data                       Off Line association                Profil (normal)     (Stream)                      ...
2. MINDSLe projet MINDS (Minnesota Intrusion Detection System) utilise une suite de techniquede data mining autorisant la ...
3. ALERTES PAR CORRELATIONL’objectif principal d’une alerte par corrélation est de synthétiser plusieurs alertes enune ent...
supprimée, par exemple suite à une mise-à-jour, et le système d’information n’est       plus vulnérable au moment où l’att...
4. MADAM ID Le projet MADAM ID (Mining Audit Data for Automated Models for Intrusion Detection)a été créé dans le but de m...
créé seront dits « normaux », toute anomalies détectées sera considérées commeanormales (pattern d’intrusion). Ces pattern...
A. MADAMID & CIDF & CISLDans l’architecture de MADAMID l’utilisation du CIDF occupe une place prépondérantepuisqu’il appor...
Attack Data                                       Model Update                 Model Engine                 Model Engine  ...
IDS                             CIDF CLIENT                    Interpréteur de Script                                     ...
DATA WAREHOUSE ET DA TA MODELINGNous venons de voir dans le chapitre précédent l’utilisation des IDS avec une refonte duCI...
2. FOSSERNous pouvons dénoter qu’un certain nombre de fossés existent dans les rechercheseffectives des IDS. Ainsi nous di...
des alertes et de prendre les mesures correctives nécessaires et de traiter en local sansmettre en indisponibilité la glob...
3. ARCHITECTUREDans cette partie nous allons présenter quelques architectures pouvant améliorer lesperformances des systèm...
GUI                                            Alertes par                     Sondes             Audit           Détecteu...
Quand une alerte est générée par un IDS, la principale fonctionnalité recherchée est de« zoomer » et de vérifier les corre...
PROOF OF CONCEPTL’analyse heuristique utilisée par les anti-virus ne peut être utilisée dans un IDS carcelui-ci fonctionne...
Schématique de notre proof of concept exploitableCependant CLET n’est pas le seul moteur permettant la création de shellco...
CONCLUSIONTout au long de la démarche associée nous sommes partis du côté attaquant où nousavons pu mettre en œuvre, réper...
ABSTRACTInformation systems (IS) are now the nerve center of all businesses whatever their sizeor their sectors. The data ...
REFERENCEDétection des intrusions réseaux : Stephen Northcutt, Judy Novak, Donald Mc LachlanNetwork Intrusion Detection: A...
LEXIQUEFaux-positif : détection en absence dattaque - alarme générée par un IDS pour unévénement légalFaux-négatif : absen...
ANNEXE       1) COMPARATIF D’ALGORITHMES DE PATTERN MATCHING       A. BRUTE FORCE ALGORITHMLidée est de réaliser une compa...
vérifier chacun des caractères du texte, mais peut au contraire sauter certains dentreeux.En général, lalgorithme devient ...
• y = y0y1…yn-1: le texte sur lequel aura lieu la recherche, de longueur n• x[i] et y[i] : le ième caractère de x ou y, éq...
four:Programme polymorphique:#include <stdio.h>char SC[] = //Décodeur           "xebx11x5ex31xc9xb1x24x80"          "x6cx0...
Prochain SlideShare
Chargement dans…5
×

Thèse shellcode polymorphiques

1 341 vues

Publié le

My Thesis

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 341
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
25
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Thèse shellcode polymorphiques

  1. 1. EXIA.CESIRecherche et exploitation de vulnérabilités des IDS par l’approche polymorphique Thèse BABACI NABIL 23/06/2012 Management des Systèmes d’Information
  2. 2. TABLE DES MATIERESIntroduction ....................................................................................................................................................... 3Etat de l’art ......................................................................................................................................................... 4Les IDS ................................................................................................................................................................. 4 1) Intrusion Detection System (IDS) .................................................................................... 4 2) Host-based IDS (HIDS) ..................................................................................................... 4 3) Network Intrusion Detection System (NIDS)................................................................... 5 4) Hybrides........................................................................................................................... 5 5) Intrusion Prevention System (IPS) ................................................................................... 6 6) Kernel IPS/IDS .................................................................................................................. 6Architecture ....................................................................................................................................................... 7 1) CIDF ................................................................................................................................. 7 2) CISL .................................................................................................................................. 8 3) IDMEF .............................................................................................................................. 8 4) IDXP ................................................................................................................................. 8 5) Classification .................................................................................................................... 8Algorithmes & Scénarios ........................................................................................................................... 10 1) Approches par scénarios ............................................................................................... 10 2) Approches comportementales ...................................................................................... 10Approche Polymorphique ......................................................................................................................... 12 1) Polymorphisme ............................................................................................................. 12 2) Chiffrement & contournement ..................................................................................... 13 3) Alphanumérique ............................................................................................................ 14Bilan de l’état de l’art .................................................................................................................................. 15Data Mining et CIDF ..................................................................................................................................... 16Data mining et les IDS ................................................................................................................................. 17 1. Adam ............................................................................................................................. 17 2. Minds ............................................................................................................................. 19 3. Alertes par correlation .................................................................................................. 20 4. Madam ID ...................................................................................................................... 22 a. MADAMID & CIDF & CISL .............................................................................................. 24Data Warehouse et Data Modeling ........................................................................................................ 27 1
  3. 3. 1. Background.................................................................................................................... 27 2. Fosser ............................................................................................................................ 28 3. Architecture................................................................................................................... 30Proof of Concept ............................................................................................................................................ 33Conclusion ....................................................................................................................................................... 35Abstract ............................................................................................................................................................ 36Référence ......................................................................................................................................................... 37Léxique ............................................................................................................................................................. 38Annexe .............................................................................................................................................................. 39 1) Comparatif d’algorithmes de Pattern Matching ........................................................... 39 A. Brute Force Algorithm ................................................................................................... 39 B. Moris-Pratt .................................................................................................................... 39 C. Knuth-Moris-Pratt ......................................................................................................... 39 D. Boyer-Moore ................................................................................................................. 39 E. Aho-Corasick.................................................................................................................. 40 2) Shellcode polymorphique ............................................................................................. 41 2
  4. 4. INTRODUCTIONLes systèmes d’informations (SI) représentent aujourd’hui le point névralgique detoutes entreprises quelles que soient leurs tailles ou leurs secteurs d’activités. Lesdonnées qu’ils contiennent, les services qu’ils rendent font d’eux une cible privilégiéspour les attaquent informatiques en tous genres.C’est pourquoi il est de la plus haute importance de veiller à sa sécurité en mettant enplace des procédés capables d’évaluer le risque et de pouvoir riposter quand cela estnécessaire et avec le plus de précision possible dans le but de ralentir au maximum laprogression d’une intrusion désastreuse.Cette étude a été réalisée dans le cadre de ma 4ème année et 5ème année, intégrée dans lecycle supérieur, de l’Exia.Cesi. L’objectif principal est de réaliser un état de l’art de lathèse, puis de sa complétion par une thèse sur le domaine des « Systèmes de détectiond’intrusions ou IDS (Intrusion Detection System) » dans le but de montrer que l’approchepolymorphique d’un code malveillant permet de contourner facilement ces mécanismesde défense, mais aussi de montrer les mécanismes de défense pouvant être mis en placepour contre attaquer.Cette planche se déroulera en trois temps. Le premier temps permettra de détailler l’étatde l’art de la thèse et comportera lui aussi trois points. Le premier point permettrad’expliquer ce qu’est un IDS et les différents types existants sur le marché actuel. Ledeuxième point entrera plus en profondeur et détaillera l’architecture interne d’un IDSet les mécanismes algorithmiques de défense. Et le dernier montrera l’approchepolymorphique d’un code destiné à passer un IDS.Le deuxième temps sera consacré à la partie « Défense » et permettra de répondre dansun cadre réel et de recherche sur les mesures offensive de pointes, notamment auniveau de l’approche du data mining dans les IDS. Ainsi nous mettrons en exergue ledata mining au centre du CIDF (Common Intrusion Detection Framework), puis desapproches existantes (ADAM, MADAM ID) et pour finir des recommandations d’ordresarchitecturales sur la mise en place d’IDS relatives au forage des données.Le dernier temps fera en sorte de joindre les deux concepts (attaque/défense) ententant d’aller encore plus loin en proposant un exemple d’attaque permettant d’outrepasser les mécanismes de data mining.Enfin nous conclurons sur quelles perspectives d’évolutions et de sécurisation du SIdevons-nous mettre en place afin d’endiguer toutes menaces potentielles. 3
  5. 5. Etat de l’art LES IDSCrées initialement par l’armée américaine puis repris par les entreprises et intégrés àdes projets Open-source, les IDS constituent un très bon moyen de surveiller lesdonnées transitant sur un système ou sur un réseau et de riposter en cas d’attaques .Il existe un parallèle entre les types de failles et les types d’IDS. En effet une faille peut-être exploité soit localement (erreur de programmation) soit de manière distante (prisede contrôle distante). Et un IDS est soit appliqué sur un poste seul ou en tantqu’analyseur de réseau. 1) INTRUSION DETECTION SYSTEM (IDS) Un IDS est un mécanisme destiné à repérer des activités anormales ou suspectes sur la cible analysée (un réseau ou un hôte). Il permet ainsi davoir une connaissance sur les tentatives réussies comme échouées des intrusions. Deux points importants sont à signaler lorsque l’on parle d’IDS à savoir les alertes. L’on parle de « Faux positif » lorsqu’une alerte provient d’un IDS mais qui ne correspond pas à une attaque réelle et de « Faux négatif » quand une intrusion est réelle et qui n’a pas été détectée par l’IDS. 2) HOST-BASED IDS (HIDS) Un HIDS se base sur une unique machine, n’analysant pas le trafic réseau mais l’activité se passant sur cette machine. Il analyse en temps réel les flux relatifs à une machine ainsi que les journaux. Un HIDS a besoin d’un système sain pour vérifier l’intégrité des données. Cela se fait par plusieurs approches : signatures, comportement (statistiques) ou délimitation du périmètre avec un système dACL. Si le système a été compromis par un pirate, le HIDS ne sera plus efficace. La machine peut être surveillée selon plusieurs points : - Activité de la machine : nombre et listes de processus, ressources consommées ... 4
  6. 6. - Activité de lutilisateur : horaires et durée des connexions, commandes utilisées, messages envoyés, programmes activés, dépassement du périmètre défini... - Activité malicieuse : ver, virus, trojan Le HIDS a pour avantage de navoir que peu de faux positifs, permettant davoir des alertes pertinentes. Quant à ses inconvénients il faut configurer un HIDS par poste et demande une configuration de chaque système.3) NETWORK INTRUSION DETECTION SYSTEM (NIDS) Les systèmes de détection d’intrusions réseau sont des sondes qui contrôlent l’activité du réseau. Ils analysent les paquets et leur contenu à l’aide de techniques variées qui permettent de détecter du trafic anormal ou une tentative d’intrusion. Ils sont furtifs, leur présence n’est pas détectable. Placés en des points stratégiques sur le réseau, les NIDS ont une vue globale, une sonde peut surveiller un réseau entier. Contrairement au HIDS, l’analyse du trafic réseau se fait en temps réels.4) HYBRIDES Généralement utilisés dans un environnement distribué, ils permettent de réunir les informations de diverses sondes placées sur le réseau. Leur appellation « hybride » provient du fait qu’ils sont capables de réunir aussi bien des informations provenant d’un système HIDS que d’un NIDS. L’exemple le plus connu dans le monde Open-Source est Prelude. Ce framework permet de stocker dans une base de données des alertes provenant de différents systèmes relativement variés. Utilisant Snort comme NIDS, et d’autres logiciels tels que Samhain en tant que HIDS, il permet de combiner des outils puissants tous ensemble pour permettre une visualisation centralisée des attaques. Les avantages des IDS hybrides sont multiples : - Moins de faux positifs - Meilleure corrélation - Possibilité de réaction sur les analyseurs 5
  7. 7. 5) INTRUSION PREVENTION SYSTEM (IPS) Contrairement aux IDS simples, les IPS sont des outils aux fonctions « actives », qui en plus de détecter une intrusion, tentent de la bloquer. Un IPS possède de nombreux inconvénients. Le premier est qu’il bloque toute activité qui lui semble suspecte. Un IPS peut donc malencontreusement bloquer du trafic inoffensif. Le deuxième inconvénient est qu’un pirate peut utiliser sa fonctionnalité de blocage pour mettre hors service un système. Et enfin, le troisième inconvénient : un IPS est peu discret. A chaque blocage d’attaque, il perd sa furtivité. De plus l’IPS peut générer des faux positifs et ainsi bloquer des connexions légitimes. L’on peut distinguer deux types d’IPS : • Les NIPS: Network-based Intrusions Prevention Systems ou Inline Prevention Systems. • Les HIPS: Host-based Intrusions Prevention Systems6) KERNEL IPS/IDS Les KIDS ont la capacité de s’exécuter au sein du noyau. En outre tout accès suspect peut être bloqué directement par le noyau, empêchant ainsi toute modification dangereuse pour le système. Les KIPS ont plusieurs avantages : - Reconnaissance des buffers overflows - Interdiction d’exécution de code ou appel système Néanmoins leur inconvénient principal et de ralentir énormément les machines sur lesquels ils opèrent 6
  8. 8. ARCHITECTUREAfin d’être en mesure de pouvoir contourner un IDS, il est primordial d’en connaître lesfonctionnements internes. 1) CIDFInitialement développé par le DARPA (Defense Advanced Reseach Project Agency) lemodèle CIDF (Common Intrusion Detection Framework) a pour but d’offrir aux IDS lacapacité de communiquer de façon homogène au sein d’une même plateforme.Ce modèle d’architecture se compose de 4 éléments : - Le générateur d’évènements : E-boxes - Les analyseurs d’évènements : A-boxes - Les composants de stockages : D-boxes - Les unités de réponses : R-boxesE-boxesFournit des informations pertinentes au sein de l’infrastructure. Ils fonctionnent en tantque « senseurs terminaux » et renvoient les alertes à l’architecture CIDL au format CISL(Common Intrusion Specification Language).A-boxesEst l’élément central, son but en tant que « concentrateur central » est de traiter lesalertes des E-boxes et de créer un nouvel élément synthétique (alarme).D-boxesPersistance des informations traitées par l’analyseur d’évènements. Stockage en base dedonnées.R-boxesLes unités de réactions ont pour objectif de réagir à certaines ressources en fonction desordres reçus. (Ex : contre-mesures) 7
  9. 9. 2) CISLCISL (Common Intrusion Specification Language) est le langage définit au sein du CIDF.Son but est de pouvoir définir des objets compréhensibles par l’ensemble des élémentsd’une architecture CIDF. Cela passe par la conception d’objets appelé GIDO (GeneralizedIntrusion Detection Objects). Il permet de fournir des descriptifs très détaillés sur desensembles contextuels très précis. 3) IDMEFIDMEF (Intrusion Detection Message Exchange Format), s’appuie sur le format XMLdans un objectif de partage d’informations en plusieurs éléments de systèmes dedétection ou de prévention. A cela s’ajoute la formalisation des données au format DTD(Document Type Definition) définit par l’IETF (Internet Engineering Task Force),permettant une utilisation plus souple, ainsi qu’un formatage de présentation lié au XSL(eXtensible Stylesheet Language). 4) IDXPIDXP (Intrusion Detection Exchange Protocol) est un protocole de communicationnormalisé qui permet d’échanger des informations au format IDMEF entre deuxdétecteurs d’intrusions. Ce protocole supporte l’authentification mutuelle des entitéscommunicantes, l’intégrité et la confidentialité des messages. 5) CLASSIFICATIONDans ce schéma, l’on retrouve l’ensemble des classifications des IDS et leurs différentsécosystèmes. 8
  10. 10. SYSTÈME DE DETECTION D’INTRUSION Source de Comportement Délais Arhitecture Approche données après attaque d’Analyse OS ( kernel,fichiers,services) IDS actif IDS passif Centralisé Distribuée Comportement Scénarios Continue Interval Autres IDS(Communication) Paquets Réseau Audits 9
  11. 11. ALGORITHMES & SCENARIOS Deux techniques globales de détections sont mises en place dans un IDS. La première consiste en la détection de signatures d’attaques sur un réseau répertoriées dans une base de connaissance. La deuxième permet de détecter une activité suspecte d’un utilisateur sur un poste donné. Compte tenu de la vastitude des algorithmes utilisés dans les IDS, nous nous sommes concentrés sur les plus courants en l’occurrence ceux appartenant à la classe des « Pattern Matching ». 1) APPROCHES PAR SCENARIOSL’approche par scénarios ou à bibliothèque de signatures (knowledge based detection),utilise fortement des signatures d’attaques déjà existantes. Des alarmes sont levées dèscorrespondance aux scénarios des attaques en cours. Ces types de méthodes sont trèsefficaces et ont la particularité de générer très peu de faux-positifs. Notons toutefoispour une utilisation optimale, la mise à jour constante de cette bibliothèque doit êtreextrêmement fréquente.Un langage de description d’attaques est mise en place en l’occurrence STATL (langagefor state-based Intrusion detection) en terme d’état et de transition.Plusieurs scénarios sont distingués : - Recherche de motifs : Concerne la recherche d’une séquence de données particulières « patterns matching» dans un évènement d’audit. - Détection par inférences : Utilisation du principe d’inférence de Bayes. Permettant un calcul de probabilité d’attaque en fonction du modèle d’inférence. - Model Checking : Formule de la logique temporelle du premier ordre. Le but étant la recherche d’une signature satisfaisant un évènement. Une alerte est déclenchée en cas d’échec. 2) APPROCHES COMPORTEMENTALESLe but d’une détection par approche comportementale (anomaly detection), permet designaler toutes anomalies sur un Système d’information. En effet il passe par unepremière phase dite d’apprentissage du comportement normal du système. Toutcomportement suspect sera déclaré et se fera en fonction des modèles ou profils établislors de la première phase d’un comportement normal. 10
  12. 12. Plusieurs notions sont mise en place soit de manière : - Probabiliste : la construction des profils se font sur la définition d’un fonctionnement des applicatifs. Une alarme est levée en fonction des évènements observés à savoir l’établissement des règles ou l’apprentissage des probabilités liées à chaque séquence d’évènements. - Statistique : la construction des profils se font à partir d’une quantification de certains paramètres liés à un évènement (Taux d’occupation mémoire, charge CPU…). Une alarme est levée en fonction du taux de déviation du comportement normal et celui observé. - Réseaux de neurones : La construction des profils se font via une reconnaissance d’une suite d’opérations effectuées par l’utilisateur (outils de travail, activités enregistrées). Le but étant de prédire la prochaine action de l’utilisateur, une alarme sera levée en cas d’échec. 11
  13. 13. APPROCHE POLYMORPHIQUEDans cette troisième partie, nous mettons en exergue l’approche polymorphique d’uncode malveillant en vue de passer l’un des scénarios de détection d’un IDS. Il s’agit ici del’étude d’un shellcode polymorphique mettant en scène son fonctionnement et sesfaiblesses.De manière générale l’exécution d’une attaque par « buffer overflow » se fait dans uncontexte où l’on fait exécuter du code binaire non désiré par un programme enexploitant les dépassements de tampon. Le but majeur étant d’instaurer un interpréteurde commandes distant (/bin/sh sur plateforme Linux, cmd.exe sur Windows) permettantun contrôle total de la machine.Nous distinguons dans ce processus, une entité NOP (code assembleur vide, 0x90 enoctet) permettant de remplir notre buffer jusqu’à dépassement. Suivit de notre shellcodecontenant notre code binaire ou notre charge (payload).Et l’adresse de retour qui nous permettra d’avoir une estimation sur la taille de notrebuffer afin de réduire notre marge d’erreur et de pouvoir revenir à nos instructions NOP. L’intérêt étant de connaître la taille de l’emplacement suffisant pourexécuter notre code sans encombre. Schéma d’exécution de notre buffer overflow 1 NOP Shellcode Adresse de retour Pile distante 2 3 1) POLYMORPHISMELe but du polymorphisme, introduit dans les années 90 en tant que moteur de mutationpolymorphique, est une technique visant à rendre un code malveillant difficilementdétectable soit par les anti-virus à l’origine soit par d’autre mécanismes de défense.Il est en outre adapter pour des scénarios de type « pattern matching ». Lefonctionnement d’un polymorphe est de chiffrer sa charge et de générer une routine dedéchiffrement qui serait différente à chaque fois, en somme un shellcode différent àchaque utilisation.Dans un moteur de mutation nous parlons d’encodeur et de décodeur. Dans le cas d’unprogramme shellcode seul le décodeur est nécessaire pour son exécution. Un exemple deshellcode est présent en partie Annexe. 12
  14. 14. Schéma d’exécution de notre buffer overflow polymorphique Shellcode Shellcode Encodage original encodé Intégration 1 Fake Nop Décodeur 3 Shellcode encodé Adresse de retour Pile distante 2 4 Fake Nop : instruction aléatoire 2) CHIFFREMENT & CONTOURNEMENTDans notre processus de génération de shellcode polymorphe, le décodeur estresponsable du processus de déchiffrement afin de récupérer le code original sur lamachine cible. On peut mette en place des méthodes de déchiffrement de plusieursfaçons : - Génération de routine avec des opérations réversible à chaque utilisation : ADD (addition), SUB (soustraction), XOR (clé glissante) ou SHIFT (bit de rotation) - Génération de faux code au milieu de la vraie routine de déchiffrement (Fausses opérations, registre différents). - Utilisation des deux méthodes.Plusieurs méthodes de contournement des IDS existent. Détaillons en profondeur ceux-ci pour les NIDS. La plupart des NIDS scannent les codes de façon à trouver l’instructionNOP. Une parade souvent utilisée est de créer une suite aléatoire « FakeNop » codée sur1,2 ou 3 octets.Nous pouvons aussi chiffrer le shellcode de manière aléatoire plutôt qu’avec desinstructions XOR ainsi que la routine de déchiffrement générée aléatoirement ainsi noussommes sûrs que les empreintes générées pendant les analyses effectuées par les NIDSseront différentes à chaque fois.Une autre bonne pratique est d’ajouter la limitation de la taille de la zone d’adresse deretour dans le but de ne pas attirer l’attention lors d’un simple scanne.Eviter les fonctions inutiles telles qu’ADD / SUB, PUSH/POP dans notre FakeNop afin derendre la détection plus compliquée. Et faire en sorte que le shellcode ne contienne pas 13
  15. 15. de NULL (les fonctions sur les chaînes de caractère s’arrêtent lorsqu’elles rencontrent lecaractère ‘0’). 3) ALPHANUMERIQUEUne autre technique d’évasion consiste en la création de shellcode dit« alphanumérique ». En effet ce shellcode ne sera composé que de chiffres et de lettres.Les formats de chaines de caractères s’étaleront en fonction du filtre [0-9A-Za-z]. Ce typede shellcode rentre dans le cas où l’analyse du buffer se veut plus draconienne, enacceptant que des caractères imprimables. Cette mesure a pour effet de limiter lesopérations dites « opcodes ». Ainsi les instructions disponibles sont : - INC : incrémentation sur la quasi-totalité des registres 32 bits et 16 bits - DEC : décrémentation sur tous les registres 32 bits et 16 bits - PUSH : instruction disponible sur tous les registres 32 bits et 16 bits - POP : utilisée sur certains registres généraux 32 bits et 16 bits - POPAD : dépiler tous les registres 32 bits dans un certain ordre - XOR : instruction maîtresse de notre cryptageCompte-tenu des contraintes précédentes, la structure de notre shellcode va aussichanger. Elle se voit attribuer d’autre mécanisme entièrement alphanumérique, enl’occurrence « les outils » qui nous permettent de préparer le terrain pour nos registresd’exécution, une instruction de saut (JMP) qui nous permet de connaître l’adresse de lapile, notre routine de décodage, notre shellcode encodé. L’adresse de retour n’est pas auformat alphanumérique. Structure de shellcode alphanumérique polymorphe 1 Tools Shellcode Adresse de 2 Jump 3 Décodeur 4 5 6 Pile distante encodé retourL’inconvénient d’une pareille méthode est son côté fastidieux. Sa création est beaucoupplus complexe qu’un shellcode polymorphique standard, cependant il a le mérite deproposer une version toute alternative à celui-ci dans la mesure où il présente unetechnique supplémentaire d’exploitation de faille d’un IDS. 14
  16. 16. BILAN DE L’ETAT DE L’ARTL’utilisation d’un IDS n’est qu’un maillon dans l’infrastructure de la politique desécurisation d’un Système d’information. En effet ils ne suffisent à eux seuls pourgarantir une sécurité optimale. Ils se doivent d’être couplés à plusieurs autresmécanismes afin d’endiguer toute attaque. Nous pensons principalement au Pare-feu quipermettent une isolation de certains contexte et de ralentir toute progressionmalveillante.Bien évidemment, un IDS se doit d’être mise à jour régulièrement afin que l’ensemble deses fonctionnalités soit le plus efficace possible notamment sur les signaturesconstituant le fer de lance de la détection. Ajoutons qu’un IDS seul n’est pas suffisant, ilfaut en outre l’accompagner par d’autres IDS, dont les spécificités sont propres à chacunet en fonction des plateformes à sécuriser. L’on parle de couplage fort lorsque nousutilisons un NIDS, IPS, HIDS et KIDS sur le même réseau.Concernant les algorithmes de recherche nous pouvons simplement émettre un constatsur l’efficacité des algorithmes. En effet les algorithmes actuels sont certes efficace maisnécessite un remaniement nécessaire afin de prendre en compte la réalité du terrain, àsavoir la consommation mémoire, la rapidité d’exécution, le nombre de requêtes filtrées,sa performance, le stockage des signatures. Tous ces paramètres doivent être remaniésafin d’adapter ces algorithmes à l’utilisation que l’on va en faire.Aujourd’hui bien qu’il existe plusieurs techniques d’évasion, la vulnérabilité au niveaupolymorphique est celle qui fait le plus dégât mais est la plus difficile à implémenter carelle nécessite de bonnes connaissances des IDS. Ces failles sont des points névralgiquesde la sécurité, où les IDS se mettent souvent à jour, au niveau des techniques d’attaquesafin de les bloquer. Une course à l’exploitation/sécurisation des failles est faite des deuxcôtés, attaquant/défenseur.L’aspect polymorphique évolue encore dans une approche où les IDS mettent en placedes détections par Data-mining via une approche neuronale, qui permettent de mieuxbloquer ce type d’attaque. Mais cela reste actuellement encore à l’état de test.En conclusion il est vital qu’une politique de sécurisation du SI soit la plus draconiennepossible car même si nous mettons en place tout un mécanisme de détection, de contre-mesure, l’attaque extérieure ne représente qu’un faible pourcentage dans les total desdégâts comparé au failles internes tels que vols de mots de passe, négligence, servicesmal configurés, droits d’accès peu sécurisés... 15
  17. 17. Data Mining et CIDFAprès avoir identifié les principales caractéristiques côté attaquant et faiblesse des IDSface à une approche polymorphique nous sommes en droit de nous demander qu’unecollaboration technologique d’une part celle du Data Mining et celle des IDS Temps-réelferaient en sorte de limiter les dégâts causés par tous les types d’attaques et que mêmel’aspect polymorphique d’un shellcode pourrait se voir limité.La principale idée développée est qu’une analyse approfondie des shellcodes et autrescodes malveillants soit traitée en parallèle par une architecture distribuée et cloisonnée,contenant en son sein une machine dédiée à l’extraction et la génération de modèles dits« bloquant », communiquant via le CIDF et créant de nouveaux objets GIDO à destinationd’autres IDS placés en back-end, permettrait d’éviter toutes sortes d’intrusion profondeet répétée.Ainsi les concepts de Data Mining, Data Warehouses seront complétement assimilés etrépercutés dans une architecture IDS. Dans cette partie nous détaillerons les outilsexistants relatifs au Data Mining intégrés aux IDS, nous nous concentrons sur l’und’entre eux, Madam ID avec une analyse de son processus fonctionnel.Nous ferons suite avec un chapitre dédié au Data Warehouse et au Data Modeling ounous exposerons leurs propriétés et leurs influences dans une architecture distribuée. 16
  18. 18. DATA MINING ET LES IDS L’un des problèmes relatif au détection d’intrusion peut-être réduit par l’approched’une classification des données depuis le Data Mining. Ainsi une machine créera etdéfinira un jeu de données en créant des classes dîtes de « normalisation » et de lestransiter vers d’autres IDS en back-end afin de préparer toute menaces répétée. 1. ADAMLe projet ADAM (Audit Data Analysis and Mining) est un NIDS se basant sur lesanomalies comportementales. Son objectif est d’apprendre de ces attaques et de lesreprésenter sous forme d’un jeu de règles appelé « Profils ». Composé de trois modules,un moteur de prétraitement, un moteur de « Mining » et un moteur de classification. Ilfonctionne de façon on-line et utilise un mode de Mining incrémental.Le mode de fonctionnement est le suivant : - Prétraitement :  Sniff les paquets TCP/IP  Extraction des informations depuis les Headers selon un schéma prédéfinis - Mining :  Application des règles selon les connexions enregistrées  Mode d’entrainement  Création de profils sains avant contamination  Et règles dites de « modèles »  Mode de détections  Mining des données différents des profils et stockages - Classification :  Classification des profils inattendus  Passage en évènement anormauxVoici un schéma représentatif de l’architecture de base d’ADAM. 17
  19. 19. Training Data Off Line association Profil (normal) (Stream) Rules Training Data On-line detection suspicious Labelized ( attacks / Classification false alarms) Feature selection featureL’analyse se fait en deux phases. La première phase aura pour but de fonctionner enmode hors ligne de façon à créer un modèle dit « normal » de profil qui permettra d’engénérer un modèle de référence au travers de règles. Une fois cette étape exécutée, laseconde phase en mode en ligne aura pour but de capturer les flux de données entrant,de les comparer avec les règles « normales » puis si un cas de comportement suspicieuxest déclaré il sera automatiquement notifié soit comme un élément d’attaque ou commefausse alarme. Puis il se verra classifier. 18
  20. 20. 2. MINDSLe projet MINDS (Minnesota Intrusion Detection System) utilise une suite de techniquede data mining autorisant la détection automatique des attaques contre le réseau. Il sebase sur des techniques de détection d’anomalies dans le but d’assigner un score àchaque connexion pour en déterminer un taux d’anomalies permettant une comparaisonavec un trafic réseau normal. Ce type de détection se veut extrêmement positif et permetun recensement plus accru qu’un IDS comme SNORT. MINDS Algo Data NetFlow Tool Batch Basic Feature Derived Feature Anomaly Detection Module ScoreLe mode de fonctionnement est le suivant. La donnée d’entrée est capturée par un l’outilNetFlow qui permet d’extraire uniquement les Headers et non les messages dans lespaquets qui seront stockés dans un fichier plat puis seront analysés par le moteurMINDS. Cette analyse en découlera deux composants, la première dite « Basic », quicontient l’adresse IP source et le port, l’adresse IP de destination et le port, le protocole,le flag, le nombre de bytes et le nombre de paquets. La deuxième, « Dérivé » inclut letemps et la fenêtre de connexion. Après la construction de ces « features », le module dedétection d’anomalies prend la relève et en sortira un score facilement lisible par uneanalyse humaine. 19
  21. 21. 3. ALERTES PAR CORRELATIONL’objectif principal d’une alerte par corrélation est de synthétiser plusieurs alertes enune entité logique. Nous distinguons aujourd’hui trois objectifs sous-jacents :La réduction du volume d’informations à traiter par les opérateurs et les analystes :En effet, une sonde de détection d’intrusions peut générer un grand nombre d’alertespar unité de temps, alors que la capacité de traitement d’un opérateur est limitée. Cepoint se décline en quatre sous-objectifs : - L’élimination : pour un même événement dans la source d’informations, plusieurs alertes redondantes peuvent être générées par une ou plusieurs sondes de détection d’intrusions. Par exemple, une requête HTTP unique peut donner lieu à plusieurs alertes si plusieurs sondes détectent la même tentative malveillante simultanément. Dans ce cas, on peut ne garder qu’une seule de ces alertes. - La fusion : plusieurs alertes peuvent être fusionnées en une seule qui contient l’ensemble des informations portées par ces alertes. Par exemple, certaines attaques se caractérisent par des rafales d’événements. Certains systèmes de détection d’intrusions génèrent une alerte par événement dans la rafale. Il est donc souhaitable de fusionner les alertes liées à cette rafale (par comptage) pour faciliter le traitement de l’information. - L’agrégation : face à un grand nombre d’alertes, il est parfois possible de dégager des caractéristiques majoritaires communes à un sous-ensemble de ces alertes. Ces caractéristiques majoritaires peuvent par exemple être l’adresse de l’attaquant, l’adresse de la cible ou le type d’attaque pratiqué. L’information présentée par l’ensemble agrégé permet de faire un traitement d’ensemble sans s’intéresser individuellement à chaque alerte. - La synthèse : plusieurs alertes peuvent être liées par exemple par des règles logiques explicites (par exemple des scénarios d’attaque connus) ou par des lois statistiques apprises. Il est possible en utilisant cette connaissance de synthétiser un ensemble d’alertes en une alerte résumant cette connaissance.L’augmentation de la qualité du diagnostic fourni :Les informations relatives à une alerte possèdent peu de données et sont non classifiées.Voici quelques informations permettant d’évaluer la sévérité de l’attaque. - Vulnérabilité effective : l’action de l’attaquant correspond à une vulnérabilité effectivement présente dans le système d’information. - Vulnérabilité passée : l’action de l’attaquant correspond à une vulnérabilité présente dans le système d’information dans le passé ; cette vulnérabilité a été 20
  22. 22. supprimée, par exemple suite à une mise-à-jour, et le système d’information n’est plus vulnérable au moment où l’attaque est exécutée. - Vulnérabilité impossible : le système attaqué n’a aucune relation avec la tentative de l’attaquant. Par exemple, la vulnérabilité concerne un serveur IIS et le système attaqué est un serveur Apache. - Prise d’empreinte : l’action de l’attaquant lui permet de déterminer si le système d’information est vulnérable ou non. - Attaque caractérisée : l’action de l’attaquant est capable, en cas de succès, de compromettre le système d’information. - Réussite : l’attaquant a obtenu ce qu’il cherchait par son action, soit l’information recherchée, soit la compromission du système visé.Le suivi des attaques au cours du temps :Les attaques effectuées se doivent de subir un archivage, avant d’assurer une traçabilitéde celle-ci et se doit d’être couplée avec une classification.L’on distingue aussi deux approches pour traiter les corrélations : - Corrélation implicite : l’exploitation des alertes révèle des relations intrinsèques entre elles. Une relation peut être constituée par exemple par une correspondance fréquentielle ou statistique entre des alertes. Cette correspondance est obtenue par une analyse automatique des données. - Corrélation explicite : l’opérateur est capable d’exprimer explicitement des relations entre différentes alertes, sous la forme d’un scénario. Un scénario regroupe en général un ensemble de propriétés que doivent satisfaire les alertes, et des liens les connectant. 21
  23. 23. 4. MADAM ID Le projet MADAM ID (Mining Audit Data for Automated Models for Intrusion Detection)a été créé dans le but de montrer comment les techniques de data mining pouvaient êtreutilisées dans la construction d’IDS dans une approche plus systémique et de façonautomatisée. L’approche utilisée et de définir un système de classification intelligent quiaura la capacité de distinguer les activités normales de celles des intrusions.Malheureusement les moteurs de classification voient leurs performances limités car ilsne sont qu’un chainon final de l’analyse technique. C’est dans ce but que MADAMIDpropose des règles associatives et fréquentes afin de définir des attributs (informations)plus prédictifs ce qui permettra aux moteurs de classification de voir ses données mise àjour plus rapidement. Ces attributs s’appellent des « features ».L’approche utilisée par MADAMID est une détection par scénario (misuse).Principalement son but est de recenser les données auditées et d’en définir des modèlesd’intrusions ou d’activités normales.L’architecture de MADAMID est composée d’un programme d’analyse des paquets via unaudit de la donnée, puis de la construction des features et des patterns selon les donnéessorties et d’un module de création de modèles permettant une classification desdétections. Une fois les modèles générés ceux-ci sont réutilisés de manière descendanteet ascendante afin d’affiner la granularité de détection et ceux dès la première phase.Processus de construction des modèles. Construction patterns features Data Paquets Enregistrement Modèles retourNous pouvons ainsi détailler un peu plus son approche dans la mesure où il exploite uneapproche temporelle et statistique du trafic réseau tout en l’appliquant au programmede construction des features selon l’approche du data mining. C’est ainsi que lors de laphase d’audit, il y aura un « dump » des flux réseaux de façon à ne capturer que lesheaders et autre données ASCII, puis de les synthétiser sous forme de connexionenregistrée. Chaque enregistrement est défini sous forme d’un jeu d’attributs simple(durée, port source et de destination, nombre de bytes transmis, flag). Puis l’algorithmede data mining entre en scène afin d’en définir des patterns séquentiels. Les patterns 22
  24. 24. créé seront dits « normaux », toute anomalies détectées sera considérées commeanormales (pattern d’intrusion). Ces patterns sont ensuite implémentés dans un modulede construction afin d’être réutilisés.Il apparait évident que la construction de modèles d’intrusion nécessite plusieursitérations et étapes. C’est pourquoi MADAMID utilise une approche centraliséepermettant d’automatiser les processus. Chaque processus sera déclenché dès que laprécédente aura fini. Ainsi nous pouvons dire que le système est de type temps-réel. 23
  25. 25. A. MADAMID & CIDF & CISLDans l’architecture de MADAMID l’utilisation du CIDF occupe une place prépondérantepuisqu’il apportera une fonctionnalité d’encodage et de décodage des objets GIDO afinque la communication puisse s’effectuer entre IDS. Rappelons que dans la normalisationdes règles syntaxiques au sein de CIDF les S-Expressions sont utilisées. Ces expressionssont des groupes simples, récursifs de tags et de données. Composées essentiellement dedeux termes, leurs avantages résident dans le fait de pouvoir agréger plusieurs groupesde termes sans limites.Voici un exemple de groupement de termes propres au langage CISL (Common IntrusionSpecification Language) :L’exemple ci-dessus permet de traduire l’expression « User Joe deleted /etc/passwd ».L’idée développée est de créer non pas une architecture simple de détection, mais unearchitecture distribuée permettant de générer des modèles et expressions transitant àtravers le réseau dès détection d’une attaque et ce même en cas d’attaquepolymorphique. Ainsi les attaquants devront faire face à une sécurisation sur plusieursniveaux et mise à jour via le CIDF. Ajoutons que CIDF propose une couche decommunication reposant sur les CA (Certificate of Authority), permettant d’assurer quecelle-ci n’est pas corrompue au travers des headers embarqués dans les objets GIDO.Pour ce faire voici un modèle d’architecture proposée avec comme support le CIDF : 24
  26. 26. Attack Data Model Update Model Engine Model Engine IDS IDS Model Update MatchMaker / CA MatchMaker / CA IDS IDSDétaillons la démarche. Dans un premier temps une attaque est détectée au niveau d’unIDS ce qui aura pour but de déclencher la première phase. Celle-ci permettral’acquisition des données depuis les objets natifs GIDO du premier du moteur du modèle,qui se chargera de « patcher » l’IDS en proposant une mise à jour de son dictionnaire demodèle. Automatiquement cette mise à jour se répercutera sur l’ensemble des IDS. Cequi en définitif endiguera toutes menaces futures.Afin d’affiner l’explication du processus de création des objets GIDO modifiés, voyons deplus près les interfaces dédiées au CIDF en donnant une représentation interne decelles-ci. 25
  27. 27. IDS CIDF CLIENT Interpréteur de Script Encode GIDO ( S-expression) Transmission GIDO Event Handling CIDF DAEMON Packet Filter Engine Ecoute sur un port Réception GIDO Décode GIDO Signal IDS via message queue Message queueUne interface CIDF est composée de deux parties, l’une cliente permettant d’encoder unobjet GIDO et l’autre fonctionnant en « daemon », permettant la réception et le décodage.Signalons que l’élément déclencheur se trouve être un gestionnaire d’évènement sesituant dans l’IDS faisant appel à l’API de CIDF. Le tout est traité sous forme de file demessage et filtré par un filtreur de paquets. 26
  28. 28. DATA WAREHOUSE ET DA TA MODELINGNous venons de voir dans le chapitre précédent l’utilisation des IDS avec une refonte duCIDF afin d’affiner la création et de provisionner de nouveaux objets GIDO visant à avoirune longueur d’avance sur les attaques. Maintenant focalisons nous sur la mise en placede solutions de Data Warehouse au sein de nos IDS. Nous parlerons essentiellement devisualisation de données, de conception de données et de diverses techniques pouvantaméliorer de façon drastique les performances de nos IDS. 1. BACKGROUNDEngouement évident pour les techniques de forage des données, les problèmes des IDSen matière de data mining peuvent aujourd’hui être restreint à une simple classificationdes données. Le but étant d’émettre des points de comparaison et de les différencier entant qu’activité normale et attaques différentes.Pour rappel nous avons vu des modèles basés sur MADAM ID, ADAM et MINDS d’autreexiste voici une liste non exhaustive : - IDDM : Intrusion Detection using Data Mining Techniques, utilise la détection d’anomalie en tant qu’outil. - eBayes : Ce système utilise la détection d’anomalie. - Alertes par corrélation : Détection par technique de corrélation afin de construire un scénario d’attaque - Clustering d’ID non labélisé : Système de détection traditionnel qui nécessite un système sain en guise de modèle de départ. 27
  29. 29. 2. FOSSERNous pouvons dénoter qu’un certain nombre de fossés existent dans les rechercheseffectives des IDS. Ainsi nous distinguons :L’analyse historique des données : Plus les réseaux deviennent grands et complexes,plus les outils en matière de sécurité ont besoin d’un historique des données permettantd’assurer la traçabilité des données. Ces analyses propres aux outils ETL vont permettrede générer des rapports afin d’en définir des courbes ou tendances justifiants d’attaquesou non. Actuellement les IDS génèrent trop de fausses-alertes dû à la simplicité de leursoutils analytiques. Ainsi l’un des challenges est d’avoir un système de stockage d’alertesen vue d’une analyse poussée.Le support en temps-réel des alertes par corrélation : Ces types d’intrusion font souventréférence à de l’interprétation, combination et analyse des informations émises parplusieurs détecteurs. Dans de grosses infrastructures ces détecteurs se retrouvent dansdes architectures distribués et émettent leurs alertes vers un point central qui procède àune corrélation des résultats. De réels besoins sont véhiculés aujourd’hui en matière destockage et d’organisation au sein du centre de corrélation. Notons aussi que les IDStraditionnels se focalise sur les alertes de bas niveaux et ne les regroupe pas en uneconnexion pleinement logique. Ce qui amène à des résultats difficilement interprétablepar l’humain et rend la mise en place de plan correctif difficilement réalisable. Comptetenu d’un nombre tournant autour des 10 à 20 000 alertes par jour dans uneinfrastructure moyenne, l’enjeu est bel et bien de stocker ses données afin d’en définirdes scénarios probant.Un support de données hétérogènes : Dans un réseau standard nous distinguonsplusieurs type d’audits et provenant de détecteurs différents au sein de celui-ci. Nousdistinguons en premier lieu le trafic réseau de données brutes, puis les flux paquets, lesappels systèmes et les alertes sortant des IDS. Il est important à ce stade d’avoir unearchitecture qui permette l’intégration de ces sources de données en un frameworkunifié. Cette unification permettra d’effectuer des analyses en temps-réel. Outre leproblème de fausse-alertes, il existe un réel défit dans la création de requêtes hautementprobante donnant à un utilisateur la capacité de vérifier par corrélation la validité d’uneattaque en fonction du flux de données entrant.L’analyse forensique : Avec la rapide croissance des vols de données et de destruction dedonnées non autorisées, la récurrence des actions en justice est elle aussi montante.C’est dans ce but que la capture de données et son stockage sont devenues des acteslégaux et font actes de preuves.Extraction de données du trafic réseaux et des audits : Pour chaque type de donnéesspécifiques (paquets, journal, trace des processus) la procédure d’extraction est elleaussi un challenge. Dû à une large quantité de données cela nécessite énormément detemps et d’argent en coût d’analyses.Visualisation de la donnée : Pendant une attaque, un besoin de visualisation graphiquepour l’administrateur peut se faire sentir. Cela permet d’avoir une meilleure visibilité 28
  30. 30. des alertes et de prendre les mesures correctives nécessaires et de traiter en local sansmettre en indisponibilité la globalité du système. 29
  31. 31. 3. ARCHITECTUREDans cette partie nous allons présenter quelques architectures pouvant améliorer lesperformances des systèmes de détection d’intrusions. Ces architectures se focalisentessentiellement dans des modèles dits « multidimensionnel » et auront pour but defournir une représentation des alertes et d’en détecter des nouvelles.La figure 1 représente une architecture proposant un système de données centralisé.Bon nombres des infrastructures utilisent plusieurs outils sans pour autant mettre encorrélation les résultats. Toutes les données recueillis ont différentes propriétés etdifférentes applications et de surcroit le modèle de détection varie. Les modèlesexistants utilisent massivement la détection par signature et non depuis une approchede data mining. Cette architecture supporte des composants de détection en temps-réel(sondes, détecteurs), un entrepôt des données pour stocker les données importantes etexploitables. Une fonctionnalité d’extraction qui lit les audits de données de puis le datawarehouse, extrait des informations, les agrège en entité logique puis les replace dans ledata warehouse. Un GUI (Graphical User Interface) pour permettre la visualisation dedonnées et informer l’utilisateur d’un quelconque évènement.Cette architecture propose plusieurs avantages : - Modulaire : L’ensemble des données est stockée dans un point central et peut- être facilement interrogé par l’utilisateur ou par des applications de détection d’intrusion. - Supporte plusieurs détecteurs : Il y a une nette séparation des composants de sondes et ceux de détection. Cela autorise l’utilisation de moteur basé sur la signature et d’un moteur basé sur le data mining sur le même tronçon de donnée. - Corrélation depuis plusieurs sondes : Compte tenu de la multitude des sondes et de leurs données stockées en un seul point, un moteur de détection peut facilement utiliser ses données en exécutant des requêtes de base de données. - Réutilisabilité : Les composants d’extractions sont réutilisables aussi par d’autres applications pour détecter les attaques. 30
  32. 32. GUI Alertes par Sondes Audit Détecteurs Requêtes de Corrélation détection Alertes Audit Extraction Data Warehouse Alertes (Fig 1) Architecture de données pour IDSLe schéma proposé en Fig 2 permet de répondre à l’analyse historique des données enproposant un schéma en étoile. Ceci a pour but de proposer aux utilisateurs un supportde données leur permettant de prendre des mesures correctives ou non en fonction desalertes reçus. La modélisation de la donnée d’alerte se fait en un jeu de donnéemultidimensionnel et ressemble aux modèles utilisés dans les cubes OLAP. Le cube estsimplement une structure multidimensionnelle (abstraite) qui contient en chaque pointune valeur agrégée.Dans cet exemple les relations sous-jacentes sont les alertes générées depuis l’IDS. Ici latable principale (fact table). Les attributs sont les dimensions de la donnée (blocautours) et peuvent posséder des hiérarchies internes rendant l’information la plus finepossible. Dans cette configuration nous avons un cube à 5 dimensions dans lequelchaque cellule contient des agrégations d’opérations. Les données sont facilementinterrogeables par des fonctions SQL (COUNT, SUM, MIN, MAX). Classe d’attaque Classe de Service Clé d’attaque Ip Source Clé IP Temps, Jour, Mois, Ip Destination Clé de Service Année Port Source Clé de Temps Durée (Fig 2) Schéma en Etoile 31
  33. 33. Quand une alerte est générée par un IDS, la principale fonctionnalité recherchée est de« zoomer » et de vérifier les correspondances associées au niveau des données brutesrécupérées. Si le trafic est très dense cela se révèle très consommateur en ressourcetemporelle. Utiliser les indexes bitmap et les jointures indexées se révèlentparticulièrement probant, car la quantité de données analysée se verra fortementréduite et améliorera le processus de requêtes.Concernant le module d’extraction de données, nous pouvons dire que bon nombre desIDS ont besoin de passer par une phase de prétraitement avant l’analyse complète del’information. Pour ADAM, le module génère un enregistrement à chaque connexion desheaders associés et de ses paquets.L’information est de la forme : R(TS, Src.IP, Src.Port, Dest.IP, Dest.Port, FLAG) - TS : Début de la connexion - Src.IP : Adresse IP de la source - Src.Port : Port de la source - Dest.IP : Adresse IP de destination - Dest.Port : Port de destination - FLAG : Décrit le statut de la connexion. - R : Utilisé pour l’association dans le forage de donnéesChaque connexion est stockée dans le point central (data warehouse) et est rendudisponible pour toutes les applications nécessitant son accès. D’autres informations sontstockées telles que le nombre de bytes, nombre de paquets et le nombre de connexions,qui peut se révéler utile lors d’attaques.Un point souvent associé est l’utilisation du forensique dans la démarche. Bien que bonnombre de logiciels existent dans ce domaine, la plupart se font de manière manuelle etla quantité de donnée est toujours gigantesque et demande énormément de temps pourl’analyser. C’est dans ce sens que nous stockons les données historiques (flux réseau,journal de pare-feu et appels systèmes) dans le data warehouse et offre de l’aide auxutilisateurs. Ici aussi les activités suspectes sont analysées sous formes de requêtes SQLet tout se fait en temps-réel. 32
  34. 34. PROOF OF CONCEPTL’analyse heuristique utilisée par les anti-virus ne peut être utilisée dans un IDS carcelui-ci fonctionne en temps-réel. L’IDS Snort quant à lui utilise, pour palier à sondésavantage les méthodes de Data Mining couplées à d’autres mécanismes de détection.Dans un cadre réel, lorsqu’une alerte est relevée par l’opérateur, il se doit de répondreavec une mesure corrective, en soumettant une nouvelle mise à jour dans l’IDS voulut.Cependant une limitation s’opère, celle-ci étant principalement temporelle, car si nousavons plusieurs alertes en même temps l’opérateur sera surchargé et le système seramomentanément bloqué.L’une des approches actuelle dans les méthodes anti-datamining est celle relative à CLET(nom d’un moteur de création de shellcodes polymorphique) portant sur une méthodede connexion. Détaillons en premier lieu l’approche neuronale. Celle-ci est utilisée dansles méthodes de data mining et se révèle assez probante. En effet cette méthode assezflexible permet dans un premier temps de travailler avec un nombre impressionnant devariables et de pouvoir proposer une solution à celle-ci. Le neurone fonctionne commeune calculatrice. Le neurone calcule la somme de ses entrées puis cette valeur passe àtravers la fonction dactivation pour produire sa sortie.Les avantages d’un réseau neuronal sont que ces règles dépendent uniquement de sonprocessus d’apprentissage, en fixant au fur et à mesure le poids en fonction des entrées.Et le champ de recherche se révèle plus rapide car il ne va chercher que la donnéenécessaire. Le but final étant de reconnaître un paquet normal d’un paquet dangereux.Voici son fonctionnement. Compte tenu du fait que l’analyse principale se fait sur lespaquets, il y aura création d’un fichier dit « spectre » dont le contenu sera d’enregistrerun trafic normal et de le transposer dans notre shellcodes.Une routine différente est créée à chaque fois et de manière aléatoire. Un chiffrementinitial avec un XOR (avec une clé aléatoire), puis génération d’instruction réversible(add/sub etc..). Cette génération se fait dans un langage pseudo assembleur puis leshellcode est créée en fonction de deux étapes déclenchée en même temps, lechiffrement du shellcode et la génération de la routine de déchiffrement. 33
  35. 35. Schématique de notre proof of concept exploitableCependant CLET n’est pas le seul moteur permettant la création de shellcodepolymorphique, permettant d’utiliser les mécanismes d’évasion des NIDS. Le moteurADMmutate, fait partie de la liste et possède un mode de fonctionnement similaire. 34
  36. 36. CONCLUSIONTout au long de la démarche associée nous sommes partis du côté attaquant où nousavons pu mettre en œuvre, répertorier les différentes attaques existantes afin d’enétablir un panel.Puis nous sommes rentrés dans le cœur du sujet, mais cette fois-ci côté défense où nousnous sommes penchés sur les différentes utilités du Datamining dans une architectureréseaux utilisant les IDS.Enfin nous avons mis en œuvre les faiblesses du côté défensif en prouvant via un proofof concept que la réponse à la problématique de notre sujet de thèse « Recherche etexploitation des IDS par l’approche polymorphique » est tout à fait prouvée.Nous pouvons en effet confirmer que les approches polymorphiques aujourd’hui, certesmême si elles bénéficient de logiques de contournement assez compliquées, sont tout àfait capables de pénétrer dans une architecture très sécurisée. Cela s’explique par le faitque l’utilisation du Datamining fonctionnant de pair avec les IDS, se veut récente, mêmesi les logiciels se veulent efficaces, une partie du processus et des analyses en temps-réelcontient ses propres limites. En ce sens nous pouvons dire que l’on ne fait quesimplement exploiter les faiblesses de création propres à la logique humaine etprogrammatique, même si les systèmes ont été éprouvés et validés.Aujourd’hui nous rentrons dans un monde ou la prise de pouvoir par l’avancetechnologique est primordiale. Dans un sens plus détaillé nous pensons notamment auxrécents évènements qui ont touché le mécanisme de contrôle central dit « SCADA(Supervisory Control And Data Acquisition) ».Dans ce logiciel nous avons un exemple concret de la sécurité des infrastructures où cetype de système peut être implémenté dans les contextes suivants, surveillance deprocessus industriels, transport de produits chimiques, systèmes municipauxdapprovisionnement en eau, commande de la production dénergie électrique,distribution électrique, canalisations de gaz et de pétrole, recherche et étudesscientifiques et industrielles. Autant le dire tout de suite, l’ensemble des services d’unpays.Mais quelle est la relation entre le polymorphisme, les IDS, et SCADA ? La relation estassez évidente, l’on ne peut ignorer aujourd’hui les mécanismes à la fois offensif etdéfensif d’une infrastructure. Qui plus est les failles logiciels à n’importe quels niveaux,du simple poste de travail au mainframe, existent, sont corrigés et de nouveaux existent.Nous rentrons dans un perpétuel jeu du chat et de la souris qui jusqu’a là n’a pas eûtd’incidence sur un pays ou un continent, dans un futur proche cela sera surementinévitable. 35
  37. 37. ABSTRACTInformation systems (IS) are now the nerve center of all businesses whatever their sizeor their sectors. The data contained therein, the services they provide make them apreferred target for computer attacks of all kinds.Therefore it is of utmost importance to ensure its security by implementing processesthat can assess risk and to respond when necessary and with as much precision aspossible in order to slow up the progress of a disastrous intrusion.This board will take place in three stages. The first time will detail the state of the art ofthe thesis and also include three points. The first point will explain what an IDS andtypes existing on the market today. The second point comes in greater depth and detailthe internal architecture of an IDS and algorithmic mechanisms of defense. And the lastshow the approach of a polymorphic code to pass an IDS.The second time will be devoted to the "defense" and will respond in a real research onoffensive measures pointes, particularly at the approach of data mining in IDS. Thus wewill highlight the data mining in the center of CIDF (Common Intrusion DetectionFramework), then the existing approaches (ADAM, MADAM ID) and finallyrecommendations on architectural orders the establishment of IDS on the drilling data.The last time assure to join the two concepts (attack / defense) trying to go even furtherby offering an example of attack can also go to the mechanisms of data mining.We will end with what developments and prospects of securing the IS should we put inplace to system any potential threats. 36
  38. 38. REFERENCEDétection des intrusions réseaux : Stephen Northcutt, Judy Novak, Donald Mc LachlanNetwork Intrusion Detection: An Analysts Handbook (3nd Edition): StephenNorthcutt, Judy Novak New Riders. 2002Exact String Matching Algorithms : Christian Charras et Thierry Lecroqhttp://www-igm.univ-mlv.fr/~lecroq/string/Eléments dalgorithmique - Recherche de motifs : D. Beauquier, J. Berstel, Ph.Chrétiennehttp://www-igm.univ-mlv.fr/~berstel/Elements/Elements.htmlOptimizing Pattern Matching for Intrusion Detection : Marc NortonIncreasing Performance in High Speed NIDS, A look at Snorts internals : Neil DeseiManaging Security with Snort and IDS Tools : Kerry J. Cox, Christopher GergLes IDS – Les systèmes de détection d’intrusions informatiques :Thierry EvangelistaLes attaques externes :Eric DetoisienDétection et tolérance dintrusions :Samuel DraletPolymorphic Shellcode Engine Using Spectrum Analysis : http://www.dg-sc.org/phrack-fr/phrack-fr/phrack61-fr/p61-0x09.txtLes tests dintrusions :Eric Detoisien et Frédéric RaynalBro: Un autre IDS Open-Source :Jean-Philippe Luiggi -Misc Magazine n°14Prelude HandBook: Prelude Hybrid IDS project - http://www.prelude-ids.org/Articles Wikipedia: http://www.wikipedia.orgDetecting novel network intrusions using bayes estimators. : Barbara D., Wu N., andJajodia S., In Proc. First SIAM Conference on Data Mining, Chicago, IL, April 2001.Data Mining for Intrusion Detection : Singhal A. and Jajodia S., Published as a chapterin Data Mining Handbook, Kluwer, December 2004. 37
  39. 39. LEXIQUEFaux-positif : détection en absence dattaque - alarme générée par un IDS pour unévénement légalFaux-négatif : absence de détection en présence dattaque, non génération dalarme parun IDS pour un événement illégalSegmentation fault : Une erreur de segmentation est un plantage dune application quia tentée daccéder à un emplacement mémoire qui ne lui était pas allouée.Shellcode : chaîne de caractères qui représente un code binaire exécutable capable delancer un shellOpcodes : Chaque instruction commence par un numéro appelé opcode (ou codeopération) qui détermine la nature de linstructionData-mining : L’exploration de donnée, extraction de connaissances à partir de donnéesEAX : registre accumulateur (accumulator register). Utilisé pour les opérations arithmétiqueset le stockage de la valeur de retour des appels systèmes.EDX : registre de données (data register). Utilisé pour les opérations arithmétiques et lesopérations dentrée/sortie.ECX : registre compteur (counter register)EBX : registre de base (base register). Utilisé comme pointeur de donnée (située dans DS enmode segmenté).EBP : (Extended Base Pointer) pointeur de baseESP : (Extended Stack Pointeur) pointeur de pileESI : (Extended Source Index) pointeur sourceEDI : (Extended Destination Index) pointeur destination 38
  40. 40. ANNEXE 1) COMPARATIF D’ALGORITHMES DE PATTERN MATCHING A. BRUTE FORCE ALGORITHMLidée est de réaliser une comparaison caractère après caractère de la chaîne initiale etde la chaîne recherchée. On parcourt les caractères de la chaîne initiale tant quils sontdifférents du premier caractère de la chaîne à trouver. Dès quon trouve un caractèreidentique, on parcourt les caractères suivants tant quils correspondent. Si un caractèrediffère alors quon na pas atteint la fin de la chaîne recherchée, alors on reprend larecherche du premier caractère identique, à partir du caractère suivant dans la chaîneinitiale. Si tous les caractères correspondent, on retourne la position du premiercaractère de la chaîne trouvée dans la chaîne initiale. Enfin, si aucune occurrence de lachaîne recherchée napparaît dans la chaîne initiale, lalgorithme se doit de le signaler,en retournant une valeur négative par exemple. B. MORIS-PRATTIl reprend l’algorithme précédent tout en profitant de lanalyse du texte pour collecterdes informations. Grâce à un prétraitement sur le motif, il est possible dobtenir un gainde temps considérable en évitant de répéter des comparaisons. C. KNUTH-MORIS-PRATTIl est une version optimisée de l’algorithme Morris-Pratt. Il permet de trouver lesoccurrences dune chaîne P dans un texte S. Sa particularité réside en un prétraitementde la chaîne, qui fournit une information suffisante pour déterminer où continuer larecherche en cas de non-correspondance. Cela permet à lalgorithme de ne pasréexaminer les caractères qui ont été précédemment vérifiés, et donc de limiter lenombre de comparaisons nécessaires. D. BOYER-MOORELalgorithme de Boyer-Moore prétraite la sous-chaîne (cest-à-dire la chaînerecherchée), et non pas le texte (cest-à-dire la chaîne dans laquelle la recherche esteffectuée), à linverse de certains algorithmes, qui amortissent le coût du prétraitementdu texte en effectuant de très nombreuses recherches répétitives. Le coût dexécution delalgorithme de Boyer-Moore peut être sub-linéaire, cest-à-dire quil na pas besoin de 39
  41. 41. vérifier chacun des caractères du texte, mais peut au contraire sauter certains dentreeux.En général, lalgorithme devient plus rapide lorsque la longueur de la sous-chaînesallonge. Cette efficacité provient du fait que, pour chaque tentative infructueuse decorrespondance entre les deux chaînes (texte et sous-chaîne), il utilise les informationsdéduites de cet échec pour éliminer le plus grand nombre possible de positions àvérifier. Cet algorithme est le plus rapide des algorithmes connus. E. AHO-CORASICKLalgorithme consiste à avancer dans une structure de données abstraite appeléedictionnaire qui contient le ou les mots recherchés en lisant les lettres du texte T une parune. La structure de données est implantée de manière efficace, ce qui garantit quechaque lettre du texte nest lue quune seule fois.Généralement le dictionnaire est implanté à laide dun trie ou arbre digital auquel onrajoute des liens suffixes. Une fois le dictionnaire implanté, lalgorithme a unecomplexité linéaire en la taille du texte T et des chaînes recherchées.Son but est d’effectuée une recherche parallèle sur plusieurs motifs. Il est unegénéralisation des algorithmes de Knuth, Morris et Pratt. Algorithmes Caractéristiques Brute force - Pas de prétraitement - Fenêtre toujours décalée dune position vers la droite - Phase de recherche en complexité temps O (mn) Morris-Pratt - Prétraitement de complexité temps et espace O(m) - Phase de recherche de complexité temps O (m + n) - Délai borné par m Knuth-Morris-Pratt - Prétraitement de complexité temps et espace O(m) - Phase de recherche de complexité temps O (m + n) - Délai borné par logφ (m) Boyer-Moore - Comparaisons de droite à gauche - Prétraitement de complexité temps et espace O (m + σ) - Phase de recherche de complexité temps O (mn) Aho-Corasick - Recherche multi-motifs - Construction dun automate déterministe - Phase de recherche de complexité temps O (m + n)Les notations suivantes seront utilisées :• x = x0x1…xm-1 : le motif à rechercher, de longueur m 40
  42. 42. • y = y0y1…yn-1: le texte sur lequel aura lieu la recherche, de longueur n• x[i] et y[i] : le ième caractère de x ou y, équivalent à xi et yi 2) SHELLCODE POLYMORPHIQUECode assembleur de notre charge:;Pour éviter les segment faults;nettoyage de registres principauxxor %eax,%eax ;registre accumulateurxor %ebx,%ebx ;registre de basexor %ecx,%ecx ;registre compteurxor %edx,%edx ;registre de donnéesmovb $0x5,%dl ;place notre chaine de caractère dans notre registre dl(edx) nabilpush $0x6cpush $0x6c6962616e ;caractère inversé en héxadécimal-> libanmovl %esp,%ecx ;on envoie %esp dans %ecx (contient la constante char de _write)movb $0x1,%bl ;ici 1 pour %ebx ( valeur int)movb $0x4,%al ;syscall de _write égal à 4int $0x80 ;exécutionxor %ebx,%ebx ;nettoyage de registremovb $0x1,%al ;syscall de _exit égal à 1int $0x80 ;exécutionDécodeur :BITS 32 jmp short three one: pop esi xor ecx, ecx mov cl, 36 ; On place dans %cl la taille de notre shellcode two: sub byte [esi + ecx -1 ], 0 ; on décrémente de 1 notre chaîne sub cl,1 ; on décrémente de 1 la taille de la chaîne jnz two ; on test si %cl est à 0 (si cest la fin de notre chaîne) jmp short four ; si cest le cas on sort de la boucle three: call one 41
  43. 43. four:Programme polymorphique:#include <stdio.h>char SC[] = //Décodeur "xebx11x5ex31xc9xb1x24x80" "x6cx0exffx01x80xe9x01x75" "xf6xebx05xe8xeaxffxffxff" //Shellcode encodé via objdump "x32xc1x32xdcx32xcax32xd3" "xb3x0ax6bx0bx69x75x69x62" "x6fx69x6bx70x6fx62x8axe2" "xb4x02xb1x05xcex81x32xdc" "xb1x02xcex81";int main(void){ printf("Length: %dn",strlen(SC)); (*(void(*)()) SC)();} 42

×