1 / 20

INGI 2591 : Détection d’intrusion

INGI 2591 : Détection d’intrusion. RACE CONDITION. David Dal Zot (INFO23) Benjamin Gigot (INFO23) Xavier Lerot (INFO23) Benjamin Tillier (INFO23). INGI 2591 : Détection d’intrusion. Détection de l’attaque Stratégie 1 : Détection sur le réseau : Surveillance des

joey
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 David Dal Zot (INFO23) Benjamin Gigot (INFO23) Xavier Lerot (INFO23) Benjamin Tillier (INFO23)

  2. INGI 2591 : Détection d’intrusion • Détection de l’attaque • Stratégie 1 : Détection sur le réseau : Surveillance des • mails voyageant sur le réseau • Stratégie 2 : Détection Locale : Détection d’un • comportement suspect du système • Conclusion

  3. INGI 2591 : Détection d’intrusion Première idée User 5000 tried to run dev 770 ino 146479 in place of dev 770 ino 240935! (Filename of set-id script was ./cbnqiugzadfbli , uid 5000 gid 5000.) Sincerely, Perl

  4. INGI 2591 : Détection d’intrusion • Caractéristiques de l’attaque (1) • SUIDPERL • Possède les droits suid root • Détecte le changement de fichier • Envoie un mail au root comportant le nom du fichier fautif • PASSWD • Possède les droits suid root • N’importe quel programme suid root peut convient • Script Perl • Simple script perl

  5. INGI 2591 : Détection d’intrusion • Caractéristiques de l’attaque (2) • /bin/mail • Parse le mail exécute les commandes précédées par ~! • Envoie le mail • Bighole et Sush • Nous permettent de lancer un terminal root • Doivent obtenir les droits root

  6. INGI 2591 : Détection d’intrusion Surveillance de la correspondance de SUIDPERL Nous essayerons donc d’intercepter les mails passant sur le réseau avec l’aide de Snort (qui se base sur la détection de chaînes de caractères bien précises) afin de détecter une éventuelle attaque.

  7. INGI 2591 : Détection d’intrusion Reconnaissance du mail envoyé par SUIDPERL User 5000 tried to run dev 770 ino 14479 in place of dev 770 ino 24935! (Filename of set-id script was ./cbnqiugzadfbli , uid 5000 gid 5000.) Sincerely, Perl

  8. INGI 2591 : Détection d’intrusion Reconnaissance du mail envoyé par SUIDPERL (1) En-tete du mail Détection de l’expéditeur de du destinataire : difficilement faisable car peut varier d’un système à l’autre.

  9. INGI 2591 : Détection d’intrusion Reconnaissance du mail envoyé par SUIDPERL (2) Corps du mail User 5000 tried to run dev 770 ino 14479 in place of dev 770 ino 20935! (Filename of set-id script was ./cbnqiugzadfbli , uid 5000 gid 5000.) Sincerely, Perl 1. Toutes les chaînes de caractères en gras doivent se trouver dans le mail, 2. Dans le bon ordre, 3. Excepté un certain nombre d’entiers, et le nom du fichier, le mail ne contient rien d’autre.

  10. INGI 2591 : Détection d’intrusion • Probabilité de fausses alertes • Le bon sens nous pousse à croire que les critères ci-dessus sont • suffisamment précis pour identifier de manière pratiquemment • infaillible un mail qui nous intéresse.

  11. INGI 2591 : Détection Réseau Mise en œuvre de la détection Critère {1} : l ’en-tête du mail : - règles de réécritures : root --> d.dupond@domain.com - varie d’un système à l’autre

  12. INGI 2591 : Détection Réseau Mise en œuvre de la détection Critère {2} à {4} : Corps du mail User 5000 tried to run dev 770 ino 14479 in place of dev 770 ino 20935! (Filename of set-id script was ./cbnqiugzadfbli , uid 5000 gid 5000.) Sincerely, Perl

  13. INGI 2591 : Détection Réseau Mise en œuvre de la détection Critère {2} à {4} : dans snort : alert tcp any any <> $HOME_NET any (msg: "RC DETECT-SUIDPERL "; content:"User"; content:"tried to run" ; content:"ino"; content:"in place of dev"; content:"ino" ; content:" !" ; content:"(Filename of set-id script was ./" ; content: "uid" ; content: "gid" ; content: ".)" ; content: "Sincerly,"; content "Perl" ;)

  14. INGI 2591 : Détection Réseau Mise en œuvre de la détection Critère {2} : OK Critère {3} : Respecté car mise en série des contents = AND dans le bon ordre Critère {4} : Non respecté (ne pas accepter de chaînes contenant d ’autres chaînes que la sus-citée) car méthode lourde et pas « temps-réel ».

  15. INGI 2591 : Détection Réseau Analyse - Détection de l ’attaque : OK ( critères {2} et {3} ) - Non respect de {4} implique fausses alarmes (rares) - Non détection si mail ne passe pas sur le reseau

  16. ln -f -s /bin/passwd "lien" usleep usleep ln -f -s scriptperl "lien" suidperl "lien" INGI 2591 : Détection locale Comportement caractéristique de notre attaque Boucle principale : ( ln -f -s $SUIDBIN "$FILENAME"; usleep $RANDOM; nice -n +20 $SUIDPERL ./"$FILENAME" <./flare & ) &>/dev/null & ( usleep $RANDOM; ln -f -s /dev/stdin "$FILENAME" ) &>/dev/null & Lancement en parallèle de 2 types de processus (composés eux- mêmes de 2 ou 3 processus séquenciels) :

  17. INGI 2591 : Détection locale Stratégie de détection On essayera donc de détecter un grand nombre de processus ln et suidperl ayant lieux dans un court laps de temps. Généralité de notre méthode Les attaques de type Race Condition on souvent la caractéristique commune d’appeler une grande quantité de processus ln. Notre système de détection sera donc en mesure de détecter ces attaques. Notre système ne détectera cependant pas les appels systèmes link.

  18. INGI 2591 : Détection locale • Détection des processus en cours sur le système • Première tentative avec ps, mais la durée de ln est trop courte • donc difficilement détectable. • De plus il faut en permanence aller détecter ‘regarder’ les • processus en cours  Occupe beaucoup de ressources. • Seconde tentative (et solution choisie) avec l’accounting : • Service offert par unix • A chaque fois qu’un processus se termine, une entrée est ajoutée • au fichier de comptabilité spécifié. • Cette solution permet un processus de détection plus léger et qui • ne rate aucun processus. • Mais elle ne permet pas de connaître les arguments et ne détecte • les processus que lorsqu’ils sont terminés.

  19. INGI 2591 : Détection locale Algorithme du programme de détection Création du fichier de comptabilité acct.log; Appel de la fonction acct avec l’argument acct.log; Ouverture de acct.log en lecture; do true -> s’endort pour une seconde; Lecture dans acct.log du nombre de ln (nbln) et SUIDPERL (nbSP) qui se sont terminés durant la dernière seconde; if (nbln > LN_MAX) -> if (nbSP > SP_MAX) -> Print(ALERTE : DETECTION ATTAQUE SUIDPERL); (nbSP <= SP_MAX) -> Print(ALERTE : DETECTION ATTAQUE RACE CONDITION); fi fi od

  20. INGI 2591 : Détection locale Ajustement de la sensibilité Cela se fait au moyen de constantes LN_MAX et SP_MAX. Au plus la valeur sera grande au plus on risque de rater une attaque, au plus la valeur sera petite au plus on risque de détecter une fausse attaque. Il convient donc de trouver un juste milieu. Typiquement Le nombre de proc. ln varie entre 120 et 3000 (600 en moyenne). Pour suidperl cela varie entre 60 et 1500 (300 en moyenne). On atteint en général 50 ln par seconde (en salle) et la moitié de suidperl. Nous avons fixé LN_MAX à 30 et SP_MAX à 15.

More Related