<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V5.0//EN" "/usr/share/xml/docbook/schema/dtd/5.0/docbook.dtd" [
<!ENTITY % urls SYSTEM "urls.xml">
<!ENTITY url.guidesecu.ifrance '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://guidesecu.ifrance.com/guide/guidesecu.pdf">
  publication <citetitle>i(france)</citetitle></link>'>
<!ENTITY url.guidesecu.mirabellug '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.mirabellug.org/docs/securite/guidesecu.pdf">
  publication <citetitle>Mirabellug</citetitle></link>'>
<!ENTITY url.guidesecu.inetdoc '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/tutoriel-secu/">
  publication <citetitle>inetdoc.net</citetitle></link>'>
<!ENTITY url.trinux '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.trinux.org"><citetitle>Trinux</citetitle></link>'>
<!ENTITY url.knoppixfr '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.knoppixfr.org"><citetitle>Knoppix</citetitle></link>'>
<!ENTITY url.nmap '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.insecure.org"><citetitle>Nmap</citetitle></link>'>
<!ENTITY url.rfc1010 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.faqs.org/rfcs/rfc1010.html"><acronym>RFC1010</acronym></link>'>
<!ENTITY url.nessus '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.nessus.org"><citetitle>Nessus</citetitle></link>'>
<!ENTITY url.packetfilteringhowto.7.3 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO-7.html#ss7.3"><citetitle>Utiliser iptables :Spécifications de filtrage</citetitle></link>'>
<!ENTITY url.phrack '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.phrack.org/"><citetitle>Phrack : ...a Hacker magazine by the community, for the community....</citetitle></link>'>
<!ENTITY url.artofscanning '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.phrack.org/issues.html?issue=51&amp;xml:id=11#article"><citetitle>The Art of Port Scanning</citetitle></link>'>
<!ENTITY url.remoteosdetection '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.phrack.org/issues.html?issue=54&amp;xml:id=9#article"><citetitle>Remote OS detection via TCP/IP Stack FingerPrinting</citetitle></link>'>
<!ENTITY url.icmpbasedosfingerprinting '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.phrack.org/issues.html?issue=57&amp;xml:id=7#article"><citetitle>ICMP based remote OS TCP/IP stack fingerprinting techniques</citetitle></link>'>
<!ENTITY url.netcat '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://packetstormsecurity.nl/UNIX/netcat/"><citetitle>Netcat</citetitle></link>'>
<!ENTITY url.cert '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.cert.org"><citetitle>CERT</citetitle></link>'>
<!ENTITY url.cert.renater '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.renater.fr/Securite/CERT_Renater.htm"><citetitle>CERT RENATER</citetitle></link>'>
<!ENTITY url.cert.renater.archives '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.cert.uhp-nancy.fr/"><citetitle>archives des avis de sécurité</citetitle></link>'>
<!ENTITY url.certa '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://http://www.certa.ssi.gouv.fr/"><citetitle>Centre d&#39;Expertise gouvernemental de Réponse et de Traitement des Attaques  informatiques</citetitle></link>'>
<!ENTITY url.bugtraq.archives '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://seclists.org/bugtraq/"><citetitle>Archives Bugtraq</citetitle></link>'>
<!ENTITY url.bugtraq.france '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.securityfocus.com/archive/131/description"><citetitle>Bugtraq French</citetitle></link>'>
<!ENTITY url.packetstormsecurity '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://packetstormsecurity.nl/"><citetitle>.:[packet storm security]:.</citetitle></link>'>
<!ENTITY url.securityfocus '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.securityfocus.com/"><citetitle>SecurityFocus</citetitle></link>'>
<!ENTITY url.openwall '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.openwall.com/"><citetitle>OpenWall</citetitle></link>'>
<!ENTITY url.grsecurity '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.grsecurity.org/"><citetitle>grsecurity</citetitle></link>'>
<!ENTITY url.firewalk '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.packetfactory.net/firewalk/"><citetitle>firewalk</citetitle></link>'>
<!ENTITY url.prelude '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.prelude-ids.org/"><citetitle>Prelude Hybrid IDS</citetitle></link>'>
<!ENTITY url.cnrs.liste.virus '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.services.cnrs.fr/wws/info/sos-virus"><citetitle>Liste de diffusion du CNRS sur les virus</citetitle></link>'>
<!ENTITY url.miscmag '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.miscmag.com/"><citetitle>MISC le mag de la sécurité informatique !</citetitle></link>'>
<!ENTITY url.arpwatch '<link xmlns="http://docbook.org/ns/docbook" xlink:href="ftp://ftp.ee.lbl.gov/"><application>arpwatch</application></link>'>
<!ENTITY url.doc.arp_poisonning '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.securite.teamlog.com/publication/6/10/102/"><citetitle>Le arp-poisoning</citetitle></link>'>
<!ENTITY url.linux-ip '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://linux-ip.net/html/index.html"><citetitle>Guide to IP Layer Network Administration with Linux</citetitle></link>'>
<!ENTITY url.linux-ip.arp '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://linux-ip.net/html/ether-arp.html"><citetitle>Addresss Resolution Protocol (ARP)</citetitle></link>'>
<!ENTITY url.giac.mitm '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.giac.org/paper/gsec/455/man-in-the-middle-attack/101086"><citetitle>Man-In-the-Middle Attack</citetitle></link>'>
<!ENTITY url.rfc3118 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.faqs.org/rfcs/rfc3118.html"><acronym>RFC3118</acronym></link>'>
<!ENTITY url.dhcp.install '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.linux-france.org/prj/edu/archinet/systeme/ch28.html"><citetitle>Installation d&#39;un serveur DHCP</citetitle></link>'>
<!ENTITY url.dhcp.linux-mag '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.linux-mag.com/id/473/"><citetitle>How to make Network Configuration as easy as DHCP</citetitle></link>'>
<!ENTITY url.dns.howto '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.tldp.org/HOWTO/DNS-HOWTO.html">
  <citetitle>DNS HOWTO</citetitle></link>'>
<!ENTITY url.dns.lfo '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.linux-france.org/article/memo/dns/node16.html">
  <citetitle>DNS et sécurité</citetitle></link>'>
<!ENTITY url.cert.securing.dns '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.cert.org/archive/pdf/dns.pdf">
  <citetitle>Securing an Internet Name Server</citetitle></link>'>
<!ENTITY url.bind.template '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.cymru.com/Documents/secure-bind-template.html">
  <citetitle>Secure BIND Template</citetitle></link>'>
<!ENTITY url.phrack.ip-spoofing '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.phrack.org/issues.html?issue=48&amp;xml:id=14#article"><citetitle>IP-spoofing Demystified</citetitle></link>'>
<!ENTITY url.netbios '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://packetstormsecurity.org/groups/rhino9/wardoc.txt"><citetitle>A STUDY IN REMOTE NT PENETRATION</citetitle></link>'>
<!ENTITY url.phrack.smb-cifs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.phrack.org/issues.html?issue=60&amp;xml:id=11#article"><citetitle>SMB/CIFS BY THE ROOT</citetitle></link>'>
<!ENTITY url.sql-injection '<link xmlns="http://docbook.org/ns/docbook" xlink:href="ftp://ftp.pastoutafait.org/txt/rfp.txt"><citetitle>How I hacked PacketStorm</citetitle></link>'>
<!ENTITY url.p2pwall '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.lowth.com/p2pwall/"><citetitle>P2PWall - IPTables blocking of P2P traffic</citetitle></link>'>
]>
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite" xml:lang="fr">
  <info>
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Un petit guide pour la sécurité</title>

    <authorgroup xmlns:xlink="http://www.w3.org/1999/xlink">
    <author xmlns:xlink="http://www.w3.org/1999/xlink">
      <personname xmlns:xlink="http://www.w3.org/1999/xlink">
      <firstname xmlns:xlink="http://www.w3.org/1999/xlink">Alexandre</firstname><surname xmlns:xlink="http://www.w3.org/1999/xlink">Viardin</surname>
      </personname>
      <affiliation xmlns:xlink="http://www.w3.org/1999/xlink">
      <orgname xmlns:xlink="http://www.w3.org/1999/xlink">Mirabellug</orgname>
      <address xmlns:xlink="http://www.w3.org/1999/xlink"><email xmlns:xlink="http://www.w3.org/1999/xlink">guidesecu(at)free.fr</email></address>
      </affiliation>
    </author>
    <editor xmlns:xlink="http://www.w3.org/1999/xlink">
      <personname xmlns:xlink="http://www.w3.org/1999/xlink">
      <firstname xmlns:xlink="http://www.w3.org/1999/xlink">Philippe</firstname><surname xmlns:xlink="http://www.w3.org/1999/xlink">Latu</surname>
      </personname>
      <affiliation xmlns:xlink="http://www.w3.org/1999/xlink">
      <orgname xmlns:xlink="http://www.w3.org/1999/xlink">Linux France</orgname>
      <address xmlns:xlink="http://www.w3.org/1999/xlink"><email xmlns:xlink="http://www.w3.org/1999/xlink">philippe.latu(at)inetdoc.net</email></address>
      </affiliation>
      <personblurb xmlns:xlink="http://www.w3.org/1999/xlink">
	<para xmlns:xlink="http://www.w3.org/1999/xlink">Publication version DocBook avec corrections.</para>
      </personblurb>
    </editor>
    </authorgroup>

    <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
      <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
      <imagedata fileref="images/lug.png" format="PNG" contentwidth="9cm" width="9.5cm"/>
      </imageobject>
    <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
      <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Logo Mirabellug</phrase>
    </textobject>
    </mediaobject>

    <legalnotice xmlns:xlink="http://www.w3.org/1999/xlink">
      <title xmlns:xlink="http://www.w3.org/1999/xlink">Copyright et Licence</title>

    <literallayout xmlns:xlink="http://www.w3.org/1999/xlink" class="monospaced">
    Copyright (c) 2003 Alexandre Viardin
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.2
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
    Texts.  A copy of the license is included in the section entitled "GNU
    Free Documentation License".
    </literallayout>

    <literallayout xmlns:xlink="http://www.w3.org/1999/xlink" class="monospaced">
    Copyright (c) 2003 Alexandre Viardin
    Permission est accordée de copier, distribuer et/ou modifier ce
    document selon les termes de la Licence de Documentation Libre GNU
    (GNU Free Documentation License), version 1.1 ou toute version
    ultérieure publiée par la Free Software Foundation ; sans
    Sections Invariables ; sans Texte de Première de Couverture, et
    sans Texte de Quatrième de Couverture. Une copie de
    la présente Licence est incluse dans la section intitulée
    « Licence de Documentation Libre GNU ».
    </literallayout>
    </legalnotice>
  </info>
   
<preface xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.preface">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Avant-propos</title>

<epigraph xmlns:xlink="http://www.w3.org/1999/xlink">
  <attribution xmlns:xlink="http://www.w3.org/1999/xlink">L'art de la guerre - Sun Tzu</attribution>
  <para xmlns:xlink="http://www.w3.org/1999/xlink">«Qui connaît l'autre et se connaît, en cent combats ne sera point
  défait; qui ne connaît l'autre mais se connaît, sera vainqueur une fois sur
  deux; qui ne connaît pas plus l'autre qu'il ne se connaît sera toujours
  défait.»</para>
</epigraph>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.preface.pourquoi">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Pourquoi ce guide ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce guide a été réalisé suite à un audit de sécurité que j'ai réalisé pour
mon école et aux deux conférences sur la sécurité réseau présentées au groupe
d'utilisateurs Linux de NANCY (coucou le Mirabellug). Je ne suis pas
spécialiste en sécurité réseau ; j'ai juste écrit ce guide dans le but de
donner à des administrateurs ou à des particuliers, un descriptif technique et
un manuel d'auto formation à la sécurité réseau.</para>
      
<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des administrateurs ne sont pas spécialistes en sécurité, et
peuvent être perdus devant un problème de ce type. Le masse d'informations
disponible sur Internet est parfois confuse, dense ou très technique. Ce guide
sert de point de départ et d'introduction à la sécurité. Il a été pensé dans un
but évolutif. Si vous voulez participer en écrivant ou en complétant des
chapitres, n'hésitez pas à me contacter à l'adresse
<literal xmlns:xlink="http://www.w3.org/1999/xlink">guidesecu(at)free.fr</literal>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le principe est simple : une description assez succincte sur une
attaque et ensuite une description complète des méthodes de protection. Vos
expériences personnelles et vos remarques sont aussi les bienvenues.
Évidemment, ce guide est sous license GFDL donc gratuit. La seule récompense
que pourront recevoir les éventuels participants est la mention de leurs noms
en tant que collaborateurs.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce guide se compose d'une dizaines de chapitres. Chaque chapitre comporte
une introduction. La plupart du temps, un chapitre contient au moins une
section divisée en différentes sous sections : une pour la description
d'un problème de sécurité particulier, une deuxième pour décrire les différents
moyens de s'en protéger et une troisième pour donner différents liens vers des
documents plus précis sur le sujet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le premier chapitre montre comment sécuriser une station pour éviter
toutes tentatives de piratage par un accès physique.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le deuxième chapitre décrit le fonctionnement des outils de récupération
d'informations à distance, notamment les scanners. Il montre l'utilité qu'ils
ont pour vous protéger.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le troisième chapitre introduit la notion de failles.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le quatrième chapitre introduit différentes notions sur les firewalls et
les principaux autres systèmes de protection logiciels.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le cinquième chapitre explique comment un pirate dissimule sa présence
sur un système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le sixième chapitre s'intéresse aux dispositifs destructeurs (virus,
bombes mails, ...).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le septième chapitre décrit les attaques sur les fichiers de mots de
passe.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les huitième et neuvième chapitres traitent de différents problèmes posés
par certains protocoles réseaux.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le dixième chapitre est divisé en deux parties : la première
explique comment architecturer son réseau de façon sécurisée. La deuxième
partie est un cours sur le développement d'outils dédiés uniquement à la
sécurité.</para>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.preface.ou">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Où trouver ce guide ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">C'est très simple, il y a plusieurs adresses :</para>
<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le site officiel : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://guidesecu.ifrance.com/guide/guidesecu.pdf">
  publication <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">i(france)</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le site du Mirabellug : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.mirabellug.org/docs/securite/guidesecu.pdf">
  publication <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Mirabellug</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le site Linux France : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/guides/tutoriel-secu/">
  publication <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">inetdoc.net</citetitle></link></para>
  </listitem>
</itemizedlist>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.preface.os">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Quels sont les systèmes d'exploitation visés ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La majorité des programmes défensifs utilisés et décrits dans ce guide
sont disponibles sous LINUX. Je n'oublierai pas de parler de la sécurité pour
les produits Microsoft. Cependant, Linux possède une certaine avance sur
Microsoft dans le domaine de la sécurité (notamment par un plus grand nombre de
logiciels performants et gratuits).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les autres systèmes comme SunOS, VMS, MacOS, Plan9, Novell,... seront passés
sous silence mais si vous voulez voir des chapitres précis sur certains OS
apparaitre, contactez moi par mail.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Bonne Lecture !</para>
</sect1>
</preface>
                                                                          
<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Sécurisation de base</title>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le but de ce chapitre est de donner différentes méthodes pour sécuriser
physiquement une machine. Il faut savoir qu'une grande partie des piratages
sont lancés par des pirates ayant un accès physique sur un réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Dans ce chapitre, nous ne nous focaliserons pas sur un serveur dédié à un
service particulier, mais plutôt sur les machines constituant les clients. Ces
machines sont en accès libre dans une salle non surveillée.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'objectif est d'empêcher une personne mal intentionnée d'obtenir les
accès administrateur sur la machine qu'elle utilise. La plupart des
utilitaires de piratage ont besoin des accès administrateur pour fonctionner ;
sans ces accès, la capacité de nuire est fortement diminuée.</para>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.verrouillage">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Premier conseil : Verrouillez les stations</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">N'hésitez pas à poser un cadenas sur les tours des machines, cela
empêchera tout d'abord le vol de matériel, mais cela évitera aussi d'avoir des
disques durs montés en «secret» avec toute une panoplie d'utilitaires installés
dessus.

Le conseil à suivre impérativement (et vous comprendrez pourquoi en lisant les
deux chapitres suivants) : il faut désactiver le boot sur le lecteur de
disquette et sur le lecteur de CDROM.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.linux">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Pour Linux</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Évitez d'avoir l'option <option xmlns:xlink="http://www.w3.org/1999/xlink">failsafe</option> au démarrage proposé
par Lilo. Cette option peut permettre d'obtenir les accès root (sans mot de
passe) pour la maintenance du système.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.windows">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Pour Windows</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le système de fichier NTFS permet une sécurisation accrue par rapport aux
systèmes de fichier FAT et FAT 32. Si vos machines Windows fonctionnent avec un
système FAT, passez en NTFS.

Je déconseille fortement d'utiliser Windows 95, 98 et Me, le niveau de sécurité
offert par ces systèmes en natif n'étant pas assez élevé.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.disquettes">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le lecteur de disquettes</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Évitez le boot sur disquette (certaines versions Linux s'installent en
RAM grâce à un nombre limité de disquettes) qui donne la possibilité de monter
tous les systèmes de fichiers présents sur le(s) disque(s) dur(s) de la machine
et d'en modifier le(s) contenu(s). De plus, <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.trinux.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Trinux</citetitle></link> est livré avec un panel
assez impressionnant d'utilitaires exclusivement dédiés à la sécurité.

Le programme NTFS2DOS (sous DOS) permet de changer les partitions NTFS en
partitions FAT et de pouvoir accéder à leurs contenus sans restrictions.
NTFS2DOS est lancé depuis une disquette de boot DOS.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.cdrom">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le lecteur de CDROM</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Des utilitaires comme <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.knoppixfr.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Knoppix</citetitle></link> (système Linux bootant sur un seul
CD et contenant lui aussi un nombre impressionnant d'utilitaires divers)
peuvent être utilisés pour monter les différents systèmes de fichiers présents
sur le(s) disque(s) dur(s).</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.secu-base.biospasswd">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">N'oubliez pas le mot de passe pour le BIOS</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">N'oubliez de protéger l'accès du BIOS par un mot de passe ! Attention
certains BIOS peuvent comporter des failles logicielles permettant
d'outrepasser ces protections. Encore une fois, il ne faut pas oublier de
cadenasser les tours, afin d'éviter à des utilisateurs (encore) mal
intentionnés de retirer la pile du BIOS et d'outrepasser la protection par mot
de passe.</para>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.collecte">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">La collecte d'informations</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.collecte.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Dans ce chapitre, nous allons décrire le fonctionnement des outils
permettant de récupérer des informations à distance. Ces utilitaires sont
fréquemment utilisés par les pirates pour préparer de futures attaques. C'est
pour cette raison qu'il est indispensable de les décrire dès le début. Vous
apprendrez également à les utiliser pour votre propre protection.</para>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.collecte.scan">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le Scanner</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'objectif du pirate est de repérer les serveurs offrant des services
particuliers et de les identifier. Pour obtenir ces informations, le pirate va
utiliser un <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword>.

