Vous êtes sur la page 1sur 126

La Sécurité Informatique

AIT IDER ABDELOUAHED

a.aitider@yahoo.fr
 Sécurité des SI=

 Protéger les biens et informations les plus précieuses


pour l’entreprise
La sécurité existe à plusieurs niveaux
Les Risques

 Attaque passive

 Attaque active
Types des risques
Problématique
 Failles dans les protocoles de communication
 Toute information circulant peut être capturée et enregistrée
et/ou modifiée
• Problème de confidentialité et d’intégrité
 Toute personne peut falsifier son adresse IP (identifiant) ce qui
engendre une fausse identification
• Problème d’authentification
 Aucune preuve n’est fournie quant à la participation dans un
échange électronique
• Problème d’absence de traçabilité
Les Objectifs
 Protéger les données stockées ou en transit sur le réseau
contre :
 modification
 utilisation frauduleuse
 divulgation non autorisée

 Sécuriser l’accès aux systèmes, services et données par :


 vérification de l’identité déclinée par le requérant
 gestion des droits d’accès et des autorisations
Cryptographie

 Science permettant d’effectuer des opérations sur un texte


afin d’assurer une ou plusieurs propriétés de la sécurité de
l’information.
Définition d’un crypto-système

• Un crypto-système est décrit par cinq uplets (M,C,K,E,D),


satisfaisant ces conditions:
 « M » est un ensemble fini de textes clairs (Plain text)

 « C » est un ensemble fini de textes cryptés (Cypher text)

 « K » est l’espace de clés (key space), représente un ensemble


fini de clés possibles.
 Pour chaque k € K, il existe une fonction cryptage ek € E, et une
fonction de décryptage correspondante dk € D
 Les fonctions ek : M  C et dk : C  M doivent
satisfaire:

dk(ek(x))=x pour chaque x € P


Cryptage symétrique: principe de base

Clé Transmission par canal sécurisé Clé

Texte clair Cryptage Texte clair


Décryptage
Voici le
Voici le
numéro
de ma ☺☼♀☻ numéro
de ma
carte de ♠♣▼╫◊ carte de
crédit
111111,
♫◙◘€£ crédit
111111,
¥₪Ω‫٭‬
Texte crypté
Emetteur
Récepteur
Cryptographie Symétrique: opérations de
base
 Substitution
 Remplacement de chaque élément (bit, lettre, groupe de bits
ou de lettres) dans le texte clair par un autre élément.
 Transposition
 Réarrangement des éléments du texte clair

La plupart des systèmes utilisent plusieurs étapes


de transposition et de substitution.
Aucune information ne doit être perdue durant ces
deux opérations
Chiffrement de César
Consiste à décaler l'alphabet clair. Le décalage est la clé
du chiffrement

Pour le chiffrement, on aura la formule


C = E(M) = (M + k) mod 26

Pour le déchiffrement, il viendra


M = D(C) = (C − k) mod 26

Exemple :
On veut chiffrer le mot CRYPTOGRAPHIE avec un
décalage de 3. Pour cela on écrit les alphabets clair et
chiffré comme suit :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
abcdefghijklmnopqrstuvwxyz
defghijklmnopqrstuvwxyzabc
Et on remplace:
CRYPTOGRAPHIE ---> FUBSWRJUDSKLH
Chiffrement affine

 On dit qu’une fonction est affine lorsqu’elle est de la forme


x → a ∗ x + b, c’est-à-dire un polynômede degré 1.
 L’idée est d’utiliser comme fonction de chiffrement une
fonction affine du type y = (ax + b) mod 26,
 Pour le chiffre affine, la clé est constituée de (k1, k2) où k1,
k2 ∈ [0, 25] et telle que pgcd(k1, 26) = 1.
 Le chiffrement est donné par
ci = f (mi ) = k1∗ mi + k2 mod 26.
 Pour le déchiffrement, il vient
