IDS Les systèmes de détection d’intrusion
Objectifs du cours Transfert d’information  Sites Documents  intéressants Théorie  et pratique   Hacking tools  Security tools Echange d’idées et d’expériences
Schéma de la salle de test
TCP/IP Basics: Transport Layer
Transport Layer Protocols
Transport layer protocols At the transport layer we have 2 separate options : UDP  (User Datagram Protocol) - Provides a connectionless unreliable service . It allows data to be transmitted to a machine or group of machines without a need to establish a connection . There is no requirement for acknowledgment of the datagram arrived . Where broadcast is required , NFS may be the only choice . Used for example by : TFTP , NFS … TCP  (Transmission Control Protocol) - Provides a connection oriented service . A connection is like a data pipe running between 2 points only . There is no  broadcast  or  multicast  in  TCP  . TCP has all the necessary features to provide a reliable service between 2 computers . The reliability costs us in significant amount of overhead to manage acknowledgments , flow control , timers and connection management facilities . Applications that use  TCP  are : Telnet , FTP ...
Ports Both UDP and TCP use  port  addressing to deliver information to the relevant application layer services . A  port  is a 16 bit address of which a number of well known ports have been defined . If application developers create a program to work over TCP or UDP , they have to define which port they wish to use . There is a dynamic alternative to this fixed binding of  ports  . This service is called  Portmapper  (used by NFS for example) . It allows new  ports  to be defined and registered dynamically , or the  port  used by a particular service to be discovered on request .
Sockets A  socket  is a concatenation of the IP address and the port number . The  socket  reference is unique , so it gives a unique identification of an application layer service . Both UDP and TCP include the IP address and port number in their checksum calculation , to ensure that a datagram arriving at a wrong host will not be accepted by it’s application layer . Most application layer services allow multiple sessions and thus need to be able to differentiate between these sessions to ensure data is sent back to the appropriate computer . Problem  : 2 users from the same host are connected to the same application . Solution  : Well known ports are used only by server applications . Client applications select a unique port number that has not already been used .
UDP UDP  adds little to the underlying IP service , other than dealing with the problem of passing data to the correct application .  Source port  - The port number of the application layer service the datagram came from . Destination port  - The port number , the datagram is intended to . Length  - The length of the UDP datagram . Checksum  - A checksum to protect the data carried by UDP .
TCP TCP adds reliability to IP , and , like UDP provides application layer addressing through the use of ports . TCP is a connection - oriented protocol . It is not only reliable , but before transmission can commence between 2 machines , a connection must be opened . When transmission finishes , the connection is closed . The block of data which TCP passes to IP , including TCP header and application layer data is called a segment . Adding reliability requires the following facilities : Error detection and correction Flow control Resequencing Removing duplicate segments TCP adds these facilities by : Using sequence numbers to identify data Positive acknowledgments of data received in the correct sequence Retransmission of segments which have not been acknowledged within some time limit
The TCP header
The TCP header Sequence number - 32 bits In most protocols that use  sequence numbers  for error control , the  sequence numbers  count segments as they are transmitted and received . In TCP the  sequence numbers  count octets within the transmission stream . The  sequence number  in the header of a segment identifies the position in the overall data stream of the first data octet in that segment . On connection setup , new  sequence numbers  are agreed by both nodes . After a machine crash , new  sequence numbers  do not start at 0 . The  sequence number  is 32 bit , so that even in the fastest links the time taken for the same value of the counter to be valid again is very long . This means that any segment received with the same  sequence number  as one already acknowledged , can only be a duplicate . Duplicates can be freely discarded .
Acknowledgment number - 32 bits When a data sender receives a new value , it can dispose of data which was held  for possible retransmission . The  acknowledgment number  is valid only if the ACK flag is set .  The  acknowledgment number  is one greater then the octet number of the last in sequence octet received . It is therefore the same as the sequence number that will be in the next segment of immediately useful data . In TCP , it is possible to send a number of segments that have been received correctly, but have not been  acknowledged because the critical segment , which is the next in sequence , has failed to arrive . The  acknowledgment number  cannot advance until this missing segment isn’t retransmitted . Data offset Measures the offset to the start of the application data field .
Flags Used to indicate the validity of other fields and for connection control . There are 6 separate flags : URG  - Indicates that the urgent pointer field is valid . Points to the octet in the data field which is the end of the urgent data . This is data that should be processed before any other data . It can be used even if the usual data is blocked from some reason , or to interrupt programs . ACK  - Indicates that the acknowledgment field is valid. PSH  - The push flag causes the remote TCP layer to pass this segment  immediately to the application layer . In some situations such as character by character terminal operation the incoming  segments must be passed to the application , and not wait till the buffer is full . RST  - The reset flag is used when all else failed . It indicates that an error has occurred and the connection should be forcibly closed . SYN  - The synchronize flag is used at the beginning of the connection between 2 nodes . FYN  - Used to terminate connections . When there is no more data to send by one of the connection sides it sends the FIN flag . When both ends send the FIN flag , the connection is closed .
Window - 16 bit   The window advertises the amount of buffer space this node allocated to this connection The other node must not send more unacknowledged data than the buffer space  indicated . Checksum - 16 bit A basic check on header and data . Urgent pointer - 16 bit Points to the end of data in the data field that is considered urgent . It is valid only if the URG flag is set . Options  - variable length Normally there is only 1 option used with TCP and it’s : MMS (Maximum Segment Size) . It tells the destination TCP layer the maximum size of the segment (including TCP header) . Padding If the options field is valid , padding ensures that the data starts on a 32 bit boundary , so that the data offset may correctly point to it .
Connections setup phase Node 128.1.0.1 Node 128.1.0.9 SYNSEQ 921 No ACK SYNSEQ 302 ACK 922 SYNSEQ 922 ACK 303 SEQ=921 ACK=? SEQ=922 ACK=303 SEQ=302 ACK=? SEQ=302 ACK=922 SEQ=303 ACK=922
TCP ack’s for simple character  echo with host Node 128.1.0.1 Node 128.1.0.9 SEQ 92 ACK=109 Data=C SEQ 109 ACK 93 Data=C SEQ 93 ACK 110 User types C Node acknowledges reciept of C (ACK=SEQ+1= 109+1=110) C Host OS echoes back C and acknowledges receipt of C (ACK=SEQ+1=92+1=93) Operating System C
Sécurité informatique  Buts recherchés Confidentialité Intégrité des données Disponibilité des ressources Périmètre de sécurité Interne Externe (Extranet) Externe (Internet) Dial-in (RAS) Moyens Contrôle d’accès (Access control) Authentification - Identification Audit
Une approche classique ...  Des routeurs (peut-être avec des ACLs) Un ou plusieurs firewalls Un contrôle plus ou moins régulier des fichiers logs Des procédures de login standards    Est ce suffisant ?     Peut-être pas ?    Pourquoi ? Car de nombreuses vulnérabilités existent, qui peuvent être utilisées contre vous, parfois à votre insu.
Les sites intéressants http://packetstorm.securify.com/index.shtml http://www.phrack.com/archive.html http://www.attrition.org/ http://www.rootshell.com/beta/exploits.html http://www.nswc.navy.mil/ISSEC/ http://www.insecure.org/ http://www.technotronic.com/ http://www.l0pht.com/ http://www.sans.org/newlook/home.htm http://www.hackers.com/index2.htm http://www.ntsecurity.net http://www.itprc.com/security.htm
Les sites intéressants (suite) www.antionline.com http://www.cultdeadcow.com/ http://www.hackernews.com/ http://www.hackerwhacker.com/ http://black.box.sk/ http://www.securiteam.com/ http://www.securityfocus.com/ http://astalavista.box.sk/ http://www.securitysearch.net/ http://xforce.iss.net/ http://berlin.ccc.de/
Articles intéressants http://www.phrack.com http://www.gocsi.com http://packetstorm.securify.com/papers/IDS/ http://www.net-security.org/ http://www.enteract.com/~lspitz/papers.html http://seclab.cs.ucdavis.edu/papers/ http://www.sri.com/publication/publications.html http://www.cert.org http://ciac.llnl.gov http://www.first.org …  et les flux de news underground ….
Hacking: Outils et méthodes
Techniques de hacking Brute force - Password guessing Déni de service et “distributed denial of service” Spoofing  Scanning - network mapping Attaques liées à la messagerie électronique Virus  Chevaux de Troie Sniffing Attaques liées au language (CGI,Java,…) Faiblesses SNMP Vulnérabilité des OS Attaques par débordement de pile (buffer overflow) Ingénierie sociale Divers
Brute force - Password guessing  Il s’agit, à l’aide de logiciels appropriés, d’essayer de deviner une combinaison userid / password valide. Cette méthode peut être utilisée pour FTP, Telnet, POP3, IMAP, Netbios, HTTP, Cisco login et de manière générale tout protocole supportant une authentification interactive. Trois méthodes sont généralement utilisées Force brutale (Brute force) Dictionnaire (avec des “wordlists” disponibles sur Internet) Hybride
Brute force - Password guessing  Les outils à disposition Crack, Jack14 - Unix passwords L0phtcrack (avec readsmb) - NT, Glide - PWL files, Claymore (Windows) Zipcrack - Protected zip files PGPCrack, Pop3Hack - Email, WebHack - WWW - Brutus - Misc. AmiCrack - Bios cracker LPHCrack - SS et PWL cracker ExcelCrack - Excel cracker …  et bien d’autres utilitaires en cherchant un peu
Labo Le classique incontournable : L0phtcrack Comment contourner (bypasser) le screensaver: LHP Un nouveau venu - Brutus Sur un serveur FTP ou Telnet Sur un routeur ou un switch Sur un serveur HTTP
Déni de service Trois grandes catégories Les “floodings”  syn-flood log-flood data-flood Les bombes Mail bombs UDP bomb Les “dévoreurs” de ressources ou de bande passante smurf et des divers ... Ping of death, land, teardrop, winnuke Ascend ou Cisco kill
Etablissement d’une session 1. Client initiates a request to the server,  “I want to talk.”  (SYN) SYN/ACK 2. Server replies,  “I’m  ready.”   (SYN/ACK) ACK Client Server Client Server Client Server I want to talk Let’s go! I’m  ready SYN 3. Client sends acknowledgment to establish connection, “ Let’s go!”  (ACK)
Attaque SYNFLOOD 1 Client attacks server by sending a flood of SYN packets with a spoofed IP address. 2 Server tries to send SYN/ACK to unreachable IP. 3 ACK is not received from Client. Client SYN SYN SYN SYN SYN/ACK SYN/ACK IP? IP? IP? IP? Server
Parade contre SYNFLOOD Soit au niveau du routeur Commandes “intercept” - Cisco Enabling TCP intercept - ip tcp intercept list ACL number Setting the TCP intercept mode - ip tcp intercept mode {intercept¦watch} Setting the TCP intercept Drop mode - ip tcp interceptdrop-mode {oldest¦random} Changing the tcp intercept timer - ip tcp intercept watch-timeout seconds Changing aggressive threshold - ip tcp intercept max-incomplete low (and  high) monitoring - show tcp intercept connections ¦ statistics Soit au niveau du firewall Spécifique à chaque firewall Soit via un système d’IDS qui va terminer la session
Mail bombs Une bombe e-mail consiste en une série de messages postés dans votre boite aux lettres. Les logiciels de bombes e-mail automatisent le processus de bombardement. Les plus connus Kaboom!3 Avalanche 3.6 UnaBomber Gatemail Demo - Avalanche 3.6
Smurf Broadcast  echo address Source address is  spoofed to be target’s address Réseau intermédiaire Attaquant Cible Many echo replies are received by the target, since most machines on the intermediary network respond to the broadcast
Smurf (suite) Smurf est une attaque de « déni de service » qui affecte à la fois le réseau cible et le réseau intermédiaire en raison du trafic qu’elle génère. Conseil : Eviter de servir de réseau intermédiaire Pour cela , il faut bloquer les requêtes « echo broadcast » avant qu ’elles ne soient traduites en level 2 broadcast (hardware) Sur un routeur : no ip directed-broadcast Les ACLs suivantes sont également utilisées pour bloquer ce type de trafic : access-list xxx deny ip any host 192.168.255.255 access-list xxx deny ip any host 192.168.0.0
Ping of Death Internet Buffer 65535 Assaillant Cible Fragmentation Réassemblage des fragments A partir d ’un shell Windows 95, « ping -l 65510 cible »
Land Il s ’agit d ’une attaque dans laquelle l ’adresse source IP et l ’adresse de  destination IP sont identiques, de même que les ports de source et de destination. Pour fonctionner, elle doit être émise sur un port ouvert et avec le flag SYN. A réception de ce type de paquet, certains systèmes stoppent (stack IP) Filtre possible ip[12:4] = ip[16:4] and ip[12:2] = ip[16:2]
Teardrop Le « fragment reassembly code » cherche à réaligner les fragments, mais il n ’y a pas assez de data dans le deuxième fragment 1er fragment - 36 bytes 24 35 0 offset end new offset 2nd frag 36 bytes Memcpy  (*dest, *src, len) Unsigned int or unsigned long Len=end-newoffset < 0
Loki ICMP echo request or echo reply packet Loki data dans le payload   Echo request Echo reply Attaquant: peut se logger sur le serveur et lancer des commandes Serveur: Répond aux requêtes du client Note: ce principe de tunneling n’est pas limité à ICMP. Il se retrouve aussi avec HTTP et d ’autres protocoles.
Combattre les attaques ICMP Internet Réseau interne 192.168.0.0 ACL 101 ACL 102 Blocage des requêtes écho en entrée et des réponses en sortie access-list 101  deny icmp  any  192.168.0.0 0.0.255.255  echo access-list 102 deny icmp  192.168.0.0 0.0.255.255  any  echo-reply Acceptation des requêtes écho en sortie et des réponses en entrée access-list 101 permit icmp  192.168.0.0 0.0.255.255  any  echo access-list 102 permit icmp any 192.168.0.0 0.0.255.255  echo-reply
Distributed denial of service Nouvelle forme de déni de service qui permet de concentrer des attaques depuis n’importe quel point d’internet vers une cible prédéfinie .
Principe du DDOS Documents relatifs au DDOS http://www.cert.org/reports/dsit_workshop.pdf http://packetstorm.securify.com/papers/contest/ Les attaques distribuées ne sont toutefois pas une nouveauté.  Elles existent depuis longtemps pour les outils de force brute ou de décryption
Protection contre les DDOS Trin00 Ports utilisés   Attacker to master  27665/tcp Master to daemon 27444/udp Daemon to master 31335/udp Recherche de chaîne de caractères : l44
Labo “Deni de service” IGMP Nuke (kill stack IP W98) RFPoison.exe (kill Windows NT 4.0 SP6a)
Spoofing IP Définition Il s ’agit d’une technique permettant à une machine d’être authentifiée auprès d’une autre au moyen de paquets semblant émaner d’une adresse source approuvée. Étapes d’une attaque de spoofing Identifier la cible Immobiliser l’hôte dont l’adresse doit être usurpée Contrefaire l’adresse de l’hôte usurpé Se connecter à la cible en se faisant passer pour l’hôte usurpé Deviner le numéro de séquence exact demandé par la cible
Spoofing IP (suite) Moyens de lutte Sur le routeur Sur le firewall Autres types de spoofing Spofing  ARP ---> corruption du cache ARP Spoofing DNS --> corruption des tables de correspondances   Labo:   hunt.c (sur HP/UX et routeur Cisco)
Scanning TCP port scanning Utilisation d’un logiciel permettant de scanner un réseau afin de détecter les applications disponibles sur les systèmes découverts. HTTP, IMAP, POP3, DNS, Netbios, SOCKS, Telnet, FTP ...
Scanning (suite) Un “network scan” est facilement décelable si l’assaillant envoie des requêtes SYN sur le  même port pour l’ensemble des machines. Le hacker se contente dans ce cas d’analyser la réponse du système scanné. Un RSET signifie que le service est inactif, une réponse SYN-ACK signifie que le service est actif. Il est également possible de diagnostiquer un scan lorsqu’une capture de trafic montre un trafic régulier issu du même port source. Le port source permet même parfois de définir le logiciel utilisé pour le scan.
Scanning (suite) Les derniers logiciels de scan permettent d’émettre des paquets avec des ports sources aléatoires, ce qui complique la détection. Il existe de nombreuses méthodes de scan qui utilisent des combinaison de flags invalides afin de passer inapercues au yeux des systèmes de détection d’intrusion: Par exemple SYN-FIN flags simultanés pour contourner (bypasser) les IDS qui ne tracent que SYN flag ou pour tester une machine Linux qui répond au SYN-FIN par un SYN-FIN-ACK.
Scanning (suite) Methodes de filtrage Filtre sur chaque flag (avec tcpdump par exemple) Byte 13 of the TCP header Syn flag set: tcp[13] & 0x02 != 0 Ack flag set: tcp[13] & 0x10 != 0 Rst flag set: tcp[13] & 0x04 != 0 Fin flag set: tcp[13] & 0x01 != 0 Psh flag set: tcp[13] & 0x08 != 0 Urg flag set: tcp[13] & 0x20 != 0 No flag set: tcp[13] & 0x3f  != 0 Exemple de filtrage : tcp and (dst port 80) and (tcp[13] & 0x02 != 0) and (tcp[13] & 0x10 =0) teste le SYN flag (set) et le ACK flag (no set) X U A S F R P X
Scanning (suite) Comment bloquer un scan Au niveau du routeur ; access-list 1xx permit tcp any 192.168.0.0 0.0.255.255 established Permet l’initialisation des connections in--> out, mais pas out-->in Blocage au niveau d’un port particulier access-list 1xx deny tcp any 192.168.0.0. 0.0.255.255 eq 1999 D’une manière plus précise access-list 1xx permit tcp any host 192.168.2.2 eq 53 access-list 1xx permit tcp any host 192.168.1.1 eq 53 established access-list 1xx deny tcp any 192.168.0.0 0.0.255.255 eq 53
Scanning (suite) Windows NTOScanner 1.26 7th Spher Portscan Hoppa PortScanner YASP Unix strobe nmap queso domscan Hping Labo NMAP (en mode étendu) Les outils
Network mapping Le contenu de cette page sera communiqué ultérieurement
Attaques e-mail Outre les bombes e-mail (ou spamming), il existe d’autres problèmes majeurs dans le domaine de la messagerie. Les liaisons de listes Le relais de courrier Problème Attaques insidieuses qui nécessitent l’annulation de l’inscription à chaque liste. Un logiciel de messagerie puissant permettra également la mise en place de filtres Mesures à prendre Filtres de courrier Plan d ’exclusion Fichiers de destruction (kill) Changer d ’adresse e-mail si rien d ’autre fonctionne
Font partie des dispositifs destructeurs les plus dangereux. Outre le « déni de service », beaucoup d’entre eux occasionnent des pertes de données, voire l’invalidation totale d’une machine Plusieurs types MBR virus Virus de secteur d’amorçage Virus de fichiers Virus furtifs - Présente à l’OS des données non infectées Virus polymorphes - Se modifient lors de leur propagation (mutation) Création de virus - kits en libre accès Virus Creation Laboratories Virus Factory Virus Creation 2000 Virus Construction set The Windows Virus Engine Les virus
Les chevaux de Troie Principe: Un cheval de Troie est un programme (X) dissimulé à l’intérieur d’un autre programme (Y). Lors de l’activation du programme (Y), le programme (X) s’active également et ouvre des “portes dérobées” sur votre machine. Infection: Téléchargement de logiciels sur des sites douteux Faux amis rencontrés sur le “Net” Médias déjà infectés Conséquences courantes: Suppression de données  Vol de données Mise en état instable de la station de travail Espionnage (sonore et visuel) Vol et/ou modification des mots de passe Divers
Liste non exhaustive Netbus Pro   6400 Netbus 1.x 12346 BackOrifice 31337 Deep Throath   6670 Master Paradise   31 Millenium 20000 Netmonitor   7306 Socket23 30303 Icq Trojen   4950 Vodoo   1245 Stealth Spy   555 Attack FTP   666 Senna Spy 11000 Progenic 11223 Backdoor   1999 Portal of Doom   9875 AOL Trojan 1.1 30029 Illusion Mailer   5521 Bla 20331 Kuang 2 17300 Aujourd’hui des  CENTAINES  de chevaux de Troie circulent. Il existe même des outils pour en générer sans programmation !!!
Trojans & Trojan generators Quelques outils Netbus SubSeven MasterParadise Backorifice Trojan TCP Wrapper Labo SubSeven 2.1
Sniffers Programmes qui capturent les paquets qui circulent sur un réseau.  Initialement, outils de debugging permettant l’identification des problèmes. Risques inhérents à l ’utilisation des sniffers: Capture des sessions Capture des identifiants utilisateurs et des mots de passe Bypass de certaines normes de sécurité Sniffers commerciaux: NetXray, Microsoft Network Analyzer, HP Advisor,Shomiti Lan Analyzer, RadCom Analyzer, Triticom LanDecoder32, Network General Sniffer Sniffers freeware: Esniff, Snoop, Gobbler, ETHLoad, NetMan, LinSniff, SunSniff Des sniffers qui se cachent sous d’autres termes: Abirnet SessionWall
Sniffers (suite) Détection des sniffers Un sniffer est par principe difficile à détecter car il est passif. Deux méthodes sont possibles: Soit sur une machine: en utilisant une somme de contrôle des fichiers (MD5) et en la comparant à la somme de contrôle initiale Soit dans un réseau : dans ce cas, il faudra prendre en compte l’hétérogénéité des systèmes du réseau afin d ’entreprendre une démarche qui reste aléatoire
Sniffers (suite) Détection des sniffers Outils permettant l ’aide à la détection: Snifftest NitWit Promisc Autres précautions: Utiliser une topologie sécurisée (réseau switché, routeurs,…) Encrypter les sessions
Sniffer (labo) Abirnet (installation et utilisation) Snoop NetXray LinSniff
Sécurité des langages : CGI CGI permet aux serveurs Web de transmettre d’autres informations à des clients web que du simple affichage de texte ou de fichiers HTML. Pour ce faire, CGI va utiliser des langages de programmation tels que : Perl Les shells C ou C++ TCL, etc…
CGI (suite) Il existe de nombreuses faiblesses dans les programmes CGI, qui peuvent être utilisées par un « hacker » pour exécuter des commandes sur le serveur avec l ’UID du serveur web. Exemples: CGI + Perl sans contrôle des chaînes de caractères rentrées par l ’utilisateur Exécution de scripts en mode privilégiés Inclusion de documents sur le serveur via SSI <!…#exec cmd=‘ commande ’ …>
 
