ftp://ftp.igh.cnrs.fr/pub/unix/detescan/detescan.tar (version actuelle v20030207)
Detescan est un outil écrit en langage PERL. C'est le fruit d'une oeuvre collective de plusieurs administrateurs réseau et développeurs. Il à initialement été développé par plusieurs personnes du LORIA (Gabrielle Feltin, Bertrand Wallrich), puis modifié par Marwan Burelle et Jean-Claude Barbet du LRI. Cet outil génère (à partir de logs générés par un routeur/commutateur/sonde/firewall et stockés sur un serveur SYSLOG) un rapport de scans et l'envoie à un administrateur. Pour l'instant, cette version de detescan reconnait et sait traiter les logs provenant de :
La version que j'expose ici est basée sur celle du LRI avec quelques modifications :
Les rapports de detescan sont utiles à plusieurs titres :
sub detescan Prénom Nom
Une présentation à été faite à une formation sécurité organisée par le CERT Renater à Montpellier,
Il existe un outil similaire qui en plus, est orienté contact. Il est capable de générer les messages à envoyer aux gestionnaires réseau/FAI (par consultation des bases whois) dont les machines ont généré un scan. Cet outil s'appelle ANAPIRATE.
From: <admin[at]igh.cnrs.fr> detescan Subject: [detescan] Resume 23/09/2001 parametres pour detection scans : nb machines minimum >=2, nb ports minimum >= 2 detescan v20011106 a détecté les scans suivants à partir des logs du routeur ios12 Sep 23 00:56:22 : scan tcp de vnd.lynx.ru sur le port 80 (www) ( 15 machines ) Sep 23 18:28:10 : scan tcp de c1859852-a.pinol1.sfba.home.com sur le port 80 (www) ( 2 machines ) Sep 23 04:27:54 : scan tcp de dhcp-019-098.cns.ohiou.edu sur le port 80 (www) ( 2 machines ) Sep 23 00:15:30 : scan tcp de www.pmkv.fi sur le port 80 (www) ( 7 machines ) Sep 23 00:36:41 : scan tcp de 195.251.219.52 sur le port 80 (www) ( 45 machines ) Sep 23 17:26:30 : scan tcp de 193.194.83.144 sur le port 80 (www) ( 2 machines ) Sep 23 06:55:10 : scan tcp de 193.227.5.141 sur le port 80 (www) ( 3 machines ) Sep 23 13:19:40 : scan tcp de abn130-231.interaktif.net.tr sur le port 80 (www) ( 3 machines ) Sep 23 00:43:25 : scan tcp de 195.102.186.130 sur le port 80 (www) ( 24 machines ) Sep 23 00:41:52 : scan tcp de 195.205.6.164 sur le port 80 (www) ( 5 machines ) Sep 23 02:14:11 : scan tcp de unknown-0.74.193.eunet.be sur le port 80 (www) ( 9 machines ) Sep 23 02:57:49 : scan tcp de europetravel.ru sur le port 80 (www) ( 15 machines ) |
Logs de chacun des scans : Sep 23 07:30:41 : scan tcp de 195.146.63.4 sur le port 80 (www) ( 3 machines ) Sep 23 07:30:41 gate 301270: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.146.63.4(1929) -> x.y.z.250(80), 1 packet Sep 23 08:11:30 gate 302058: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.146.63.4(1857) -> x.y.z.1(80), 1 packet Sep 23 10:20:32 gate 304751: 5d19h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.146.63.4(1994) -> x.y.z.8(80), 1 packet Sep 23 00:56:22 : scan tcp de vnd.lynx.ru sur le port 80 (www) ( 15 machines ) Sep 23 00:56:22 gate 292722: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(2705) -> x.y.z.177(80), 2 packets Sep 23 02:47:35 gate 295214: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(4641) -> x.y.z.89(80), 2 packets Sep 23 05:05:59 gate 298088: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(3151) -> x.y.z.48(80), 2 packets Sep 23 06:10:56 gate 299491: 5d15h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(2547) -> x.y.z.147(80), 2 packets Sep 23 06:46:29 gate 300269: 5d16h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(3591) -> x.y.z.108(80), 2 packets Sep 23 08:07:50 gate 301990: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(4099) -> x.y.z.246(80), 2 packets Sep 23 08:08:17 gate 302000: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(1639) -> x.y.z.196(80), 2 packets Sep 23 08:56:38 gate 303111: 5d18h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(2260) -> x.y.z.178(80), 1 packet Sep 23 10:22:49 gate 304800: 5d19h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(2191) -> x.y.z.86(80), 2 packets Sep 23 11:54:45 gate 306897: 5d21h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.9.178.37(3970) -> x.y.z.161(80), 2 packets Sep 23 18:28:10 : scan tcp de c1859852-a.pinol1.sfba.home.com sur le port 80 (www) ( 2 machines ) Sep 23 18:28:10 gate 315786: 6d03h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 65.5.120.242(2658) -> x.y.z.179(80), 1 packet Sep 23 19:17:27 gate 316801: 6d04h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 65.5.120.242(4526) -> x.y.z.52(80), 2 packets Sep 23 04:27:54 : scan tcp de dhcp-019-098.cns.ohiou.edu sur le port 80 (www) ( 2 machines ) Sep 23 04:27:54 gate 297326: 5d13h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 132.235.19.98(4395) -> x.y.z.207(80), 1 packet Sep 23 04:35:17 gate 297470: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 132.235.19.98(2128) -> x.y.z.69(80), 1 packet Sep 23 00:15:30 : scan tcp de www.pmkv.fi sur le port 80 (www) ( 7 machines ) Sep 23 00:15:30 gate 291858: 5d09h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(4489) -> x.y.z.191(80), 1 packet Sep 23 03:00:18 gate 295462: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(1539) -> x.y.z.231(80), 1 packet Sep 23 08:28:16 gate 302421: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(4538) -> x.y.z.21(80), 1 packet Sep 23 10:12:39 gate 304572: 5d19h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(2495) -> x.y.z.52(80), 1 packet Sep 23 12:27:47 gate 307758: 5d21h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(2463) -> x.y.z.64(80), 1 packet Sep 23 19:22:55 gate 316895: 6d04h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(2769) -> x.y.z.160(80), 1 packet Sep 23 21:09:33 gate 319050: 6d06h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.74.31.26(2626) -> x.y.z.177(80), 1 packet Sep 23 00:36:41 : scan tcp de 195.251.219.52 sur le port 80 (www) ( 45 machines ) Sep 23 00:36:41 gate 292327: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(1559) -> x.y.z.95(80), 1 packet Sep 23 01:37:26 gate 293744: 5d11h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(4288) -> x.y.z.114(80), 1 packet Sep 23 01:38:33 gate 293767: 5d11h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(1747) -> x.y.z.124(80), 1 packet Sep 23 03:12:04 gate 295743: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(1397) -> x.y.z.134(80), 1 packet Sep 23 03:30:36 gate 296181: 5d13h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(2316) -> x.y.z.144(80), 1 packet Sep 23 03:46:34 gate 296478: 5d13h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(2399) -> x.y.z.138(80), 1 packet Sep 23 04:22:31 gate 297230: 5d13h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(1193) -> x.y.z.154(80), 1 packet Sep 23 04:55:22 gate 297865: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(4339) -> x.y.z.155(80), 1 packet Sep 23 05:19:37 gate 298361: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(1925) -> x.y.z.166(80), 1 packet Sep 23 05:21:20 gate 298396: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.251.219.52(2079) -> x.y.z.145(80), 1 packet Sep 23 17:26:30 : scan tcp de 193.194.83.144 sur le port 80 (www) ( 2 machines ) Sep 23 17:26:30 gate 314563: 6d02h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.194.83.144(2681) -> x.y.z.140(80), 1 packet Sep 23 18:27:27 gate 315769: 6d03h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.194.83.144(3082) -> x.y.z.151(80), 1 packet Sep 23 06:55:10 : scan tcp de 193.227.5.141 sur le port 80 (www) ( 3 machines ) Sep 23 06:55:10 gate 300508: 5d16h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.227.5.141(2797) -> x.y.z.166(80), 1 packet Sep 23 10:14:40 gate 304621: 5d19h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.227.5.141(1836) -> x.y.z.204(80), 1 packet Sep 23 12:45:00 gate 308153: 5d22h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.227.5.141(4028) -> x.y.z.195(80), 1 packet Sep 23 13:19:40 : scan tcp de abn130-231.interaktif.net.tr sur le port 80 (www) ( 3 machines ) Sep 23 13:19:40 gate 309015: 5d22h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.174.130.231(3338) -> x.y.z.34(80), 1 packet Sep 23 20:47:46 gate 318593: 6d06h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.174.130.231(4045) -> x.y.z.111(80), 1 packet Sep 23 23:28:09 gate 321729: 6d08h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.174.130.231(3991) -> x.y.z.148(80), 1 packet Sep 23 00:43:25 : scan tcp de 195.102.186.130 sur le port 80 (www) ( 24 machines ) Sep 23 00:43:25 gate 292478: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(4076) -> x.y.z.16(80), 1 packet Sep 23 00:48:18 gate 292581: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(4283) -> x.y.z.10(80), 1 packet Sep 23 00:49:03 gate 292590: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(3169) -> x.y.z.19(80), 1 packet Sep 23 01:15:35 gate 293178: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(2658) -> x.y.z.34(80), 1 packet Sep 23 02:31:26 gate 294909: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(2507) -> x.y.z.51(80), 1 packet Sep 23 04:39:44 gate 297548: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(2924) -> x.y.z.65(80), 1 packet Sep 23 05:18:43 gate 298342: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(3581) -> x.y.z.66(80), 1 packet Sep 23 06:13:39 gate 299548: 5d15h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(3148) -> x.y.z.68(80), 1 packet Sep 23 06:30:46 gate 299918: 5d16h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(1227) -> x.y.z.80(80), 1 packet Sep 23 07:36:59 gate 301391: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.102.186.130(3102) -> x.y.z.84(80), 1 packet Sep 23 00:41:52 : scan tcp de 195.205.6.164 sur le port 80 (www) ( 5 machines ) Sep 23 00:41:52 gate 292442: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.205.6.164(1398) -> x.y.z.171(80), 1 packet Sep 23 01:02:44 gate 292843: 5d10h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.205.6.164(1899) -> x.y.z.169(80), 1 packet Sep 23 02:12:38 gate 294542: 5d11h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.205.6.164(2069) -> x.y.z.188(80), 1 packet Sep 23 02:51:36 gate 295303: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.205.6.164(2049) -> x.y.z.189(80), 1 packet Sep 23 02:55:14 gate 295369: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.205.6.164(1849) -> x.y.z.183(80), 1 packet Sep 23 02:14:11 : scan tcp de unknown-0.74.193.eunet.be sur le port 80 (www) ( 9 machines ) Sep 23 02:14:11 gate 294567: 5d11h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(4413) -> x.y.z.162(80), 1 packet Sep 23 04:14:28 gate 297047: 5d13h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(3131) -> x.y.z.166(80), 1 packet Sep 23 05:02:15 gate 298011: 5d14h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(3126) -> x.y.z.188(80), 1 packet Sep 23 05:31:39 gate 298589: 5d15h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(3834) -> x.y.z.186(80), 1 packet Sep 23 08:23:52 gate 302339: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(4363) -> x.y.z.216(80), 1 packet Sep 23 08:57:30 gate 303127: 5d18h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(4164) -> x.y.z.220(80), 1 packet Sep 23 13:48:30 gate 309985: 5d23h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(3874) -> x.y.z.40(80), 1 packet Sep 23 15:49:34 gate 312524: 6d01h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(4163) -> x.y.z.54(80), 1 packet Sep 23 16:15:19 gate 313043: 6d01h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 193.74.0.221(4024) -> x.y.z.58(80), 1 packet Sep 23 02:57:49 : scan tcp de europetravel.ru sur le port 80 (www) ( 15 machines ) Sep 23 02:57:49 gate 295412: 5d12h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(1636) -> x.y.z.137(80), 1 packet Sep 23 07:23:19 gate 301113: 5d16h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(2920) -> x.y.z.191(80), 1 packet Sep 23 07:59:18 gate 301828: 5d17h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(2199) -> x.y.z.195(80), 1 packet Sep 23 09:12:33 gate 303412: 5d18h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(1910) -> x.y.z.211(80), 1 packet Sep 23 12:46:19 gate 308183: 5d22h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(2832) -> x.y.z.249(80), 1 packet Sep 23 13:20:38 gate 309038: 5d22h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(1217) -> x.y.z.6(80), 1 packet Sep 23 14:25:39 gate 310738: 5d23h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(4458) -> x.y.z.28(80), 1 packet Sep 23 14:26:09 gate 310749: 5d23h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(3399) -> x.y.z.11(80), 1 packet Sep 23 16:10:20 gate 312947: 6d01h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(4044) -> x.y.z.36(80), 1 packet Sep 23 16:59:55 gate 313996: 6d02h: %SEC-6-IPACCESSLOGP: list 101 denied tcp 195.218.175.9(3257) -> x.y.z.58(80), 1 packet Pour plus d'informations : http://www.igh.cnrs.fr/perso/denis.pugnere/detescan |
Comme detescan utilise quelques modules de perl et
utilitaires externes, il faut faut s'assurer que vous disposez des modules
: Getopt::Long, Date::Manip de Perl. Si vous ne les avez pas, taper les
commandes suivantes devrait résoudre votre problème :
perl -MCPAN -e 'install Getopt::Long'
perl -MCPAN -e 'install Date::Manip'
Assurez vous également que vous disposez d'un
MTA (Sendmail ou autre) pour que detescan puisse envoyer le rapport par
courrier électronique.
Si vos fichiers de logs sont stockés sous
forme compressée vous aurez besoin de l'utilitaire "gunzip" que
le script appelle.
$ detescan.pl ou $ detescan.pl -hVous obtenez un message dans ce genre :
$ detescan.pl Detescan v20030207 Usage : detescan.pl -routeur=type [-date "AAAA/MM/JJ"] [-h] <fichier(s) de logs a lire> [-ignoreports=n°port,n°port] [-ignorehosts=@ip] [-ignorelocals=\@ip] [-nbmach=x] [-nbport=x] [-nblig=x] [-noresolv] [-decalage=x] [-sujet=\"blabla\"] [-dest=personne@email.fr] Lit dans le(s) fichier(s) de logs du routeur les traces de scan, en restreignant eventuellement la date de recherche (recherche sur un jour particulier) et reporte par mail les tentatives de scan -routeur=type : type de log généré par le routeur (parametre OBLIGATOIRE) type = ios12 : routeurs Cisco IOS v10.x, v11.x ou v12.x type = foundry : routeurs Foundry Networks type = ssr3 : Routeurs Cabletron et Xpedition V3.x type = screend : démon Tru64Unix screend type = ipchains : Routeurs Linux avec IPCHAINS type = iptables : Routeurs Linux avec IPTABLES (Netfilter) type = allied : Switches Allied Telesyn type = snort : sonde snort (www.snort.org) type = extreme : Switches ExtremeNetworks (Summit...) type = pix : Cisco PIX Les paramètres facultatifs sont : -date "AAAA/MM/JJ" : lire les logs pour un jour particulier, exemple "2001/04/13" -ignoreports=n°port[,n°port...] : detescan ne devra pas comptabiliser ce(s) port(s), exemple : -ignoreports=113,137 -ignorehosts=@ip[,@ip...] : detescan ne devra pas comptabiliser ce(tte|s) machine(s), exemple : -ignorehosts=192.168.1.2,10.11.12.13,172.16 -ignorelocals=@ip[,@ip...] : detescan ne devra pas comptabiliser ce(tte|s) machine(s) ou réseau locale (adresse destination, exemple : -ignorelocals=192.168.0.1,10.11.12.13,172.16 -nbmach=x : nombre de machines minimum concernées pour qu'un scan soit reporté defaut=3 -nbport=x : nombre de ports minimum concerné pour qu'un scan soit reporté defaut=5 -nblig=x : Nombre de lignes maximum que comportera le rapport détaillé (si 0, pas de rapport) defaut=10 -noresolv : Pas de resolution de nom -decalage=x : adaptation du code de detescan.pl au format des fichiers syslog, x est le nombre decolonnes que le serveur syslog a ajoute -sujet="blabla" : Sujet du mail -dest=email : Adresse e-mail de la personne qui recevra le rapport -h : afficher cette aide Description complète sur la page : http://www.igh.cnrs.fr/perso/denis.pugnere/detescan $ |
Par défaut, si vous ne spécifiez pas de date, detescan va comptabiliser les scans sur toute la période que couvre le(s) fichier(s) de logs.
Vous pouvez donc choisir une un jour particulier comme par exemples :
$ detescan.pl -routeur=ios -date "yesterday" /var/log/cisco* $ detescan.pl -routeur=ios -date "yesterday" -nbmach=2 -nbport=2 -nblig=5 -ignoreports=113,137 -ignorehosts=192.168,10.2.3.4 -dest=toto@toto.com /var/log/cisco* $ detescan.pl -routeur=ios -date "2001/06/24" /var/log/cisco /var/log/cisco.1 $ detescan.pl -routeur=foundry -date "24 jun 2001" /var/log/routeur.gz $ detescan.pl -routeur=ios -date "24 jun" /var/log/cisco $ detescan.pl -routeur=ios -date "06/24/2001" /var/log/cisco $ detescan.pl -routeur=ios -date "1 day ago" /var/log/cisco $ detescan.pl -routeur=ios -date "2 weeks ago" /var/log/cisco $ detescan.pl -routeur=ios -date "1 month 3 days" /var/log/ciscoSi vous choisissez de saisir la date sous sa forme condensée (numérique), vous avez deux formats possibles :
Detescan va convertir la date saisie et va sélectionner dans le fichier de logs uniquement les lignes qui correspondent à cette date, puis va construire le rapport.
Vous pouvez l'executer par l'intermédiaire du cron, toutes les nuits, par exemple, pour qu'il construise le rapport de la journée précédente :
Extrait du crontab :
#tous les jours a 7h00 du matin: detescan sur logs cisco 0 7 * * * $HOME/sources/detescan.pl -routeur=ios -date yesterday -dest=toto@toto.com /var/log/cisco /var/log/cisco.1 |
Comme ça, dès votre arrivée vous avez dans votre boite aux lettres un rapport détaillé de ce qui s'est passsé la journée et une partie de la nuit précédentes (que vous pouvez lire accompagné(e) de votre tasse à café, comme tous les administrateurs systèmes et réseaux ;-).
N'hésitez pas à me contacter ou à envoyer un message dans la liste de diffusion pour toute remarque ou suggestion.
Historique des modifications de cette page :
09/12/2002 : début de l'historique ;-) correction de quelques
coquilles mineures, désactivation d'un lien.
13/12/2002 (un Vendredi 13 ;-) : ajout du lien vers certsvp.
07/02/2003 : Correction de quelques coquilles dans la page d'aide de detescan