Le but de cette section est de présenter des méthodes de protections contre le
scan (en utilisant des règles de firewalling sous iptables/ipchains par
exemple) et de savoir utiliser un <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword> pour
anticiper les futures attaques.

Le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword> décrit dans ce chapitre est <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.insecure.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</citetitle></link>, un
des <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanners</wordasword> les plus utilisés et un des plus
performants. <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> est disponible sous Windows et
Linux en paquet dans toutes les distributions majeures. La version décrite
dans ce chapitre étant celle disponible sous Linux.

Je décrirai dans une première partie ce qu'est un scanner. Ensuite, je me
focaliserai sur <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> et je le présenterai d'un point
de vue un peu plus technique, permettant de comprendre les différentes méthodes
de protection.</para>

<note xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Attention : pour une capacité optimale de fonctionnement,
  <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> doit être utilisé avec les droits du
  super-utilisateur root !.</para>
</note>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="scanning.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Qu'est ce qu'un scanner ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">C'est très simple : lorsqu'un serveur offre un service particulier
(Web, messagerie, mail), il exécute un programme assurant ce service. Ce
programme est en attente de connexions.

Les clients devant accéder à ce service doivent connaître l'adresse IP du
serveur et le numéro de port associé au service.

Ce numéro de port a été attribué suivant le document standard <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.faqs.org/rfcs/rfc1010.html"><acronym xmlns:xlink="http://www.w3.org/1999/xlink">RFC1010</acronym></link> au
programme exécutant ce service. Sur les systèmes Linux et *BSD la liste de ces
numéros est disponible dans le fichier <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/services</filename>.

La plupart des services ont un numéro de port bien défini. Par exemple, un
serveur de messagerie utilise le port 25, un serveur Web le port 80...

Lorsqu'un service est en écoute sur un port, on dit que le numéro de port
associé à ce service est ouvert.

L'intérêt du <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword> est très simple : il permet
de trouver dans un délai très court, tous les ports ouverts sur une machine
distante.

Il existe différents types de <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword>, certains se
contentent juste de donner : la liste des ports ouverts, le type et la
version de l'OS tournant sur le serveur (ces fonctionnalités seront décrites
dans ce chapitre avec<application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application>).
D'autres <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanners</wordasword> comme <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.nessus.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Nessus</citetitle></link> permettent de
tester différentes failles connues sur ces services. Voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.nessus"/>.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple avec Nmap</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisons <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> pour connaître les services en
écoute sur la machine d'adresse IP <literal xmlns:xlink="http://www.w3.org/1999/xlink">192.168.1.1</literal> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap 192.168.1.1

Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
Interesting ports on (192.168.1.1) :
(The 1544 ports scanned but not shown below are in state : closed)
Port State Service
21/tcp open ftp
53/tcp open domain
80/tcp open http
110/tcp open pop-3
111/tcp open sunrpc
113/tcp open auth
631/tcp open cups
845/tcp open unknown
901/tcp open samba-swat
10000/tcp open snet-sensor-mgmt

<application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> run completed -- 1 IP address (1 host up) scanned in 2 seconds.
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> donne un aperçu assez complet des
différents services s'exécutant sur la machine dans un temps assez bref.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">On peut observer ici que des serveurs FTP, DNS, WEB, POP-3 ... sont en
attente de connexions.</para>
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="nmap.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment marche <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Je présenterai de manière très succincte <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application>
et me focaliserai principalement sur les fonctions les plus utilisées.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour connaître les ports ouverts sur une machine,
<application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> procède à l'envoi de paquets sur tous les ports
de cette machine et analyse les réponses. Bien sûr, il y a différents types de
scans, donc différents types d'envois et donc, différents types de
réponses.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous nous intéresserons aux scans utilisant le protocole TCP (les scans
UDP et ICMP étant possibles eux aussi).</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le scan <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">vanilla TCP connect</wordasword></title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> procède à l'appel de la fonction
connect() sur tous les ports de la machine. Ce type de scan est facilement
repérable.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le scan en <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">vanilla TCP connect</wordasword> est le scan par
défaut avec <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application>, la commande est :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap [ip de la machine cible]

  ou

[root@nowhere.net /root]# nmap -sT [ip de la machine cible]
</screen>
</sect3>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les scans furtifs</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous rentrons maintenant dans une classe de scans plus difficiles à
détecter :</para>

<variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Le scan en connexion demi-ouverte ou "Syn-scan"</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> envoie sur chaque port un paquet TCP avec
le flag SYN armé ; si un port est ouvert, il renverra un paquet avec les flags
SYN et ACK armés. Illustration :</para>
<mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imagedata fileref="./images/scan-syn.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
  </imageobject>
<textobject xmlns:xlink="http://www.w3.org/1999/xlink"><phrase xmlns:xlink="http://www.w3.org/1999/xlink">scan avec indicateur SYN</phrase></textobject>
</mediaobject>
<mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imagedata fileref="./images/scan-synack.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
  </imageobject>
<textobject xmlns:xlink="http://www.w3.org/1999/xlink"><phrase xmlns:xlink="http://www.w3.org/1999/xlink">scan avec indicateurs SYN &amp; ACK</phrase></textobject>
</mediaobject>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La commande se fait par l'appel de nmap avec l'option
<option xmlns:xlink="http://www.w3.org/1999/xlink">-sS</option> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap -sS [adresse IP de la machine cible]
</screen>

  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Les scans Xmas, FIN et NULL</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Le scan FIN consiste en l'envoi de paquets TCP avec seulement le flag FIN
armé. La commande se fait par l'appel de nmap avec l'option
<option xmlns:xlink="http://www.w3.org/1999/xlink">-sF</option> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap -sF [adresse IP de la machine cible]
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le scan NULL consiste en l'envoi de paquets TCP avec seulement le flag
NULL armé. La commande se fait par l'appel de nmap avec l'option
<option xmlns:xlink="http://www.w3.org/1999/xlink">-sN</option> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap -sN [adresse IP de la machine cible]
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le Xmas scan (traduisez le scan de Noël) consiste en l'envoi de paquets
TCP avec les flags FIN/URG/PUSH armés. La commande se fait par l'appel de nmap
avec l'option <option xmlns:xlink="http://www.w3.org/1999/xlink">-sX</option> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap -sX [adresse IP de la machine cible]
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour ces trois types de scans, les systèmes répondent avec un paquet RST
si le port est fermé et ne répondent pas si le port est ouvert. Le NULL scan ne
fonctionne pas contre des plateformes Microsoft. Illustration :</para>

<mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imagedata fileref="./images/scan-xmasfinnull.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
  </imageobject>
<textobject xmlns:xlink="http://www.w3.org/1999/xlink"><phrase xmlns:xlink="http://www.w3.org/1999/xlink">requête XMAS scan</phrase></textobject>
</mediaobject>

<mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imagedata fileref="./images/scan-rst.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
  </imageobject>
<textobject xmlns:xlink="http://www.w3.org/1999/xlink"><phrase xmlns:xlink="http://www.w3.org/1999/xlink">réponse XMAS scan</phrase></textobject>
</mediaobject>
  </listitem>
  </varlistentry>
</variablelist>
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="nmap.os.fingerprinting"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">La détermination du système d'exploitation avec Nmap</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si on lance <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> avec l'option
<option xmlns:xlink="http://www.w3.org/1999/xlink">-O</option> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap -O 192.168.0.1

Starting nmap 3.48 ( http://www.insecure.org/nmap/ )
Interesting ports on (192.168.0.1):
(The 1647 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
80/tcp  open  http
113/tcp open  auth
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
515/tcp open  printer
587/tcp open  submission
901/tcp open  samba-swat
Device type: general purpose
Running: Linux 2.4.X <co xml:id="os"/>
OS details: Linux 2.4.20 - 2.4.21 w/grsecurity.org patch
Uptime 76.872 days (since Tue Sep  2 15:20:23 2003)

Nmap run completed -- 1 IP address (1 host up) scanned in 7.030 seconds
</screen>

<calloutlist xmlns:xlink="http://www.w3.org/1999/xlink">
<callout arearefs="os">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Notez bien cette ligne : <literal xmlns:xlink="http://www.w3.org/1999/xlink">Linux 2.4.X</literal>.</para>
</callout>
</calloutlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> parvient à déterminer le système
d'exploitation tournant sur la machine cible. La machine cible utilise un noyau
Linux 2.4.21-grsec. <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> ne s'est pas trompé.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il faut savoir que chaque système d'exploitation construit ses paquets
d'une manière bien particulière. Certains champs au niveau de la couche IP ou
TCP sont propres à chaque système d'exploitation.
<application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> contient une base de données d'un grand nombre
de systèmes. <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> envoie donc des paquets tests à la
machine cible et compare les paquets reçus en réponse à ceux de sa base de
données et en déduit le type de système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette base de données est mise à jour en fonction des différentes version
de Nmap.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="nmap.use">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Quel est l'intêret d'utiliser <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> permet de pouvoir prévoir les futures
attaques, et aussi de pouvoir connaître quels services tournent sur une
machine. Une installation faite un peu trop vite peut laisser des services en
écoute (donc des ports ouverts sans que cela ne soit nécessaire) et donc
vulnérables à une attaque. N'hésitez pas à utiliser
<application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> contre vos serveurs pour savoir quels ports
sont en écoute.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> est un logiciel très complet et très
évolutif, et il est une référence dans le domaine du
<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanning</wordasword>.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Configurer votre pare-feu pour empêcher les scans :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette commande permet de détecter l'envoi un grand nombre de paquets TCP
avec les flags FIN et/ou SYN et/ou ACK et/ou RST armé(s). Vérifiez que votre
pare-feu (si ce n'est pas iptables) supporte la détection de scans.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Je vous conseille de lire <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO-7.html#ss7.3"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Utiliser iptables :Spécifications de filtrage</citetitle></link>.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Divers articles écris par le développeur de
  <application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> sur le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanning</wordasword> (en
  anglais) : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.phrack.org/issues.html?issue=51&amp;xml:id=11#article"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">The Art of Port Scanning</citetitle></link>, <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.phrack.org/issues.html?issue=54&amp;xml:id=9#article"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Remote OS detection via TCP/IP Stack FingerPrinting</citetitle></link> et
  <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.phrack.org/issues.html?issue=57&amp;xml:id=7#article"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">ICMP based remote OS TCP/IP stack fingerprinting techniques</citetitle></link>.</para>
  </listitem>
</itemizedlist>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.collecte.identification">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Identifier les versions des logiciels en écoute</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Maintenant que notre pirate connaît les différents services en écoute,
son objectif va être de découvrir les noms et les versions des logiciels
utilisés pour assurer ces services.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'objectif de ce chapitre est de présenter une parade pour éviter de donner trop
d'informations sur votre système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le pirate peut déjà essayer de se connecter sur différents ports grâce
aux programmes clients associés pour glaner des informations. Rien que telnet
donne beaucoup d'informations :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# telnet 192.168.1.1

Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is "CTRL-C".
Welcome to muetdhiver
Linux Mandrake release 7.2 (Odyssey) for i586
Kernel 2.2.17-21mdk on an i586
login :
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Avec la réponse :
<literallayout xmlns:xlink="http://www.w3.org/1999/xlink" class="monospaced">
1,0,0Linux Mandrake release 7.2 (Odyssey) for i586
Kernel 2.2.17-21mdk on an i586
</literallayout>
Trop de renseignements apparaissent.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Même si le port telnet est fermé, le pirate peut glaner d'autres
informations sur les autres services. Pour cela, il peut procéder à une
connexion telnet sur le port associé à un autre service en écoute. Exemple de
connexion telnet sur le port FTP (port 21) :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# telnet 192.168.1.1 21

Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is 'CTRL-C'.
220 ProFTPD 1.2.5rc1 Server (ProFTPD Default Installation) [neuromancer]
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La ligne qui nous intéresse le plus est celle-ci :
<literallayout xmlns:xlink="http://www.w3.org/1999/xlink" class="monospaced">
220 ProFTPD 1.2.5rc1 Server (ProFTPD Default Installation) [neuromancer]
</literallayout>
La version du logiciel nous est donnée. Le pirate va alors rechercher des
informations sur les faiblesses de sécurité de celui-ci.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cependant, sur certains services, le client telnet sera inefficace. Le
pirate peut alors utiliser un programme conçu pour écrire et lire de données
sur machine cible et sur le port voulu. Ces programmes permettent d'envoyer des
scripts directement sur le logiciel souhaité sans se soucier des limites
protocolaires.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le plus réputé de ces programmes est sans doute
<application xmlns:xlink="http://www.w3.org/1999/xlink">Netcat</application>.</para>
   
<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="netcat">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Netcat</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Netcat</application> permet d'établir une connexion (TCP ou
UDP) sur un port souhaité et d'y envoyer ou d'y recevoir des données. Voici un
exemple :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nc 192.168.1.1 21

220 ProFTPD 1.2.5rc1 Server (ProFTPD Default Installation) [neuromancer]
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">On obtient directement la version du logiciel utilisé.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://packetstormsecurity.nl/UNIX/netcat/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Netcat</citetitle></link> comporte plein d'autres fonctionnalités (comme l'envoi de
scripts ...). Le pirate n'a plus qu'à trouver une faille applicative (voir
chapitre suivant) sur le logiciel correspondant.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="scanning.protect">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Retirer les bannières donnant les versions de logiciel et les messages
d'aide ou de bienvenue d'un service réseau en écoute qui peuvent donner des
informations sur votre système. Utilisez netcat contre vos serveurs pour
repérer les services trop «bavards».</para>
</sect3>
</sect2>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les failles applicatives</title>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous allons aborder dans ce chapitre les failles liées aux applications
utilisées. Nous nous focaliserons principalement sur les failles
logicielles : les failles applicatives.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces failles peuvent être de natures diverses : problèmes de
configuration, problèmes au niveau du code du logiciel, problèmes liés à de
mauvaises interprétations de commandes ou de mauvaises exécutions de
scripts.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.defaultinstall">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les installations par défaut</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Lors d'une installation, beaucoup de services peuvent être installés par
défaut (un serveur Web, FTP ...). Ces services peuvent contenir les différents
types de failles introduites auparavant. L'important est de bien contrôler lors
de l'installation, les services qui seront installés sur le système. Pour être
bien sûr de soi, il est aussi recommandé de <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword> la
machine pour voir ce qui y tourne. Voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.collecte.scan"/>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Même si certains logiciels ne comportent pas de failles connues, ils peuvent quand même donner des informations aux pirates (voir section [FIXIT] ).</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.mauvaiseconfig">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les mauvaises configurations</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Lorsqu'une application est mal paramétrée, elle peut laisser l'accès
libre à certaines bases de données sensibles (fichiers de mots de passe,
d'utilisateurs) ou de permettre d'exécuter des commandes ou des scripts
malveillants.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est important de bien lire le manuel avant d'activer un service (RTFM
!) et de bien définir «qui fait quoi».</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce principe est simple : il suffit de bien définir les utilisateurs
et les groupes et de limiter leurs droits sur certains types de fichiers et
certaines opérations d'exécution de commandes système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le plus important est de restreindre au maximun les accès à certains
fichiers sensibles et aux commandes systèmes.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.bogues">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les bogues</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les bogues sont dus à des erreurs de programmation. Les bogues font
apparaître différents types de problèmes de sécurité :</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.bogues.denis">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Des dénis de services applicatifs</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce type de faille empêche le logiciel de fonctionner et ainsi de répondre
aux requêtes demandées (d'où l'appellation déni de service). La technique est
simple, il suffit d'utiliser un bogue connu qui va faire planter le logiciel
assurant un service.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.bogues.droits">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Outrepassement de droits</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les bogues de type dépassement de buffer ou d'exploitation de bogues de
format posent de gros problèmes de sécurité. Ils visent majoritairement des
applications fonctionnant avec les accès administrateur (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">setuid
root</wordasword>) pour permettre à un attaquant d'obtenir un interpréteur de
commande au niveau administrateur (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">uid root</wordasword>) sans
aucune authentification.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.bogues.scripts">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les scripts</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Malheureusement, une mauvaise programmation de scripts ou l'utilisation
de fonctions boguées peut être source de failles de sécurité. Il convient
d'être très attentif au niveau du développement d'un script.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.exploits">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les exploits</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour exploiter ces bogues, le pirate fait appel à des «exploits». Ces
«exploits» sont en fait de petits programmes permettant d'exploiter une faille
dans un but précis (obtenir un interpréteur de commandes, accéder à certains
fichiers, augmenter ses droits...).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les exploits peuvent aussi fonctionner à distance, pour l'obtention d'un
shell (parfois avec les droits administrateur) sans mot de passe, ni nom
d'utilisateur.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.failles.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en proteger ?</title>
                                                                          
<para xmlns:xlink="http://www.w3.org/1999/xlink">Face aux multiples failles de sécurité des systèmes d'information, seule
la <emphasis xmlns:xlink="http://www.w3.org/1999/xlink">veille</emphasis> permet de répondre aux objectifs de continuité
de service. Pour assurer cette <emphasis xmlns:xlink="http://www.w3.org/1999/xlink">veille</emphasis>, les responsables
système et réseau disposent de différentes sources d'informations :</para>
                                                                          
<variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Les sites d'informations dédiées sur Internet</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Le réseau des <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Computer Emergency Response Teams</wordasword>
publie des rapports sur toute nouvelle faille de sécurité. Ces équipes
peuvent aussi fournir une assistance ne cas de piratage.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">A la tête de l'Internet, on trouve le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT</citetitle></link> de l'université de
<citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Carnegie Mellon</citetitle>. Au niveau national, on dispose de deux
CERTs : le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.renater.fr/Securite/CERT_Renater.htm"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT RENATER</citetitle></link> dont les <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.uhp-nancy.fr/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">archives des avis de sécurité</citetitle></link> sont
publiques et le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://http://www.certa.ssi.gouv.fr/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Centre d'Expertise gouvernemental de Réponse et de Traitement des Attaques  informatiques</citetitle></link>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Sur un plan moins «officiel», les <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://seclists.org/bugtraq/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Archives Bugtraq</citetitle></link> (en anglais)
font partie des meilleures sources sur les nouvelles vulnérabilités. Ces
archives donnent des descriptions très précises sur des nouvelles failles de
sécurité. <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.securityfocus.com/archive/131/description"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Bugtraq French</citetitle></link> se veut l'équivalent français.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Certains sites comme <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://packetstormsecurity.nl/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">.:[packet storm security]:.</citetitle></link> ou <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.securityfocus.com/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">SecurityFocus</citetitle></link>
contiennent aussi de nombreuses informations. Le site <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.securityfocus.com/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">SecurityFocus</citetitle></link>
fournit un moteur de recherches thématique pratique pour lister les
vulnérabilités liées à un logiciel.</para>
  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">La détection d'intrusion réseau</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les systèmes de détection d'intrusion réseau (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Network
Intrusion Detection Systems</wordasword> ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">NIDS</acronym>) peuvent
permettre de repérer les attaques exploitant des failles connues sur certains
types de logiciels.</para>
  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Les correctifs anti-débordement mémoire pour le noyau</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Il existe plusieurs outils complémentaires au noyau Linux qui permettent
de limiter les possibilités d'exécution d'exploits utilisant les bogues de
dépassement de mémoire (pile et/ou tas). <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.openwall.com/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">OpenWall</citetitle></link> et <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.grsecurity.org/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">grsecurity</citetitle></link>
sont deux exemples caractéristiques.</para>
  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">La limitation du nombre de programmes s'exécutant avec les droits administrateur</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est toujours bon de repérer les programmes s'exécutant avec les droits
administrateur. Ainsi, vous pouvez changer leurs droits pour qu'ils ne
deviennent pas un point critique pour la vulnérabilité du système. Sous linux,
la simple commande : <userinput xmlns:xlink="http://www.w3.org/1999/xlink"># find / -perm +6000</userinput> vous
permettra de lister tous les programmes s'exécutant avec les droits
administrateur.</para>
  </listitem>
  </varlistentry>
</variablelist>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les outils indispensables pour la protection</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les pare-feux (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalls</wordasword>), les tunnels et les
systèmes de détection d'intrusion aux niveaux hôte et/ou réseau
(<acronym xmlns:xlink="http://www.w3.org/1999/xlink">IDS</acronym> : <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Intrusion Detection
System</wordasword>/<acronym xmlns:xlink="http://www.w3.org/1999/xlink">NDIS</acronym> : <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Network
Intrusion Detection System</wordasword>) sont des outils indispensables pour
détecter, parer ou éviter de nombreuses attaques. Nous les décrirons dans ce
chapitre, ainsi que la manière de les utiliser de façon optimale.</para>
</sect1>                                                                          

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.pare-feu">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le pare-feu <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewall</wordasword></title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La configuration d'un pare-feu peut s'avérer être un sujet très difficile
à traiter. Cette configuration est surtout établie en fonction de vos besoins
personnels.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'objectif de ce chapitre est de donner des conseils à suivre pour bien
utiliser un pare-feu. Ensuite, nous nous intéresserons aux différentes méthodes
d'attaques contre les pare-feux.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.pare-feu.config">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">La configuration</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour bien configurer son pare-feu, il suffit de bien respecter les
conseils suivants :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Essayez de limiter l'accès à votre réseau à des utilisateurs connus
  utilisant une adresse IP statique. Vous pourrez ainsi rejeter toutes les
  autres requêtes venant d'utilisateurs utilisant une adresse IP non autorisée.
  Vous effectuez de la sorte un filtrage au niveau IP.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Fermez tous les ports en écoute sur les différents serveurs et ouvrez
  seulement ceux dont vous avez besoin.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Filtrez ces ports, c'est à dire rejetez toutes les autres requêtes sur
  les autres ports que ceux en écoute.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Empêchez toutes les connexions sortantes sur des services non
  autorisés. Pour cela, il suffit de définir un nombre limité de services
  auxquels les serveurs et les clients peuvent accéder (mail, ftp, web...).
  Ensuite, il faut configurer le firewall pour rejeter les connexions depuis
  l'intérieur vers l'extérieur sur des services différant de ceux
  définis.</para>
  </listitem>
</itemizedlist>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.pare-feu.attaque">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les attaques contre les firewalls</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La première étape lors d'une attaque est de déterminer les règles actives
sur le pare-feu. Le but est simple : savoir quels ports ne sont pas
filtrés.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.pare-feu.attaque.scan">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Avec le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">scanner</wordasword></title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> peut déterminer quels ports sont ou ne
sont pas filtrés. Voici un exemple :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]# nmap 192.168.1.2

Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
Interesting ports on (192.168.1.2) :
(The 1549 ports scanned but not shown below are in state : closed)
Port State Service
21/tcp filtered ftp
22/tcp filtered ssh
111/tcp open sunrpc
515/tcp open printer
1024/tcp open kdm

Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les ports 21 (ftp) et 22 (ssh) sont filtrés.</para>
</sect3>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.pare-feu.attaque.antiscan">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Protégez-vous contre le scanning (voir section FIXIT scan). Si le scan ne
marche pas, d'autres méthodes peuvent être utilisées comme le
<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalking</wordasword>.</para>
</sect3>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.pare-feu.attaque.firewalking">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le firewalking</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette technique de dévoilement des règles de firewalling repose sur un
unique champ de l'en-tête IP, le TTL (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Time To Live</wordasword>),
ce champ représentant la durée de vie d'un paquet. Il est fixé dès son envoi
par la pile de protocole du système et est diminué d'une unité à chaque fois
qu'il traverse un équipement assurant le routage ; quand ce champ est égal à 0,
le paquet est jeté à la poubelle.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Chaque passage d'un routeur à un autre est appelé un saut.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">C'est ce champ qui est utilisé par le logiciel
<application xmlns:xlink="http://www.w3.org/1999/xlink">traceroute</application>. Pour tracer une route, le logiciel
envoie un premier paquet UDP avec un TTL de 1 ; au premier routeur, le TTL est
décrémenté à 0. Le routeur renvoie un message ICMP de type 11 <literal xmlns:xlink="http://www.w3.org/1999/xlink">ICMP TTL
Exceeded</literal>, ce qui permet de récupérer l'adresse du premier routeur.
Ensuite <application xmlns:xlink="http://www.w3.org/1999/xlink">traceroute</application> va envoyer un deuxième paquet
avec un TTL de 2, il sera décrémenté au passage du premier routeur (TTL=1). Le
deuxième routeur va le recevoir et le décrémenter : le champ TTL sera de
nouveau égal à 0. Le deuxième routeur renverra donc un message d'erreur :
on récupère ainsi l'adresse du deuxième routeur.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si il y a N sauts jusqu'au réseau final, on réitère l'opération N
fois.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">On peut utiliser cette technique avec différents protocoles : UDP,
TCP, ICMP.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalking</wordasword> repose sur cette technique pour
déterminer les règles actives sur un pare-feu. <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.packetfactory.net/firewalk/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">firewalk</citetitle></link>, le programme
implémentant le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalking</wordasword>, détermine le nombre de
routeurs entre la machine source et la machine cible (située derrière le
firewall). Ensuite, il envoie des paquets tests avec un TTL égal à ce nombre de
routeurs + 1. Si le paquet est accepté, il traverse le firewall et on obtient
une réponse ; sinon il n'y a aucune réponse.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.packetfactory.net/firewalk/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">firewalk</citetitle></link> envoie différents types de paquets (TCP, UDP) pour
déterminer les règles de firewalling. Néanmoins, de nombreux paramètres comme
la congestion du réseau, le nombre de routeurs séparant la cible et l'émetteur
peuvent fausser l'analyse.</para>
</sect3>
</sect2>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.nids">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les systèmes de détection d'intrusion (HIDS/NIDS)</title>

<variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Système de détection d'intrusion</term>
  <term xmlns:xlink="http://www.w3.org/1999/xlink"><wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Intrusion Detection System</wordasword></term>
  <term xmlns:xlink="http://www.w3.org/1999/xlink"><acronym xmlns:xlink="http://www.w3.org/1999/xlink">IDS</acronym></term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les outils les plus pratiques ! Ces utilitaires permettent de détecter
une attaque et de vous en informer. Un IDS analyse tout ce qui se passe sur une
station. Il détecte les débordements de droits (obtention du compte root
d'une manière suspecte) et d'autres types d'attaques, il contient une base de
données sur différentes vulnérabilités.</para>
  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Système de détection d'intrusion réseau</term>
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Network Intrusion Detection System</term>
  <term xmlns:xlink="http://www.w3.org/1999/xlink"><acronym xmlns:xlink="http://www.w3.org/1999/xlink">NIDS</acronym></term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
<para xmlns:xlink="http://www.w3.org/1999/xlink">Un NIDS travaille de la même manière, mais sur les données transitant sur
le réseau. Il peut détecter en temps réel une attaque s'effectuant sur l'une
des vos machines. Il contient une base de données avec tous les codes malicieux
et peut détecter leurs envois sur une des machines. Le NIDS travaille comme un
<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">sniffer</wordasword> (voir section FIXIT sniffer), sauf qu'il
analyse automatiquement les flux de données pour détecter une  attaque.</para>
  </listitem>
  </varlistentry>
</variablelist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette section présentera deux systèmes de détection d'intrusion : un
<abbrev xmlns:xlink="http://www.w3.org/1999/xlink">NIDS</abbrev> appelé <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Snort</citetitle> et
<abbrev xmlns:xlink="http://www.w3.org/1999/xlink">IDS</abbrev> hybride <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Prelude</citetitle>. Il est à noter que
ces outils sont distribués comme logiciel libre. Je ne rappellerai pas que le
logiciel libre a une avance considérable dans le domaine de la sécurité par
rapport à ses concurrents «propriétaires».</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.nids.prelude">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Prelude-NIDS</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.prelude-ids.org/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Prelude Hybrid IDS</citetitle></link> est un des détecteurs d'intrusions les plus connus. Prelude
est disponible et libre sur les plateformes Linux, FreeBSD et Windows.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Prelude possède une architecture modulaire et distribuée. Modulaire, car
ses composants sont indépendants, et peuvent être facilement mis à jour.
Distribuée, car ces composants indépendants interagissent les uns avec les
autres. Cela permet d'avoir divers composants installés sur différentes
machines et de réduire ainsi la surcharge d'applications.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces différents composants sont les sondes et les managers. Les sondes
peuvent être de deux types : réseau ou local. Une sonde réseau analyse
tout le trafic, pour y détecter d'éventuelles signatures d'attaques. La sonde
locale assure la surveillance d'une seule machine, il analyse le comportement
du système pour y détecter des tentatives d'exploitation de vulnérabilités
internes. Les sondes signalent les tentatives d'attaques par des alertes. Ces
alertes sont reçues par le manager qui les interprète et les stocke.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour une description complète de Prelude (installation, configuration et
utilisation) consultez ce document :

http://lehmann.free.fr/PreludeInstall/InstallPrelude.html
</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.nids.snort">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Snort</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Snort</application> téléchargeable librement sur
www.snort.org est un NIDS lui aussi. Il n'est pas structuré comme Prelude.
Snort est un programme "monolithique", il ne comporte pas de module comme
Prelude, ce qui peut rendre son implémentation dans un réseau un peu moins
souple que Prelude. Snort fonctionne en trois modes (Sniffer, PacketLogger et
NIDS). Les deux premiers modes ne sont pas intéressants pour la détection
d'intrusion. Le troisième mode permet lui d'analyser le trafic réseau pour y
détecter d'éventuelles attaques.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour une description complète de Snort (installation, configuration et
utilisation) consultez ce site : http://www.snort.org/docs/ (en
anglais).</para>

