Il mail server completo e flessibile progettato per le PMI

Come costruire un filtro per intercettare lo spear phishing in MDaemon

KB52233

Ultimo aggiornamento: 10 December 2019

MDaemon e lo spear phishing

19.5

Lo spear phishing è una variante recente del phishing. Lo spear phishing è un'e-mail che sembra provenire da una persona o un'azienda conosciuti. In realtà proviene da malintenzionati che vogliono impossessarsi di dati quali carta di credito, conto corrente bancario, password e le altre informazioni sensibili presenti sui PC. 
In queste email l'attaccante cerca di apparire come un mittente credibile, presentandosi con un indirizzo email appartenente all'azienda ma durante la spedizione del messaggio, per superare i controlli SPF, DKIM e DMARC del destinatario era stato utilizzato un indirizzo di ritorno diverso. Nell'header del messaggio quindi from e return path sono diversi. 

Questa caratteristica può essere utilizzata per fare un filtro antispam aggiuntivo che dia il proprio contributo al punteggio di SPAM complessivo del messaggio. Per ottenere questo si può procedere così:

1) Creare, nella cartella  
MDaemonSpamAssassinrules
un file che si chiama
FromNotEnvelopeFrom.pm
e inserire in esso questo testo:

package FromNotEnvelopeFrom;
1;

use strict;

use Mail::SpamAssassin;
use Mail::SpamAssassin::Plugin;
our @ISA = qw(Mail::SpamAssassin::Plugin);

sub new {
         my ($class, $mailsa) = @_;
         $class = ref($class) || $class;
         my $self = $class->SUPER::new( $mailsa );
         bless ($self, $class);
         $self->register_eval_rule ( 'check_for_from_not_envelope_from' );

         return $self;
}

# Check From: header against X-Envelope-From: header return 1 on mismatch.
# There are many legitimate reasons the values may be different, such as
list
# mail, SRS, and backscatter protection. Use this with caution.
sub check_for_from_not_envelope_from {
         my ($self, $msg) = @_;

         my $from = $msg->get( 'From:addr' );
         my $envFrom = $msg->get( 'X-Envelope-From:addr' );

         #Mail::SpamAssassin::Plugin::dbg( "FromNotEnvelopeFrom:
Comparing '$from'/'$envFrom'" );

         if ( $from ne '' && $envFrom ne '' && $from ne $envFrom ) {
                 return 1;
         }
         return 0;
}

2) Editare con un editor di testo puro (es. il blocco note) il file
MDaemonSpamAssassinruleslocal.cf
e aggiungere in fondo al file le seguenti righe di testo:

# This is a plugin to compare two headers
loadplugin FromNotEnvelopeFrom ./FromNotEnvelopeFrom.pm
header FROM_NOT_ENVELOPE_FROM eval:check_for_from_not_envelope_from()
score FROM_NOT_ENVELOPE_FROM 1.0
describe FROM_NOT_ENVELOPE_FROM From: does not match X-Envelope-From:

3) Salvare il file e riavviare lo spam filter di MDaemon (Sicurezza > Spam filter > Samp filter). 

Questo filtro, quando rileverà differenze tra l'indirizzo del from e quello nel percorso di ritorno, aggiungerà 1.0 punti allo score del messaggio.

Attenzione che anche email buone come newsletter e mail particolari (ad esempio le email inviate da sistemi che usano il backscatter) possono presentare questa caratteristica (header differenti). In questo caso si può utilizzare questo meccanismo con delle regole di filtro contenuti che riconoscano questi messaggi per mitigare l'impatto del filtro sui messaggi legittimi.