mi = f−1(ci ) = k1−1∗ (ci − k2) mod 26.
Chiffrement affine
Exemple :
Soient la clé = (k1, k2) = (3, 11)
 Transformation de chiffrement :
ci = f (mi) = 3 ∗ mi+ 11 mod 26
 Transformation de déchiffrement :
 k1−1= 3−1mod 26 = 9 [car 3 ∗ 9 mod 26 = 1]
mi = f−1(ci) = 9 ∗ (ci − 11) mod 26
 Ainsi, pour une suite de lettres telle que :
’NSA’ → 13 18 0 → 24 13 11 →’YNL’.
Chiffre de Hill (1929)
 Les lettres sont d’abord remplacées par leur rang dans l’alphabet.
Les lettres Pk et Pk+1 deviennent Ck et Ck+1

 Chaque digramme clair (P1 et P2) sera chiffré (C1 et C2) selon :
Chiffre de Hill (1929)
Exemple de chiffrement :
Alice prend comme clef de cryptage la matrice:

pour chiffrer le message "je vous aime" qu’elle enverra à Bob.


Après avoir remplacé les lettres par leur rang dans l’alphabet
(a=1, b=2, etc.), elle obtiendra :

Elle obtiendra finalement le résultat :


Chiffre de Hill (1929)
Pour déchiffrer, le principe est le même que pour le chiffrement : on
prend les lettres deux par deux,puis on les multiplie par une
matrice

Cette matrice doit être l’inverse de matrice de chiffrement (modulo


26). Ordinairement, cet inverse est :

Exemple de déchiffrement :
Pour déchiffrer le message d’Alice, Bob doit calculer :
Chiffre de Hill (1929)
Comme pgcd(43, 26) = 1, (43)−1 existe dans Z26 et (43)−1= 23. Bob a
la matrice de déchiffrement :

Bob prend donc cette matrice pour déchiffrer le message "FGXGE


DSPGV". Après avoir remplacé les lettres par leur rang dans
l’alphabet (A=1, B=2, etc.), il obtiendra :

Il obtiendra finalement le résultat:


Chiffrement de Vigenère (1568)

• Le chiffrement Vigenère est une technique substitution


polyalphabétique;
• Un caractère peut-être substitué par différents caractères;
• Paru en 1568 d’après une description de Blaise de
Vigenère
• Principe:
• Pour chiffrer un message nous aurons besoin d’une
table et une clé;
• Cette clé est un mot, une phrase ou un texte;
• Pour chaque caractère du message, une lettre de la clé
est utilisée dans la substitution;
• Donc, plus la clé est longue, plus le message sera bien
chiffré.
Chiffrement de Vigenère (1568)
Voici la table de Vigenère:

Pour chaque lettre du message à chiffrer:


• On identifie la colonne;
• On prend une lettre de la clé pour identifier la
ligne;
• La lettre chiffrée est l’intersection entre la
colonne et la ligne.

Les lettres de la clé sont à prendre dans


l’ordre et on répète en boucle autant de fois
que nécessaire.

Exemple: La clé est le mot : musique

j’adore ecouter la radio toute la journee

m usiqu emusiqu em usiqu emusi qu emusiqu

V’UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY

20
Chiffrement ADFGVX
• Introduit par l’armée allemande à la fin de la Première
Guerre Mondiale;

Le chiffrement s’effectue en deux étapes:

1. Encoder le message par substitution des lettres;


2. Transposer le message chiffré par un mot clé.

Le tableau ADFGVX contient 36 éléments –


26 lettres et 10 chiffres.
Chiffrement ADFGVX
Chaque lettre est codée par le couple de lettres qui correspond à sa ligne et à
sa colonne. Ainsi, R est codé DF, et 3 par GA.
Le message RENFORT COMPIEGNE 16H10 devient donc après cette
première étape :
DF AX V VFAFDDFGFDDFDFG VAGDA XGGVV AXXAV FDVXA DX

