Tutorial :: Spam, lettura degli headers
Autore: zello
Introduzione
Di cosa c'è bisogno?
1) di un browser puntato su http://samspade.org/t , che ha tutto il necessario per fare l'analisi
2) di una vaghissima infarinatura su come funziona la posta.
Tutto negli headers può essere falso. Non è difficile falsificare il mittente, né nessun altro campo. Gli unici campi affidabili - con eccezioni, vedi sotto - sono i campi Received:.
Tutto il resto possiamo fare a meno di considerarlo
I campi Received: sono aggiunti da ogni mailserver che maneggia la mail. Sono inseriti "al contrario", cioé aggiunti in cima (quelli più in alto sono i più recenti). Hanno un formato che varia da mailserver a mailserver, ma generalmente si presentano così:
Received: from indirizzo(altroindirizzo[IP]) by nomemailserver (numero di versione del software)
Il primo campo, quello identificato da indirizzo, è quello con cui chi consegna la posta al server "nomemailserver" si è presentato. Può essere - e normalmente è - falsificato. Il secondo, quello tra parentesi tonde [non sempre presente] è quello che effettivamente è il suo vero nome, come identificato da nomemailserver. Quello tra parentesi quadre è l'indirizzo IP da cui si è connesso chi consegna la mail.
Lo spammer può inserire linee Received: fasulle, ma può solo "aggiungerle in fondo" - non può né modificare quelle autentiche, né aggiungerle "in mezzo" a linee Received: autentiche. Ecco perché l'analisi degli headers si fa di solito a rovescio - dal server più recente al più antico - fino a raggiungere l'ultimo Received: o a trovare l'ultimo Received: autentico.
La prima linea Received
La prima linea Received: è sempre autentica, perché è quella aggiunta dall'ultimo mailserver - quello del destinatario. Su questa ci si può mettere la mano sul fuoco (prendo la mail da me postata in questo thread ieri):
Received: from web1.mail.onsiteaccess.net (mail.onsiteaccess.net [209.83.168.38])
by <myMailServer> (8.9.3/8.9.3/[snipped] 1.0) with ESMTP id MAA05696
for <myPrivateMail>; Mon, 19 Aug 2002 12:54:02 +0200 (MET DST)
<myMailServer> e <myPrivateMail> sono rispettivamente il server e il mio indirizzo "censurati". Il mio mailserver ha ricevuto la posta dall'IP 209.83.168.38, che ha riconosciuto come mail.onsiteaccess.net, che si è presentato come web1.mail.onsiteaccess.net. Prima di impegolarci in ricerche su chi è mail.onsiteaccess.net, proseguiamo ad esaminare il Received: dopo per vedere se è autentico Nota: già il fatto che onsiteaccess.net si sia presentato con il suo nome mi fa pensare che sia passabilmente affidabile anche la riga prima. Peraltro, volendo fare un ulteriore controllo, si può in SamSpade:
- usare il tool "dns". Se inseriamo il nome del dominio (in questo caso onsiteaccess.net) otteniamo, oltre all'IP, anche il record MX (ovvero il server di posta responsabile per il dominio) "Mail for onsiteaccess.net is handled by mail.onsiteaccess.net (10) 209.83.168.38" Quindi non ci sono dubbi: mail.onsiteaccess.net è 209.83.168.38, ed è un server mail responsabile del dominio per cui si presenta.
Il secondo Received
Assodato che mail.onsiteaccess.net è chi dice di essere, passiamo a vedere se è credibile la linea dopo.
Received: from yahoo.com ([209.83.168.62]) by web1.mail.onsiteaccess.net
Beh, la linea ci dice che:
- web1.mail.onsiteaccess.net alias mail.onsiteaccess.net dichiara di aver ricevuto la mail
- dichiara di averla ricevuta da uno che si è presentato come yahoo.com (modesto, direi), ma che in realtà è 209.83.168.62
Notare: dato che mail.onsiteaccess.net dovrebbe consegnare posta solo da e per onsiteaccess.net, 209.83.168.62 è molto probabilmente un indirizzo interno al suo dominio. Alternativamente, vuole dire che mail.onsiteaccess.net consegna la posta DI TUTTI, è cioé un open relay, che è cosa deprecabile. Volendo, si può controllare usando lo strumento "blackhole list check" di samspade.org. Questo strumento controlla infatti se l'indirizzo introdotto è listato nelle blacklist pubbliche antispam, perché:
- è un open relay, cioé consegna posta per tutti (questi sistemi sono spesso utilizzati da spammers)
- è un open proxy, cioé anonimizza l'accesso di chiunque a internet
- è un origine nota di spam
- è un sito pubblicizzato da spam
- è un sito dove si vende spamware, cioé software per spammers.
In questo caso il risultato è: 209.83.168.38 (mail.onsiteaccess.net) not listed
I più bravi possono anche fare un controllo, usando telnet per connettersi a 209.83.168.38, porta 25, e provare a scriversi una mail ad un proprio indirizzo. Se la mail arriva, il server è un open relay.
In questo caso non è un open relay. Quindi 209.83.168.62 deve essere interno alla rete onsiteaccess (e sicuramente non yahoo.com)
Le altre linee Received
Received: from unknown (185.176.53.24) by rly-yk05.mx.aol.com with local; Aug, 05 2002 3:32:53 PM +0300
Received: from unknown (124.215.35.163) by rly-xw01.mx.aol.com with QMQP; Aug, 05 2002 2:44:40 PM +0700
Received: from 155.89.28.179 ([155.89.28.179]) by rly-xw05.mx.aol.com with smtp; Aug, 05 2002 1:35:46 PM +0400
Received: from 30.215.79.204 ([30.215.79.204]) by m10.grp.snv.yahoo.com with SMTP; Aug, 05 2002 12:34:45 PM +0300
Quà è uno di quei campi non scientifici in cui l'occhio conta moltissimo. A occhio sono false:
- manca l'SMTPid, che comunque non è obbligatorio - hanno formati un po' diversi, ma tutte hanno quello strano with (xxxx) seguito da un punto e virgola.
- tutti pretendono di venire da aol o da yahoo - e possiamo escluderlo: perché mai aol o yahoo dovrebbero ricorrere a mail.onsiteaccess.net per consegnare la loro posta? E allora, perché tutti questi servers dovrebbero qualificarsi come relay di posta di aol?
- soprattutto:
* perché mail un server che si presenta a mail.onsiteaccess.net come yahoo.com (quando consegna la posta) si qualifica come rly-yk05.mx.aol.com quando la riceve? Non che sia impossibile configurare un server così, ma mi sembra moolto inutile.
* usando lo strumento "whois", troviamo che 185.176.53.24 - da cui dovrebbe provenire la posta - NON E'NEANCHE STATO ASSEGNATO. Ma fingiamo per un attimo che sia una riga "buona"
* l'IP consegnatario del received sotto (124.215.35.163) è addirittura un numero riservato (i numeri di IP che cominciano per 96, fino a quelli che cominciano con 126, sono riservati)
Non vale neppure la pena di continuare: se il primo Received: è falso, lo sono - per quanto detto al punto 3 - anche tutti i successivi.
Le blackhole list check
La mail sembra dunque provenire da 209.83.168.62.
Controlliamo - usando blackhole list check - che non sia un open proxy (in tal caso notificherei ugualmente la cosa, ma lamentandomi con l'abuse di un open proxy, e non di uno spammer).
Inoltre controlliamo contemporaneamente che non sia un'origine stra-nota di spam, per evitare di procedere con segnalazioni di fatto inutili:
209.83.168.62 listed in SPAMCOP(127.0.0.2)
SpamCop Blacklist (SPAMCOP): Blocked - see
http://spamcop.net/bl.shtml?209.83.168.62
Non è un open relay. E' listata da SpamCop con causale 2 (sotto osservazione) - peraltro, la lista SpamCop è un filino ipersensibile allo Spam. Osirusoft - per dirne una - è molto più affidabile. Vale la pena di mandare un LART.
Da un indirizzo IP alla rete, le whois queries
La mail sembra dunque provenire da 209.83.168.62. Controllato - usato blackhole list check - che non è un open proxy (in tal caso notificherei ugualmente la cosa, ma lamentandomi con l'abuse di un open proxy, e non di uno spammer), vediamo un po' come risalire ai responsabili.
Ci sono database pubblicamente interrogabili che - a fronte di un IP - dicono a quale organizzazione tale IP è stato assegnato. I principali sono tre (ma ce ne sono altri):
- whois.arin.net -> è il "master", cioé l'assegnatario principale degli IP
- whois.ripe.net -> lista le coppie IP/organizzazioni per l'Europa
- whois.apnic.net-> fa lo stesso di ripe, ma per l'Asia
Per risalire al responsabile dell'IP 209.83.168.62 - che figura come consegnatario della mail a onsiteaccess.net - cominciamo con l'interrogare whois.arin.net, usando l'apposito tool whois di samspade, e scegliendo il database arin nella dropbox accanto Risultato:
Trying whois -h whois.arin.net 209.83.168.62
SAVVIS Communications Corporation (NETBLK-SAVVIS3) SAVVIS3 209.83.128.0 - 209.83.255.255
eLink Communications (NETBLK-SAVV-T35879-18) SAVV- T35879-18 209.83.168.0 - 209.83.169.255
La SAVVIS possiede tutti gli indirizzi da 209.83.128.0 a 209.83.255.255, ma ha subaffittato parte dello spazio (209.83.168.0 - 209.83.169.255) alla eLink Communication.
Bene, cominciamo a selezionare la eLink (normalmente io notifico sia il provider, sia il suo upstream, se - come in questo caso - è presente):
eLink Communications (NETBLK-SAVV-T35879-18)
111 8th Ave 3rd Floor
New York, New York 10011
US
Netname: SAVV-T35879-18<
Netblock: 209.83.168.0 - 209.83.169.255
Coordinator: Simms, Ron (RS2256-ARIN) inetadmin@elinkdc.com
Generalmente non si scrive al Coordinator (né a nessun altro contatto non listato esplicitamente come responsabile per gli abuse). Ci sono due vie, una più breve, una un po' più lunghetta:
La via breve agli abuse
Il responsabile è inetadmin@elinkdc.com, il ché fa pensare che il dominio della eLink abbia nome elinkdc.com.
Ai sensi dei regolamenti internet, tutti coloro che forniscono servizi di posta elettronica devono fornire:
- un indirizzo abuse@dominio per la gestione degli abuse;
- un indirizzo postmaster@dominio per la gestione (generica) del servizio di posta.
Posso dunque supporre di mandare le mie brave lamentele a:
abuse@elinkdc.com
postmaster@elinkdc.com
E dato che la savvis ha dominio savvis.net, posso anche mandare a:
abuse@savvis.net
postmaster@savvis.net
La via lunga agli abuse
Per fare le cose serie, utilizziamo ancora un servizio whois - il whois.abuse.net, che lista tutti gli indirizzi di abuse dato un dominio.
Utilizzerò il servizio di "whois" di samspade, specificando (a mano, non c'è tra quelli elencati) prima elinkdc.com, e poi savvis.net.
Risultati:
whois -h whois.abuse.net elinkdc.com
abuse@elinkdc.com (for elinkdc.com)
whois -h whois.abuse.net savvis.net
abuse@SAVVIS.NET (for savvis.net)
[Nota: il servizio è disponibile via web all'indirizzo http://www.abuse.net/lookup.phtml, che è anche più veloce]
Il LART
La lettera di lamentela presso l'abuse si chiama di solito LART - Luser Attitude Readjustment Tool. E' una metaforica mazza da usare sul cranio degli spammers.
Di solito io mando via una cosa siffatta (o simile)
TO: abuse@elinkdc.com, abuse@savvis.net
Hi,
I've received today the following Unsolicited
Commercial E-mail (UCE), which seems to come from IP
209.83.168.62, in your IP space.
Please check it out, and handle your user according to
your TOS/AUP.
Thank you,
--
zello
---UCE---
E quì copio e incollo la mail di spam, con header e testo.
E' discussa l'opportunità di allegare i risultati delle query fatte. In linea di massima si propende per non farlo (l'abuse desk sa quali indirizzi sono dentro la sua rete, e se non è tonto o finge di esserlo si rende conto da dove proviene la mail). Se proprio proprio l'abuse desk è tontissimo, si può infilare un qualche dato in più (in Italia non è di solito necessario).
In realtà non sarebbe finita qui. Bisognerebbe cercare di segare anche il sito dello spammer. Ma qualcosa bisogna pure che mi tenga per il prossimo tutorial.