1 / 18

INGI 2591 : Détection d’intrusion

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

alice-rivas
Download Presentation

INGI 2591 : Détection d’intrusion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. INGI 2591 : Détection d’intrusion • RACE CONDITION : Définition et description • RACE CONDITION et systèmes de fichiers • Description d’une attaque typique • Commentaire et solution • 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) • 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 READ FILE IN MEMORY MODIFY FILE IN MEMORY time CRITICAL SECTION READ FILE IN MEMORY MODIFY FILE IN MEMORY WRITE FILE ON DISK WRITE FILE ON DISK 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. 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. 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 CRITICAL SECTION 1. SLOW DOWN SYSTEM TO INCREASE CS 2. FIND TEMP FILE and ERASE 3. CREATE /tmp/tmpfile 2. EXEC SYS CALL : root CHOWN() ON /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 …

  9. IV. Commentaires et solutions COMMENTAIRES • 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 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) script perl sush.c -> sush bighole.c -> bighole

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

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

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

  17. V. Application d’une attaque : suidperl (7) foo <- ~!bighole <- suidperl passwd (root, suid) script perl 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.) sush.c -> sush bighole.c -> bighole /bin/mail

  18. V. Application d’une attaque : suidperl (7) foo <- ~!bighole <- suidperl passwd (root, suid) script perl 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.) sush.c -> sush bighole.c -> bighole /bin/mail

More Related