On choisit ensuite, pour faire la transposition, une clé qui est un mot courant,
par exemple DEMAIN. On écrit cette clé dans un tableau, et on recopie le
texte intermédiaire dans le tableau comme ci-dessous. On numérote chaque
colonne suivant l'ordre alphabétique des lettres de la clé :

Le message chiffré est obtenu en lisant d'abord la colonne numérotée 1, puis la


colonne numérotée 2,… On obtient donc :XDDAG AADFG FAADF AFGXX
VVDFG VVDAF DVGXX VFDDV FX
Chiffre de Vernam (One Time Pad -1917)
 Pour utiliser ce chiffrement, il faut respecter plusieurs propriétés :
– choisir une clef aussi longue que le texte à chiffrer,
– utiliser une clef formée d’une suite de caractères aléatoires,
– protéger votre clef,
– ne jamais réutiliser une clef.
 Chiffrement:
◦ 1001001 1000110 plaintext
◦ 1010110 0110001 key
◦ 0011111 1110110 ciphertext
 Déchiffrement :
◦ 0011111 1110110 ciphertext
◦ 1010110 0110001 key
◦ 1001001 1000110 plaintext
Échange de clefs

Le principal problème de la technique du masque jetable


est la distribution de la clef.

Le premier algorithme d'échange de clefs a été inventé par


Diffie et Hellman en 1976.

Alice et Bernard se mettent d'accord sur deux grands


entiers n et g de telle manière que g soit primitif par
rapport à n.
Nombres primitifs
g est primitif par rapport à n si tous les nombres entre
1et n-1 peuvent être exprimés sous la forme: gi mod n.

Exemple: g=2 et n=11


210 = 1024 = 1 (mod 11)
21 = 2 = 2 (mod 11)
28 = 256 = 3 (mod 11)
22 = 4 = 4 (mod 11)
24 =16 = 5 (mod 11)
29 = 512 = 6 (mod 11)
27 = 128 = 7 (mod 11)
23 = 8 = 8 (mod 11)
26 = 64 = 9 (mod 11)
25 = 32 = 10 (mod 11)
Protocole de Diffie et Hellman
Chiffrement par flux et par bloc

 Il existe deux catégories de chiffrement :


- Par flux :
Les chiffrements par flux traitent les
données comme un flux
- Par bloc
Les chiffrements par bloc traitent les
données par morceaux
Chiffrement RC4
Chiffrement RC4
Chiffrement RC4 (changer l’algorithme)
Chiffrement RC4
Chiffrement RC4
Schémas de Feistel

 L'algorithme de chiffrement va procéder en chiffrant des


blocs de 2n bits, qu'on partage en 2 parties de n bits
chacune : les parties gauche (G) et droite (D).
L'image du bloc (G,D) est le bloc (L,R)
 avec L=D et R = G XOR f(D).
Schémas de Feistel :Exemple

 Considérons le message à six bits 101110.


 Le message est découpé en deux parties de trois bits
L0 = 101 et R0 = 110 (L pour left et R pour rigth).
 Trois fonctions (non nécessairement
bijectives) f1, f2 et f3 de {0,1}3 vers {0,1}3 vont
servir au chiffrement (elles constitue la clé de
chiffrement).
Prenons par exemple :
Schémas de Feistel :Exemple
DES (Data Encryption Standard)

 Standard mondial depuis la fin des années 1970


 Crypte des blocs de 64 bits en utilisant des clés de 56
bits.
 Produit de transpositions et de substitutions.
Algorithme DES

48 bits

3
2

4
DES (étapes 1 et 4): P-Box

Permutation initiale Permutation finale


 Le bit numéro 1 deviendra à la position 58
DES (étape 2)
La première étape est la suppression
des bits de parité pour avoir 56 bits
En une permutation notée CP-1 dont
la matrice est présentée ci-dessous :

La dernière étape est une


permutation, notée CP-2, fournissant
en sortie un bloc de 48 bits,
représentant la clé Ki.
DES (étape 3) Un tour DES

