Nos services Nos produits L'entreprise Ressources Contact

Procédure de validation de filtre courriel

Dans le cadre d'un de nos mandats nous avons eu à tester un serveur filtre pour courriel.

Ce document contient des informations sur certaines méthodologie de test que vous avons utilisé.

Vérification des virus

Utilisé seulement eicar n'est pas représentatif de la réalité et utilisé de vrai virus dans un environnements non controlé est hors de question. Ainsi pour effectuer cette vérification nous avons programmer un pseudo générateur de virus utililisant la base de signature de l'antivirus ClamAV.

Extraction de la base de donnée

  sigtool --unpack=/var/lib/clamav/main.cvd

Un fichier main.db devrait se trouvé le répertoire courant {{ -rw-r--r-- 1 fharvey staff 4170056 mai 18 10:08 ../main.db }}

  mkdir ./virus

Fichier Generate_virus_signature.php

<?php
  /**
   * (C) Francois Harvey - SecuriWeb inc.
   * GPL
   */
  function hex2asc($myin) {
      for ($i=0; $i<strlen($myin)/2; $i++) {
          $myout.=chr(base_convert(substr($myin,$i*2,2),16,10));
      }
      return $myout;
  }

  $f = file('main.db');

  foreach ($f as $virus) {
      list($nom, $signature) = split('=', $virus);
      $fout = fopen('virus/' . $nom . '.txt', 'w');
      fwrite($fout, "......test..........");
      fwrite($fout, hex2asc($signature));
      fwrite($fout, "......test..........");
      fclose($fout);
      echo "Ecriture du virus $nom\n";
  }

?>

Executer le script

php generate_virus_signature.php
  Ecriture du virus _0017_0001_000
  Ecriture du virus _0017_0001_001
  Ecriture du virus _0017_0001_002
  Ecriture du virus _0017_0001_003
  Ecriture du virus _0017_0001_004
  ...

le répertoire devrait contenir des fichier .txt contenant des signatures de virus.

 rw-r--r--  1 fharvey    users       79 mai 18 11:55 _0017_0001_000.txt
-rw-r--r--  1 fharvey    users       80 mai 18 11:55 _0017_0001_001.txt
-rw-r--r--  1 fharvey    users       80 mai 18 11:55 _0017_0001_002.txt

Créer un fichier d'avertissement msg.txt

  ceci est un test de virus

  l'attachement ne contient que du data et la signature mais pas le virus

Script perl qui utilise MIME::Lite pour envoyer un fichier Auteur inconnu, modifier pour mes besoins

#! /usr/bin/perl
use MIME::Lite;
if ($#ARGV < 3) {
            print "usage: $0 <to> <subject> <text file> <attachement file>\n";
            exit( 1 );
    } else {
                $to     = shift;
                $subject= shift;
                $text   = shift;
                $file   = shift;
        }

$msg = new MIME::Lite(
    From     => 'test_virus@example.com',
    To       => $to,
    Subject  => 'test de virus -' . $file,
    Type     => 'multipart/related');
$msg->attach(
    Type     => 'text/plain',
    Path     => 'msg.txt');
$msg->attach(
    Type     => 'text/plain',
    Encoding => 'base64',
    Path     => $file);

$msg->send();
exit 0;

find ./virus -iname "*.txt" -ls -exec ./sendmail.pl [Adresse de destination] virus msg.txt {} \;
SecuriWeb inc. - Joliette (Qc) Canada - (450) 760-4065 - info at securiweb dot net