Sécurité des languages Quelques outils Retina VoidEye CGIScan Labo HTTP server guess CGI Check Retina Compromission d’un serveur (explication théorique)
Problèmes liés à Java/ActiveX Java est-il potentiellement dangereux ? Oui Peut-on le rendre inoffensif ? Pas totalement Assiste-t-on à des améliorations en terme de sécurité ? Oui (entre autre introduction de routines de cryptographie) Les risques réels Deni de service (browsers ou % utilisation CPU) Compromission de DNS (via compromission du proxy) Vol de données (infos de login par exemple) Bogue de confidentialité Virus “java based”
Problèmes liés à Java/ActiveX ActiveX permet à du code binaire quelconque d’être exécuté. Un composant ActiveX malveillant peut donc être écrit pour supprimer ou modifier des fichiers sur le disque dur d’un utilisateur ou pour effectuer des connexions avec d’autres  ordinateurs à l’insu de l’utilisateur. Risque de virus associé également. Visite de  http://metro.to/mladue/hostile-applets/index.html Demo de quelques applets Finjan
SNMP SNMP est utilisé pour la gestion des composants actifs d’un réseau Au travers de SNMP, il est possible d’obtenir des données concernant: Hardware & software profile Données dynamiques en temps réel Topologie de réseau Données dynamiques en temps réel Données administratives Données statiques définies manuellement. Au travers de SNMP, il est donc possible de modifier les paramètres administratifs L’accès aux variables est protégé par un “community name” ) SNMP V1
SNMP (suite) Prévention contre les attaques SNMP Stratégie de mots de passe  Filtrage du trafic SNMP Suppression du service SNMP sur les équipement ou il n’est pas utilisé Outils Scotty BTT Software SNMP Trap Watcher remote DoS attack Labo Mibrowser (routeur ou switch)
Vulnérabilités des OS Windows NT TCP sequence prediction Obtention des droits administrateurs DoS spécifiques NT/98/95 Unix Linux suze util pkg Solaris Solstice Internet Mail IMAP4 Server x86 exploit Cisco Cisco 7xx password buffer overflow CISCO PIX Vulnerability, cracking the 48 bit DES Decrypts encrypted Cisco password files Netware Perl.NLM - Netware 4.1x et IntranetWare Attaque du protocole de connexion Novell 3.12 DOS 100% CPU usage - Meltman
Vulnérabilités des OS - Labo Le contenu de cette page sera communiqué ultérieurement
Définition Débordement de capacité du tampon mémoire utilisé en saisie. Une attaque basée sur un BoF va permettre l’obtention d’un shell ayant les prérogatives de l’application à partir de laquelle il a été exécuté. Exemples récents Cfingerd 1.3.3 (*BSD) remote root buffer overflow exploit CERN 3.0A Heap overflow War-ftpd for Windows95/98/NT is vulnerable to a buffer overflow in the MKD/CWD commands until version 1.71-0 Subseven 2.1a BoF causing it to quit quietly or crash Certains outils de stress permettent la recherche systématique des BoF dans les applications Blast NTO Scanner Débordement de pile - BoF
Divers Keyloggers Souvent installé au travers d’un cheval de Troie. Permettent l’enregistrement des touches frappées sur une machine client.  Les keyloggers evolués transmettent de manière régulière les fichiers ainsi capturés à l ’assaillant. Hooker - Key logger avec support SMTP  Wardialer Accès au réseau interne par une porte dérobée (modem, TA,…) Steganographie C’est le moyen de communiquer en cachant des messages à l’intérieur de fichiers considérés comme inoffensifs, ceci de manière indétectable (sauf si …)
Divers (suite) Démonstration: Fichier source : winnt256.bmp 157 ’042 bytes Fichier à « cacher » : nc.exe 59 ’392 bytes Fichier résultat : test.bmp 157 ’042 bytes Utilisation de compression, d ’encryption (IDEA) et d ’une « passphrase »
Hacking ou sécurité ? Freeware/Shareware Nessus NSS Satan Ogre Asmodeus Produits commerciaux Internet Security Scanner S3 Netsonar Axent Ballista IBM Network Scurity Auditor Scanners de vulnérabilités
Labo Nessus ISS Scanners de vulnérabilités
Après les risques, les mesures de précaution
Systèmes de détection d’intrusion Network based IDS  Host based IDS Firewalls Honeypots
Network based IDS Analyse des données capturées Visualisation - Reporting FW ou routeur Internet Réseau interne Supervision du trafic Principe : Une ou plusieurs sondes qui réfèrent à une console
Caractéristiques des NIDS La plupart du temps, utilisés sur les points d’entrée-sortie du réseau Avantages Faciles à mettre en oeuvre N’affectent pas le réseau (non obstrusive) En cas d’arrêt, pas d’incidence sur la connectivité Inconvénients Les sondes sont limitées en termes de performance (high speed networks) Impossibilité de détecter une attaque qui n’est pas dans le ruleset Ne détecte pas toujours la source des attaques (smurf, spoofing) Si le hacker tente une pénétration lente du réseau sur une longue période, le NIDS ne pourra pas tout logger (taille des logs)
Host based IDS  Analyse des données capturées Visualisation - Reporting Internet Réseau interne IDS host agent  Principe : Des agents sur les machines sensibles qui réfèrent à une console FW/Router
Host based IDS Sont apparus pour combler les limites des NIDS Réseaux à haute vitesse Les NIDS ne vont guère au delà de 80-100 Mb/sec Exigent des plates-formes onéreuses pour maintenir les performances Réseaux switchés Les NIDS fonctionnent avec des cartes en mode “promiscuous”, ce qui n’est pas compatible avec les environnements switchés La détection dans le switch n’est pas encore disponible La réplication de ports a des limites Besoin de sécurité/contrôle sur le réseau interne Les hosts sur lesquels les agents IDS sont installés monitorent leurs propres connections réseau, mais aussi le status du file system . Possibilité de reporting/alerting local, mais plus souvent centralisé
Anomaly detection Il existe deux types de détections.  Le premier  est basé sur l’analyse statistique du trafic et des anomalies constatées Thresholds (ex failed logins) Counters (file read per user) avec algorithmes de pondération Avantages Plateforme moins “gourmande” em terme de mémoire Permet une adaptation dans le temps (période avec statistiques différentes) Simple à paramétrer pour certains types d’évènements (failed login) Inconvénients Approche statistique pas toujours possible Comment définir la norme ? Hacker peuvent utiliser des méthodes non détectables Problème des personnes avec plusieurs logins Comment définir des seuils de manière pertinente ? (expérience requise)
Pattern matching Le deuxième type  de détection  fonctionne sur le même principe qu’un AV en détection de signatures. Individuals patterns: événements, sequences d’événements, seuils, … Expressions (avec opérateurs) Combinaisons Avantages Flexibilité - Choix du traffic à surveiller Plus efficace car n’est pas basé sur une analyse statistique Inconvénients Evolution de la base de données des signatures Pas de langage de programmation (en général) - si disponible, peu convivial Mise à jour différée --> sensible aux dernières attaques Pas d’apprentissage automatique
Real time or interval based Les scanners de vulnérabilités permettent la détection des failles de sécurité. Ils sont exécutés à intervalles plus ou moins réguliers (schedule) et donnent une image instantanée de la sécurité du réseau et des systems. Limite : Il se peut qu’une faille soit découverte après qu’elle ait été exploitée par un hacker. Il est donc préférable d’utiliser un moniteur en temps réel qui permettra une réaction immédiate, manuelle ou automatisée.
Freeware/shareware Unix TCP Wrappers Shadow CMDS NT Nuke Nabber Syshield Les outils disponibles Sans TCP Wrappers Avec TCP Wrappers Inetd.conf 21  ftp 23  telnet 21 TCP Inetd.conf 21  ftp 23  telnet Log access Check ACL call inetd 21 TCP
Les outils commerciaux ISS realsecure Cisco NetRanger Network Flight Recorder NAI Cybercop  RSA Kane Platinum SessionWall-3 Axent Intruder Alert
Labo - IDS tools Nuke Nabber Utilisation ISS RealSecure Concept Installation Configuration Reporting
Compléments aux IDS Honeypots Machine qui sert de leurre. Abrite des services qui vont simuler une cible réelle aux yeux des attaquants Permet l’obtention d’un log file avec la source IP, la dest. IP, le dest. Port, la date, l’heure et différentes informations propres au process. Exemples: Deception Toolkit NAI Cybercop Sting Recourse ManTrap Firewalls FW-1 Lucent Firewall Analyseurs de logs
Compléments aux IDS (suite) File integrity checking Labo  :  Tripwire FIREWALL NETWORK-BASED INTRUSION DETECTION LOG ANALYZER TARGET-BASED FILE INTEGRITY ASSESSMENT
How Does Tripwire Work? 10110011000010100 10001001111010100 10011111101000100 10000001011110101 11000100111011001 BeXtw+/deQsQ4EJApaF6RR File content integrity  assured using crypto- graphic signatures. Cryptographic algorithms produce a fixed length signature or “hash.”
How Does Tripwire Work? From rules defined in a  policy file, Tripwire creates a baseline database of the  filesystem.  It stores this  baseline in the  database file . Database File Policy File =   cryptographic signature
=? ? Database File System’s current file structure How Does Tripwire Work? The system can then be checked against the baseline database for any unauthorized changes. =   cryptographic signature
How Does Tripwire Work? Database File = ! Report Viewer Email containing reports Syslog/ Event Log If a violation is found,  reports can be emailed  to administrators, dropped  to syslog or be viewed from the machine being  monitored.
Centralized Reporting Specific Reports Specific violations that occurred for each rule Identifies what element changed Different rules within each report
Centralized Reporting  Violations Report List of violations for all open reports Selection will bring up violation detail in right window
Centralized Reporting Search & Filter Violation search based on minimum severity of 66 Selecting will bring up violation detail in right window
TEC NT Console Interface List of TEC Agents that are managed by TEC Console Pie chart shows that all the Agents are up and running
Gestion des incidents Réponse automatique Interaction entre le système IDS et le routeur/firewall Drop connection Bloque l’adresse IP Risque cependant de DoS Problème d’interopérabilité entre les différents éléments de la plate-forme IDS Travaux en cours sur un langage de gestion de l’information qui permettrait l’interopérabilité : CIDF (common intrusion detection framework) Réponse manuelle Définition du plan d’action Documentation de l’événement Enregistrement (si possible)
Questions et réponses Discussion
Bibliographie Tout livre ou référence utilisé pour l’élaboration de ce document est mentionné ci-dessous : TCP/IP:  Running a  Successful  Network Kevin Washburn,Jim Evans / Hardcover / Addison Wesley Longman, Inc. / 1996