Cryptage Décryptage
Block de 64 bits en entrée Block de 64 bits en entrée

32 bits Li 32 bits Ri Sous-clé Sous-clé 32 bits Li+1 32 bits Ri+1


de 48 bits de 48 bits

Fonction de cryptage Fonction de cryptage

+ +

32 bits Li+1 32 bits Ri+1 32 bits Li 32 bits Ri

Block de 64 bits en sortie Block de 64 bits en sortie


Fonction de cryptage
A

C
A- Fonction d’expansion

 Etendre les blocs d’entré Ri de 32 bits à un


bloc Ri’ de 48 bits.
◦ Division des 32 bits en des segments de 4 bits
◦ Élargir chaque segment de 4 bits avec les bits de ses
voisins pour attendre 6 bits.
◦ XOR des 48 bits en sortie avec la clé.

1 2 3 4 5 6 7 8 9 …

32 1 2 3 4 5 4 5 6 7 8 9
B- Fonction de substitution

0 0 1 0 0 1

1110
01=1

0100=4

14

Un sous-bloc de 6 bits est transformé en un sous-bloc de 4 bits.


Les boites de substitution
Exponentiation modulaire
Calcule de 521 mod 17

x 
8
 x  
2
2 2
donc pour calculer x (2k )
(mod n)

on calcule x  x (mod n) k fois


2

21  10101  24 + 22 +20 et
52  8(mod 17) 54  13(mod 17)
58  16(mod 17) 516  1(mod 17)
521 (mod17)  5165451 (mod17)  1 13*5  14(mod17)
Cryptographie asymétrique

Scénario: confidentialité

Clé publique Clé privée


du récepteur du récepteur

Texte clair Cryptage Décryptage Texte clair


Internet
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit crédit
111111, ♠♣▼╫◊ 111111,
♫◙◘€£
¥₪Ω‫٭‬

Texte crypté
Emetteur Récepteur
Cryptographie asymétrique

Scénario: authenticité de l’émetteur et


non répudiation d’envoi

Clé privée Clé publique


de l’émetteur de l’émetteur

Texte clair Cryptage Décryptage Texte clair


Internet
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit crédit
111111, ♠♣▼╫◊ 111111,
♫◙◘€£
¥₪Ω‫٭‬

Texte crypté
Emetteur Récepteur
RSA
Inventé par Rivest, Shamir et Adleman en 1978.

On choisit p et q de très grands nombres premiers.


(n=pq)
On choisit e (1<e<n, PGCD(e,(p-1)(q-1))=1).
On calcule d, l’inverse de e modulo ϕ=(p-1)(q-1)
Clef Publique: (n,e)
Clef Privée: (d)
E (m)  me (mod n)
D(c)  c d (mod n)
Exemple

p  5, q  7, n  35, ( p  1)(q  1)  24
e  5, PGCD(5, 24)  1, d  e1  5,5*5  25  1(mod 24)

E (3)  35  243  33(mod 35)


D(33)  335  39135393  3(mod 35)

E (5)  55  10(mod 35)


D(10)  105  5(mod 35)
Fonction de hachage
 Entrée: message M avec contenu et taille arbitraire.
 Sortie: message de taille fixe h=H(M).
 La fonction de hachage permet d’extraire une
empreinte qui caractérise les données.
◦ Une empreinte a toujours une taille fixe indépendamment de la
taille des données.
 Irréversible:
◦ Etant donnée h, il est difficile de trouver x tel que: h = H(x)
◦ Complexité de l’ordre de 2n, n est le nombre de bits du digest.
 Calcul facile et rapide (plus rapide que le cryptage
symétrique).
 Exemples:
◦ MD5, SHA, …
◦ Taille du digest: 128-160-… bits
Fonctions de Hachage: Principes
Texte clair Texte clair

Internet
Hachage =? Hachage

Empreinte Empreinte Empreinte


reçue recalculée

1) = Le texte reçu est intègre


