La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

INGI 2591 : Détection d’intrusion RACE CONDITION.

Présentations similaires


Présentation au sujet: "INGI 2591 : Détection d’intrusion RACE CONDITION."— Transcription de la présentation:

1 INGI 2591 : Détection d’intrusion RACE CONDITION

2 INGI 2591 : Détection d’intrusion I.RACE CONDITION : Définition et description II.RACE CONDITION et systèmes de fichiers III.Description d’une attaque typique IV.Commentaire et solution V.Application d’une attaque : setuidperl I.RACE CONDITION : Définition et description II.RACE CONDITION et systèmes de fichiers III.Description d’une attaque typique IV.Commentaire et solution V.Application d’une attaque : setuidperl

3 I. RACE CONDITION : Définition et description Définition GENERALE : Une RC apparaît lorsque deux ou plusieurs opérations se produisent de manière indéfinie (McKusick et al. 1996) Définition GENERALE : Une RC apparaît lorsque deux ou plusieurs opérations se produisent de manière indéfinie (McKusick et al. 1996) CONCEPT : Systèmes multitask DANGER si : 2 programmes accèdent même donnée en même temps. CONCEPT : Systèmes multitask DANGER si : 2 programmes accèdent même donnée en même temps.

4 I. RACE CONDITION : Définition et description SOIENT 2 PROCESS A et B PROCESS A PROCESS B time READ FILE IN MEMORY MODIFY FILE IN MEMORY READ FILE IN MEMORY MODIFY FILE IN MEMORY WRITE FILE ON DISK CRITICAL SECTION CONCLUSION : TRAVAIL DE B EST PERDU

5 I. RACE CONDITION : Définition et description CELA PEUT CONDUIRE A UN ETAT INCOHERENT DU SYSTEME : B a effectué une opération sur une donnée inconsistente. CELA PEUT CONDUIRE A UN ETAT INCOHERENT DU SYSTEME : B a effectué une opération sur une donnée inconsistente. PROCESS A Read (X):X=2; X = X + 2;X=4; Write (X);X=4; PROCESS B Read (X):X=2 X = X + 6;X=8 Write (X); X=8 FINALEMENT, X=4 au lieu de 12

6 II. RACE CONDITION : RC et système de fichiers De manière + SPECIFIQUE : FILE SYSTEMS L’attaquant essaie de changer l’état du système de fichier entre 2 opérations sur ce SF, opérations faisant partie d’un même programme. De manière + SPECIFIQUE : FILE SYSTEMS L’attaquant essaie de changer l’état du système de fichier entre 2 opérations sur ce SF, opérations faisant partie d’un même programme. Exemple typique de RACE CONDITION avec ps

7 III. Description d’une attaque typique : ps Commande ps : affiche des infos sur les process actifs PS ATTAQUANT 1. CREATE /tmp/tmpfile 2. EXEC SYS CALL : root CHOWN() ON /tmp/tmpfile 1. SLOW DOWN SYSTEM TO INCREASE CS CRITICAL SECTION 2. FIND TEMP FILE and ERASE 3. CREATE /tmp/tmpfile

8 III. Description d’une attaque typique : ps FINALEMENT L’ATTAQUANT POSSEDE UN FICHIER (CAR DS REPERTOIRE WORLD WRITABLE) QUI, QUAND IL S’EXECUTE, LE FAIT AVEC LES DROITS DE ROOT METTRE DS CE FICHIER UN SHELL, QUI S’EXECUTERA DONC EN ROOT … L’ATTAQUANT POSSEDE UN FICHIER (CAR DS REPERTOIRE WORLD WRITABLE) QUI, QUAND IL S’EXECUTE, LE FAIT AVEC LES DROITS DE ROOT METTRE DS CE FICHIER UN SHELL, QUI S’EXECUTERA DONC EN ROOT …

9 IV. Commentaires et solutions COMMENTAIRES 1.COMMENT EST-CE QUE ATTAQUEUR A PU EFFACER /tmp/tmpfile ?  LE REPERTOIRE TMP POSSEDE DES PERMISSIONS « WORLD WRITABLE » POUR TOUT FICHIER CONTENU DEDANS. 1.COMMENT EST-CE QUE ATTAQUEUR A PU EFFACER /tmp/tmpfile ?  LE REPERTOIRE TMP POSSEDE DES PERMISSIONS « WORLD WRITABLE » POUR TOUT FICHIER CONTENU DEDANS.

10 IV. Commentaires et solution SOLUTION 2. COMMENT EVITER CE GENRE DE PROBLEME ?  UTILISER FCHOWN() AU LIEU DE CHOWN()  FCHOWN() AGIT AU NIVEAU DU FDESCRIPTEUR  ALORS QUE CHOWN() AGIT AU NIVEAU DU NOM DU FICHIER 2. COMMENT EVITER CE GENRE DE PROBLEME ?  UTILISER FCHOWN() AU LIEU DE CHOWN()  FCHOWN() AGIT AU NIVEAU DU FDESCRIPTEUR  ALORS QUE CHOWN() AGIT AU NIVEAU DU NOM DU FICHIER ON PEUT CHANGER LE NOM D’UN FICHIER MAIS ON NE PEUT PAS CHANGER SON FD ON PEUT CHANGER LE NOM D’UN FICHIER MAIS ON NE PEUT PAS CHANGER SON FD

11 V. Application d’une attaque : suidperl (1) suidperl passwd (root, suid)

12 V. Application d’une attaque : suidperl (2) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole

13 V. Application d’une attaque : suidperl (3) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole script perl

14 V. Application d’une attaque : suidperl (4) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole script perl foo <- ~!bighole <-

15 V. Application d’une attaque : suidperl (5) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole script perl foo <- ~!bighole <-

16 V. Application d’une attaque : suidperl (6) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole script perl foo <- ~!bighole <-

17 V. Application d’une attaque : suidperl (7) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole script perl foo <- ~!bighole <- User 500 tried to run dev 769 ino 35654 in place of dev 769 ino 17568! (Filename of set-id script was foo ~!bighole, uid 500 gid 500.) /bin/mail

18 V. Application d’une attaque : suidperl (7) suidperl passwd (root, suid) sush.c -> sush bighole.c -> bighole script perl foo <- ~!bighole <- User 500 tried to run dev 769 ino 35654 in place of dev 769 ino 17568! (Filename of set-id script was foo ~!bighole, uid 500 gid 500.) /bin/mail


Télécharger ppt "INGI 2591 : Détection d’intrusion RACE CONDITION."

Présentations similaires


Annonces Google