mail di spam provenienti da botnet

0

Sfondo

Sto lavorando al rilevamento dello spam dal lato del destinatario, cioè dove vengono consegnate tutte le mail, cioè sul lato del server di posta. Gli spammer sono in grado di inviare messaggi di spam tramite bot, open relay e molte altre fonti.

Query

C'è un modo / metodo per dire che una mail spam ricevuta, viene inviata tramite i bot?

    
posta user10012 01.07.2016 - 05:17
fonte

2 risposte

2

Essendo un amministratore di sistema di posta elettronica, suppongo tu sappia che i messaggi di posta elettronica non contengono nulla che ti permetta di identificare se sono inviati da un essere umano o da una macchina. Il BOT non indicherà certamente che si tratta di un BOT nel messaggio o anche delle intestazioni.

I metodi di rilevamento SPAM comuni si applicano a tutti i messaggi inviati o meno da un BOT.

Suggerisco di esaminare le soluzioni di rilevamento SPAM esistenti come SpamAssassin insieme ai diversi plug-in disponibili per esso. Come vedrai, con un allenamento adeguato, fa davvero un ottimo lavoro.

    
risposta data 01.07.2016 - 06:11
fonte
0

Oltre ai metodi standard (verifica di intestazioni, client interrotti, filtri antispam, ecc.) per rilevare gli spammer e in base alla severità delle impostazioni, puoi provare a limitare le tue email solo a domini pienamente qualificati e ignorare qualsiasi "Sconosciuto" fonti (questo è quello che faccio).

Personalmente ritengo che tutte le email debbano essere inviate dai server di posta e non direttamente dai client. Tuttavia, nel mondo reale, ciò non sempre accade.

Inoltre, è possibile verificare se l'indirizzo IP del dominio del server (non quello dell'indirizzo indirizzo) corrisponde a quello che il server sta ricevendo (ricerca IP inversa). Puoi verificare se tale server è o meno un server di posta controllando le porte e i record MX.

Se le e-mail di spam provengono da server di posta autentici, potrebbe indicare un caso di inoltro aperto. In caso contrario, possiamo supporre che sia una botnet.

Queste sono alcune delle restrizioni che uso in Postfix (per dare un'idea):

smtpd_helo_restrictions =
    reject_invalid_helo_hostname,

smtpd_client_restrictions =
    reject_unauth_pipelining
    reject_unknown_reverse_client_hostname

smtpd_sender_restrictions =
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,

smtpd_recipient_restrictions =
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    reject_unauth_destination,
    reject_unverified_recipient,
    reject_rbl_client ...,

Ad esempio, questo è un log che rifiuta una fonte sconosciuta:

NOQUEUE: reject: RCPT from unknown[***.***.***.235]: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [***.***.***.235]; from=<ret_2016@*******.com> to=<*****@******.com> proto=ESMTP helo=<www.*******.com>

Aggiornamento: spiegazione estesa (risposta al commento)

@ user10012: La tua domanda è come verificare se lo spam è originato da botnet, quindi un modo è: come fai a sapere che una mail proviene da un server SMTP? (quindi potresti considerare il resto come botnet, se vuoi essere severo)

Spiegazione 1:

you can test if the server domain's (not the address domain) IP address matches the one the server is receiving (reverse IP lookup).

Dai log:

postfix/smtpd[21173]: 929DB18E7E8D8: client=mail-pa0-f66.google.com[209.85.220.66]

In questo caso, proviene da alcuni SMTP di google. Se esegui host 209.85.220.66 , restituirà mail-pa0-f66.google.com. . Che è corretto. Questi dovrebbero funzionare se il server di posta è configurato correttamente. Se qualcuno invia direttamente da un computer, il risultato di host ***.***.***.235 sarà: not found: 3(NXDOMAIN) o mostrerà un dominio diverso da quello inviato.

Spiegazione 2:

You can test if such server is a mail server or not by checking the ports and the MX records.

Questo può funzionare solo per server "piccoli", ad esempio:

host -t mx example.com restituirà qualcosa del tipo: example.com mail is handled by 10 mail.example.com . In tal caso, puoi verificare se mail.example.com corrisponde all'IP ricevuto. Puoi testare la porta con: nmap -p 25,465 mail.example.com . Se rispondono "apri", confermi che è un server di posta.

Ho detto che funziona con i server "piccoli" perché le aziende medio-grandi utilizzano server diversi da ricevere e diversi da inviare. Inoltre dispongono di un pool di server che gestiscono la posta, il che rende i test di cui sopra poco pratici o impossibili. Ad esempio, host -t google.com restituirà: google.com mail is handled by 10 aspmx.l.google.com. (da 10 a 50). Nessuno di questi elenchi include quello che abbiamo visto prima: mail-pa0-f66.google.com (quelli sono il pool di 'ricevitori'). Ora se controlli le porte con nmap quel server (mail-pa0 ...), non avrà nessuna porta aperta (il che significa che è solo un mittente).

Come nota a margine, se una mail proviene da un server SMTP che non significa che sia stata inviata da un essere umano. Può essere inviato anche da un bot. Ti aiuta solo a identificare quali e-mail provengono da server di posta. Molti SPAM vengono inviati direttamente dai computer infetti e questo metodo aiuta a ripulire quelli. Se un server SMTP è compromesso o è impostato con le cattive intenzioni di consegnare SPAM, questo metodo fallirà. Avrai bisogno di altri modi per bloccarlo (come una lista nera: RBL).

Nella mia esperienza personale, puoi filtrare il 90% o più del tuo SPAM usando un servizio RBL (ce ne sono alcuni liberi da usare se il tuo server ha poco traffico: bl.spamcop.net , zen.spamhaus.org , ecc.)

    
risposta data 01.07.2016 - 06:33
fonte

Leggi altre domande sui tag