Empreinte Empreinte
reçue recalculée

2) ≠ Le texte reçu est altéré


Empreinte Empreinte
reçue recalculée
Propriétés d’une fonction de hachage
 Irréversible
◦ Soit « y » le résultat de hachage, il est
pratiquement infaisable de trouver « x » tel
que h(x)=y.
 Résistance forte à la collision:
◦ Soit « x » et « y=h(x) », il est pratiquement
infaisable de trouver «x’x » tel que
h(x’)=h(x).
Hachage: MD5
 Etape 1 : Complétion
Le message est constitué de b bits m1...mb. On complète le
message par un 1, et suffisamment de 0 pour que le message
étendu ait une longueur congruente à 448, modulo 512.
 Etape 2 : Initialisation
On définit 4 buffers de 32 bits A,B,C et D, initialisés ainsi (les
chiffres sont hexadécimaux, ie a=10, b=11...).A=01234567
B=89abcdef
C=fedcba98
D=76543210
On définit aussi 4 fonctions F,G,H et I, qui prennent des arguments
codés sur 32 bits, et renvoie une valeur sur 32 bits, les opérations
se faisant bit à bit.F(X,Y,Z) = (X AND Y) OR (not(X) AND Z)
G(X,Y,Z) = (X AND Z) OR (Y AND not(Z))
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X OR not(Z))
Ce qu'il y a d'important avec ces 4 fonctions et que si les bits de
leurs arguments X,Y et Z sont indépendants, les bits du résultat le
sont aussi.
Hachage: MD5
 Etape 3 : Calcul itératif
Pour chaque bloc de 512 bits du texte, on fait les opérations
suivantes :
◦ on sauvegarde les valeurs des registres dans AA,BB,CC,DD.
◦ on calcule de nouvelles valeurs pour A,B,C,D à partir de leurs
anciennes valeurs, à partir des bits du bloc qu'on étudie, et à
partir des 4 fonctions F,G,H,I.
◦ on fait A=AA+A, B=BB+B, C=CC+C, D=DD+D.
(Le détail des calculs voir annexe avec fiche de TD).
 Etape 4 : Ecriture du résumé
Le résumé sur 128 bits est obtenu en mettant bout à bout les 4
buffers A,B,C,D de 32 bits.
Hachage: MD5
Signature numérique: Génération

Clé privée
du signataire

Signature
Texte clair numérique
Fonction de Hachage Cryptage Asymétrique

Empreinte
Processus de Génération de la Signature numérique
Signature numérique: Vérification

Texte clair
Hachage
Empreinte
recalculée
Clé publique =?
de l’émetteur
Signature
numérique
Décryptage
Empreinte
reçue

1) = La signature reçue est correcte


Empreinte Empreinte
reçue recalculée

2) ≠ La signature reçue est incorrecte

Empreinte Empreinte
reçue recalculée
AES
Nouveau standard américain (NIST, 2000),
remplaçant du DES
• Processus de sélection (1997-2000) :
–15 candidats initiaux
–5 retenus pour le second tour
• Rijndael (Daemen-Rijmen, Belgique)
• MARS (IBM, USA)
• SERPENT(Biham-Knudsen-Anderson)
• RC6 (RSALabs)
• Twofish (USA)
AES
 Le 2 octobre 2000, l’algorithme belge
Rijndael est retenu par le NIST

 Taille de bloc de 128 bits


 Tailles de clé de 128, 192 et 256 bits
AES
Structure générale
 Les données sont stockées dans un «
carré » de 4 x 4 = 16 cases

 Chaque case contient 1 octet (8 x 16 =


128 bits d’état interne)
Fonction de tour
Substitution par Octet

 Pour tout 1 ≤i ≤16,Yi = S(Xi)


Substitution par Octet
 S est une fonction fixe de 8 bits vers 8
bits
–Définie comme un tableau à 28= 256
entrées
–Nécessite donc 256 octets de mémoire
 Basée sur une opération algébrique :