</sect2>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le tunneling</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous allons décrire dans cette section différentes méthodes pour
sécuriser vos transactions, c'est-à-dire créer un VPN (Virtual Private
Network). Un réseau privé virtuel (VPN) est utilisé pour établir des
communications sécurisées en s'appuyant sur un réseau existant non sécurisé. Le
principal outil utilisé pour la création de VPN est IPsec.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">IPsec est facultatif sur IPv4 mais est obligatoire sur IPv6. IPsec a
d'autres avantages que la sécurisation du trafic, il permet par exemple
d'économiser la bande passante grâce à la compression des en-têtes des
paquets.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">IPsec fonctionne sous deux modes différents : le mode transport et
le mode tunnel. Ces deux modes seront décris dans ce qui suit.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">IPsec est composé de plusieurs protocoles différents : AH, ESP,
IPcomp et IKE.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.ah">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole AH</title>
    
<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole AH (Authentification Header) permet de garantir
l'authenticité des paquets échangés en leur inscrivant une somme de contrôle
(de l'en-tête IP jusqu'à la fin du paquet) chiffrée.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.esp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole ESP</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole ESP (Encapsulating Security Payload) encrypte toutes les
données du paquet garantissant leur confidentialité.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.ipcomp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole IPcomp</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole IPcomp (IP payload compression) permet de compresser un
paquet avant de le chiffrer avec ESP.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.ike">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole IKE</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole IKE (Internet Key Exchange) est utilisé pour l'échange des
clés utilisées pour l'encryptage.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.ipsec-modes">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les deux modes de fonctionnements de IPsec</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">AH, ESP et IPcomp fonctionnent dans le mode transport ou le mode tunnel.
Le mode "transport" encrypte directement les échanges entre deux machines. Le
mode "tunnel" encapsule les paquets encryptés dans de nouveaux en-tête
IPv4/IPv6. Il est conçu pour les passerelles VPN.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.ipsec-limites">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les limitations d'IPsec</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">IPsec pose quelques problèmes dus à son implémentation. Certains
problèmes apparaissent au niveau des messages de broadcast et multicast. IPsec
est difficile à filtrer sur les firewalls existants. Il est aussi impossible à
gérer pour les traductions d'adresse (NAT).</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.tunnel.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">Description générale des tunnels et implémentation sous Linux :

MISC Magazine n°15 - IPsec et Linux 2.6 
http://www.securiteinfo.com/cryptographie/IPSec.shtml

Description générale des tunnels et implémentation sous Windows :

http://www.laboratoire-microsoft.org/articles/network/ipsec/
</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.nessus">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Nessus</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nessus est un outil de sécurité permettant de scanner une ou plusieurs
machines. Il permet aussi de tester différentes attaques pour savoir si une ou
plusieurs machines sont vulnérables.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est très utile lors de tests de pénétration (pen test) et fait gagner
un temps incroyable.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nessus se compose d'une partie serveur (qui contient une base de données
regroupant différents types de vulnérabilités) et une partie client. L'utilisateur
se connecte sur le serveur grâce au client et après authentification, il ordonne
au serveur de procéder aux tests d'une ou plusieurs machines. Le client reçoit
ensuite les résultats du test.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nessus est disponible sous Linux et Windows, et il est entièrement gratuit.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Pour obtenir tout sur Nessus</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour télécharger les sources, binaires, ou différents documents
concernant Nessus, consultez le site : http ://www.nessus.org</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.protection.uml">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">User Mode Linux - UML </title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">User Mode Linux est un dispositif permettant de lancer un ou plusieurs
noyau(x) linux dans l'espace utilisateur (comme un simple programme). En clair,
il permet d'avoir plusieurs machines virtuelles sur une seule machine physique
hôte exécutant Linux. Les avantages sont nombreux :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Si une machine virtuelle plante, le système hôte n'est pas affecté.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Un utilisateur sera root sur une machine virtuelle, mais pas sur le système hôte.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Il permet aussi de tester différents paramètres noyaux sans se soucier des conséquences.</para>
  </listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">User Mode Linux permet notamment de s'affranchir de chroot (pour, par
exemple, la réalisation de serveurs FTP) et de toutes ses failles de
sécurité.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">   La page web de User Mode Linux :

http://user-mode-linux.sourceforge.net