Ethical Hacking

  • 1.
    IDS Les systèmesde détection d’intrusion
  • 2.
    Objectifs du coursTransfert d’information Sites Documents intéressants Théorie et pratique Hacking tools Security tools Echange d’idées et d’expériences
  • 3.
    Schéma de lasalle de test
  • 4.
  • 5.
  • 6.
    Transport layer protocolsAt the transport layer we have 2 separate options : UDP (User Datagram Protocol) - Provides a connectionless unreliable service . It allows data to be transmitted to a machine or group of machines without a need to establish a connection . There is no requirement for acknowledgment of the datagram arrived . Where broadcast is required , NFS may be the only choice . Used for example by : TFTP , NFS … TCP (Transmission Control Protocol) - Provides a connection oriented service . A connection is like a data pipe running between 2 points only . There is no broadcast or multicast in TCP . TCP has all the necessary features to provide a reliable service between 2 computers . The reliability costs us in significant amount of overhead to manage acknowledgments , flow control , timers and connection management facilities . Applications that use TCP are : Telnet , FTP ...
  • 7.
    Ports Both UDPand TCP use port addressing to deliver information to the relevant application layer services . A port is a 16 bit address of which a number of well known ports have been defined . If application developers create a program to work over TCP or UDP , they have to define which port they wish to use . There is a dynamic alternative to this fixed binding of ports . This service is called Portmapper (used by NFS for example) . It allows new ports to be defined and registered dynamically , or the port used by a particular service to be discovered on request .
  • 8.
    Sockets A socket is a concatenation of the IP address and the port number . The socket reference is unique , so it gives a unique identification of an application layer service . Both UDP and TCP include the IP address and port number in their checksum calculation , to ensure that a datagram arriving at a wrong host will not be accepted by it’s application layer . Most application layer services allow multiple sessions and thus need to be able to differentiate between these sessions to ensure data is sent back to the appropriate computer . Problem : 2 users from the same host are connected to the same application . Solution : Well known ports are used only by server applications . Client applications select a unique port number that has not already been used .
  • 9.
    UDP UDP adds little to the underlying IP service , other than dealing with the problem of passing data to the correct application . Source port - The port number of the application layer service the datagram came from . Destination port - The port number , the datagram is intended to . Length - The length of the UDP datagram . Checksum - A checksum to protect the data carried by UDP .
  • 10.
    TCP TCP addsreliability to IP , and , like UDP provides application layer addressing through the use of ports . TCP is a connection - oriented protocol . It is not only reliable , but before transmission can commence between 2 machines , a connection must be opened . When transmission finishes , the connection is closed . The block of data which TCP passes to IP , including TCP header and application layer data is called a segment . Adding reliability requires the following facilities : Error detection and correction Flow control Resequencing Removing duplicate segments TCP adds these facilities by : Using sequence numbers to identify data Positive acknowledgments of data received in the correct sequence Retransmission of segments which have not been acknowledged within some time limit
  • 11.
  • 12.
    The TCP headerSequence number - 32 bits In most protocols that use sequence numbers for error control , the sequence numbers count segments as they are transmitted and received . In TCP the sequence numbers count octets within the transmission stream . The sequence number in the header of a segment identifies the position in the overall data stream of the first data octet in that segment . On connection setup , new sequence numbers are agreed by both nodes . After a machine crash , new sequence numbers do not start at 0 . The sequence number is 32 bit , so that even in the fastest links the time taken for the same value of the counter to be valid again is very long . This means that any segment received with the same sequence number as one already acknowledged , can only be a duplicate . Duplicates can be freely discarded .
  • 13.
    Acknowledgment number -32 bits When a data sender receives a new value , it can dispose of data which was held for possible retransmission . The acknowledgment number is valid only if the ACK flag is set . The acknowledgment number is one greater then the octet number of the last in sequence octet received . It is therefore the same as the sequence number that will be in the next segment of immediately useful data . In TCP , it is possible to send a number of segments that have been received correctly, but have not been acknowledged because the critical segment , which is the next in sequence , has failed to arrive . The acknowledgment number cannot advance until this missing segment isn’t retransmitted . Data offset Measures the offset to the start of the application data field .
  • 14.
    Flags Used toindicate the validity of other fields and for connection control . There are 6 separate flags : URG - Indicates that the urgent pointer field is valid . Points to the octet in the data field which is the end of the urgent data . This is data that should be processed before any other data . It can be used even if the usual data is blocked from some reason , or to interrupt programs . ACK - Indicates that the acknowledgment field is valid. PSH - The push flag causes the remote TCP layer to pass this segment immediately to the application layer . In some situations such as character by character terminal operation the incoming segments must be passed to the application , and not wait till the buffer is full . RST - The reset flag is used when all else failed . It indicates that an error has occurred and the connection should be forcibly closed . SYN - The synchronize flag is used at the beginning of the connection between 2 nodes . FYN - Used to terminate connections . When there is no more data to send by one of the connection sides it sends the FIN flag . When both ends send the FIN flag , the connection is closed .
  • 15.
    Window - 16bit The window advertises the amount of buffer space this node allocated to this connection The other node must not send more unacknowledged data than the buffer space indicated . Checksum - 16 bit A basic check on header and data . Urgent pointer - 16 bit Points to the end of data in the data field that is considered urgent . It is valid only if the URG flag is set . Options - variable length Normally there is only 1 option used with TCP and it’s : MMS (Maximum Segment Size) . It tells the destination TCP layer the maximum size of the segment (including TCP header) . Padding If the options field is valid , padding ensures that the data starts on a 32 bit boundary , so that the data offset may correctly point to it .
  • 16.
    Connections setup phaseNode 128.1.0.1 Node 128.1.0.9 SYNSEQ 921 No ACK SYNSEQ 302 ACK 922 SYNSEQ 922 ACK 303 SEQ=921 ACK=? SEQ=922 ACK=303 SEQ=302 ACK=? SEQ=302 ACK=922 SEQ=303 ACK=922
  • 17.
    TCP ack’s forsimple character echo with host Node 128.1.0.1 Node 128.1.0.9 SEQ 92 ACK=109 Data=C SEQ 109 ACK 93 Data=C SEQ 93 ACK 110 User types C Node acknowledges reciept of C (ACK=SEQ+1= 109+1=110) C Host OS echoes back C and acknowledges receipt of C (ACK=SEQ+1=92+1=93) Operating System C
  • 18.
    Sécurité informatique Buts recherchés Confidentialité Intégrité des données Disponibilité des ressources Périmètre de sécurité Interne Externe (Extranet) Externe (Internet) Dial-in (RAS) Moyens Contrôle d’accès (Access control) Authentification - Identification Audit
  • 19.
    Une approche classique... Des routeurs (peut-être avec des ACLs) Un ou plusieurs firewalls Un contrôle plus ou moins régulier des fichiers logs Des procédures de login standards  Est ce suffisant ?  Peut-être pas ?  Pourquoi ? Car de nombreuses vulnérabilités existent, qui peuvent être utilisées contre vous, parfois à votre insu.
  • 20.
    Les sites intéressantshttp://packetstorm.securify.com/index.shtml http://www.phrack.com/archive.html http://www.attrition.org/ http://www.rootshell.com/beta/exploits.html http://www.nswc.navy.mil/ISSEC/ http://www.insecure.org/ http://www.technotronic.com/ http://www.l0pht.com/ http://www.sans.org/newlook/home.htm http://www.hackers.com/index2.htm http://www.ntsecurity.net http://www.itprc.com/security.htm
  • 21.
    Les sites intéressants(suite) www.antionline.com http://www.cultdeadcow.com/ http://www.hackernews.com/ http://www.hackerwhacker.com/ http://black.box.sk/ http://www.securiteam.com/ http://www.securityfocus.com/ http://astalavista.box.sk/ http://www.securitysearch.net/ http://xforce.iss.net/ http://berlin.ccc.de/
  • 22.
    Articles intéressants http://www.phrack.comhttp://www.gocsi.com http://packetstorm.securify.com/papers/IDS/ http://www.net-security.org/ http://www.enteract.com/~lspitz/papers.html http://seclab.cs.ucdavis.edu/papers/ http://www.sri.com/publication/publications.html http://www.cert.org http://ciac.llnl.gov http://www.first.org … et les flux de news underground ….
  • 23.
  • 24.
    Techniques de hackingBrute force - Password guessing Déni de service et “distributed denial of service” Spoofing Scanning - network mapping Attaques liées à la messagerie électronique Virus Chevaux de Troie Sniffing Attaques liées au language (CGI,Java,…) Faiblesses SNMP Vulnérabilité des OS Attaques par débordement de pile (buffer overflow) Ingénierie sociale Divers
  • 25.
    Brute force -Password guessing Il s’agit, à l’aide de logiciels appropriés, d’essayer de deviner une combinaison userid / password valide. Cette méthode peut être utilisée pour FTP, Telnet, POP3, IMAP, Netbios, HTTP, Cisco login et de manière générale tout protocole supportant une authentification interactive. Trois méthodes sont généralement utilisées Force brutale (Brute force) Dictionnaire (avec des “wordlists” disponibles sur Internet) Hybride
  • 26.
    Brute force -Password guessing Les outils à disposition Crack, Jack14 - Unix passwords L0phtcrack (avec readsmb) - NT, Glide - PWL files, Claymore (Windows) Zipcrack - Protected zip files PGPCrack, Pop3Hack - Email, WebHack - WWW - Brutus - Misc. AmiCrack - Bios cracker LPHCrack - SS et PWL cracker ExcelCrack - Excel cracker … et bien d’autres utilitaires en cherchant un peu
  • 27.
    Labo Le classiqueincontournable : L0phtcrack Comment contourner (bypasser) le screensaver: LHP Un nouveau venu - Brutus Sur un serveur FTP ou Telnet Sur un routeur ou un switch Sur un serveur HTTP
  • 28.
    Déni de serviceTrois grandes catégories Les “floodings” syn-flood log-flood data-flood Les bombes Mail bombs UDP bomb Les “dévoreurs” de ressources ou de bande passante smurf et des divers ... Ping of death, land, teardrop, winnuke Ascend ou Cisco kill
  • 29.
    Etablissement d’une session1. Client initiates a request to the server, “I want to talk.” (SYN) SYN/ACK 2. Server replies, “I’m ready.” (SYN/ACK) ACK Client Server Client Server Client Server I want to talk Let’s go! I’m ready SYN 3. Client sends acknowledgment to establish connection, “ Let’s go!” (ACK)
  • 30.
    Attaque SYNFLOOD 1Client attacks server by sending a flood of SYN packets with a spoofed IP address. 2 Server tries to send SYN/ACK to unreachable IP. 3 ACK is not received from Client. Client SYN SYN SYN SYN SYN/ACK SYN/ACK IP? IP? IP? IP? Server
  • 31.
    Parade contre SYNFLOODSoit au niveau du routeur Commandes “intercept” - Cisco Enabling TCP intercept - ip tcp intercept list ACL number Setting the TCP intercept mode - ip tcp intercept mode {intercept¦watch} Setting the TCP intercept Drop mode - ip tcp interceptdrop-mode {oldest¦random} Changing the tcp intercept timer - ip tcp intercept watch-timeout seconds Changing aggressive threshold - ip tcp intercept max-incomplete low (and high) monitoring - show tcp intercept connections ¦ statistics Soit au niveau du firewall Spécifique à chaque firewall Soit via un système d’IDS qui va terminer la session
  • 32.
    Mail bombs Unebombe e-mail consiste en une série de messages postés dans votre boite aux lettres. Les logiciels de bombes e-mail automatisent le processus de bombardement. Les plus connus Kaboom!3 Avalanche 3.6 UnaBomber Gatemail Demo - Avalanche 3.6
  • 33.
    Smurf Broadcast echo address Source address is spoofed to be target’s address Réseau intermédiaire Attaquant Cible Many echo replies are received by the target, since most machines on the intermediary network respond to the broadcast
  • 34.
    Smurf (suite) Smurfest une attaque de « déni de service » qui affecte à la fois le réseau cible et le réseau intermédiaire en raison du trafic qu’elle génère. Conseil : Eviter de servir de réseau intermédiaire Pour cela , il faut bloquer les requêtes « echo broadcast » avant qu ’elles ne soient traduites en level 2 broadcast (hardware) Sur un routeur : no ip directed-broadcast Les ACLs suivantes sont également utilisées pour bloquer ce type de trafic : access-list xxx deny ip any host 192.168.255.255 access-list xxx deny ip any host 192.168.0.0
  • 35.
    Ping of DeathInternet Buffer 65535 Assaillant Cible Fragmentation Réassemblage des fragments A partir d ’un shell Windows 95, « ping -l 65510 cible »
  • 36.
    Land Il s ’agitd ’une attaque dans laquelle l ’adresse source IP et l ’adresse de destination IP sont identiques, de même que les ports de source et de destination. Pour fonctionner, elle doit être émise sur un port ouvert et avec le flag SYN. A réception de ce type de paquet, certains systèmes stoppent (stack IP) Filtre possible ip[12:4] = ip[16:4] and ip[12:2] = ip[16:2]
  • 37.
    Teardrop Le « fragmentreassembly code » cherche à réaligner les fragments, mais il n ’y a pas assez de data dans le deuxième fragment 1er fragment - 36 bytes 24 35 0 offset end new offset 2nd frag 36 bytes Memcpy (*dest, *src, len) Unsigned int or unsigned long Len=end-newoffset < 0
  • 38.
    Loki ICMP echorequest or echo reply packet Loki data dans le payload Echo request Echo reply Attaquant: peut se logger sur le serveur et lancer des commandes Serveur: Répond aux requêtes du client Note: ce principe de tunneling n’est pas limité à ICMP. Il se retrouve aussi avec HTTP et d ’autres protocoles.
  • 39.
    Combattre les attaquesICMP Internet Réseau interne 192.168.0.0 ACL 101 ACL 102 Blocage des requêtes écho en entrée et des réponses en sortie access-list 101 deny icmp any 192.168.0.0 0.0.255.255 echo access-list 102 deny icmp 192.168.0.0 0.0.255.255 any echo-reply Acceptation des requêtes écho en sortie et des réponses en entrée access-list 101 permit icmp 192.168.0.0 0.0.255.255 any echo access-list 102 permit icmp any 192.168.0.0 0.0.255.255 echo-reply
  • 40.
    Distributed denial ofservice Nouvelle forme de déni de service qui permet de concentrer des attaques depuis n’importe quel point d’internet vers une cible prédéfinie .
  • 41.
    Principe du DDOSDocuments relatifs au DDOS http://www.cert.org/reports/dsit_workshop.pdf http://packetstorm.securify.com/papers/contest/ Les attaques distribuées ne sont toutefois pas une nouveauté. Elles existent depuis longtemps pour les outils de force brute ou de décryption
  • 42.
    Protection contre lesDDOS Trin00 Ports utilisés Attacker to master 27665/tcp Master to daemon 27444/udp Daemon to master 31335/udp Recherche de chaîne de caractères : l44
  • 43.
    Labo “Deni deservice” IGMP Nuke (kill stack IP W98) RFPoison.exe (kill Windows NT 4.0 SP6a)
  • 44.
    Spoofing IP DéfinitionIl s ’agit d’une technique permettant à une machine d’être authentifiée auprès d’une autre au moyen de paquets semblant émaner d’une adresse source approuvée. Étapes d’une attaque de spoofing Identifier la cible Immobiliser l’hôte dont l’adresse doit être usurpée Contrefaire l’adresse de l’hôte usurpé Se connecter à la cible en se faisant passer pour l’hôte usurpé Deviner le numéro de séquence exact demandé par la cible
  • 45.
    Spoofing IP (suite)Moyens de lutte Sur le routeur Sur le firewall Autres types de spoofing Spofing ARP ---> corruption du cache ARP Spoofing DNS --> corruption des tables de correspondances Labo: hunt.c (sur HP/UX et routeur Cisco)
  • 46.
    Scanning TCP portscanning Utilisation d’un logiciel permettant de scanner un réseau afin de détecter les applications disponibles sur les systèmes découverts. HTTP, IMAP, POP3, DNS, Netbios, SOCKS, Telnet, FTP ...
  • 47.
    Scanning (suite) Un“network scan” est facilement décelable si l’assaillant envoie des requêtes SYN sur le même port pour l’ensemble des machines. Le hacker se contente dans ce cas d’analyser la réponse du système scanné. Un RSET signifie que le service est inactif, une réponse SYN-ACK signifie que le service est actif. Il est également possible de diagnostiquer un scan lorsqu’une capture de trafic montre un trafic régulier issu du même port source. Le port source permet même parfois de définir le logiciel utilisé pour le scan.
  • 48.
    Scanning (suite) Lesderniers logiciels de scan permettent d’émettre des paquets avec des ports sources aléatoires, ce qui complique la détection. Il existe de nombreuses méthodes de scan qui utilisent des combinaison de flags invalides afin de passer inapercues au yeux des systèmes de détection d’intrusion: Par exemple SYN-FIN flags simultanés pour contourner (bypasser) les IDS qui ne tracent que SYN flag ou pour tester une machine Linux qui répond au SYN-FIN par un SYN-FIN-ACK.
  • 49.
    Scanning (suite) Methodesde filtrage Filtre sur chaque flag (avec tcpdump par exemple) Byte 13 of the TCP header Syn flag set: tcp[13] & 0x02 != 0 Ack flag set: tcp[13] & 0x10 != 0 Rst flag set: tcp[13] & 0x04 != 0 Fin flag set: tcp[13] & 0x01 != 0 Psh flag set: tcp[13] & 0x08 != 0 Urg flag set: tcp[13] & 0x20 != 0 No flag set: tcp[13] & 0x3f != 0 Exemple de filtrage : tcp and (dst port 80) and (tcp[13] & 0x02 != 0) and (tcp[13] & 0x10 =0) teste le SYN flag (set) et le ACK flag (no set) X U A S F R P X
  • 50.
    Scanning (suite) Commentbloquer un scan Au niveau du routeur ; access-list 1xx permit tcp any 192.168.0.0 0.0.255.255 established Permet l’initialisation des connections in--> out, mais pas out-->in Blocage au niveau d’un port particulier access-list 1xx deny tcp any 192.168.0.0. 0.0.255.255 eq 1999 D’une manière plus précise access-list 1xx permit tcp any host 192.168.2.2 eq 53 access-list 1xx permit tcp any host 192.168.1.1 eq 53 established access-list 1xx deny tcp any 192.168.0.0 0.0.255.255 eq 53
  • 51.
    Scanning (suite) WindowsNTOScanner 1.26 7th Spher Portscan Hoppa PortScanner YASP Unix strobe nmap queso domscan Hping Labo NMAP (en mode étendu) Les outils
  • 52.
    Network mapping Lecontenu de cette page sera communiqué ultérieurement
  • 53.
    Attaques e-mail Outreles bombes e-mail (ou spamming), il existe d’autres problèmes majeurs dans le domaine de la messagerie. Les liaisons de listes Le relais de courrier Problème Attaques insidieuses qui nécessitent l’annulation de l’inscription à chaque liste. Un logiciel de messagerie puissant permettra également la mise en place de filtres Mesures à prendre Filtres de courrier Plan d ’exclusion Fichiers de destruction (kill) Changer d ’adresse e-mail si rien d ’autre fonctionne
  • 54.
    Font partie desdispositifs destructeurs les plus dangereux. Outre le « déni de service », beaucoup d’entre eux occasionnent des pertes de données, voire l’invalidation totale d’une machine Plusieurs types MBR virus Virus de secteur d’amorçage Virus de fichiers Virus furtifs - Présente à l’OS des données non infectées Virus polymorphes - Se modifient lors de leur propagation (mutation) Création de virus - kits en libre accès Virus Creation Laboratories Virus Factory Virus Creation 2000 Virus Construction set The Windows Virus Engine Les virus
  • 55.
    Les chevaux deTroie Principe: Un cheval de Troie est un programme (X) dissimulé à l’intérieur d’un autre programme (Y). Lors de l’activation du programme (Y), le programme (X) s’active également et ouvre des “portes dérobées” sur votre machine. Infection: Téléchargement de logiciels sur des sites douteux Faux amis rencontrés sur le “Net” Médias déjà infectés Conséquences courantes: Suppression de données Vol de données Mise en état instable de la station de travail Espionnage (sonore et visuel) Vol et/ou modification des mots de passe Divers
  • 56.
    Liste non exhaustiveNetbus Pro 6400 Netbus 1.x 12346 BackOrifice 31337 Deep Throath 6670 Master Paradise 31 Millenium 20000 Netmonitor 7306 Socket23 30303 Icq Trojen 4950 Vodoo 1245 Stealth Spy 555 Attack FTP 666 Senna Spy 11000 Progenic 11223 Backdoor 1999 Portal of Doom 9875 AOL Trojan 1.1 30029 Illusion Mailer 5521 Bla 20331 Kuang 2 17300 Aujourd’hui des CENTAINES de chevaux de Troie circulent. Il existe même des outils pour en générer sans programmation !!!
  • 57.
    Trojans & Trojangenerators Quelques outils Netbus SubSeven MasterParadise Backorifice Trojan TCP Wrapper Labo SubSeven 2.1
  • 58.
    Sniffers Programmes quicapturent les paquets qui circulent sur un réseau. Initialement, outils de debugging permettant l’identification des problèmes. Risques inhérents à l ’utilisation des sniffers: Capture des sessions Capture des identifiants utilisateurs et des mots de passe Bypass de certaines normes de sécurité Sniffers commerciaux: NetXray, Microsoft Network Analyzer, HP Advisor,Shomiti Lan Analyzer, RadCom Analyzer, Triticom LanDecoder32, Network General Sniffer Sniffers freeware: Esniff, Snoop, Gobbler, ETHLoad, NetMan, LinSniff, SunSniff Des sniffers qui se cachent sous d’autres termes: Abirnet SessionWall
  • 59.
    Sniffers (suite) Détectiondes sniffers Un sniffer est par principe difficile à détecter car il est passif. Deux méthodes sont possibles: Soit sur une machine: en utilisant une somme de contrôle des fichiers (MD5) et en la comparant à la somme de contrôle initiale Soit dans un réseau : dans ce cas, il faudra prendre en compte l’hétérogénéité des systèmes du réseau afin d ’entreprendre une démarche qui reste aléatoire
  • 60.
    Sniffers (suite) Détectiondes sniffers Outils permettant l ’aide à la détection: Snifftest NitWit Promisc Autres précautions: Utiliser une topologie sécurisée (réseau switché, routeurs,…) Encrypter les sessions
  • 61.
    Sniffer (labo) Abirnet(installation et utilisation) Snoop NetXray LinSniff
  • 62.
    Sécurité des langages: CGI CGI permet aux serveurs Web de transmettre d’autres informations à des clients web que du simple affichage de texte ou de fichiers HTML. Pour ce faire, CGI va utiliser des langages de programmation tels que : Perl Les shells C ou C++ TCL, etc…
  • 63.
    CGI (suite) Ilexiste de nombreuses faiblesses dans les programmes CGI, qui peuvent être utilisées par un « hacker » pour exécuter des commandes sur le serveur avec l ’UID du serveur web. Exemples: CGI + Perl sans contrôle des chaînes de caractères rentrées par l ’utilisateur Exécution de scripts en mode privilégiés Inclusion de documents sur le serveur via SSI <!…#exec cmd=‘ commande ’ …>
  • 64.
  • 65.
    Sécurité des languagesQuelques outils Retina VoidEye CGIScan Labo HTTP server guess CGI Check Retina Compromission d’un serveur (explication théorique)
  • 66.
    Problèmes liés àJava/ActiveX Java est-il potentiellement dangereux ? Oui Peut-on le rendre inoffensif ? Pas totalement Assiste-t-on à des améliorations en terme de sécurité ? Oui (entre autre introduction de routines de cryptographie) Les risques réels Deni de service (browsers ou % utilisation CPU) Compromission de DNS (via compromission du proxy) Vol de données (infos de login par exemple) Bogue de confidentialité Virus “java based”
  • 67.
    Problèmes liés àJava/ActiveX ActiveX permet à du code binaire quelconque d’être exécuté. Un composant ActiveX malveillant peut donc être écrit pour supprimer ou modifier des fichiers sur le disque dur d’un utilisateur ou pour effectuer des connexions avec d’autres ordinateurs à l’insu de l’utilisateur. Risque de virus associé également. Visite de http://metro.to/mladue/hostile-applets/index.html Demo de quelques applets Finjan
  • 68.
    SNMP SNMP estutilisé pour la gestion des composants actifs d’un réseau Au travers de SNMP, il est possible d’obtenir des données concernant: Hardware & software profile Données dynamiques en temps réel Topologie de réseau Données dynamiques en temps réel Données administratives Données statiques définies manuellement. Au travers de SNMP, il est donc possible de modifier les paramètres administratifs L’accès aux variables est protégé par un “community name” ) SNMP V1
  • 69.
    SNMP (suite) Préventioncontre les attaques SNMP Stratégie de mots de passe Filtrage du trafic SNMP Suppression du service SNMP sur les équipement ou il n’est pas utilisé Outils Scotty BTT Software SNMP Trap Watcher remote DoS attack Labo Mibrowser (routeur ou switch)
  • 70.
    Vulnérabilités des OSWindows NT TCP sequence prediction Obtention des droits administrateurs DoS spécifiques NT/98/95 Unix Linux suze util pkg Solaris Solstice Internet Mail IMAP4 Server x86 exploit Cisco Cisco 7xx password buffer overflow CISCO PIX Vulnerability, cracking the 48 bit DES Decrypts encrypted Cisco password files Netware Perl.NLM - Netware 4.1x et IntranetWare Attaque du protocole de connexion Novell 3.12 DOS 100% CPU usage - Meltman
  • 71.
    Vulnérabilités des OS- Labo Le contenu de cette page sera communiqué ultérieurement
  • 72.
    Définition Débordement decapacité du tampon mémoire utilisé en saisie. Une attaque basée sur un BoF va permettre l’obtention d’un shell ayant les prérogatives de l’application à partir de laquelle il a été exécuté. Exemples récents Cfingerd 1.3.3 (*BSD) remote root buffer overflow exploit CERN 3.0A Heap overflow War-ftpd for Windows95/98/NT is vulnerable to a buffer overflow in the MKD/CWD commands until version 1.71-0 Subseven 2.1a BoF causing it to quit quietly or crash Certains outils de stress permettent la recherche systématique des BoF dans les applications Blast NTO Scanner Débordement de pile - BoF
  • 73.
    Divers Keyloggers Souventinstallé au travers d’un cheval de Troie. Permettent l’enregistrement des touches frappées sur une machine client. Les keyloggers evolués transmettent de manière régulière les fichiers ainsi capturés à l ’assaillant. Hooker - Key logger avec support SMTP Wardialer Accès au réseau interne par une porte dérobée (modem, TA,…) Steganographie C’est le moyen de communiquer en cachant des messages à l’intérieur de fichiers considérés comme inoffensifs, ceci de manière indétectable (sauf si …)
  • 74.
    Divers (suite) Démonstration:Fichier source : winnt256.bmp 157 ’042 bytes Fichier à « cacher » : nc.exe 59 ’392 bytes Fichier résultat : test.bmp 157 ’042 bytes Utilisation de compression, d ’encryption (IDEA) et d ’une « passphrase »
  • 75.
    Hacking ou sécurité? Freeware/Shareware Nessus NSS Satan Ogre Asmodeus Produits commerciaux Internet Security Scanner S3 Netsonar Axent Ballista IBM Network Scurity Auditor Scanners de vulnérabilités
  • 76.
    Labo Nessus ISSScanners de vulnérabilités
  • 77.
    Après les risques,les mesures de précaution
  • 78.
    Systèmes de détectiond’intrusion Network based IDS Host based IDS Firewalls Honeypots
  • 79.
    Network based IDSAnalyse des données capturées Visualisation - Reporting FW ou routeur Internet Réseau interne Supervision du trafic Principe : Une ou plusieurs sondes qui réfèrent à une console
  • 80.
    Caractéristiques des NIDSLa plupart du temps, utilisés sur les points d’entrée-sortie du réseau Avantages Faciles à mettre en oeuvre N’affectent pas le réseau (non obstrusive) En cas d’arrêt, pas d’incidence sur la connectivité Inconvénients Les sondes sont limitées en termes de performance (high speed networks) Impossibilité de détecter une attaque qui n’est pas dans le ruleset Ne détecte pas toujours la source des attaques (smurf, spoofing) Si le hacker tente une pénétration lente du réseau sur une longue période, le NIDS ne pourra pas tout logger (taille des logs)
  • 81.
    Host based IDS Analyse des données capturées Visualisation - Reporting Internet Réseau interne IDS host agent Principe : Des agents sur les machines sensibles qui réfèrent à une console FW/Router
  • 82.
    Host based IDSSont apparus pour combler les limites des NIDS Réseaux à haute vitesse Les NIDS ne vont guère au delà de 80-100 Mb/sec Exigent des plates-formes onéreuses pour maintenir les performances Réseaux switchés Les NIDS fonctionnent avec des cartes en mode “promiscuous”, ce qui n’est pas compatible avec les environnements switchés La détection dans le switch n’est pas encore disponible La réplication de ports a des limites Besoin de sécurité/contrôle sur le réseau interne Les hosts sur lesquels les agents IDS sont installés monitorent leurs propres connections réseau, mais aussi le status du file system . Possibilité de reporting/alerting local, mais plus souvent centralisé
  • 83.
    Anomaly detection Ilexiste deux types de détections. Le premier est basé sur l’analyse statistique du trafic et des anomalies constatées Thresholds (ex failed logins) Counters (file read per user) avec algorithmes de pondération Avantages Plateforme moins “gourmande” em terme de mémoire Permet une adaptation dans le temps (période avec statistiques différentes) Simple à paramétrer pour certains types d’évènements (failed login) Inconvénients Approche statistique pas toujours possible Comment définir la norme ? Hacker peuvent utiliser des méthodes non détectables Problème des personnes avec plusieurs logins Comment définir des seuils de manière pertinente ? (expérience requise)
  • 84.
    Pattern matching Ledeuxième type de détection fonctionne sur le même principe qu’un AV en détection de signatures. Individuals patterns: événements, sequences d’événements, seuils, … Expressions (avec opérateurs) Combinaisons Avantages Flexibilité - Choix du traffic à surveiller Plus efficace car n’est pas basé sur une analyse statistique Inconvénients Evolution de la base de données des signatures Pas de langage de programmation (en général) - si disponible, peu convivial Mise à jour différée --> sensible aux dernières attaques Pas d’apprentissage automatique
  • 85.
    Real time orinterval based Les scanners de vulnérabilités permettent la détection des failles de sécurité. Ils sont exécutés à intervalles plus ou moins réguliers (schedule) et donnent une image instantanée de la sécurité du réseau et des systems. Limite : Il se peut qu’une faille soit découverte après qu’elle ait été exploitée par un hacker. Il est donc préférable d’utiliser un moniteur en temps réel qui permettra une réaction immédiate, manuelle ou automatisée.
  • 86.
    Freeware/shareware Unix TCPWrappers Shadow CMDS NT Nuke Nabber Syshield Les outils disponibles Sans TCP Wrappers Avec TCP Wrappers Inetd.conf 21 ftp 23 telnet 21 TCP Inetd.conf 21 ftp 23 telnet Log access Check ACL call inetd 21 TCP
  • 87.
    Les outils commerciauxISS realsecure Cisco NetRanger Network Flight Recorder NAI Cybercop RSA Kane Platinum SessionWall-3 Axent Intruder Alert
  • 88.
    Labo - IDStools Nuke Nabber Utilisation ISS RealSecure Concept Installation Configuration Reporting
  • 89.
    Compléments aux IDSHoneypots Machine qui sert de leurre. Abrite des services qui vont simuler une cible réelle aux yeux des attaquants Permet l’obtention d’un log file avec la source IP, la dest. IP, le dest. Port, la date, l’heure et différentes informations propres au process. Exemples: Deception Toolkit NAI Cybercop Sting Recourse ManTrap Firewalls FW-1 Lucent Firewall Analyseurs de logs
  • 90.
    Compléments aux IDS(suite) File integrity checking Labo : Tripwire FIREWALL NETWORK-BASED INTRUSION DETECTION LOG ANALYZER TARGET-BASED FILE INTEGRITY ASSESSMENT
  • 91.
    How Does TripwireWork? 10110011000010100 10001001111010100 10011111101000100 10000001011110101 11000100111011001 BeXtw+/deQsQ4EJApaF6RR File content integrity assured using crypto- graphic signatures. Cryptographic algorithms produce a fixed length signature or “hash.”
  • 92.
    How Does TripwireWork? From rules defined in a policy file, Tripwire creates a baseline database of the filesystem. It stores this baseline in the database file . Database File Policy File = cryptographic signature
  • 93.
    =? ? DatabaseFile System’s current file structure How Does Tripwire Work? The system can then be checked against the baseline database for any unauthorized changes. = cryptographic signature
  • 94.
    How Does TripwireWork? Database File = ! Report Viewer Email containing reports Syslog/ Event Log If a violation is found, reports can be emailed to administrators, dropped to syslog or be viewed from the machine being monitored.
  • 95.
    Centralized Reporting SpecificReports Specific violations that occurred for each rule Identifies what element changed Different rules within each report
  • 96.
    Centralized Reporting Violations Report List of violations for all open reports Selection will bring up violation detail in right window
  • 97.
    Centralized Reporting Search& Filter Violation search based on minimum severity of 66 Selecting will bring up violation detail in right window
  • 98.
    TEC NT ConsoleInterface List of TEC Agents that are managed by TEC Console Pie chart shows that all the Agents are up and running
  • 99.
    Gestion des incidentsRéponse automatique Interaction entre le système IDS et le routeur/firewall Drop connection Bloque l’adresse IP Risque cependant de DoS Problème d’interopérabilité entre les différents éléments de la plate-forme IDS Travaux en cours sur un langage de gestion de l’information qui permettrait l’interopérabilité : CIDF (common intrusion detection framework) Réponse manuelle Définition du plan d’action Documentation de l’événement Enregistrement (si possible)
  • 100.
  • 101.
    Bibliographie Tout livreou référence utilisé pour l’élaboration de ce document est mentionné ci-dessous : TCP/IP: Running a Successful Network Kevin Washburn,Jim Evans / Hardcover / Addison Wesley Longman, Inc. / 1996