S(X) = Affine(Inverse(X))
où l’inverse est pris dans GF(28)
La boîte S
Décalage par ligne

 Décalage circulaire (vers la gauche) de i


cases pour la ligne numéro i, 0 ≤i ≤3
Mélange par colonne

 MixColumn() est appliquée à chaque


colonne
Mélange par colonne
 Chaque colonne est traitée comme un
polynôme sur GF (2 8 ) et est ensuite
multipliée modulo X4+1 avec un
polynôme fixe 3X3+X2+X+2 ; l'inverse de
ce polynôme est 11X3+13X2+9X+14.
Corps finis : GF(28)
 Cet objet mathématique est utilisé pour
définir la boîte S et dans MixColumn()
 Unique corps fini à 256 éléments
–Addition = XOR
–Multiplication = ?
GF(28) : Définition
 GF(2) = F2 = unique corps fini à 2
éléments = {0,1} avec les opérations
booléennes usuelles
 F2[X] = ensemble des polynômes à
coefficients dans F2
 Soit P(X) un polynôme irréductible de
degré 8 appartenant à F2[X]
 Par définition, GF(28) = F2[X] / P
GF(28) : Exemple
Prenons P(X) = X8+ X4+ X3+ X + 1
 Éléments dans GF(28)
= polynômes réduits « modulo P»
= polynômes de degré < 8
 Exemple a = X6+ X4+ X2
GF(28) : Exemple
 Soient a et b dans GF(28)
a = X6+ X4+ X2
b = X2
 Addition :
a+b = (X6+ X4+ X2) + (X2 ) = X6+ X4
 Multiplication :
a x b = (X8+ X6+ X4)modulo (X8+ X4+ X3+
X + 1)
ax b = (X6+ X4) + X3+ X + 1
Représentation
 Chaque élément de GF(28) est représenté
b7X7+ b6X6+ … + b1X + b0
 On le stocke sur l’octet représenté en
binaire par (b7,…,b0)
 Représentation entre 0 et 255
Addition de la sous-clé
L'Expansion de Clé

 Nr le nombre de tours, Nb=4 ,Nk le nombre de colonnes de la clé


de chiffrement CC
 << 1 désigne la rotation circulaire d'un octet vers la gauche et
Rcon une table de constantes.
 Sélection des Sous-Clés: La sous-clé i, de taille Nb est
simplement donnée par les mots W[Nb*i] à W[Nb*(i+1)−1].
Chiffrement par bloc
Mode CBC
 Représentation
T[n]=nième bloc de texte clair.
C[n]=nième bloc de texte chiffré.
E(m)=fonction de chiffrement du bloc m.
D(m)=fonction de déchiffrement du bloc m.
VI=vecteur d'initialisation
^=OU-Exclusif
Chiffrement :
C[0] = E(T[0] ^ VI)
C[n] = E(T[n] ^ C[n-1]) , si (n > 0)
Déchiffrement :
T[0] = D(C[n]) ^ VI
T[n] = D[C[n]) ^ C[n-1] , si (n > 0)
Chiffrement par bloc
Mode CFB
 Représentation
T[n]=nième bloc de texte clair.
C[n]=nième bloc de texte chiffré.
I[n]=nième bloc temporaire
E(m)=fonction de chiffrement et de déchiffrement du bloc m
VI=vecteur d'initialisation
^=OU-Exclusif
Chiffrement :I[0] = VI
I[n] = C[n-1] , si (n > 0)
C[n] = T[n] ^ E(I[n])
Déchiffrement :
I[0] = VI
I[n] = C[n-1], si (n > 0)
T[n] = C[n] ^ E(I[n])
les certificats électroniques
les certificats électroniques
Certificats :Open SSL
Certificats :Open SSL
Rappel : Arithmétique modulaire
 Le pgcd
 Nombres premiers entre eux
 Congruence et modulo : arithmétique