</para>
</sect2>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Surveillance - Dissimulation - Maintien d'accès</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulationi.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous présenterons dans ce chapitre les programmes utilisés par les
pirates pour dissimuler, surveiller et maintenir leur accès sur un système
d'information. Nous présenterons les moyens de s'en protéger.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.trojan"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les chevaux de Troie</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le principe du «Cheval de Troie» est facile à comprendre. Un programme ou
un code malveillant est intégré à une application par ajout ou par modification
de son code. Ainsi lors de l'exécution de ce programme inoffensif, le bout de
code malveillant pourra exécuter des commandes spécifiques (récupération de
fichiers de mot de passe, altération du système, etc.) à l'insu de
l'utilisateur.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.trojan.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des antivirus peuvent détecter les chevaux de Troie.
Néanmoins, comparer la signature numérique accompagnant les fichiers (cela se
fait par un calcul reposant sur un algorithme de chiffrement appliqué à
l'ensemble du fichier) avec la sienne permet de savoir directement si l'on est
infecté.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est aussi conseillé de consulter les sites suivants pour vérifier que
vos programmes ne contiennent pas de chevaux de Troie :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT</citetitle></link>  (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Computer Emergency Response
    Team</wordasword>) est un organisme s'occupant des problèmes de sécurité
    sur Internet. Il recense les différents problèmes de sécurité et publie des
    articles (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">advisories</wordasword>) pour les décrire.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Bugtraq :
    http://seclists.org/bugtraq/</para>
  </listitem>
</itemizedlist>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.backdoor">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les backdoors</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les backdoors sont des accès cachés sur un système ou sur une
application. Le principe d'une backdoor est similaire à celui du cheval de
Troie. L'objectif est de modifier ou d'utiliser un programme pour accèder
discretement à un ordinateur distant, modifier le comportement d'un programme,
devenir administrateur.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.backdoor.effective">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les backdoors présentes dans les logiciels.</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Parfois, certains logiciels (messagerie, utilitaires systèmes) peuvent
contenir des backdoors, c'est-à-dire que, pour certaines commandes suivies
d'arguments particuliers ou avec un mot de passe bien défini, le logiciel peut
avoir un comportement différent (permettre à l'utilisateur de devenir root,
renvoyer un shell système à l'utilisateur, etc.).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces "trappes" sont inclues directement dans le code du logiciel. Certains
développeurs sont soucieux de posséder un accès sur tous les systèmes utilisant
leurs logiciels. Par exemple, Ken Thompson, l'un des pères d'UNIX, avoue avoir
modifié l'application /bin/login en permettant l'accès direct au système par la
saisie d'un mot de passe précompilé en dur. Thompson pouvait ainsi visiter tous
les systèmes utilisant son application modifiée. Parfois, certains pirates
diffusent des applications infestées de backdoors.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.backdoor.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il convient de télécharger ses applications sur le site du distributeur
ou du programmeur. Utiliser des serveurs de téléchargement non liés à l'auteur
de l'application peut se révéler dangereux.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est aussi recommandé de vérifier les checksums s'il sont donnés par le
développeur.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est aussi bon de consulter des listes de diffusion comme bugtraq pour
savoir si la version de logiciel que vous utilisez ne comporte pas de
backdoors.</para>                                                                          
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.backdoor.remote">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les backdoors dédiées aux connexions à distance</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces backdoors peuvent très bien faire partie de la première catégorie.
Comme il l'a été montré, certains logiciels peuvent autoriser un accès pour un
mot de passe particulier. Toutefois, ce paragraphe va se focaliser sur des
applications en écoute sur un port bien défini utilisées par les pirates pour
obtenir un shell. Un logiciel préalablement installé par le pirate est en
attente de connexion sur un port discret. La plupart de ces programmes sont en
écoute sur des numéros de ports ayant une valeur assez élevée (supérieur à
5000). Le pirate n'a plus qu'à se connecter sur ce programme pour récupérer son
accès sur la machine.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.backdoor.remote.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en proteger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> peut se révéler être une aide précieuse
pour les débusquer. Si, en procédant au scan d'une machine, vous constatez
qu'un port non autorisé est en écoute, il serait bon de vérifier
celui-ci.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les sites à consulter :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT</citetitle></link> en anglais.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Bugtraq :
    http://seclists.org/bugtraq/ (en anglais) et
    http://www.securityfocus.com/archive/131/description.</para>
  </listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.rootkit">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les Rootkits</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le rootkit est un programme permettant d'automatiser la dissimulation et
l'effacement des traces d'un pirate sur une machine. L'objectif d'un rootkit
est de modifier les commandes permettant d'administrer le système, de cacher
les ports ouverts par le pirate.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les premiers rootkits étaient assez basiques, ils modifiaient juste les
commandes ls, ps, netstat.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'administrateur pouvait détecter ces modifications sur les logiciels
concernés. Alors une seconde génération de rootkits apparut. Il faut savoir que
des commandes comme ps, ls ... font appels à des bibliothèques partagées pour
fonctionner. Les nouveaux rootkits modifiaient donc le code de ces
bibliothèques pour modifier le comportement de ces commandes à l'avantage du
pirate.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Encore une fois, ceci était détectable. Donc une troisième génération de
rootkits est née afin de modifier directement le comportement du noyau, par le
biais de modules chargés en mémoire (LKM). C'est à l'heure actuelle la dernière
génération.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Différents rootkits sont disponibles sur Linux.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Je ne donnerai (volontairement) pas dans cette partie une description
complète de l'utilisation des rootkits. Cela n'a aucun intérêt pour ce
guide.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des rootkits utilisent le principe des backdoors (<xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.dissimulation.backdoor"/>) pour permettre au pirate
de se connecter selon son envie sur un système.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.rootkit.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<orderedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Les checksums. Une base de données de checksums sur les différents
    fichiers système peut déjà constituer une bonne parade. Je vous conseille
    d'effectuer des checksums à la fin d'une installation sur les différents
    fichiers comme ls, ps, stat ifconfig, etc. et sur les différentes
    bibliothèques partagées.</para>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette base de donnée devrait être stockée sur un CDROM ou tout autre
    support non réinscriptible.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Compiler les programmes vitaux en statique. Comme je l'ai dit
    précédemment, certaines commandes font appels à des librairies partagées et
    des utilitaires comme "md5sum" (qui sert à faire des checksums) sous Linux
    font appels à des librairies partagées. D'où son comportement pourrait être
    modifié indirectement par un rootkit attaquant les librairies partagées.
    Pour éviter ce genre de désagrément, compilez une partie des programmes
    vitaux en statique, ainsi vous disposerez d'une trousse de secours en cas
    d'infection par rootkits.</para>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Bien sûr, pour compiler les programmes vitaux en statique, faut-il
    encore disposer d'un OS qui permette d'accéder aux sources de ces
    programmes vitaux...</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Chkrootkit. Chkrootkit (pour CHecK ROOTKIT) vous permet de détecter
    la présence d'un rootkit, il fonctionne sous Linux (FreeBsd...) et est
    téléchargeable librement sur www.chkrootkit.org.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Compilez votre noyau en statique. Vous éviterez ainsi le chargement
    de modules externes.</para>
  </listitem>
</orderedlist>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.passwd_sniffing">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">L'interception des mots de passe en réseau.</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Une autre technique utilisée pour collecter des informations (mots de
passe par exemple) est l'utilisation d'un sniffer. Le sniffer place la carte
réseau dans le mode transparent (promiscious), ce qui veut dire que la carte
intercepte tous les paquets sur le segment réseau, même ceux qui ne lui sont
pas destinés.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Plusieurs types de sniffers existent ; certains affichent les données
interceptées brutes comme Tcpdump<anchor xml:id="x1-69001f1"/>disponible
sur www.tcpdump.org, ce qui donne lieu à des fichiers de log très volumineux.
D'autres sniffers permettent de récupérer les mots de passe en les affichant
directement à l'écran associé avec le login, l'adresse du client et celle du
serveur (comme dsniff<anchor xml:id="x1-69002f2"/>disponible sur
www.packetstormsecurity.org).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Wireshark</application><anchor xml:id="x1-69003f3"/>disponible à l'adresse http://www.wireshark.org/
permet par exemple d'afficher toutes les transactions en cours sur le
réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cependant, le sniffer reste un outil puissant pour la détection
d'intrusion car, premièrement, il garde une trace de tous les échanges ayant
cours sur le réseau. Deuxièmement, il se révèle très utile pour démasquer un scan
(un grand nombre de paquets envoyés d'un seul coup), de tracer l'adresse d'un
pirate, de voir si des commandes particulières sont demandées sur le
reseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des rootkits contiennent un programme pour sniffer.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les NDIS utilisent un sniffer pour analyser les transactions
réseau.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.dissimulation.passwd_sniffing.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Là, c'est très difficile. Un sniffer est passif, il n'envoie aucun
paquet, il ne fait qu'intercepter. Mais la carte réseau étant en mode
transparent, son comportement s'en trouve changé, son temps et sa façon de
répondre à certains paquets sont modifiés. On peut détecter la présence d'un
sniffer grâce à ce changement de comportement. Le programme AntiSniff<anchor xml:id="x1-70001f4"/>disponible sur windows NT et Linux à l'adresse
http://packetstormsecurity.org/sniffers/antisniff/ de Lopht Heavy Industries
peut envoyer des paquets "tests" et en déduire si la carte est en mode
transparent donc susceptible de sniffer.</para>
                                                                          
<para xmlns:xlink="http://www.w3.org/1999/xlink">Une deuxième parade pour déjouer le sniffing est de "tunneler" toutes les
transactions. Cela veut dire encrypter toutes les transactions réseaux.
Utiliser IpvSec ou des VPN, ssh sur votre réseau s'avère être une défense
efficace contre le sniffing.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'utilisation de tunnels est traitée dans la <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.tunnel"/>.</para>
</sect2>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Dispositifs destructeurs</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.intro">
 <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les dispositifs destructeurs sont utilisés pour paralyser, saturer ou
détruire un système d'information. Ils constituent l'espèce la plus nuisible
dans le domaine de la sécurité car ils peuvent être la source de perte de
données. Le but de ce chapitre est d'expliquer leurs fonctionnements et la
façon de les combattre.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.virus">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le virus</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le virus est un programme dont le seul but est de consommer ou de
paralyser des ressources système. Le virus s'autoduplique pour mieux infecter
le système, il se propage en infectant tour à tour les fichiers. Les effets
d'une contamination varient : fichiers effacés, disque dur formaté,
saturation des disques, modification du MBR, etc.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La grande majorité d'entre eux existent sur les plates-formes Microsoft,
ils infectent en particulier les fichiers COM ou EXE. De plus, de nouvelles
formes sont apparues comme les macro-virus qui attaquent les fichiers de
données (word ou excel).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les systèmes UNIX ne sont pas épargnés ! Les administrateurs UNIX doivent
faire face à des virus comme Winux. Néanmoins, la gestion des droits sous UNIX
se révèle être un facteur limitant pour la propagation de virus.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les virus sont de plus en plus évolués, ils peuvent s'automodifier pour
échapper à une éventuelle détection (virus polymorphes). D'autres types peuvent
tenter de leurrer le système en s'installant dans des secteurs défectueux ou non
utilisés (virus furtifs) ...</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.virus.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les anti-virus commerciaux comme Norton Antivirus ou McAfee VirusScan
sont de bons outils pour traquer les virus. Toutefois, il convient de les
mettre régulièrement à jour pour profiter pleinement de leurs capacités.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est aussi important de suivre l'évolution et l'apparition de nouveaux
virus ; pour cela, consulter les sites (ainsi que pour tous les autres
dispositifs destructeurs décrits dans ce chapitre) :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT</citetitle></link> en anglais.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Les sites du CNRS : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.services.cnrs.fr/wws/info/sos-virus"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Liste de diffusion du CNRS sur les virus</citetitle></link></para>
  </listitem>
</itemizedlist>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.vers">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les vers</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les vers sont du même acabit que les virus, sauf qu'ils n'utilisent pas
nécessairement un fichier pour se propager. Ils sont aussi capables de se
dupliquer et de se déplacer au travers d'un réseau informatique. Les vers
utilisent différents supports pour se propager.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les vers simples utiliseront des failles propres à certains logiciels
(exemple du ver de Morris en 1988 qui paralysa une grande partie de
l'Internet).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les macro-vers utiliseront les pièces jointes contenant des documents
bureautiques infectés (exemple du ver Nimda).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les vers d'email sont contenus dans une pièce jointe comprenant un code
malicieux exécuté automatiquement par le logiciel de courrier électronique ou
manuellement par l'utilisateur.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.vers.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Comme pour les virus, l'antivirus se révèle être une parade efficace.
Consultez les listes citées dans la <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.destruction.virus"/>.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.bomb">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les bombes logiques</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les bombes logiques sont aussi néfastes que les virus ou les vers et sont
la cause de dégâts similaires. La différence est que la bombe logique a besoin
d'un détonateur pour s'activer, c'est-à-dire qu'elle attend une date ou une
action bien précise de l'utilisateur pour exploser.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.bomb.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisez un anti-virus performant (Mc Afee, Norton ...) régulièrement mis
à jour.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Consultez les sites décrits dans la <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.destruction.virus"/>.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les attaques par déni de services</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce type d'attaque est la plus énervante qui soit. Elles ont pour but de
saturer le réseau ou le système.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.syn_flood">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le SYN flood</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette technique consiste à saturer un serveur en envoyant une multitude
de paquets TCP avec le flag SYN armé, cela aura pour but de créer une multitude
de connexions demandant un grand nombre de ressources système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des attaques par SYN-flood sont bien détectées par différents
firewalls.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.syn_flood.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Exemple avec <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command>  limitant les demandes
d'établissement de connexion TCP acceptées à une par seconde:</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour plus de details sur cette commande, je vous conseille de lire
<link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO-7.html#ss7.3"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Utiliser iptables :Spécifications de filtrage</citetitle></link>.</para>
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.udp_flood">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">L'UDP Flood</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">De la même manière que pour le SYN flooding, l'attaquant envoie un grand
nombre de requêtes UDP sur une machine. Le trafic UDP étant prioritaire sur le
trafic TCP, ce type d'attaque peut vite troubler et saturer le trafic
transitant sur le réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plus célèbre attaque utilisant l'UDP-flooding est le
<citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Chargen Denial of Service Attack</citetitle>. Un pirate envoie une
requête sur le port echo d'une machine A indiquant comme port source celui du
port chargen d'une machine B. Le service chargen de la machine B renvoie un
caractère sur le port echo de la machine A.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ensuite le service echo de A renvoie ce caractère sur chargen. chargen le
reçoit, en ajoute un autre et les renvoie sur le port echo de A qui les
renvoient à son tour sur chargen ... et cela continue jusqu'à la saturation de
la bande passante.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.udp_flood.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est conseillé de désactiver les services chargen et echo.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si vous ne voulez pas désactiver chargen et echo, configurez votre
firewall pour éviter le <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Chargen Denial of Service Attack</citetitle>
en limitant le traffic UDP. Exemple avec
<command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
</screen>
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.fragment">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">La fragmentation de paquets</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Plus connu sous le nom de <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Teardrop Attack</citetitle>,
<citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Bonk</citetitle> ou encore <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Boink</citetitle>, cette
attaque utilise une faille propre à certaines piles TCP/IP. Cette vulnérabilité
concerne la gestion de la fragmentation IP.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce problème apparaît lorsque la pile reçoit le deuxième fragment d'un
paquet TCP contenant comme donnée le premier fragment. La pile TCP/IP peut
s'avérer incapable de gérer cette exception et le reste du trafic.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette faille est très connue sur les piles de Windows 95 et 98.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.ping_o_death">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Ping of death</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le principe est d'envoyer un paquet ICMP avec une quantité de données
supérieure à la taille maximale d'un paquet IP . Encore une fois, la pile peut
s'avérer incapable de gérer cette exception et le reste du trafic.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.smurf">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Attaque par réflexion : Smurfing</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette attaque est basée sur le protocole ICMP. Lorsqu'on envoie un ping à
un réseau en broadcast (par exemple <literal xmlns:xlink="http://www.w3.org/1999/xlink">255.255.255.0</literal>), le
paquet est envoyé à chacune des machines du réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un pirate envoie un ping en broadcast sur un réseau (A) avec une adresse
IP source correspondant à celle de la machine cible (B). Le flux entre le port
ping de la cible (B) et du réseau (A) sera multiplié par le nombre de machines
sur le réseau (A).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cela conduit à une saturation de la bande passante du réseau (A) et du
système de traitement de paquets de (B).</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.smurf.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Configurez votre firewall pour limiter le traffic ICMP. Exemple avec
<command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour plus de détails sur cette commande, je vous conseille de lire
<link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO-7.html#ss7.3"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Utiliser iptables :Spécifications de filtrage</citetitle></link>.</para>
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.ddos">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Dénis de services distribués</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Plusieurs types d'attaques sont lancées en parallèle à partir de
plusieurs sources.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.mail_bomb">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Bombes e-mail</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">mail bombing</citetitle> consiste à envoyer de gros ou de
nombreux fichiers à un utilisateur pour saturer sa boîte de réception de
courrier électronique.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.destruction.dos.mail_bomb.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des logiciels de contrôle de contenu assure un filtrage du
courrier pour détecter ce type d'attaque</para>
</sect3>
</sect2>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Sécurisation des mots de passe</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">Le but de ce chapitre est de donner au lecteur toutes les informations
nécessaires sur les techniques utilisées pour tester la résistance des
protections par mot de passe.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il faut savoir que les mots de passe utilisés sur un système
d'information sont encryptés pour garantir leur confidentialité. Ces mots de
passe encryptés sont stockés dans des listes de mots de passe sur des fichiers
systèmes prédéfinis.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un pirate peut fort bien récupérer ces listes et tester la fiabilité des
mots de passe. Il utilise pour cela l'outil adéquat : un perceur de mot de
passe.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart des algorithmes d'encryptage repose sur l'utilisation de
fonctions à sens unique. Ceci veut simplement dire qu'il est impossible de
décrypter le mot de passe à partir sa forme encryptée. L'attaque consiste alors
à encrypter différentes combinaisons de caractères et de comparer cette forme
encryptée à celle du mot de passe voulu. Si les deux chaînes correspondent,
alors la suite de caractères est celle du mot de passe.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il y a deux types d'attaques pour le craquage de mots de passe qui seront
définies dans ce chapitre.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse.dictionnaire">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">L'attaque par dictionnaire</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le programme utilise une liste de mots prédéfinis dans un fichier
externe. Cette liste est appelée un dictionnaire ; ces mots sont la plupart du
temps ceux provenant d'un dictionnaire contenant les mots du langage courant.
Le programme les encrypte avec l'algorithme d'encryptage adéquat un par un et
les compare au mot de passe encrypté.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce type d'attaque est très rapide. Un mot de passe mal choisi est vite
découvert.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse.brute-force">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le brute forcing</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si l'attaque par dictionnaire ne marche pas, le programme peut générer
des mots de passe avec une suite aléatoire de caractères, les encrypter et les
comparer au mot de passe à découvrir. Avec un mot de passe suffisamment long
(supérieur à 8 caractères), cette méthode a peu de chance d'aboutir. Si, de
plus, des caractères spéciaux sont ajoutés comme des signes de ponctuation, la
méthode peut se révéler inefficace.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il existe différents logiciels de perçage de mots de passe en fonction du
type d'encryptage (DES, MD5, special Microsoft ...).</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse.evaluation">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Tester la fiabilité de vos mots de passe !</title>

<variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Sous UNIX</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous UNIX, la liste des mots de passe des utilisateurs système est
    divisée en deux fichiers <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/shadow</filename> et
    <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/passwd</filename> ou réunis seulement dans le fichier
    <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/passwd</filename>. L'encryptage peut être du type MD5 ou
    DES<anchor xml:id="x1-95001f1"/>. L'algorithme DES a été adopté par la
    NSA comme standard à la fin des années 70. Le DES est distribué
    publiquement mais il a été développé dans le secret. Certains suspectent le
    gouvernement américain de s'être réservé une "gâche secrète" pour une
    décryptage plus rapide, je vous conseille d'utiliser d'autres algorithmes à
    la place., RSA ...</para>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Pour tester la résistance de vos mots de passe, le logiciel
    <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">John The Ripper</citetitle><anchor xml:id="x1-95002f2"/> John The Ripper est disponible sur http ://www.openwall.com/john/
    peut s'avérer être une bonne aide. Il supporte un grand nombre
    d'algorithmes d'encryptage, présente un important paramétrage des attaques.
    John the Ripper est un programme distribué librement.</para>
  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
  <term xmlns:xlink="http://www.w3.org/1999/xlink">Sous Windows</term>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Pour tester la fiabilité des mots sous Windows, l'administrateur
    pourra utiliser le logiciel John the Ripper<anchor xml:id="x1-95003f3"/>. Idem sur Windows ou sur Unix ou le logiciel LophtCrack de Lopht
    Heavy Industries<anchor xml:id="x1-95004f4"/> Lophtcrack qui, lui,
    n'est pas distribué gratuitement (enfin pas pour les versions
    récentes).</para>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Windows 9x, les mots de passe sont dispersés dans le répertoire
    racine de windows dans différents fichiers d'extension ".PWL" portant comme
    nom celui de l'utilisateur.</para>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le chiffrement utilisé pour générer les mots de passe PWL est très
    faible. Le programme Cain permet de tester leur fiabilité.</para>
  </listitem>
  </varlistentry>
</variablelist>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse.choix">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Choisir le bon mot de passe</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">N'utilisez pas des mots de votre langage courant ou des suites de
chiffres !</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Choisissez des mots de passe longs, avec une suite de caractères
totalement aléatoires et avec des caractères spéciaux, alternez les majuscules
et les minuscules.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Choisissez une phrase et alternez les majuscules et minuscules avec les
premières lettres de chaque mot en tenant compte de la ponctuation. Par
exemple :

<literallayout xmlns:xlink="http://www.w3.org/1999/xlink">
A demain, Je t'Aime mon Amour.
</literallayout>

donne : Ad,Jt'AmA, qui est un mot de passe assez costaud.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.motsdepasse.publicite">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Prévenir l'utilisateur</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">N'hésitez pas à organiser des réunions, faire circuler différents
documents pour informer vos utilisateurs des problèmes de fiabilité des mots de
passe.</para>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">La base des attaques réseaux</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Dans ce chapitre, nous décrirons les principes sur lesquels reposent de
nombreuses attaques réseaux (notamment celles décrites dans le chapitre 9),
ainsi que les règles à respecter pour les éviter ou les parer.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.detournement">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Détournement de flux</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les techniques de détournement de flux servent à rediriger le flux réseau
vers un client, vers un serveur, ou vers une autre machine.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.detournement.arp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">ARP-Poisoning</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Toute carte réseau possède une adresse physique. C'est cette adresse qui
lui permet de recevoir les paquets qui lui sont destinés sur le réseau local.
Cette adresse physique est associée à l'adresse IP grâce au protocole ARP. La
table de correspondance entre les adresses IP et les adresses physiques est
contenue dans le cache ARP. Lorsqu'un échange doit s'établir entre 2 machines
du réseau local, ces deux machines envoient des requêtes ARP avec l'adresse IP
du récepteur, associée à un champ vide pour son adresse physique. Ce récepteur
va renvoyer son adresse physique dans une réponse ARP.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si un attaquant envoie un message de réponse ARP avec son adresse
physique correspondant à l'adresse IP du récepteur, tout le flux IP dirigé vers
le récepteur sera redirigé vers l'attaquant. On dit qu'il a empoisonné le cache
ARP du récepteur.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Illustration :</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/arppoison1.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">B envoie à A une requête ARP pour connaître son adresse
    physique.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/arppoison2.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">A renvoie à B son adresse physique par une réponse ARP. B la stocke
    dans son cache en faisant correspondre l'IP de A à son adresse
    physique.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/arppoison3.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Le trafic circule entre A et B.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/arppoison4.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">C envoie à B, une réponse ARP avec son adresse physique
    correspondant à l'adresse IP de A. B stocke cette nouvelle correspondance
    dans son cache en écrasant l'ancienne.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/arppoison5.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">C dialogue avec B à la place de A. A ne reçoit plus rien.</phrase>
  </textobject>
  </mediaobject>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.detournement.arp.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La solution la plus immédiate consiste à saisir manuellement sur chaque
poste la table de toutes les adresses physiques présentes sur le réseau local.
Si elle est immédiate, cette solution est quasiment inapplicable compte tenu du
nombre d'hôtes connectés au réseau local.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Une solution correcte consiste à mettre en place un serveur DHCP avec une
liste «fermée» de correspondance entre adresses physiques
(<acronym xmlns:xlink="http://www.w3.org/1999/xlink">MAC</acronym>) et IP. Relativement à la solution précédente, la liste
exhaustive des adresses physiques est centralisée sur le serveur DHCP. On peut
ensuite configurer la journalisation du service pour que toute requête DHCP
relative à une adresse MAC inconnue génère un courrier vers l'administrateur
système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Enfin, On peut utiliser sous UNIX, un logiciel spécialisé :
<link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="ftp://ftp.ee.lbl.gov/"><application xmlns:xlink="http://www.w3.org/1999/xlink">arpwatch</application></link> qui permet de surveiller tout le trafic ARP.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les NIDS peuvent aussi détecter ce type d'attaques (notamment
Prelude-IDS).</para>
</sect3>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.detournement.arp.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">L'article <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.securite.teamlog.com/publication/6/10/102/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Le arp-poisoning</citetitle></link> est une bonne introduction à la
problématique.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La section <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://linux-ip.net/html/ether-arp.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Addresss Resolution Protocol (ARP)</citetitle></link> du <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://linux-ip.net/html/index.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Guide to IP Layer Network Administration with Linux</citetitle></link> montre toutes les
possibilités d'interaction sur le protocole <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ARP</acronym> avec le
noyau Linux.</para>
</sect3>
</sect2>
   
<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.detournement.tcp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Désynchronisation TCP</title>
                                                                          
<para xmlns:xlink="http://www.w3.org/1999/xlink">L'ARP-Poisining permet de rediriger tout le trafic IP mais, si
l'attaquant n'a besoin que du trafic TCP, il peut interférer entre une
connexion client-serveur pour rediriger le flux du client vers lui. La
synchronisation TCP est assurée par les numéros de séquences TCP. Si, pendant
un échange, l'attaquant envoie des paquets mal formés au client avec une adresse
IP correspondant à celle du serveur en y plaçant des mauvais numéros de
séquences, le client va croire qu'il a perdu la connexion et stoppera ses
échanges avec le serveur. Mais si l'attaquant envoie les bons numéros de
séquences au serveur, il récupèrera la connexion pour lui.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Illustration :</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/desyncro1.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">A dialogue avec B. Il envoie un paquet avec de 60 octets, avec les
    numéros de séquences indiqués.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/desyncro2.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">C répond à A en se faisant passer pour B et envoie de mauvais
    numéros de séquence.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/desyncro3.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">A ne répond plus à B car il croit qu'il a perdu la
    connexion.</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/desyncro4.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">C répond à la place de A et communique avec B, il a volé la
    connexion.</phrase>
  </textobject>
  </mediaobject>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.mitm">
  <title xmlns:xlink="http://www.w3.org/1999/xlink"><wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Man In the Middle</wordasword> - MITM</title>
    
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les attaques de type <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Man-In-the-Middle</wordasword> sont très
faciles à comprendre. <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Man-in-the-Middle</wordasword> signifie
l'homme du milieu. Cette attaque fait intervenir trois protagonistes : le
client, le serveur et l'attaquant. Le but de l'attaquant est de se faire passer
pour le client auprès du serveur et se faire passer pour le serveur auprès du
client. Il devient ainsi l'homme du milieu. Cela permet de surveiller tout le
trafic réseau entre le client et le serveur, et de le modifier à sa guise pour
l'obtention d'informations (mots de passe, accès système, etc.).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La plupart du temps, l'attaquant utilise les techniques de détournement
de flux décrites dans les précédentes sections pour rediriger les flux du
clients et du serveur vers lui.</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/middle.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Attaque du type MITM</phrase>
  </textobject>
  </mediaobject>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.mitm.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Document</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le document <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.giac.org/paper/gsec/455/man-in-the-middle-attack/101086"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Man-In-the-Middle Attack</citetitle></link> est très complet sur cette question.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesreseau.ip-encapsulation">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Encapsulation d'IP dans d'autres protocoles.</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Certains logiciels permettent d'encapsuler le protocole IP dans d'autres
protocoles comme SSH, HTTP, etc.. Ce type d'encapsulation peut être la base de
nombreuses attaques réseaux.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Par exemple, imaginons cette situation : un pirate veut se connecter
sur le port FTP (21) d'une machine A d'un réseau protégé par un firewall B. B
n'autorise et n'assure que le trafic HTTP. Si le pirate veut se connecter sur
A, il encapsule les paquets à destination de A dans des requêtes HTTP destinées
à B. B accepte ces paquets car ils reposent sur le protocole HTTP. Si B est mal
configuré, il enverra à A les paquets lui étant destinés.</para>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Description d'attaques sur différents protocoles</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce chapitre décrit les failles intrinsèques de différents protocoles.
Intrinsèques par le fait qu'elles ne sont pas liées à une faille applicative du
client ou du serveur gérant ce protocole, mais plutôt à sa conception. Nous
présenterons aussi la manière de s'en protéger.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dhcp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Dynamic Host Configuration Protocol - DHCP</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole <acronym xmlns:xlink="http://www.w3.org/1999/xlink">DHCP</acronym> est utilisé pour délivrer
dynamiquement une adresse IP unique pour chaque machine le demandant sur le
réseau interne. En clair, si un client interne veut obtenir une adresse IP pour
bénéficier des services réseau, il envoie un message DHCP à tout le réseau
(broadcast) pour trouver le serveur DHCP. Le serveur DHCP répondra en lui
envoyant tous les paramètres de configuration réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce service permet «d'alléger» la gestion du réseau en évitant d'avoir des
configurations statiques à maintenir sur chaque machine. Malheureusement, le
protocole DHCP comporte diverses failles que nous allons vous présenter.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dhcp.dos">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Attaque par épuisement de ressources</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Comme il l'a été décrit, un serveur DHCP possède un stock d'adresses IP
qu'il distribue aux différents clients. Ce stock est bien sûr limité. Il y aura
seulement un nombre défini de clients pouvant disposer des différentes adresses
IP en même temps. Si le serveur est bien administré avec une liste «fermée» de
correspondances entre adresses MAC et IP aucune attaque par épuisement n'est
possible.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si le service est mal administré ; c'est à dire que les correspondances
entre adresses MAC et IP se font dynamiquement à partir d'une plage d'adresses
IP vacantes, le scénario suivant est possible.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si un pirate génère un grand nombre de requêtes DHCP semblant venir d'un
grand nombre de clients différents, le serveur épuisera vite son stock
d'adresses. Les «vrais» clients ne pourront donc plus obtenir d'adresse
IP : le trafic réseau sera paralysé.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dhcp.fake">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Faux serveurs DHCP</title>
 
<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette attaque vient en complément de la première. Si un pirate a réussi à
saturer un serveur DHCP par épuisement de ressources, il peut très bien en
activer un autre à la place. Ainsi il pourra ainsi contrôler tout le trafic
réseau.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dhcp.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Chaque fois que c'est possible, il faut limiter le service DHCP à une
liste «fermée» de correspondances d'adresses MAC et IP. De cette façon toute
requête «étrangère» à cette liste est systématiquement rejetée.</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Windows, remplissez les champs de l'option
  <option xmlns:xlink="http://www.w3.org/1999/xlink">Réservations</option> dans le programme de configuration du serveur
  DHCP</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Linux, éditez le fichier <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/dhcpd.conf</filename> sur
  le serveur DHCP. Par exemple, pour un client <literal xmlns:xlink="http://www.w3.org/1999/xlink">toto</literal> avec
  l'adresse MAC <literal xmlns:xlink="http://www.w3.org/1999/xlink">00:C0:34:45:56:67</literal> à laquelle on fait
  correspondre : l'adresse <literal xmlns:xlink="http://www.w3.org/1999/xlink">192.168.1.2</literal>, le routeur
  <literal xmlns:xlink="http://www.w3.org/1999/xlink">192.168.1.1</literal> et le serveur de noms
  <literal xmlns:xlink="http://www.w3.org/1999/xlink">192.168.1.3</literal>.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
host toto {
  hardware ethernet 00:C0:34:45:56:67;
  fixed-address 192.168.1.2;
  option routers 192.168.1.1;
  option domain-name-server 192.168.1.3;
  }
</screen>
  </listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">S'il est impossible d'établir une liste «fermée», segmentez votre réseau
en sous-réseaux et attribuez-leur chacun un serveur DHCP. Ces serveurs seront
indépendants les uns des autres.</para>
                                                                          
<para xmlns:xlink="http://www.w3.org/1999/xlink">Enfin, les nouvelles versions du protocole DHCP permettent l'utilisation
de mécanismes d'authentification plus stricts. Assurez vous que vos serveurs
utilisent ces versions de protocoles (Voir <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.faqs.org/rfcs/rfc3118.html"><acronym xmlns:xlink="http://www.w3.org/1999/xlink">RFC3118</acronym></link>).</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dhcp.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sécurisation sous windows : [FIXIT]</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Linux : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.linux-france.org/prj/edu/archinet/systeme/ch28.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Installation d'un serveur DHCP</citetitle></link> et <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.linux-mag.com/id/473/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">How to make Network Configuration as easy as DHCP</citetitle></link></para>
  </listitem>
</itemizedlist>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dns">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Domain Name Service - DNS</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole DNS assure la correspondance entre le nom d'une machine et
son adresse IP. Un serveur DNS est en écoute par défaut sur le
<acronym xmlns:xlink="http://www.w3.org/1999/xlink">UDP</acronym> port 53. Les attaques décrites ici concernent les
faiblesses du protocole DNS.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dns.id-spoofing">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le DNS ID spoofing</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">C'est la première attaque que nous allons décrire. Elle aboutit à un
détournement de flux entre deux machines à l'avantage du pirate.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Imaginons qu'un client A veuille établir une connexion avec une machine
B. La machine A connaît le nom de la machine B mais pas son adresse IP, ce qui
lui empêche pouvoir communiquer avec. La machine A va donc envoyer une requête
au serveur DNS du réseau de B pour connaître l'adresse IP de B, cette requête
sera identifiée par un numero d' identification (ID). Le serveur répond à cette
requête en fournissant l'adresse IP de B et en utilisant le même numéro
d'ID.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce numéro a une valeur comprise entre 0 et 65535.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le DNS ID spoofing a pour but de d'envoyer une fausse réponse à une
requête DNS avant le serveur DNS. De cette façon, le pirate peut rediriger vers
lui le trafic à destination d'une machine qu'il l'intéresse.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Dans notre exemple, un pirate C doit répondre à A avant le serveur DNS
(D) du réseau de B. Ainsi, il envoie à A son adresse IP associée au nom de la
machine B. A communiquera alors avec le pirate C au lieu de la machine
B.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Illustration :</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnsid1.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS ID 1</phrase>
  </textobject>
  </mediaobject>
                                                                          
  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnsid2.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS ID 2</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnsid3.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS ID 3</phrase>
  </textobject>
  </mediaobject>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Néanmoins, pour implémenter cette attaque, le pirate doit connaître l' ID
de requête DNS. Pour cela, il peut utiliser un sniffer s'il est sur le même
réseau, soit prédire les numeros d'ID par l'envoi de plusieurs requêtes et
l'analyse des réponses.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dns.cache-poisoning">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le DNS cache poisoning</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le principe de cette attaque est très similaire à celui de
l'ARP-Poisoining. Pour gagner du temps dans la gestion des requêtes, le serveur
DNS possède un cache temporaire contenant les correspondances adresses IP -
noms de machine. En effet, un serveur DNS n'a que la table de correspondance
des machines du réseau sur lequel il a autorité. Pour des machines distantes,
il doit interroger d'autres serveurs DNS. Pour éviter de les interroger à
chaque requête, il garde en mémoire (dans un cache), le résultat des
précédentes requêtes.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'objectif du pirate est d'empoisonner ce cache avec de fausses
informations. Pour cela, il doit avoir un nom de domaine sous contrôle et son
serveur DNS.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Imaginons qu'un pirate (A) possède le nom de domaine
<literal xmlns:xlink="http://www.w3.org/1999/xlink">attaquant.com</literal>, et son serveur DNS (C) et qu'il veuille
empoisonner le cache du serveur DNS (B) du réseau
<literal xmlns:xlink="http://www.w3.org/1999/xlink">cible.net</literal>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le pirate envoie une requête au serveur DNS (B) du réseau
<literal xmlns:xlink="http://www.w3.org/1999/xlink">cible.net</literal> demandant la résolution du nom de domaine
<literal xmlns:xlink="http://www.w3.org/1999/xlink">attaquant.com</literal>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le serveur DNS (B) de <literal xmlns:xlink="http://www.w3.org/1999/xlink">cible.net</literal> va donc envoyer une
requête sur le serveur DNS (C) de l'attaquant (c'est lui qui a autorité sur le
domaine <literal xmlns:xlink="http://www.w3.org/1999/xlink">attaquant.com</literal>). Celui-ci répondra et joindra des
informations additionnelles falsifiées par le pirate (un nom de machine (D)
associé à l'adresse IP (A) du pirate). Ces informations seront mises en cache
sur le serveur DNS (B) de <literal xmlns:xlink="http://www.w3.org/1999/xlink">cible.net</literal>. Si un client quelconque
(E) demande l'adresse IP pour le nom de la machine (D), il recevra l'adresse du
pirate (A) en retour.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Illustration :</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnspoison1.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS poison 1</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnspoison2.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS poison 2</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnspoison3.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS poison 3</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnspoison4.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS poison 4</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnspoison5.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS poison 5</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/dnspoison6.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">DNS poison 6</phrase>
  </textobject>
  </mediaobject>
</sect2>
                                                                          
<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dns.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Configurez votre serveur DNS pour qu'il ne résolve directement que les
noms de machine du réseau sur lequel il a autorité.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Autorisez seulement des machines internes à demander la résolution de
noms de domaines distants.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Mettez à jour ou changez les logiciels assurant le service DNS pour
qu'ils vous protègent des attaques décrites précédemment.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.dns.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il existe de nombreux documents décrivant la configuration du service
DNS. Dans le monde GNU/Linux, la référence de base est le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.tldp.org/HOWTO/DNS-HOWTO.html">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">DNS HOWTO</citetitle></link>. On
peut aussi citer <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.linux-france.org/article/memo/dns/node16.html">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">DNS et sécurité</citetitle></link>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">En ce qui concerne le volet sécurité, deux références sortent du
lot :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le guide publié par le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT</citetitle></link> : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org/archive/pdf/dns.pdf">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Securing an Internet Name Server</citetitle></link> est
  une excellente référence sur la syntaxe des fichiers de déclaration de
  zones.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">La page Web <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cymru.com/Documents/secure-bind-template.html">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Secure BIND Template</citetitle></link> est dédiée à la publication de patrons
  de fichiers de configuration. Elle est très régulièrement mise à jour depuis
  plusieurs années.</para>
  </listitem>
</itemizedlist>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.finger">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">FINGER</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le service <application xmlns:xlink="http://www.w3.org/1999/xlink">finger</application> permet d'obtenir des
informations sur les utilisateurs du système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">finger</application> s'invoque simplement avec la
commande :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]#finger @machinecible
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le symbole @ produit le même effet que l'astérisque pour un listing de
répertoire. En effet, les informations concernant tous les utilisateurs
connectés à la machine de nom <literal xmlns:xlink="http://www.w3.org/1999/xlink">machinecible</literal> seront listées et
envoyées en réponse à la requête. Exemple :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]#finger @machinecible

Login Name Tty Idle Login Time Office toto Le toto pts/7 3d Mar 26 20 :43
(case)// root root pts/4 5d May 25 16 :20
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">On voit ainsi qui est connecté sur le système (<literal xmlns:xlink="http://www.w3.org/1999/xlink">toto</literal> et
<literal xmlns:xlink="http://www.w3.org/1999/xlink">root</literal>) et depuis quand (colonne
<literal xmlns:xlink="http://www.w3.org/1999/xlink">Time</literal>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">finger</application> n'est pas dangereux mais le laisser en
écoute, sans en avoir réellement besoin, est une grossière erreur. finger donne
trop d'informations sur les utilisateurs systèmes.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.finger.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en proteger ?</title>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous UNIX, il est conseillé de désactiver le service
  <application xmlns:xlink="http://www.w3.org/1999/xlink">finger</application> dans le fichier
  <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/inetd.conf</filename>. Pour cela, ajoutez un dièse (#)
  devant la ligne relative au service <application xmlns:xlink="http://www.w3.org/1999/xlink">finger</application>.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
# finger stream tcp nowait root /usr/sbin/tcpd in.fingerd
</screen>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Windows, désactivez le programme associé au service finger.</para>
  </listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si vous ne souhaitez pas désactiver le service finger, configurez votre
firewall pour limiter les accès vers ce service.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ftp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">FTP</title>
                                                                          
<para xmlns:xlink="http://www.w3.org/1999/xlink">FTP (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">File Transfert Protocol</wordasword>, en écoute par
défaut sur les ports 20 et 21) est le service utilisé pour assurer le transfert
de fichiers. Il y a deux types de serveurs FTP : les serveurs FTP avec
authentification par mots de passe et les serveurs anonymes. Pour les premiers,
le client désirant se connecter devra fournir un login accompagné d'un mot de
passe pour authentification. Dans le cas du serveur FTP anonyme, tout le monde
peut s'y connecter librement.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le premier défaut du protocole FTP est de ne pas encrypter les mots de
passe lors de leur transit sur le réseau. Les mots de passe associés aux logins
circulent en clair à la merci des sniffers.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Voici l'exemple d'une interception par un sniffer d'une authentification
FTP :</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le logiciel utilisé est tcpdump.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
22 :10 :39.528557 192.168.1.3.1027 ¿ 192.168.1.4.ftp : P 1 :12(11) ack
47
win 5840 ¡nop,nop,timestamp 441749 100314¿ (DF) [tos 0x10]
0x0000 4510 003f 88d6 4000 4006 2e7b c0a8 0103 E.. ?..@.@.......
0x0010 c0a8 0104 0403 0015 e351 3262 8d6a dd80 .........Q2b.j..
0x0020 8018 16d0 68da 0000 0101 080a 0006 bd95 ....h...........
0x0030 0001 87da 5553 4552 2061 6c65 780d 0a00 ....0,1,0USER.alex...


22 :10 :57.746008 192.168.1.3.1027 ¿ 192.168.1.4.ftp : P 12 :23(11) ack
80
win 5840 ¡nop,nop,timestamp 443571 101048¿ (DF) [tos 0x10]
0x0000 4510 003f 88d8 4000 4006 2e79 c0a8 0103 E.. ?..@.@..y....
0x0010 c0a8 0104 0403 0015 e351 326d 8d6a dda1 .........Q2m.j..
0x0020 8018 16d0 5ba1 0000 0101 080a 0006 c4b3 ....[...........
0x0030 0001 8ab8 5041 5353 2074 6f74 6f0d 0a00 ....0,1,0PASS.toto...
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">On peut voir facilement que l'utilisateur <literal xmlns:xlink="http://www.w3.org/1999/xlink">alex</literal> a le
mot de passe <literal xmlns:xlink="http://www.w3.org/1999/xlink">toto</literal>.</para>
                                                                          
<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ftp.anonymous">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le serveur FTP anonyme</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le serveur FTP anonyme pose de plus gros problèmes. Le premier est qu'une
mauvaise gestion des droits d'accès peut s'avérer être une erreur fatale.
Laisser trop de répertoires en droit d'écriture et/ou d'exécution est plus que
dangereux pour la sûreté du système. Le pirate pourrait y installer ou y
exécuter des codes malveillants lui permettant d'accroître son pouvoir sur la
machine.</para>

<sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ftp.anonymous.bouncing">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Boucing attack - Attaque par rebonds</title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les serveurs FTP anonymes peuvent être sujets à des attaques par rebonds.
Ces attaques consistent à utiliser un serveur FTP anonyme comme relais pour se
connecter à d'autres serveurs FTP. Imaginons qu'un pirate se voit refuser
l'accès par un serveur FTP dont l'accès est alloué à seulement un certain
groupe d'adresses IP. Imaginons que le pirate ne fait pas partie de ce groupe,
mais qu'un serveur FTP anonyme y appartienne. Le pirate peut très bien se
connecter sur le serveur FTP anonyme, utiliser les commandes assurant la
connexion sur le serveur FTP protégé et y récupérer des fichiers.</para>
</sect3>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ftp.anonymous.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Installez un serveur FTP anonyme seulement en cas d'absolue nécessité. Si
vous devez le faire, limitez au maximum les droits sur les différents
répertoires et fichiers laissés au public.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour vous protéger des attaques par sniffer, je vous recommande
d'utiliser SFTP (Secure FTP) pour vos transactions FTP. SFTP encryptera les
échanges et les protégera ainsi des écoutes indiscrètes. Vous pouvez aussi
utiliser des tunnels comme IPSec pour protéger vos connexions (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.tunnel"/>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Filtrez les accès (via un firewall) en allouant seulement l'accès à un
certain groupe d'adresses IP (en évitant d'inclure des serveurs anonymes
permettant de servir de relais).</para>
</sect2>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.http">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">HTTP</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un serveur HTTP est en écoute sur le port 80. Le protocole HTTP est
sûrement le plus utilisé sur le web pour les pages html. Ce protocole ne
comporte pas de failles intrinsèques majeures. En revanche, les applications
assurant son traitement sont souvent bourrées de failles. Cela vient du fait
que le web devient de plus en plus demandeur en terme de convivialité et cela
génère une complexité plus grande des applications, d'où un risque de failles
plus important.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous allons décrire ces failles une à une.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.http.bavard">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les serveurs trop bavards</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Parfois, les bannières des serveurs web sont trop explicites. Exemple sur
un serveur Apache  :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Sun, 04 Jan 2004 15:07:06 GMT
Server: Apache/1.3.29 (Debian GNU/Linux)
Last-Modified: Sat, 24 Nov 2001 16:48:12 GMT
ETag: "17082-100e-3bffcf4c"
Accept-Ranges: bytes
Content-Length: 4110
Connection: close
Content-Type: text/html; charset=iso-8859-1

Connection closed by foreign host.
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Lors de l'envoi de la commande <userinput xmlns:xlink="http://www.w3.org/1999/xlink">HEAD / HTTP/1.0</userinput>,
trop d'informations sont données.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les pages d'erreurs (404 : page non trouvée) peuvent aussi contenir
des informations sur le système.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.http.application">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Vulnérabilités liées aux applications web</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La complexité des serveurs ou des navigateurs (clients) web pose de gros
problèmes de sécurité. Ces applications sont vulnérables à de nombreux bugs.
Chaque application a son type de faille. Netscape par exemple devient
vulnérable lors du traitement de certaines chaînes de caractères. Cela peut
permettre de remonter toute l'arborescence des fichiers du serveur. Les
serveurs IIS peuvent renvoyer un shell système pour un envoi de commandes
particulières.</para>
                                                                          
<para xmlns:xlink="http://www.w3.org/1999/xlink">Les langages comme Javascript, Perl, PHP, ASP pour la réalisation de
scripts peuvent se rélèver dangereux. L'origine d'une faille dans une
application web peut apparaître à cause de deux problèmes. Le premier est la
fiabilité de la conception du script, le second est la fiabilité des fonctions
utilisées. Si un script est mal conçu, il peut être la source de nombreuses
failles. De même, si sa conception est bonne mais qu'il utilise des fonctions
boguées, il peut se révéler encore plus dangeureux.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.http.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment se protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Vérifiez que votre serveur web n'est pas trop bavard. Si c'est le cas,
modifiez sa configuration pour qu'il se taise. Pour cela, consultez la
documentation pour modifier le contenu des messages d'erreur ou de
bienvenue.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un serveur web ne devrait jamais être exécuté avec les droits
administrateurs.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Mettez à jour les navigateurs et les serveurs pour prévoir d'éventuelles
failles.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Lors du développement de scripts, prenez garde lors de la conception à la
gestion des droits des utilisateurs pour son exécution. Informez-vous aussi sur
les fonctions connues pour être «sensibles».</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les NIDS peuvent être une bonne parade contre les attaques reposant sur
des failles logicielles. Ils permettent de détecter l'exécution de telles
attaques (Voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.nids"/>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'utilisation de SHTTP (Secure HTTP) est aussi une bonne parade contre
les attaques HTTP.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Une bonne définition de SHTTP est donné par E.Rescorla et A. Schiffman :</para>

<blockquote xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">"Le protocole SHTTP est une extension de HTTP qui fournit des services
  de sécurité, applicables indépendamment, qui permettent de garantir la
  confidentilité, l'authenticité/intégrité, et le non refus d'origine."</para>
</blockquote>

<para xmlns:xlink="http://www.w3.org/1999/xlink">SSL ("Secure Socket Layer" pour Netscape) permet de protéger les
transactions web, il peut être judicieux de l'utiliser.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ident">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">IDENT</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le service <application xmlns:xlink="http://www.w3.org/1999/xlink">ident</application> (anciennement appelé auth, en
écoute sur le port 113) est du même genre que le service
<application xmlns:xlink="http://www.w3.org/1999/xlink">finger</application>. Il fournit des informations sur les
détenteurs de connexions sur le système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il convient de le supprimer, s'il n'a aucune utilité.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ident.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Sous UNIX, pour désactiver le service <application xmlns:xlink="http://www.w3.org/1999/xlink">ident</application>,
ajoutez un dièse (#) pour commenter la ligne concernant ce service dans le
fichier <filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/inetd.conf</filename>.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
# :INFO : Info services
#ident stream tcp wait identd /usr/sbin/identd identd
</screen>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ip-spoofing">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">IP et l'IP-Spoofing</title>
    
<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette méthode de piratage date un peu. Mais elle demeure légendaire par
l'utilisation qu'en a fait Kevin Mitnick en 1995 contre le Supercomputer Center
de SanDiego protégé par Tsatumo Shimomura. Néanmoins, cette faille était connue
depuis février 1985 comme le montre le rapport <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Weakness in the
4.2BSD Unix TCP/IP software</citetitle> écrit par Robert Morris.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'IP spoofing se base sur une usurpation d'adresse IP. L'IP spoofing est
utilisé lorsque deux hôtes sont en relation de confiance grâce à leurs adresses
IP, c'est-à-dire que la seule authentification faite au niveau du serveur
consiste en une vérification de l'adresse IP du client.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'IP spoofing a souvent lieu contre les services rlogin et rsh car leur
mécanisme d'authentification est basée sur l'adresse IP. Le principe est
simple : dès qu'un client possède une connexion établie sur le serveur
avec un mode d'authenfication basée sur l'adresse IP, le pirate va essayer de
se faire passer pour le client auprès du serveur. Pour cela, il va empêcher le
client de dialoguer avec le serveur et répondra à sa place.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'IP-Spoofing est une attaque concernant un nombre limité de machines.
Vous découvrirez pourquoi en lisant la suite.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ip-spoofing.theorie">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Un peu de théorie ...</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole IP est non-orienté connexion, il n'assure aucune
vérification de la réception des paquets et ne se soucie guère de la façon de
les traiter. IP n'assure qu'un routage d'une adresse vers autre. Il est donc
facile de duper le routage IP en injectant des paquets falsifiés ayant des
adresses IP valides sur le réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole TCP, quant à lui, assure une fiabilité de la remise des
paquets grâce à des numéros de séquences qui les distingue un à un. Chaque
paquet TCP possède deux numéros, le numéro de séquence et le numéro
d'acquittement. Ces deux nombres sont codés sur 32 bits. Ils sont uniques, afin
de ne pas confondre les paquets lors de leurs traitements.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">C'est sur ces bases que nous allons décrire l'attaque.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Imaginons que le client A est connecté en rsh sur le serveur B. Le pirate
C va tenter de voler la connexion au client.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il va en premier lieu réduire au silence le client en le saturant avec
des attaques tels que le syn-flooding, le déni de service (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.destruction.dos"/>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La seconde partie de l'attaque est assez simple. Le pirate envoie une
série de demandes de connexion au serveur ( paquets TCP avec le flag SYN armé)
en utilisant l'adresse de A. Le serveur répond avec une série de paquets
d'acquittement (flags SYN et ACK armés). C'est là que réside toute la finesse
de l'IP spoofing.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Mais d'abord, quelques rappels sur le protocole TCP. Pour l'établisement
d'une connexion TCP, le client envoie un paquet avec un numéro de séquence
initial (NS1). Le serveur va répondre avec un paquet d'acquittement ayant son
propre numéro de séquence (NS2), mais ayant un numéro d'acquittement (NA1) égal
au numéro de séquence initial incrémenté d'une unité (NA1=NS1+1). Ensuite le
client renvoie un paquet avec un numéro d'acquittement (NA2=NS2+1). Une
connexion TCP s'établit donc en trois parties.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce principe de numéros de séquences et d'acquittement est utilisé tout le
long de la transaction pour en assurer la fiabilité. La subtilité de l'attaque
réside dans le fait que le serveur génére la valeur NS2 suivant un cycle
particulier. Il peut utiliser, par exemple, soit une fonction générant un
nombre aléatoire, soit incrémenter une valeur initiale de 128 toutes les
secondes et de 64 après chaque connexion. Tout dépend de l'implémentation de la
pile TCP/IP du système.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Et c'est là que réside tout le problème. Le pirate envoie un grand nombre
de demandes de connexion dans un laps de temps déterminé et analyse les
acquittements du serveur pour déterminer l'algorithme d'incrémentation. Si cet
algorithme est basé sur la génération de nombres aléatoires, l'attaque a peu de
chances d'aboutir. Mais si l'algorithme est facilement compréhensible, le
pirate va alors envoyer une requête de connexion au serveur en utilisant
l'adresse IP du client. Le serveur va répondre avec un paquet d'acquittement de
numero de sequence (NS). Le client mis hors service ne pourra répondre, le
pirate le fera à sa place.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour cela, il doit injecter un paquet ayant un numéro d'acquittement de
valeur NA = NS +1. Mais, ayant usurpé l'adresse du client, il ne peut
intercepter les paquets lui étant destinés. Il ne peut donc pas connaître cette
valeur NS. Il va donc la générer lui-même à partir de son analyse de
l'algorithme d'incrémentation. C'est pourquoi cette attaque est aussi qualifiée
«d'attaque aveugle». Si le numéro est valide, le pirate a établi la connexion
au serveur en se faisant passer pour le client.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le fait que l'attaque ne se restreigne qu'à une petite partie de systèmes
vient du fait que la plupart des piles TCP/IP utilisent des numéros de
séquences basés sur des nombres aléatoires. Certains systèmes comme BSD ou
HP-UX connaissent de gros problèmes à cause de l'IP-Spoofing.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Illustration </para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof1.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 1</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof2.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 2</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof3.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 3</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof4.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 4</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof5.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 5</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof6.png" format="PNG" contentwidth="8cm" width="8cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 6</phrase>
  </textobject>
  </mediaobject>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/ipspoof7.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">IP spoofing 7</phrase>
  </textobject>
  </mediaobject>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ip-spoofing.nmap">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Prévenir l'IP spoofing grâce à Nmap</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><application xmlns:xlink="http://www.w3.org/1999/xlink">Nmap</application> invoqué avec l'option -O et -v vous
fournit une indication sur la difficulté qu'aura le pirate à procéder à une
attaque par IP spoofing contre votre serveur.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Exemple :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# nmap -O -v 192.168.1.4

Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
Host (192.168.1.4) appears to be up ... good.
Initiating Connect() Scan against (192.168.1.4)
Adding open port 111/tcp
Adding open port 21/tcp
Adding open port 515/tcp
Adding open port 1024/tcp
Adding open port 22/tcp
Adding open port 139/tcp
The Connect() Scan took 1 second to scan 1554 ports.
For OSScan assuming that port 21 is open and port 1 is closed and neither are firewalled
Interesting ports on (192.168.1.4) :
(The 1548 ports scanned but not shown below are in state : closed)
Port State Service
21/tcp open ftp
22/tcp open ssh
111/tcp open sunrpc
139/tcp open netbios-ssn
515/tcp open printer
1024/tcp open kdm

Remote operating system guess : Linux 2.1.19 - 2.2.19
Uptime 0.122 days (since Thu Mar 27 16 :02 :38 2003)
TCP Sequence Prediction : Class=random positive increments
Difficulty=4687481 (Good luck !)
IPID Sequence Generation : Incremental

Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les lignes intéressantes :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
TCP Sequence Prediction : Class=random positive increments
Difficulty=4687481 (Good luck !) 
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Celles-ci nous renseignent sur la difficulté d'une attaque par
IP-Spoofing. Plus le nombre associé à la valeur <option xmlns:xlink="http://www.w3.org/1999/xlink">Difficulty</option> est
élevé, plus il est difficile d'entreprendre une attaque. Le message
<literal xmlns:xlink="http://www.w3.org/1999/xlink">Good Luck !</literal> entre parenthèses est plutôt ironique vis-à-vis
de la réussite de l'attaque.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si, par malchance, lors d'un scan, vous obtenez un nombre très bas avec
un message du type "Trivial Joke", cela signifie que votre système est très
vulnérable à une attaque par IP-Spoofing.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ip-spoofing.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Sur la plupart des systèmes, les numéros de séquence sont incrémentés de
façon aléatoire, ce qui limite déjà une grande partie des attaques par IP
spoofing.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour se protéger, il faut commençer par supprimer tous les services se
basant sur l'authentification IP (rlogin, rsh).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Certains modules comme rp_filter sous Linux permettent une défense contre
ces attaques.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'utilisation de tunnels permet également de parer cette attaque.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ip-spoofing.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Document</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Déscription de l'IP-Spoofing : <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.phrack.org/issues.html?issue=48&amp;xml:id=14#article"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">IP-spoofing Demystified</citetitle></link>.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.netbios">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">NETBIOS</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">NETBIOS n'est pas un protocole en lui-même, c'est une interface
logicielle et un système de nommage. L'interface NETBIOS est très utilisée sur
les réseaux Microsoft NETBIOS permet par exemple de partager des ressources en
réseau. Ces ressources peuvent être des imprimantes, processus ou des espaces
disques. Un pirate peut essayer d'accéder à ces ressources en s'y connectant et
tester différents couples utilisateur/mot de passe. NETBIOS n'est pas une
interface très sécurisée. Elle est surtout utilisée dans les réseaux Microsoft
pour le protocole SMB (bien qu'elle tend à être remplacée).</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.netbios.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Protégez toutes vos ressources NETBIOS par mot de passe. Ne laissez
jamais un service NETBIOS de votre réseau en écoute sur Internet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Autorisez seulement l'accès aux ressources NETBIOS au client de votre
réseau.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.netbios.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Document</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un bon guide pour la sécurisation NETBIOS (en anglais) :
<link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://packetstormsecurity.org/groups/rhino9/wardoc.txt"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">A STUDY IN REMOTE NT PENETRATION</citetitle></link></para>
</sect2>
</sect1>
                                                                          
<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.nfs">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Network File System - NFS</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">NFS a pour but de partager un ensemble de fichiers sur un réseau. Il est
souvent couplé à un serveur NIS pour l'authentification.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">NFS a été développé par Sun Microsystems.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.nfs.attaques">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les attaques</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le gros problème avec NFS, c'est que le client fait toujours confiance au
serveur et vice versa. Un compte "root" sur une machine cliente peut très bien
compromettre le serveur et vice-versa.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.nfs.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisez la commande mount avec l'option -nosuid sur les clients, ce qui
empêche la modification ou l'utilisation des programmes setuid sur un système
de fichier NFS.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisez l'option <option xmlns:xlink="http://www.w3.org/1999/xlink">root-squash</option> dans le fichier
<filename xmlns:xlink="http://www.w3.org/1999/xlink">/etc/exports</filename>. Cela aura pour but d'empêcher un client root
de devenir root sur le système de fichiers NFS stockés sur le serveur.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Protéger l'accès à votre serveur NFS en filtrant à partir de l' adresse
IP, les différents clients.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.nis">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Network Information Service - NIS</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">NIS permet de partager, à travers un réseau, une base de données
contenant des bases d'informations pour chacune des machines constituant le
réseau (fichier de mots de passe, listes d'hôtes...).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La base de donnée est gérée par un serveur-maître qui la partage avec des
serveurs-esclaves pour être accessible aux machines clientes. Cette base de
données est identifiée par un nom de domaine propre à NIS.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce service a été développé par SUN Microsystems. Il s'accompagne souvent
du service NFS pour permettre le partage de fichiers.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.nis.attaques">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les attaques</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est possible d'obtenir des nombreuses informations (notamment les
fichiers de mots de passe) à partir du nom de domaine NIS.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est aussi possible pour un utilisateur non autorisé d'obtenir les
fichiers de mots de passe à partir d'un poste local client NIS.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les mots de passe sont transmis avec un niveau de chiffrement faible sur
le réseau, donc facilement interceptable par un sniffer.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.nis.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Evitez de donner le même nom de domaine DNS au domaine NIS.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Vérifiez si votre version de NIS vous assure une vérification de
l'adresse du domaine depuis lequel sont lancées les requêtes.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Supprimez la commande <command xmlns:xlink="http://www.w3.org/1999/xlink">ypcat</command> sur les ordinateurs
clients.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Protégez l'accès à votre serveur NIS en filtrant à partir de l'adresse
IP, les différents clients.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.portmap">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">PORTMAP</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">portmap (en écoute sur le port 111) est le support de nombreux autres
services comme les serveurs NFS, NIS ... La commande rpcinfo permet de savoir
quels services RPC sont actifs sur le système visé (ici "machinecible").</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# rpcinfo -p machinecible

program vers proto port
10000 2 tcp 111 portmapper
10000 2 udp 111 portmapper
10007 2 udp 661 ypbind
10007 2 tcp 664 ypbind
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Lors de la requête, portmap ne possède aucun mécanisme de contrôle, il
accepte donc la requête et la traite.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.portmap.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il est conseillé de filtrer l'accès sur ce port grâce à un firewall bien
configuré ou de désactiver totalement ce service.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.smb">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le protocole SMB</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les serveurs SMB sont en écoute sur le port 139 ou 445.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">SMB (pour Server Message Block) est le protocole utilisé pour interfacer
les partages et les authentifications MICROSOFT. Les clients et serveurs SMB
sous Linux et d'autres OS libres utilisent SAMBA pour traiter les échanges avec
ce protocole.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">SMB possède deux modes d'authentification : le mode "share", dans
lequel il associe un mot de passe à une ressource (espace disque, imprimantes
...), et le mode "user", où il associe un mot de passe à un utilisateur. Cet
utilisateur peut être aussi propriétaire d'une ressource.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">SMB utilise aussi deux modes pour l'envoi de ces mots de passe :
encryptés ou non. C'est là que réside toute la faille. C'est le serveur qui
donne l'information au client s'il supporte l'encryptage ou non.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si un pirate parvient à détecter un établisement de session SMB avant cet
échange, il peut très bien détourner le flux entre les deux et demander au
client d'envoyer son mot de passe en clair et le recevoir.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.smb.scan-smbshare">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les scans de SMB shares</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Si vous avez des ressources partagées en accès libre à tout le monde
(everyone shares), un pirate utilisera un scanner de share pour les détecter et
s'y connecter.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Même si vous protégez ces shares par mot de passe, certains logiciels
peuvent tester différents mots de passe en se loguant à la ressource et ainsi
tenter différentes combinaisons de mots de passe (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.motsdepasse"/>).</para> 
</sect2>
   
<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.smb.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour être sûr que les mots de passe SMB soient envoyés encryptés sur le
réseau (même en cas de requêtes «frauduleuses»), vérifiez que la valeur des
clés suivantes de la base de registre sont bien égales à 0 :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Windows NT4 :
  <literal xmlns:xlink="http://www.w3.org/1999/xlink">HKEY\LOCAL\MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters</literal>
  <literal xmlns:xlink="http://www.w3.org/1999/xlink">"EnablePlainTextPasswordi"=dword :00000000";</literal>
  </para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Sous Windows XP :
  <literal xmlns:xlink="http://www.w3.org/1999/xlink">HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters</literal>
  <literal xmlns:xlink="http://www.w3.org/1999/xlink">"enableplaintextpassword"=dword :00000000"</literal>
  </para>
  </listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Protégez toutes vos ressources par mots de passe, évitez les shares en
accès libre à tous le monde et n'oubliez jamais de choisir des mots de passe
associés de la bonne façon (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.motsdepasse"/>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ne laissez jamais un serveur SMB en écoute sur Internet, cela est plus que
suicidaire. Si vous êtes obligés d'utiliser SMB à travers Internet, utilisez les
tunnels (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.tunnel"/>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Sur votre réseau interne, filtrez l'accès sur votre serveur SMB grâce à
un firewall.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.smb.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Document</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La description des problèmes de sécurité sur SMB (en anglais) :
<link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.phrack.org/issues.html?issue=60&amp;xml:id=11#article"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">SMB/CIFS BY THE ROOT</citetitle></link></para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.smtp">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le service de messagerie - SMTP</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink"><acronym xmlns:xlink="http://www.w3.org/1999/xlink">SMTP</acronym> : <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Simple Mail Transfert
Protocol</wordasword>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un serveur SMTP sert à envoyer les mails sur le réseau local ou sur
Internet. Ce service est en écoute sur le port 25.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le premier problème avec un serveur SMTP est qu'il peut servir de relais
de mailing anonyme. Un pirate peut très bien s'en servir pour envoyer des mails
scabreux à travers Internet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un autre problème concerne les commandes <command xmlns:xlink="http://www.w3.org/1999/xlink">EXPN</command> et
<command xmlns:xlink="http://www.w3.org/1999/xlink">VRFY</command>. Ces commandes sont sources de nombreuses informations
pour le pirate. Il convient de les désactiver si le logiciel de messagerie le
permet.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.smtp.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Appliquez des règles de firewalling assez strictes concernant le serveur
SMTP (usage réservé exclusivement aux machines du réseau interne).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Certains serveurs SMTP empêchent le relayage, vérifiez si votre serveur
de messagerie supporte cette option.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.sql">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">SQL</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">SQL est utilisé pour la gestion de base de données. Il permet
l'interconnexion d'une page web avec une base de données à l'aide de
scripts.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce chapitre va présenter une attaque très connue contre les serveurs SQL
appelée <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">SQL-Injection</wordasword>.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.sql.injection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">L'injection SQL ou <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">SQL-Injection</wordasword></title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Une requête SQL passe par plusieurs étapes avant d'aboutir.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les données sont envoyées par le client par l'intermédiaire d'un script
sur le serveur web. Il s'ensuit une connexion au serveur SQL, puis l'envoi des
données de la requête du client. La rêquete est exécutée par le serveur SQL. La
réponse est reçue par le client et est affichée sous la forme d'une page
web.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">L'attaque par SQL-Injection consiste à injecter des caractères spéciaux
ou des chaînes de caractères particulières dans les rêquetes SQL du client. Ces
caractères peuvent être interprétés par le serveur SQL comme des commandes
permettant d'obtenir un accès sans mot de passe, de récupérer des fichiers,
etc..</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.sql.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour bien sécuriser votre serveur SQL, vérifiez que tous les comptes
possèdent un mot de passe. Sur certaines versions de serveur, les comptes
administrateur ou de certains utilisateurs peuvent être accessibles sans mot de
passe après une installation.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Se protéger du SQL-Injection n'est pas toujours aisé, il faut surtout
être attentif à la programmation des scripts et aux fonctions utilisées.</para>
</sect2>
                                                                          
<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.sql.document">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Document</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La technique du "SQL Injection" décrite par son inventeur :
<link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="ftp://ftp.pastoutafait.org/txt/rfp.txt"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">How I hacked PacketStorm</citetitle></link></para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.ssh">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">SSH</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">SSH vous permet de créer un tunnel chiffré pour vos connexions, il
encrypte toutes les échanges. SSH est donc un outil conseillé (pour ne pas dire
indispensable) pour les transactions réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Malgré tout, SSH est sujet à différentes attaques, la première étant une
attaque de type <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Man-In-the-Middle</citetitle> (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.attaquesreseau.mitm"/>). Le pirate se place entre
le client et le serveur (avant l'établissement de session SSH) grâce à des
méthodes de redirection de flux. Lorsque le client et le serveur s'échangent
les clés indispensables pour l'encryptage, il les intercepte et les utilise
pour se faire passer pour le client auprès du serveur et pour le serveur auprès
du client.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Une autre attaque utilisant une faiblesse du protocole existe. Cette
attaque se base sur la génération aléatoire des caractères de bourrage. Ces
caractères sont utilisés pour rendre la longueur du paquet multiple de 64 bits.
Ces caractères n'étant pas vérifiables, ils peuvent être utilisés pour modifier
le  bon déroulement de la communication. Cette faille est plus connue sous le
nom de <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">l'exploitation du canal caché</citetitle>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces attaques ne sont pas très faciles à implémenter.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.telnet">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">TELNET</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le service telnet (en écoute sur le port 23) permet à deux machines
distantes de communiquer. Telnet établit deux terminaux virtuels pour les deux
machines. Ce type de terminal est semblable à une connexion série.
L'utilisateur a l'impression d'être assis devant un terminal de la
machine.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">telnet repose sur une authentification par login et mot de passe.
Malheureusement, telnet possède le même problème que FTP : il n'assure pas
la protection des mots de passe contre l'écoute d'un sniffer. Les mots de passe
associés du login circulent en clair sur le réseau.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.telnet.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protéger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisez plutôt SSH, qui présente les mêmes fonctionnalités que telnet
mais permettant en plus de "tunneler" la connexion en encryptant toutes les
transactions.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisez IPsec ou des utilitaires de "tunneling" (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.tunnel"/>) pour protéger toutes vos
connexions.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Je vous conseille aussi de restreindre l'accès à votre serveur telnet via
un firewall.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.xwindow">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">XWINDOW</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">XWINDOW est un service permettant la gestion des interfaces graphiques
sous UNIX. XWINDOW est en écoute sur le port 6000.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.xwindow.attaques">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les attaques</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il faut savoir que XWINDOW fonctionne sur une architecture
client-serveur. Il est donc possible à un client connecté sur un serveur X
d'interagir avec celui-ci. Il peut agir sur les fenêtres, capturer des
évenements X ou en créer. Si un serveur X WINDOW est mal configuré, n'importe
quel client pourra s'y connecter et modifier son fonctionnement.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.xwindow.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en proteger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Utilisez la commande <command xmlns:xlink="http://www.w3.org/1999/xlink">xhost</command> pour fermer les accès au
serveur XWINDOW.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere /root]# xhost -
</screen>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.p2p">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Peer To Peer (eDonkey, Kazaa, etc.)</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les applications <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to Peer</citetitle> permettent de
faciliter l'échange de fichiers entre particuliers. Ces applications sont
nombreuses et diverses (eDonkey, Kazaa, etc.). Malheureusement, leur
utilisation dans un réseau peut être source de problèmes de sécurité et
consommer inutilement de la bande passante.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.p2p.virus">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les outils Peer To Peer sont des vecteurs de virus</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les utilisateurs des applications <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to Peer</citetitle>
constituent des cibles idéales pour la propagation des virus. Les
développements de ces applications sont récents ; ils n'ont pas subi d'audit
sérieux. Le «pouvoir d'attraction» de l'échange de fichier est si grand que cet
usage s'est répandu très rapidement. On obtient donc un coktail
dangereux : des applications faibles déployées à très grande échelle sur
l'Internet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les virus récents (postérieur à la série <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Gibe-?</citetitle> de
Septembre 2003) ont commencé à utiliser systématiquement les outils
<citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to Peer</citetitle>. Une fois de plus les utilisateurs ne sont
absolument pas conscients de leur «participation» à la propagation de ces
virus. Pourtant, si on s'intéresse un peu à la journalisation, les traces de
propagation sont immédiatement observables. Voici un relevé sur une heure
d'exploitation d'un routeur :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
Security Violations
=-=-=-=-=-=-=-=-=-=
Feb 17 19:28:14 routeur 14623: Feb 17 20:28:13.155 GMT: %SEC-6-IPACCESSLOGP: list inbound denied tcp 68.170.38.226(1214) -&gt; aaa.bbb.ccc.23(3127), 1 packet
Feb 17 19:33:18 routeur 14625: Feb 17 20:33:17.880 GMT: %SEC-6-IPACCESSLOGP: list inbound denied tcp 68.170.38.226(1214) -&gt; aaa.bbb.ccc.23(3127), 1 packet
Feb 17 19:37:19 routeur 14627: Feb 17 20:37:18.056 GMT: %SEC-6-IPACCESSLOGP: list inbound denied tcp 210.1.13.35(1214) -&gt; aaa.bbb.ddd.204(4899), 1 packet
Feb 17 19:54:20 routeur 14628: Feb 17 20:54:19.200 GMT: %SEC-6-IPACCESSLOGP: list inbound denied tcp 200.89.144.81(4663) -&gt; aaa.bbb.eee.65(3127), 1 packet
Feb 17 19:57:25 routeur 14629: Feb 17 20:57:24.892 GMT: %SEC-6-IPACCESSLOGP: list inbound denied tcp 68.144.158.56(4662) -&gt; aaa.bbb.ddd.201(3127), 1 packet
Feb 17 20:00:19 routeur 14630: Feb 17 21:00:18.544 GMT: %SEC-6-IPACCESSLOGP: list inbound denied tcp 200.89.144.81(4663) -&gt; aaa.bbb.eee.65(3127), 2 packets
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La distinction entre la journalisation d'une utilisation «usuelle» d'un
outil <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to Peer</citetitle> et la journalisation de la
propagation de virus est immédiate. Pour un échange de fichiers on aurait
observé plusieurs dizaines (voir centaines) d'entrées dans le journal sur une
heure. Dans le cas présenté, on observe que les adresses IP sources
changent pour chaque entrée et que deux applications <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to
Peer</citetitle> ont été utilisées : <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">eDonkey2000</citetitle>
avec les numéros de ports <literal xmlns:xlink="http://www.w3.org/1999/xlink">4662-4663</literal> et
<citetitle xmlns:xlink="http://www.w3.org/1999/xlink">kazaa</citetitle> avec le numéro de port <literal xmlns:xlink="http://www.w3.org/1999/xlink">1214</literal>.
Enfin, le «clou du spectacle», le numéro de port destination
<literal xmlns:xlink="http://www.w3.org/1999/xlink">3127</literal> correspond à la porte cachée du virus
<citetitle xmlns:xlink="http://www.w3.org/1999/xlink">W32/MyDoom/W32.Novarg.A</citetitle>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">On retrouve une des caractéristiques des flux réseaux <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to
Peer</citetitle> : il est techniquement difficile de limiter ces flux mais
ils sont très faciles à observer et à repérer. Si vous aviez encore quelques
illusions sur l'utilisation «anonyme» des outils <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to
Peer</citetitle>, il est grand temps de les perdre. Il est même probablement
trop tard, vous êtes déjà repérés !</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.attaquesprotocoles.p2p.protection">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Comment s'en protèger ?</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Sous linux, le projet <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.lowth.com/p2pwall/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">P2PWall - IPTables blocking of P2P traffic</citetitle></link> donne des utilitaires et des
documents permettant d'utiliser le firewall iptables pour filtrer le trafic
d'application <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Peer to Peer</citetitle>.</para>
</sect2>
</sect1>
</chapter>

<chapter xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Sécurité avancée</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.intro">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">Si vous avez lu les précédents chapitres (et surtout le chapitre 4), vous
possédez maintenant toutes les connaissances requises pour pouvoir aborder
cette partie. Elle concerne l'implémentation et le développement d'outils
dédiés à la sécurité. La première section vous montrera comment architecturer
son réseau de façon sécurisée et comment bien implémenter les différents outils
de protection. La deuxième section vous décrira différentes bibliothèques
utilisées pour le développement d'utilitaires réseaux. Nous donnerons en
exemple la programmation d'un simple scanner.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.archi">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">L'architecture sécurisée</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il existe une infinité de façon d'organiser votre réseau mais, quand la
sécurité entre en jeu, il est conseillé d'avoir une architecture réseau bien
pensée. Ce chapitre va donner des exemples de réalisation d'architecture
sécurisée. Il convient d'avoir lu préalablement les précédents chapitres pour
bien saisir la subtilité des architectures décrites.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous décrirons différents niveaux d'architecture sécurisée. Nous
partirons d'une architecture peu ou pas sécurisée pour arriver à une
architecture ultra-sécurisée.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.archi.0"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le réseau de départ</title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">Très simple, une PME ou une université possède un administrateur qui doit
gérer l'ensemble du parc informatique et sa conception réseau. Il a pour cahier
des charges d'assurer une connexion Internet avec le réseau local, un serveur
de messagerie et un site web.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Avec peu de moyens, l'administrateur crée son réseau de la
sorte :</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/archisec1.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Architecture sécurisée 1</phrase>
  </textobject>
  </mediaobject>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les serveurs web, de messagerie et de partage de connexion Internet
seront assurés par une seule machine. Cette machine est connectée directement à
Internet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Dans ce type de réseau, il n'y aucune forme de sécurité : la
connexion avec Internet n'est absolument pas sécurisée.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.archi.1"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le premier niveau de sécurité</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Après un premier piratage, notre administrateur reçoit de nouveaux
crédits. Il repense l'architecture :</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/archisec2.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Architecture sécurisée 2</phrase>
  </textobject>
  </mediaobject>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il dédiera une machine pour le serveur web, une machine pour le serveur
de messagerie, deux machines pour le firewalling et un routeur pour assurer la
connexion Internet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les serveurs de messagerie et web sont dans une zone extérieure à celle
du réseau local. Ils constituent une zone démilitarisée (DMZ). Démilitarisée
car on peut s'y connecter depuis l'extérieur contrairement au réseau
local.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le firewall situé entre le réseau local et le routeur empêchera toute
connexion de l'extérieur vers le réseau local, et autorisera seulement les
connexions depuis le réseau local sur un nombre limité de services.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le firewall situé entre le routeur et la DMZ autorisera tous les accès
sur les serveurs web et de messagerie (depuis le réseau local comme depuis
l'exterieur), mais en empêchera les tentatives de connexion sur les autres
services.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Malheureusement, notre administrateur subit un autre piratage. Il suppose
que le pirate a pu passer le routeur et les firewalls en soumettant des
requêtes sur des ports autorisés. Il a très bien pu envoyer un exploit sur un
serveur web ou de messagerie vulnérable.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.archi.2"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le deuxième niveau de sécurisation</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Alors, pour se protéger, il intercale une sonde NDIS (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.nids"/>) entre le firewall et le réseau
local et dans la DMZ. Si un pirate venait à envoyer des requêtes suspectes ou
des exploits connus, les NIDS préviendraient du risque d'intrusion (de
l'intérieur ou de l'extérieur). Le manager NDIS se situera dans le réseau
local.</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/archisec3.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Architecture sécurisée 3</phrase>
  </textobject>
  </mediaobject>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Il dédie toujours une seule machine pour un seul service. Il met
régulierement à jour les logiciels, et s'informe sur les nouvelles failles de
sécurité.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ceci constitue un niveau acceptable permettant de résister à des
nombreuses attaques.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.archi.3"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les niveaux plus élevés </title>
  
<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous allons nous appuyer dans cette section sur l'architecture
précédente. Nous allons modifier certaines parties du réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous allons d'abord insérer une zone de décontamination entre Internet et
le réseau interne. Cette zone est constituée d'analyseurs de contrôle de
contenu, des antivirus et d'autres utilitaires surveillant le trafic réseau
(comme des NIDS). Tous les flux entrants et sortants passeront par cette zone
de décontamination. Ces proxys applicatifs peuvent prendre la décision de
couper la connexion en cas d'attaques ou de simplement rejeter la
demande.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette zone est appelée zone de décontamination car elle permet de
détecter des signatures d'attaques dans les flux de données provenant
d'Internet et d'éviter la propagation dans le reste du réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour le réseau local, nous le subdiviserons en sous-réseaux, chaque
sous-réseau possédera un NDIS (sonde + manager). Ces sous-réseaux seront reliés
entre eux par des switchs.</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="./images/archisec4.png" format="PNG" contentwidth="8cm" width="8.5cm"/>
    </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Architecture sécurisée 4</phrase>
  </textobject>
  </mediaobject>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce type d'architecture est très efficace pour la sécurité, mais reste
néanmoins assez côuteuse et difficile à gérer. L'utilisation de tunnels (voir
<xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.protection.tunnel"/>) permet en plus
d'accroître la sûreté des transactions.</para>
</sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.outils"> 
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Développez vos propres utilitaires sécurité</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ce chapitre va présenter différents outils pour développer vos propres
utilitaires de sécurité. Une connaissance du language C est requise. Une solide
connaissance réseau est aussi demandée.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le système d'exploitation utilisé est Linux avec un compilateur GCC. Nous
allons étudier 2 bibliothèques permettant la création d'utilitaires
réseaux : libnet<indexterm xmlns:xlink="http://www.w3.org/1999/xlink" role="printindex"/> et libpcap<indexterm xmlns:xlink="http://www.w3.org/1999/xlink" role="printindex"/>.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La première, Libnet, est développée par Mike D. Schiffman. C'est une
bibliothèque opensource (donc gratuite). Libnet permet de fabriquer et
d'injecter facilement des paquets sur un réseau. Un grand nombre de protocoles
est supporté.</para>

<note xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Note importante : La version de Libnet décrite est la version 1.1.
  De grosses modifications faites sur le code de la version 1.1 la rend
  incompatible avec les versions de bibliothèques antérieures.</para>
</note>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La deuxième est Libpcap. Elle permet de capturer les paquets transitant
sur le réseau. Cette bibliothèque est maintenue par l'équipe de développement
de tcpdump (présenté au <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.dissimulation.passwd_sniffing"/>).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Libnet est téléchargeable à cette adresse :
www.packetfactory.net</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Libpcap est téléchargeable à cette adresse : www.tcpdump.org</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour donner une description de ces bibliothèques, nous allons étudier le
développement d'un scanner de base. Ce scanner listera les ports TCP ouverts
sur une machine avec une méthode de scan en port demi-ouvert (SYN scan, voir
<xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="tutoriel.securite.collecte.scan"/>). L'injection des paquets
sera réalisée grâce à Libnet, la réception des réponses grâce à Libpcap.</para>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.outils.programme">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Le programme</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le programme "scanner" sera appelé en mode console et recevra deux
arguments : l'interface réseau d'utilisation et l'adresse IP de la machine
à scanner. Il affichera la liste des ports ouverts et se terminera.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Exemple d'utilisation :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
[root@nowhere.net /root]#./scanner -i eth0 -c 192.168.1.2

Le port 21 est ouvert
Le port 22 est ouvert
Le port 1111 est ouvert
Le port 1024 est ouvert
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Mais intéressons-nous à son développement.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le scan en port demi-ouvert consiste à envoyer un paquet TCP avec le flag
SYN armé sur un port précis. Si ce port est ouvert, on recevra en réponse un
paquet TCP avec le couple SYN/ACK armé.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le programme recevra en argument, l'adresse IP de la machine à scanner et
le nom de l'interface réseau (par exemple "eth0").</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">ATTENTION ! Le but de ce chapitre est de présenter les librairies libnet
et libpcap et certaines de leurs fonctions les plus utiles d'une manière
succincte. Ce chapitre n'est en aucun cas un cours de programmation
réseau.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le principe de fonctionnement du programme est simple ; il sera constitué
de deux fonctions : la première permettra d'envoyer les paquets (sur les
16000 premiers ports) et la deuxième de les recevoir. Ces deux fonctions seront
activées en parallèle dans deux processus distincts (grâce à l'appel de la
fonction fork()).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Je présenterai les deux fonctions utilisées pour intercepter et
envoyer :</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour recevoir (void ReceptionPaquet(unsigned int, u_char
device) :</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La fonction ReceptionPaquet permet de recevoir les paquets circulant sur
le réseau. Pour cela, elle utilise la librairie libpcap. Nous utiliserons deux
fonctions de cette librairie pour notre programme :</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La première est la fonction pcap_t *pcap_t pcap_open_live(char *device,
int snaplen, int promisc,int to_ms,char *errbuf).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette fonction initialise la carte réseau et renvoie un descripteur de
type pcap_t sur cette interface réseau en écoute.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le paramètre *device est un pointeur sur une chaîne de caractères
contenant le nom de l'interface réseau utilisée (par exemple "eth0").</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le paramètre snaplen représente la taille maximale (en octet) d'un paquet
intercepté (max=65535).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le paramètre promisc contrôle le fonctionnement de la carte réseau. S'il
est égal à 1, la carte est en mode transparent, c'est à dire qu'elle intercepte
tous les paquets (même ceux qui ne lui sont pas destinés). Si cette valeur est
différente de 1, la carte n'acceptera que les paquets lui étant destinés. Pour
notre programme, la carte sera en mode transparent donc promisc sera égal à
1.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le paramètre to_ms spécifie le délai (en millisecondes) d'interception de
paquets. Lorsque ce délai est écoulé, la fonction se termine.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Le paramètre *errbuf est un pointeur sur une chaîne de caractères pouvant
contenir une message d'erreur en cas de mauvaise ou non exécution du
programme.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La deuxième fonction est la fonction u_char *pcap_next(pcap_t *p, struct
pcap_pkthdr *h). Cette fonction utilise comme argument le descripteur "p" pour
accéder à la carte réseau. Elle renvoie chaque paquet intercepté. C'est une
fonction bloquante.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces deux fonctions sont toujours utilisées en série, la pcap_open_live
initialise la carte réseau et renvoie un descripteur de fichier, ensuite ce
descripteur de fichier est utilisé par la fonction *pcap_next qui intercepte
les paquets.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Voici la fonction ReceptionPaquet :</para>

<programlisting xmlns:xlink="http://www.w3.org/1999/xlink" width="80">

void ReceptionPaquet(unsigned int IP_Cible, u_char *Device)

/*Variable utilisée par les fonctions de libpcap (elle contiendra notre
paquet*/
struct pcap_pkthdr Header ;

/*Descripteur représentant l'interface réseau (retourné par
la fonction pcap_open_live()*/
pcap_t *Descr ;

/*Structure pour l'en tête ETHERNET*/
struct ethhdr *EtherHdr ;

/*Structure pour l'en tête IP*/
struct ip *IpHdr ;

/*Structure pour l'en tête TCP*/
struct tcphdr *TcpHdr ;

/*Tampon pour retour d'erreur*/
char ErrBuf[LIBNET_ERRBUF_SIZE] ;

/*Pointeur vers le paquet*/
u_char *Packet ;

/*Descripteur pour libnet*/
libnet_t *l ;

/* Initialisation pour les fonctions de
libnet (obtention d'un descripteur)*/

l=libnet_init(LIBNET_RAW4,NULL,ErrBuf) ;

/*Descripteur "Descr" sur l'interface réseau en écoute*/

Descr = pcap_open_live(Device,65535,1,0,ErrBuf) ;

while(1)  /*On recupére le paquet (il est pointé par la variable
"Packet")*/

  Packet = (u_char *) pcap_next(Descr,&amp;Header) ;

/*On convertit le paquet pour analyser l'en tête ETHERNET*/

  EtherHdr = (struct ethhdr * ) (Packet) ;

/*On verifie si le protocole est bien IP*/

  if(ntohs(EtherHdr-¿h_proto)==ETH_P_IP)

/*On convertit le paquet pour analyser l'en tête IP*/

   IpHdr = (struct ip * ) (Packet +ETH_HLEN) ;

/*On verifie si le protocole est bien TCP*/

  if(IpHdr-¿ip_p==IPPROTO_TCP)

 TcpHdr = (struct tcphdr * ) ( Packet + ETH_HLEN +
4 * (IpHdr-¿ip_hl)) ;

  /* Cela sert à verifier que nous avons bien envoyé le paquet et qu'il
provient bien de la machine "scannée". Ceci se base sur l'analyse des
adresses IP */

  if(

  (IpHdr-¿ip_src.s_addr==IP_Cible) &amp;&amp;
(IpHdr-¿ip_dst.s_addr== libnet_get_ipaddr4(l)))

/*Pour verifier que le port d'envoi correspond au même que le notre*/
if(ntohs(TcpHdr-¿dest)==PORT_SOURCE)

  /*Si les flags SYN et ACK sont armés, le port est ouvert*/
if((TcpHdr-¿ack==1) &amp;&amp; (TcpHdr-¿syn==1))

printf("Le port %d est ouvert
n",ntohs(TcpHdr-¿source)) ;
    /*Destruction du descripteur*/
libnet_destroy(l) ;
</programlisting>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour envoyer (void EnvoiPaquet(unsigned int,int)) :</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La fonction EnvoiPaquet permet d'injecter les paquets sur le réseau. Pour
cela, elle utilise la librairie Libnet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Nous allons utiliser différentes fonctions de la librairie Libnet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La première est la fonction libnet_t *libnet_init(int injection_type,
char *device, char *err_buf).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Cette fonction permet d'initialiser une interface d'injection des
paquets. Elle traite trois arguments :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le premier injection_type définit le type d'interface (niveau ethernet,
  IP ou TCP). Pour notre programme, une injection au niveau IP suffira (valeur
  LIBNET_RAW4).</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le deuxième argument *device est un pointeur sur la chaîne de caractère
  contenant le nom de l'interface réseau qui sera sollicitée (ex : eth0),
  la valeur NULL conviendra car libnet choisira automatiquement une carte
  réseau.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le dernier argument *err_buf est utilisé pour les messages d'erreur
  (comme libpcap). Elle renvoie un pointeur sur l'interface d'injection de type
  libnet_t.</para>
  </listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les fonctions libnet_ptag_t libnet_build_tcp(...) et
libnet_autobuild_ipv4(...) sont utilisées pour construire les en-têtes TCP et
IP. Elles prennent comme arguments les différentes valeurs constituants les
en-têtes TCP et IP (numéro de port, de séquences ... pour TCP, adresses IP,
types de protocoles pour IP). Elle renvoient toutes les deux un descripteur de
type libnet_ptag_t, ces fonctions doivent toujours respecter l'ordre TCP puis
IP (sens couche application vers couche réseau ou physique). Ces fonctions
prenent en argument le pointeur sur l'interface d'injection (pointeur renvoyé
par la fonction libnet_init).</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La fonction int libnet_write(libnet_t) injecte le paquet. La fonction
void libnet_destroy(libnet_t) détruit l'interface crée par libnet.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Voici la fonction 1,0,0EnvoiPaquet :</para>

<programlisting xmlns:xlink="http://www.w3.org/1999/xlink" width="80">

void EnvoiPaquet(
/*IP Machine Cible*/
unsigned int IP_cible,
/*Port Destination*/
int port_dest)

   /*Variables pour les fonction de libnet*/
char ErrBuf[LIBNET_ERRBUF_SIZE] ;
libnet_t *l ;

libnet_ptag_t Tag ;

  /*Pour initialiser et obtenir un descripteur*/
l=libnet_init(LIBNET_RAW4,NULL,ErrBuf) ;

  /*Pour construire l'en tête TCP*/

  Tag=libnet_build_tcp(
PORT_SOURCE, /*Port Source*/
port_dest, /*Port destination*/
0, /*N° Séquence*/
0, /*N° Acquitement*/
TH_SYN, /*Demande de connexions*/
4096, /*Taille de fenêtre*/
0, /*Somme de contrôle*/
0, /*Pointeur d'urgence*/
LIBNET_TCP_H, /*Taille en tête*/
(u_char *) (NULL),/*Pointeur vers les données*/
0, /*Taille des données*/
l,
0) ;

  /*Pour construire l'en tête IP*/

  Tag=libnet_autobuild_ipv4(
LIBNET_IPV4_H+LIBNET_TCP_H, /*Taille du paquet*/
IPPROTO_TCP, /*Protocole*/
IP_cible, /*Adresse IP de la machine Cible*/
l) ;

  /*Pour envoyer le paquet*/
libnet_write(l) ;

  /*Pour détruire le descripteur*/
                                                                          
libnet_destroy(l) ;
</programlisting>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La fonction main() :</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">La fonction main() traite les arguments de la ligne de commande, lance un
processus enfant dans lequel, elle utilisera la fonction ReceptionPaquet et
attendra une seconde pour le lancement du processus et de la fonction
ReceptionPaquet puis exécutera 16000 fois la boucle d'envoi de paquets (16000
ports).Elle attendra encore 5 secondes pour le traitement des réponses et
terminera le programme.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Voici la fonction main :</para>

<programlisting xmlns:xlink="http://www.w3.org/1999/xlink" width="80">
extern char *optarg ;
extern int optind ;
extern int opterr ;

  int main(int argc,char *argv[])

  /*Pour avoir les paramètres de la ligne de commande*/
static char optstring[]="i :c :" ;
int optch ;
char *Device ;

  /*Variable d'itération*/
int i ;

  /*Pour stocker l'adresse IP*/
u_int32_t IP_Cible ;

  /*Variable qui va reçevoir le PID du processus enfant*/
int Pid ;

  /*Pour traiter les paramètres de la ligne de commande*/

  if(argc ¡ 5)

printf("
nscanner -i interface -c IP Cible
n") ;
return 0 ;

  while((optch= getopt(argc,argv,optstring)) !=EOF)

switch(optch)

/*Pour le nom de l'interface*/
case 'i' :
Device = (char *) (malloc(strlen(optarg)*sizeof(char))) ;
strncpy(Device,optarg,strlen(optarg)) ;
break ;

  /*Pour l'adresse IP de la machine cible*/
case 'c' :
IP_Cible = inet_addr(optarg) ;
break ;

  default :
printf("
nscanner -i interface -c IP Cible
n") ;
return 0 ;

  /*On lançe le processus enfant (récuperation et analyse des paquets*/
Pxml:id=fork() ;

  if(Pxml:id==0)

ReceptionPaquet(IP_Cible,Device) ;

  /*On attend une seconde*/

  sleep(1) ;

  /* On envoie les paquets sur les 16000 premiers ports*/

  for(i=0 ;i¡16000 ;i++)

EnvoiPaquet(IP_Cible,i) ;

  /*On détruit le processus enfant*/

  sleep(5) ;

  kill(Pid,SIGINT) ;

  return 0 ;

}
</programlisting>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.advanced.outils.documents">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Documents</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour libnet : http://libnet.sourceforge.net/</para>
<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour libpcap : http://www.tcpdump.org</para>
</sect2>
</sect1>
</chapter>

<appendix xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.annexe">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Annexes</title>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.annexe.sites">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les sites et revues à consulter régulierement</title>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.cert.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.securityfocus.com/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">SecurityFocus</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://packetstormsecurity.nl/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">.:[packet storm security]:.</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://seclists.org/bugtraq/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Archives Bugtraq</citetitle></link> &amp; <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.securityfocus.com/archive/131/description"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Bugtraq French</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.services.cnrs.fr/wws/info/sos-virus"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Liste de diffusion du CNRS sur les virus</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.renater.fr/Securite/CERT_Renater.htm"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">CERT RENATER</citetitle></link></para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.phrack.org/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Phrack : ...a Hacker magazine by the community, for the community....</citetitle></link></para>
  </listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour les revues en français disponibles en kiosque, je vous conseille
d'acheter le magazine MISC. Je ne suis pas dépendant de MISC, mais c'est le
seul magazine entièrement dédié à la sécurité apportant des réponses concrètes
à de nombreux problèmes. Il est disponible tous les 2 ou 3 mois environ chez
votre libraire.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les anciens numéros peuvent être aussi commandés sur le site de MISC, 10
numéros ayant été publié jusqu'en Décembre 2003. Chaque numéro constitue une
très bonne source d'informations.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour plus de renseignements, consulter <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.miscmag.com/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">MISC le mag de la sécurité informatique !</citetitle></link>.</para>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tutoriel.securite.annexe.merci">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Remerciements</title>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Je tiens à remercier Nicolas Buratto et Christian Duclou pour leur aide
sur ce manuel.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un grand merci au Mirabellug.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Un petit coucou à celui sans qui rien n'aurait pu être possible.</para>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Pour le soutien musical et moral : Jimi, Thimothy, Hunter, Tom,
Neil... et les tous les autres...</para>

<blockquote xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink"><wordasword xmlns:xlink="http://www.w3.org/1999/xlink">When the going gets weird, the weird turns
  pro</wordasword></para>
</blockquote>
</sect1>
</appendix>
</book>

