conférence starinux notions de...

111
Starinux Conférence Linux Sécurité Sécurité Conférence Starinux Notions de Sécurité

Upload: others

Post on 28-Jan-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

  • Starinux Conférence Linux Sécurité

    Sécurité

    Conférence Starinux Notions de Sécurité

  • Starinux Conférence Linux Sécurité

    Plan de la conférence Starinux : Sécurité 1/3

    PLAN DE LA CONFERENCE

    La collecte d'informations

    Définition. Les scanners : exemple avec nmap. Netcat : Le couteau suisse de l'Admin Réseau.

    Les failles

    Définition Les failles de sécurité suite à l'installation : Patcher sa distrib, ainsi que le

    kernel. Les failles de sécurité suite à une mauvaise configuration : voir les fichiers de

    confs. Les failles suite à des bugs dans les programmes : Alertes de sécurité. Les exploits. Nessus : présentation.

  • Starinux Conférence Linux Sécurité

    Plan de la conférence Starinux : Sécurité 1/3

    PLAN DE LA CONFERENCE

    Intrusions

    Définition.Les systèmes de détection d'intrusion : NID, HID.

    Les Firewall

    DéfinitionType de FW : par filtrage de paquets, stateful ou non stateful (proxy de service).Type d'attaques contre les FW : Le firewalking

    Sécurisation des communications et transactions

    Le Tunneling : Présentation d'IPsecLe protocole AHLe protocole ESPLe protocole IPcompLe protocole IKELes 2 modes d'IPsec

         

  • Starinux Conférence Linux Sécurité

    Plan de la conférence Starinux : Sécurité 2/3

    PLAN DE LA CONFERENCE

    Les attaques par injection de code

    Les chevaux de TroieLes virusLes versLes bombes logiquesSQL Injection

    Les attaques par intrusion

    Les backdoorsLes rootkitsLes cracks de mots de passe    

                    

  • Starinux Conférence Linux Sécurité

    Plan de la conférence Starinux : Sécurité 3/3

    PLAN DE LA CONFERENCE

    Les attaques réseaux

            L'ARP Poisoning        Man In The Middle

    Les attaques par dénis de services

    Syn Flooding UDP Flooding Smurfing

    Les attaques basées sur les protocoles

    DHCP DNSFTP SMBHTTP IDENTSSH         IP SpoofingTelnet XwindowPeer To Peer 

  • Starinux Conférence Linux Sécurité

    Plan de la conférence Starinux : Sécurité 3/3

    PLAN DE LA CONFERENCE

    Utilisation d'outils d'analyse de trafic réseau.

    TcpdumpEthereal

      Le système syslog

    Comment lire le fichier syslog

    Description d'une intrusion avec le framework « metasploit »

    Exemple d'une trace laissée par un scanner automatique

  • Starinux Conférence Linux Sécurité

    Plan de la conférence Starinux : Sécurité 3/3

    PLAN DE LA CONFERENCE

    Questions/Réponses ?       

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    La collecte d'informations

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    Définition :

    Un scanner est un programme qui permet de connaître les ports en écoute (donc ouverts) sur un réseau.Il permet également de connaître les OS des machines scannées.

    Les scanners de port.

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    NMAP :

    Le fonctionnement d'un scanner de ports comme nmap est simple, il envoie des paquets sur la machine cible et analyse les réponses.

    Les scanners de port.

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    NMAP : Options les plus courantes

    Les scanners de port.

    Le scan furtif :

    nmap -sS [adresse ip de la machine cible]

    Déterminer le type d'OS sur la machine cible

    nmap -P0 -O [adresse ip de la machine cible]

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           Exemple de sortie NMAP :

    Les scanners de port.

    jybserver:/home/jyb# nmap -sS 82.127.3.18

    Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-16 17:27 CESTInteresting ports on jybserver (82.127.3.18):(The 1643 ports scanned but not shown below are in state: closed)PORT STATE SERVICE9/tcp open discard13/tcp open daytime21/tcp open ftp22/tcp open ssh25/tcp open smtp37/tcp open time53/tcp open domain79/tcp open finger80/tcp open http110/tcp open pop3111/tcp open rpcbind113/tcp open auth119/tcp open nntp143/tcp open imap220/tcp open imap3931/tcp open unknown5432/tcp open postgres

    Nmap run completed -- 1 IP address (1 host up) scanned in 0.198 seconds

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           La commande « netcat » ou « nc » :

    Cette commande très utile fonctionne en mode client/serveur. Elle permet d'ouvrir des connexions réseau en TCP ou UDP sans avoir besoin d'un programme particulier.

    Exemple : ouvrir une connexion FTP sans avoir de client FTP

    nc [adresse ip machine cible] 21

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           Options les plus courantes de netcat :

    Options:

    -e prog program to exec after connect [dangerous!!] -b allow broadcasts -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, ... -h this cruft -i secs delay interval for lines sent, ports scanned -l listen mode, for inbound connects -n numeric-only IP addresses, no DNS -o file hex dump of traffic -p port local port number -r randomize local and remote ports -q secs quit after EOF on stdin and delay of secs -s addr local source address -t answer TELNET negotiation -u UDP mode -v verbose [use twice to be more verbose] -w secs timeout for connects and final net reads -z zero-I/O mode [used for scanning]

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           Le mode serveur :

    La mode serveur revient à mettre netcat en écoute sur un port de votre machine.Pour cela, il suffit d'utiliser les options -l et -p.

    Exemple :

    nc -l -vv -p 80

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    Le mode client :

    Le mode client revient à mettre netcat en écoute sur les ports de la machine cible.

    Il est possible d'utiliser les redirections pour lancer des commandes ou pour executer des programmes sur la machine distante.

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    Exemple de connexion sur le port 80 :

    jybserver:/home/jyb# nc jybserver.homelinux.net 80 < web.exempleHTTP/1.1 400 Bad RequestDate: Sat, 16 Oct 2004 16:18:25 GMTServer: ApacheConnection: closeContent-Type: text/html; charset=iso-8859-1

    Contenu du fichier web.exemple :

    HEAD /HTTP /1.0

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    Exemple de connexion sur le port 21

    jybserver:/home/jyb# nc jybserver.homelinux.net 21 < ftp.exemple220 ProFTPD 1.2.10rc3 Server ready.331 Password required for invite.230-*********************************************** Bienvenue, invite@jybserver !!! Bienvenue les Starinuxiens !!!

    Nous sommes le : Sat Oct 16 18:19:11 2004

    Ceci est mon Serveur FTP.

    Si problemes [email protected]

    ***********************************************

    230 C'est bon !!! Vous etes bien connecte sur le FTP de Jean-Yves Bossard !!! 221 Goodbye.

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    Contenu du fichier ftp.exemple :

    USER invitePASS invitequit

  • Starinux Conférence Linux Sécurité

    La collecte d'informations

           

    Exemple de connexion sur le port 110 :

    jybserver:/home/jyb# nc jybserver.homelinux.net 110+OK Qpopper (version 4.0.5) at jybserver starting.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Les failles de sécurité

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Définition :

    Une faille, est un dysfonctionnement, ou un défaut de protection dans le développement d'un logiciel qui peuvent etre exploités par un programme ou manuellement.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Distribution standard :

    Lorsque vous achetez une distribution Linux, une fois installée, votre distribution préférée n'a pas obligatoirement toutes les garanties de sécurité.Il est conseillé de mettre votre distribution à jour et pour ceux qui veulent pousser encore plus de patcher votre noyau avec les patchs de sécurité adéquats.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Mise à jour de sa distribution : Exemple avec Debian

    # apt-get update# apt-get upgrade

    entrée du fichier /etc/apt/source.list : selon votre version de Debian

    deb http://security.debian.org/ stable/updates maindeb http://security.debian.org/ sid/updates main contrib non-free

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Mise à jour du kernel : Exemple avec le noyau 2.6.6

    - #cd /usr/src/linux-2.6.6- #make xconfig

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           Mauvaise configuration des fichiers de conf :

    Il est très important de mettre en place les mécanismes de sécurité associés à vos fichiers de configuration.

    Le plus souvent ils portent l'extension .conf et se trouvent dans /etc.

    La documentation ainsi que les forums et/ou les tutoriels sur Internet doivent vous aider à bien configurer ces fichiers.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           Bugs dans les programmes : Alertes de sécurité

    Il est vivement conseillé de vous abonner à une liste de diffusion des alertes de sécurité afin la de maintenir à jour.

    Mailing list des principales distributions :

    Debian : http://www.debian.org/security/

    Mandrake : http://www.mandrakesoft.com/security/

    Slackware : http://www.slackware.com/lists/

    Fedora : http://fedora.redhat.com/

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           Les exploits : Définition

    Un exploit, est une technique de piratage, le plus souvent basée sur des scripts ou des programmes écrits en C, permettant d'exploiter les failles de sécurité des programmes.Le but recherché est de s'introduire sur un système, et/ou d'en prendre le contrôle.Il existe des logiciels, ou des frameworks qui en facilient l'utilisation :SATAN, ou encore Metasploit sont les plus célèbres.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           Les buffers overflow : Définition

    Le dépassement de pile est une faille due à une mauvaise programmation. Effectivement, un buffer overflow apparaît quand une variable passée en argument d'une fonction est recopiée dans un buffer sans que sa taille n'aie été vérifiée. Il suffit que la variable ait une taille supérieure à l'espace mémoire réservé pour ce buffer pour qu'un dépassement de pile se produise. Celui-ci sera exploité en passant dans la variable un fragment de programme capable de faire démarrer un shell tout en obligeant ce débordement de pile à se produire.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Nessus : Présentation

    Nessus, est un outil qui permet à l'instar de « nmap » de faire du scanage de port de découvrir les failles de sécurité et de tester la vulnérabilité d'un système.

    Il permet de simuler ou de lancer des attaques en exploitant des vulnérabilités connues.

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Nessus : Page d'accueil

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Nessus : Les plugins

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Nessus : Les scans

  • Starinux Conférence Linux Sécurité

    Les failles de sécurité

           

    Nessus : La page de résultat

  • Starinux Conférence Linux Sécurité

    Les intrusions

           

    Les intrusions

  • Starinux Conférence Linux Sécurité

    Les intrusions

           

    Définition :

    Une intrusion c'est la pénétration d' un système d'information mais aussi les tentatives des utilisateurs locaux d'accéder à de plus hauts privilèges ou les tentatives des administrateurs d'abuser de leurs privilèges.

  • Starinux Conférence Linux Sécurité

    Les intrusions

           Les systèmes de détection d'intrusion :

    Il y a deux catégories de systèmes de détection d'intrusion :

    Les NIDS : Networks Intrusion Detection Systems

    Les NIDS, sont des systèmes de détection d'intrusion qui analyse en temps réel les données transitant sur le réseau.Pour cela ils s'appuient sur une base de données contenant la liste des codes malicieux.Le plus connus de ces NIDS est « Prélude ».On pourrait aussi parler des IDS comme « Tripwire » qui détecte les attaques en local sur la machine (outrepassement de droit, rootkits, etc ...)

  • Starinux Conférence Linux Sécurités

    Les intrusions

           Les HIDS : Hybride Intrusion Detection Systems

    Ces systèmes entre les IDS et NIDS fonctionnent d'une façon similaire aux NIDS. Il s'appuient aussi sur base de données.La différence entre IDS et HIDS se fait de moins en moins.Le plus connu des HIDS est SNORT.

    Tous ces systèmes de détection d'intrusion s'appuient sur des sondes qui recueillent des informations sur les activités systèmes, les analysent et font des remontées d'evenements sous forme d'alerte.

  • Starinux Conférence Linux Sécurités

    Les Firewalls

           

    Les Firewalls

  • Starinux Conférence Linux Sécurités

    Les Firewalls

           

    Définition :

    Les Firewalls sont des programmes conçus pour isoler un réseau local d'un autre réseau ou de l'Internet.

  • Starinux Conférence Linux Sécurités

    Les Firewalls

           

    Rappel : Le modèle OSI

  • Starinux Conférence Linux Sécurités

    Les Firewalls

           

    Rappel : Détail d'un paquet TCP/IP

  • Starinux Conférence Linux Sécurités

    Les Firewalls

            Les firewalls par filtrage de paquets :

    Le filtrage se fait au niveau de la couche 3 du modèle OSI (couche réseau) en fonction des informations qui figurent dans les en tetes des paquets.

    Les firewalls statefull :

    Ce type de Firewall possède un mecanisme de suivi des connexions TCP.Les paquets sont examinés dans un contexte de session.Ils fonctionnent sur les principes d'un couple d'adresses (source, destination), (port source, port destination). Le plus connu est « netfilter » qui fait parti du noyau Linux et s'interface avec iptables

  • Starinux Conférence Linux Sécurités

    Les Firewalls

            Les firewalls non stateful ou proxy de services :

    Ce type de firewalls permet de contrôler les couches supérieures du modèle OSI.L'information contenue dans le paquet est prise en compte. C'est un programme « le proxy de service » qui se charge de gérer les connexions.

  • Starinux Conférence Linux Sécurités

    Les Firewalls

            Le Firewalking :

    Le Firewalking est une technique qui consiste à determiner les règles présentes sur un firewall.Pour cela, l'attaquant envoie des paquets TCP et/ou UDP et ICMP avecun TTL >= à 1 par rapport au routeur.Si la paquet est autorisé par le routeur elle le transmet au suivant.Celui ci envoie alors un message de type ICMP_TIME_EXCEEDED.Si le routeur cible n'autorise pas le paquet, alors le paquet est dropé.

  • Starinux Conférence Linux Sécurité

    tunnel VPN et IPsec

           

    TUNNEL VPN et IPsec

  • Starinux Conférence Linux Sécurité

    tunnel VPN et IPsec

    VPN

    Un VPN (Virtual Private Network) est créé en partant d'un réseau existant qui n'est pas sécurisé.

    Le protocole sur lequel s'appuie le VPN est IPsec

    Ipsec

    Ipsec est une méthode permettant de créer des réseaux privés virtuels.

    Ipsec fonctionne selon deux modes :

    - Le mode transport - Le mode tunnel

  • Starinux Conférence Linux Sécurité

    tunnel VPN et IPsec

           Ipsec

    - Le mode transport :

    * crypte les communications entre machines

    - Le mode tunnel :

    * encapsule les paquets cryptés, dans de nouveaux en-têtes IP (Ipv4 ou Ipv6). Sert à créer des tunnels

    VPN.

  • Starinux Conférence Linux Sécurité

    tunnel VPN et IPsec

           

    Le protocole AH : Authentification Header

    Il garantie l'authenticité des échanges par un checksum chiffré de l'en-tête à la fin du paquet IP.

    Le protocole ESP : Encapsulating Security Payload

    Il assure la confidentialité des paquets en cryptant les données.

  • Starinux Conférence Linux Sécurité

    tunnel VPN et IPsec

           

    Le protocole IPcomp : IP Payload Compression

    Il compresse le paquet IP avant de le chiffrer avec ESP

    Le protocole IKE : Internet Key Exchange

    Il sert à l'échange des clés qui seront utilisées lors du cryptage.

  • Starinux Conférence Linux Sécurité

    Les attaques par injection de code

           

    Les attaques par injection de code

  • Starinux Conférence Linux Sécurité

    Les attaques par injection de code

           Les chevaux de Troie :

    Un cheval de Troie est un programme malicieux, caché dans un programme ordinaire. Il permet par exemple de voler des mots de passe, copier des données sensibles, exécuter des commandes nuisibles.

    Les virus :

    Programme malicieux, capable de se reproduire dans un autre programme.

  • Starinux Conférence Linux Sécurité

    Les attaques par injetction de code

           Les vers :

    Un ver est un programme autonome qui se propage à l'intérieur de la mémoire d'un ordinateur et circule d'un ordinateur à l'autre grâce aux réseaux informatiques. Il se propage surtout sur l'Internet.

    Les bombes logiques :

    Les bombes logiques sont des programmes qui se déclenchent à un moment déterminé typiquement par :- la date du système- le lancement d'une commande- un appel au système.

  • Starinux Conférence Linux Sécurité

    Les attaques par injection de code

           Injection SQL :

    L'injection SQL est une attaque visant à obtenir des accès non autorisés à une base de données ou à retrouver des informations directement dans la base.Le point d'entrée de ce type d'attaque est souvent une page de formulaire sur une page Web.

  • Starinux Conférence Linux Sécurité

    Les attaques

           

    Les attaques par intrusion

  • Starinux Conférence Linux Sécurité

    Les attaques par intrusion

           

    Les backdoors :

    C'est une «porte dérobée» laissée volontairement par les développeurs d'un programme permettant d'entrer dans un système en vue de le déboguer lors de sa phase de conception.

    Cela peut etre également un bug d'un logiciel, typiquement pour passer root sous Unix ou pour faire exécuter une commande.

    Les Rootkits :

    C'est un ensembles d'outils (des exploits) dont la finalité est de voler les droits d'administrateur «root» sur une machine de type UNIX.

  • Starinux Conférence Linux Sécurité

    Les attaques par intrusion

           Les cracks de mot de passe :

    En utilisant des «sniffers» il est possible de collecter des informations (mots de passe) circulant sur un réseau.

    Pour ce faire, le sniffer met la carte en mode «promiscuous», c'est à dire que la carte intercepte tous les paquets circulant sur le réseau.

    Il est également possible de récupérer les mots de passe à l'aide de programme de « crack » tel que « Ripper ».

  • Starinux Conférence Linux Sécurité

    Les attaques par intrusion

           

    Récupération du mot de passe sur un serveur FTP :

  • Starinux Conférence Linux Sécurité

    Les attaques

           

    Les attaques réseaux

  • Starinux Conférence Linux Sécurité

    Les attaques réseaux

           

    Rappel sur TCP/IP

    Etablissement d'une connexion TCP : Three Way Handshake

    - La machine A envoie un flag SYN vers la machine B- La machine B répond à A par un flag SYN-ACK- La machine A répond à B par un flag ACK

  • Starinux Conférence Linux Sécurité

    Les attaques réseaux

           

    L'ARP Poisoning :

    Falisfication d'adresses MAC d'un réseau ethernet. Le but de cette attaque par déni de service est de duper les postes se trouvant sur le réseau.

    Man in The Middle :

    Il s'agit de détourner le flux entre deux machines. Le but de l'attaquant peut etre d'intercepter des données, de les modifier ou encore de les détruire.

  • Starinux Conférence Linux Sécurité

    Les attaques réseaux

           

    Les attaques par dénis de service

  • Starinux Conférence Linux Sécurité

    Les attaques réseaux

           

    Syn Flooding :

    Rappel : Les trois étapes d'une connexion TCP sont :

    * L'envoi d'un SYN* La réception d'un SYN-ACK * L'envoi d'un ACK.

    Le syn flooding consiste à laisser sur la machine cible un maximum de connexions TCP en attentes. Pour cela, l'attaquant envoie un très grand nombre de demandes de connexion (flag SYN à 1). La machine cible renvoie les SYN-ACK en réponse au SYN reçus. L'attaquant ne répond pas avec un ACK, et donc pour chaque SYN reçu la cible aura une connexion TCP en attente. Toutes ces connexions semi-ouvertes consomment des ressources mémoires au bout d'un certain temps la machine cible est saturée et ne peut plus accepter de connexion.

  • Starinux Conférence Linux Sécurité

    Les attaques réseaux

           

    UDP Flooding

    La génération d'une grande quantité de paquets UDP (mode non connecté), soit à destination d'une machine soit entre deux machines provoque une congestion du réseau ainsi qu'une saturation des ressources des deux hôtes victimes.

    Smurfing :

    l'attaquant camoufle (spoof) l'adresse source d'un paquet ICMP de requête Echo Request (ping) au broadcast pour un réseau, ce qui entraîne toutes les machines du réseau à répondre en masse à la victime en encombrant de cette façon le réseau.

  • Starinux Conférence Linux Sécurité

    Les attaques

           

    Les attaques basées sur les protocoles

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

            DHCP : Attaques par épuisement d'adresses IP

    Si la correspondance adresses IP adresses adresses MAC du serveur DHCP est mal configurée dans le fichier /etc/dhcpd.conf, alors un attaquant peut saturer le serveur en le noyant de requêtes. Les clients ne pourront alors plus avoir d'adresses IP.

    DNS : DNS ID spoofing

    Cette attaque consiste à envoyer une fausse réponse à une requête DNS avant le vrai serveur DNS. De cette façon, le pirate peut rediriger vers lui le trafic à destination d'une machine qu'il l'intéresse

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           

    IP Spoofing :

    Usurpation d'adresse IP. Cela consiste à se faire passer pour quelqu'un d'autre en utilisant son adresse IP.On fait croire ainsi que la connexion provient d'un utilisateur autorisé.

    IDENT :

    Héritage historique d'UNIX, IDENT fourni des informations sur les utilisateurs connectés.Il n'a aucune valeur ajoutée et peut donc etre supprimé.

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           

    FTP :

    Les mots de passe de connexion FTP circulent en clair et peuvent etre sniffées par un attaquant.Pour les serveurs FTP annonymes, des droits en lecture et écriture mal positionnés peuvent servir de machine de relai pour une attaque de plus grande envergure.

    HTTP :

    Un serveur Apache mal configuré fourni beaucoups d'information à un attaquant. Un simple « telnet » ou « nc » permet alors à l'attaquant de connaître les informations utiles.

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           Exmple d'informations fournies sur un serveur WEB mal configuré:

    jybserver:/home/jyb# telnet www.jybserver.homelinux.net 80Trying 82.127.3.18...Connected to jybserver.Escape character is '^]'.HEAD / HTTP/1.0

    HTTP/1.1 200 OKDate: Sat, 16 Oct 2004 08:42:27 GMTServer: Apache/1.3.31 (Debian GNU/Linux)Last-Modified: Sun, 26 Sep 2004 09:06:46 GMTETag: "207021-2484-415686a6"Accept-Ranges: bytesContent-Length: 9348Connection: closeContent-Type: text/html; charset=iso-8859-1

    Connection closed by foreign host.

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           Exmple d'informations fournies sur un serveur WEB configuré correctement:

    Ajout de la directive suivante dans /etc/apache/httpd.conf :ServerTokens Prod

    jybserver:/home/jyb# telnet www.jybserver.homelinux.net 80Trying 82.127.3.18...Connected to jybserver.Escape character is '^]'.HEAD / HTTP/1.0

    HTTP/1.1 200 OKDate: Sat, 16 Oct 2004 08:45:33 GMTServer: ApacheLast-Modified: Sun, 26 Sep 2004 09:06:46 GMTETag: "207021-2484-415686a6"Accept-Ranges: bytesContent-Length: 9348Connection: closeContent-Type: text/html; charset=iso-8859-1

    Connection closed by foreign host.

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           

    SSH :

    Des exploits utilisants les bugs d'OpenSSH peuvent permettre à un attaquant de lancer des attaques de type Man in The Middle ou de type Buffer Overflow

    Telnet :

    Telnet permet de se connecter à une autre machine sur le port 23 et d'utiliser cette machine une fois connecté comme si l'on était en local.Telnet a les memes défauts que FTP et l'on doit plutot utiliser SSH.

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           

    SMB :

    Un attaquant peut utiliser un « scanner de share » pour detecter les serveurs SAMBA qui partagent des ressources, accessibles pour tout le monde.Il est conseillé de mettre un mot de passe sur les ressources.

    Xwindow :

    Un serveur X mal configuré permet à un attaquant de modifier son comportement, de créer ou de supprimer des objets.La commande « xhost - » ferme les accès au serveur X

  • Starinux Conférence Linux Sécurité

    Les attaques basées sur les protocoles

           

    Peer To Peer :

    L'utilisation de logiciels de téléchargement de type Peer To Peer est à déconseillé car c'est un vecteur de virus.

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    TCPDUMP

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           Définition :

    TCPDUMP est un utilitaire permettant de capturer des paquets circulants sur le réseau.Basé sur les librairies « libcap » il necessite que l'interface « carte réseau » soit mise en mode promiscuous.Il peut etre utiliser également pour récuperer des informations qui passent en clair sur un réseau « couple login/mots de passe » par exemple.

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Représentation d'un paquet TCP : 0 1 2 3

    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Options de TCPDUMP : 1/2-i Affiche les packets pour une interface spécifique

    exemple : tcpdump -i eth0

    -x Affiche le contenu des packets en Hexadecimal

    exemple : tcpdump -i eth0 -x

    -X Affiche le contenu des packets en Hexadecimal

    et ASCII

    exemple : tcpdump -i eth0 -X

    -v Mode "Verbose light"

    exemple : tcpdump -i eth0 -v

    -vv Mode "Verbose medium"

    exemple : tcpdump -i eth0 -vv

    -vvv Mode "Verbose Full"

    exemple : tcpdump -i eth0 -vvv

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           Options de TCPDUMP : 2/2

    -w Enregistre la sortie de TCPDUMP dans le fichier passé en

    paramètre

    exemple : tcpdump -i eth0 -w trc20040427.dump

    -r Affiche le contenu d'un fichier créé avec tcpdump -w

    exemple : tcpdump -r exemple20041025.trc

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Expressions de TCPDUMP : 1/3

    Host Affiche les trames pour le host défini en

    paramètre (peut en général être omis)

    exemple 1 :tcpdump -i eth0 host 82.127.3.18

    exemple 2 :tcpdump -i eth0 82.127.3.18

    src Affiche les trames ayant pour origine le host

    défini en paramètre

    exemple : tcpdump -i eth0 src host 82.127.3.18

    dst Affiche les trames ayant pour destination le host

    défini en paramètre

    exemple : tcpdump -i eth0 dst host 82.127.3.18

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Expressions et primitives de TCPDUMP : 2/3

    port Affiche les packets du port précisé

    exemple 1 : tcpdump -i eth0 port 21

    exemple 2 tcpdump -i eth0 port ftp

    ip, arp, rarp, udp, tcp Affiche les packets du protocole

    précisé

    exemple : tcpdump -i eth0 icmp

    less Affiche les packets d'une taille inférieure à

    celle précisée en paramètre

    exemple : tcpdump -i eth0 less 60

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Expressions et primitives de TCPDUMP : 3/3

    great Affiche les packets d'une taille supérieure à celle

    précisée en paramètre

    exemple : tcpdump -i eth0 greater 96

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Interpreter les résulats de la commande TCPDUMP

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           Exemple avec une connexion FTP :

    Dans cet exemple, la machine A @IP 82.127.3.18 établit une connexion FTP vers la machine B @IP212.27.40.252

    Voici comment interpreter les résultats de la commande TCPDUMP :

    tcpdump -n -S -t tcp and host 82.127.3.18 and port 21

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Sortie de la commande TCPDUMP :

    1 jybserver:/home/jyb# tcpdump -n -S -t tcp and host 82.127.3.18 and port 21 2 tcpdump: listening on ppp0

    3 82.127.3.18.41354 > 212.27.40.252.21: S 2666389482:2666389482(0) win 5840 (DF)

    4 212.27.40.252.21 > 82.127.3.18.41354: S 319001827:319001827(0) ack 2666389482 win 5792 (DF)

    5 82.127.3.18.41354 > 212.27.40.252.21: . ack 319001828 win 5840 (DF)

    6 212.27.40.252.21 > 82.127.3.18.41354: P 319001828:319001914(86) ack 2666389482 win 46 (DF)

    7 82.127.3.18.41354 > 212.27.40.252.21: . ack 319001914 win 5840 (DF) [tos 0x10]

    8 82.127.3.18.41354 > 212.27.40.252.21: P 2666389482:2666389505(23) ack 319001914 win 5840 (DF) [tos 0x10]

    9 212.27.40.252.21 > 82.127.3.18.41354: . ack 2666389505 win 46 (DF)

    10 212.27.40.252.21 > 82.127.3.18.41354: P 319001914:319001959(45) ack 2666389505 win 46 (DF)

  • Starinux Conférence Linux Sécurité

    TCPDUMP

           

    Quezaco ??? :

    3 82.127.3.18.41354 > 212.27.40.252.21: S 2666389482:2666389482(0) win 5840 (DF)

    La machine A sur le port 41354 appelle la machine B sur le port 21.Le flag SYN est positionné (S).Le n° de séquence initial (ISN) vaut 2666389482.La machine A fixe la window (nombre maximum d'octets que A peut recevoir) à 5840.Les parties avec les «  212.27.40.252.21: . ack 319001828 win 5840 (DF)

    La machine A sur le port 41354 répond à la machine B sur le port 21.Il n'y a pas de flags « . »La machine A reconnaît l'ISN de la machine B et lui fait savoir « ack 319001828 win 5840 ».

  • Starinux Conférence Linux Sécurité

    Ethereal

           

    Ethereal

  • Starinux Conférence Linux Sécurité

    Ethereal

           Définition :

    Ethereal est un programme capable d'analyser les captures de tcpdump, mais aussi de snoop, LANanalyser, et meme les formats de log de pppd.

    Plus convivial que tcpdump, il permet également de faire des captures de paquets.

  • Starinux Conférence Linux Sécurité

    Ethereal

           

    Page d'accueil d'Ethereal :

  • Starinux Conférence Linux Sécurité

    Ethereal

           

    Exemple de capture avec une connexion FTP :

  • Starinux Conférence Linux Sécurité

    Le système syslog

           

    Le système syslog

  • Starinux Conférence Linux Sécurité

    Le système syslog

           Définition :

    - Syslog est un démon de contrôle centralisé des messages du système

    - Syslog peut aussi récupérer les logs applicatifs- Syslog est configuré à partir du fichier /etc/syslog.conf

  • Starinux Conférence Linux Sécurité

    Le système syslog

           Principales caractéristiques :

    Multiplateformes (tous les Unix)Réception des logs de machines distantesClassification des logs par pertinenceDispatch dans plusieurs fichiers suivant la classificationétablie

  • Starinux Conférence Linux Sécurité

    Le système syslog

           Configuration du fichier /etc/syslog.conf 1/3:

    La syntaxe de /etc/syslog.conf est la suivanteservice.niveau;service.niveau... action

    Le champ service : spécifie le nom du service d'où le message émane:kernel : pour les messages du noyaumail : pour les serveurs de messagerieauth : pour les programmes tels que su ou loginuser : pour les programmes utilisateurslocal[0-7] : pour les applications développées

  • Starinux Conférence Linux Sécurité

    Le système syslog

           Configuration du fichier /etc/syslog.conf 2/3:

    Le champ niveau spécifie la gravité du message :

    debug : pour déboguageinfo : pour informationnotice : pour notificationwarning : pour avertissementerr : pour erreurcrit : pour critiquealert : pour « panique à bord »emerg : pour « urgence – rien ne va plus »

  • Starinux Conférence Linux Sécurité

    Le système syslog

           Configuration du fichier /etc/syslog.conf 3/3:

    Le champ action spécifie la destination du message/dev/xxx : vers un périphérique comme la console virtuelle par exemple (/dev/console)/path/to/filename : vers un fichier, couramment dans le répertoire /var@machine : vers le démon Syslog d'une autre machine

    L'utilisation de métacaractères est possible. Exemple :kern.*;!info;*.warn /dev/console

  • Starinux Conférence Linux Sécurité

    Le système syslog

           Les principaux fichiers utilisés par Syslog sont :

    /var/log/messages : messages d'information/var/log/syslog : messages d'avertissement

    Les fichiers suivants sont rattachés au système de logs:

    /var/adm/wtmp : date et durée des sessions utilisateurs/var/run/utmp : informations sur les utilisateurs actuellement

    connectés/var/log/lastlog : liste des derniers utilisateurs loggés

  • Starinux Conférence Linux Sécurité

    Le système syslog

           

    Comment déporter l'affichage des logs dans une console virtuelle :

    Ajout de l'entrée suivante dans le fichier /etc/syslog.conf

    daemon.*;mail.*;\ news.crit;news.err;news.notice;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole

  • Starinux Conférence Linux Sécurité

    metasploit

           

    Description d'une intrusion avec le Framework Metasploit

  • Starinux Conférence Linux Sécurité

    metasploit

           

    Metasploit : Définition

    Metasploit est un programme en ligne de commande et possedant une interface Web permettant de lancer une attaque sur une ou plusieurs machines cibles.Pour cela Metasploit possède une liste d'exploits connus à utiliser.

  • Starinux Conférence Linux Sécurité

    metasploit

           

    Metasploit : Page d'accueil

  • Starinux Conférence Linux Sécurité

    metasploit

           

    Metasploit : exemple d'attaque d'un serveur SAMBA 1/3

  • Starinux Conférence Linux Sécurité

    metasploit

           

    Metasploit : exemple d'attaque d'un serveur SAMBA 2/3

  • Starinux Conférence Linux Sécurité

    metasploit

           

    Metasploit : exemple d'attaque d'un serveur SAMBA 3/3

  • Starinux Conférence Linux Sécurité

    Trace d'un scanner automatique

           Les fichiers de logs à consulter régulièrement :

    /var/log/auth.log : Logs de connexion (Debian)/var/log/secure.log : Idem pour Mandrake

    /var/log/daemon.log : Logs des démons lancés sur le système.

    Les logs systèmes

    Les logs des applications

    /var/log/samba/var/log/apache/access.log

  • Starinux Conférence Linux Sécurité

    Trace d'un scanner automatique

           Exemple d'un scan automatique sur un serveur SSH

    Oct 29 16:16:52 jybserver sshd[29825]: Illegal user test from 211.98.28.124Oct 29 16:16:52 jybserver sshd[29825]: error: Could not get shadow information for NOUSEROct 29 16:16:52 jybserver sshd[29825]: Failed password for illegal user test from 211.98.28.124 port 45841 ssh2Oct 29 16:16:56 jybserver sshd[29827]: Illegal user guest from 211.98.28.124Oct 29 16:16:56 jybserver sshd[29827]: error: Could not get shadow information for NOUSEROct 29 16:16:56 jybserver sshd[29827]: Failed password for illegal user guest from 211.98.28.124 port 46035 ssh2Oct 29 16:17:03 jybserver sshd[29829]: Illegal user admin from 211.98.28.124Oct 29 16:17:03 jybserver sshd[29829]: error: Could not get shadow information for NOUSEROct 29 16:17:03 jybserver sshd[29829]: Failed password for illegal user admin from 211.98.28.124 port 46172 ssh2Oct 29 16:17:20 jybserver sshd[29841]: Failed password for root from 211.98.28.124 port 46731 ssh2Oct 29 16:17:26 jybserver sshd[29844]: Failed password for root from 211.98.28.124 port 46863 ssh2

  • Starinux Conférence Linux Sécurité

    Trace d'un scanner automatique

           Exploiter les traces laissées par le pirate

    Chaque intrusion ou tentative d'intrusion laisse des traces qu'il est possible d'exploiter.Il faut toutefois etre très prudent car une adresse IP dans un fichier de log n'est pas obligatoirement une preuve.Il peut aussi s'agir d'une adresse spoofée.

  • Starinux Conférence Linux Sécurité

    Trace d'un scanner automatique

           Exploiter les traces laissées par le pirate

    La commande « whois » permet de savoir à qui appartient l'adresse IP de l'attaquant.

    Dans notre exemple ce sera l'adresse IP : 211.98.28.124

    #whois -h -v whois.ripe.net 211.98.28.124

  • Starinux Conférence Linux Sécurité

    Trace d'un scanner automatique

           

    inetnum: 211.98.28.112 - 211.98.28.127netname: JSPREDCdescr: Jinan Station Pengfei Real Estate Development Corp.descr: Real Estate Development Corp.descr: Shandongcountry: CNadmin-c: GL118-APtech-c: GL118-APmnt-by: MAINT-CNNIC-APchanged: [email protected] 20010428status: ASSIGNED NON-PORTABLEsource: APNICchanged: [email protected] 20020827domain: 98.211.in-addr.arpadescr: in-addr.arpa domain for 211.98/16country: CNadmin-c: DNS3-APtech-c: DNS3-APzone-c: DNS3-APnserver: nm.cnnic.net.cnnserver: ns.cnc.ac.cnmnt-by: MAINT-AP-DNS-2mnt-lower: MAINT-AP-DNS-2changed: [email protected] 20000201changed: [email protected] 20010413source: APNIC

  • Starinux Conférence Linux Sécurité

    Questions/Réponses

           

    Questions/Réponses ??

  • Starinux Conférence Linux Sécurité

    Références

           

    Les slides de cette conférence s'appuient sur le document de référence suivant :

    http://www.linux-france.org/prj/inetdoc/securite/tutoriel/tutoriel.securite.preface.html

    Autres sites sur la sécurité :

    Le site français de référence sur la sécurité informatique http://www.securite.org/index2.html

    Le site du magazine MISChttp://www.miscmag.com/

    L'incontournable Bug Trackhttp://www.k-otik.com/

    Encore un site (en anglais) incontournablehttp://www.linuxsecurity.com/

    Plus généraliste (en anglais)http://www.securityfocus.com/unix