modulaire
 Classes d‘équivalence
 Classes d‘équivalence : addition
 Addition Z=4Z
 Classes d‘équivalence : multiplication
 Multiplication Z=4Z
 Multiplication Z=6Z et Z=7Z
Exercice :
Faire les tables de multiplication modulo 6 et modulo 7
 Multiplication Z=6Z et Z=7Z
 Les diviseurs de zéro
 Théorème de Bezout
 Calcul d'inverse modulaire
Exercice :
Calcul de 17-1mod 50
 Calcul d'inverse modulaire
IDS - IPS
> Attaque
 Recherche de failles dans le réseau et son exploitation
> Intrusion
 Prise de contrôle d’une machine
Etapes d’une attaques
 les types d’attaques les plus fréquentes :
◦ le flood : saturation
◦ le sniffing : prise illégale d’informations
◦ les scanners : programmes servant à savoir si
des ports sont ouverts
◦ le mail-bombing : même procédé que le flood
◦ le spoofing : usurper l’identité d’un utilisateur
SYN flooding

envoie d’un paquet TCP avec le flag SYN armé


semblant venir d'une machine non accessible,
éteinte ou inexistante. La machine victime envoie
donc le second paquet pour l'ouverture de la
connexion et attend la réponse de la machine
non accessible, qui ne viendra jamais.
(monopolisation de la connexion)
Les outils d’attaque
Analyseurs de trames (sniffer)
 tcpdump: analyseur en mode texte
 wireshark: analyseur en mode graphique
 dsniff: recherche de mode passe dsniff:
recherche de mode passe
Balayeur de ports (scanner)
 nmap: scanner de ports
Sécurité active et passive
> Sécurité active
 Filtrer et bloquer des flux (IPS)
> Sécurité passive
 Détection/Reconnaissance d’intrusions (IDS)
Les différents types d’IDS/IPS
> N-IDS & H-IDS
 Détection d’intrusions sur le réseau/hôtes
 Sécurité passive
> N-IPS & H-IPS
 Prévention des intrusions sur le réseau/hôtes.
 Défense proactive
 Fonctionnalité intégrée aux firewalls
 Un IPS ne remplace pas un firewall
> IDS Hybrides
 Surveillance du réseau et de terminaux
 NIDS + HIDS
Faux positif et faux négatif
> Alertes formatées
 IDWG (IETF) – « Intrusion Detection Working Group »: standardisation
 Norme IDMEF – « Intrusion Detection Message Exchange Format » (RFC 4765)
 XML
 Protocole IDXP – « Intrusion Detection eXchange Protocol » (RFC 4767)
> Faux positif
 Détection erronée
> Faux négatif
 Non détection d’un paquet malicieux
Approches de détection
Approche par scénarios
 Recherche de motifs (Pattern matching)
 Facilité de mise à jour.
 Limite : modification des signatures
 Exemple :
- Recherche de « /cgi-bin/phf » (tentative d’exploit).

 Analyse de protocoles : protocoles et conformité


• Exemple : « Ping of death » et fragmentation
 Analyse heuristique
• Exemple : nombre de sessions dépassant un seuil défini
Approche comportementale
Détection en fonction du comportement passé de l’utilisateur
Exemple de métriques : charge CPU, volumes de données échangées, heures de
connexion, répartition statistiques des protocoles utilisés, etc.

Approche probabiliste
 Représentation d’une utilisation courante d’une application ou d ’un
protocole.
Approche statistique
 Quantification des paramètres liés à l’utilisateur
 Utilisation processeurs, mémoire, nombre de connexions sortantes par jour,
vitesse de frappe au clavier, sites les plus visités etc.
 Difficultés de mise en place
HIDS & HIPS (Host Intrusion Detection & Prevention System)

> HIPS bloquent le comportement tels que :


 Lecture / écriture de fichiers protégés
 Accès à des ports non autorisés
 Tentative d'exploitation de débordement de pile (détection de Shellcode)
 Accès à certaines zones de la base de registres
 Connexions suspectes (sessions RPC actives anormalement longues sur des
machines distantes, etc.)

… MAIS couteux, et problème d’interopérabilité.

Exemples de HIPS :
Entercept, Okena (Cisco), ServerLock, etc.
NIDS & NIPS (Network Intrusion Detection & Prevention System)

> Historiquement TCPDump

> Interface en mode « promiscuous »

> Avertissement de l’administrateur


Syslog, logfile, mail etc.

Exemples de NIDS :
Snort (IDPS, le plus répandu), OpenSnort, Shadow, etc.
NIDS & NIPS – Positionnement du NIDS au sein du réseau
NIDS & NIPS - Snort

> Open source

> Peu couteux en ressources

> Pas d’interface graphique

> Grande base de signatures mise à jour

> Analyse protocolaire (ex:ping of death) et pattern matching

> 3 modes de fonctionnement :


 Sniffer de paquets
 Logger de paquets
 Détection / Prévention d’intrusions
> Langage de description des règles
NIDS & NIPS - Snort

> Créer ses propres règles


 Syntaxe générale :
Action protocole @src #port_src ->|<> @dest #port_dest [(options_de_règle)]

 Action : alert, log, pass, activate, dynamic


 Protocole : tcp/udp/icmp
 Options d’une règle :
(mot_clé:valeur;mot_clé2:valeur2;…)

 15 mots clés disponibles


 ack,msg, flags, react, resp, content-list, …
NIDS & NIPS - Snort

> msg
 Description de la règle
> flags
 Test des drapeaux TCP (ACK, SYN…), opérateur logique (+,*,!)
 Exemple : (flags:SF;msg:"SYN FIN scan")
> ack
 Teste le champ d’acquittement TCP pour une valeur donnée
 Exemple : (flags:A;ack:0;msg:"NMap TCP ping")
> TTL
 Teste la valeur du TTL
 Exemple : (alert tcp any any -> any any(msg: “Traceroute";TTL:1)
NIDS & NIPS - Snort

> resp
 Met en œuvre des réponses flexibles
 Exemple : (alert tcp any any -> 192.168.0.1/24 1524 (flags:S; resp:rst_all; msg:
"Root shell backdoor attempt";)
 Valeur : rst_all - envoie des paquets TCP_RST dans les deux directions
> react
 Réponse active (block, msg) sur connexions HTTP.
 Exemple : (alert tcp any any <> 192.168.0.1/24 80 (content-list: "adults"; msg:
“Adult sites"; react: block,msg)
NIDS & NIPS

> Réponse des NIPS


 TCP FIN et ICMP Host Unreachable

… Mais faux positifs

Exemples de NIPS :
Snort (IDPS), WatchGuard, NetScreen, TopLayer, etc.
Actions des H/N IPDS

Autres actions possibles des IPDS :

> Reconfiguration d’équipements tiers

> Envoi d’un trap SNMP à un agent de supervision

> Envoi d’un E-mail à un ou plusieurs utilisateurs

> Journaliser une attaque

> Sauvegarder les paquets suspicieux

> Démarrage d’une application

> Envoi d’un RST_KILL : construction d’un paquet TCP FIN.

> Notification visuelle d’une alerte.


Contournement des IDS
Contournement des IDS
Quelques techniques …

> Déni de service contre un IDS

> Attaque par insertion


 Ajout de paquets superflus
Ex : fragmentation IP et recouvrement de fragments (modification des champs
« longueur » et « décalage »).
Ex : Exploiter le Timeout pour le réassemblage (~60s sur machines, <60s sur IDS)
> Attaque par évasion
 Ne pas faire détecter le paquet par l’IDS
Ex : modification des chaînes de caractères :
 GET /etc/rc.d/../././././/.//./passwd
 GET %65%74%63/%70%61%73%73%77%64 (codage en hexadécimal)
 URL longues, Remplacer espaces par tabulations, ‘/’ par ‘\’ etc.

Vous aimerez peut-être aussi