Peppacci

Il blog di Giuseppe Traficante
posts - 31, comments - 15, trackbacks - 1

Tar Pit

Tar Pit
Di seguito riporto gli appunti di un collega “Stefano Clabrese” di cui o condiviso tale problematica.

Sui server della piattaforma che gestiamo “macchine Win 2003 con Exchange 2003 e Recipient Filtering abilitato” arrivano quotidianamente migliaia (per qualcuno anche milioni) di email spam, inviate a utenti esistenti e non. Una volta accettata la mail, l'RFC 2821 vorrebbe che per queste email venga generato un rapporto di mancato recapito che ritorna al mittente della email. Queste “persone” malintenzionate mediante uno script possono in poche ore inviare milioni di richieste al server smtp pubblicato su Internet, filtrando quindi le risposte di tipo 550 – user unknown per catturare gli indirizzi email validi e quindi per loro (ma anche per chi deve gestire la posta elettronica) estremamente preziosi.
Si rende quindi necessaria una scelta, filtrare al livello di server MX questi indirizzi, verificando preventivamente all'accettazione della mail l'esistenza della mailbox oppure smettere di inviare NDR verso internet. Raccomandazioni RFC a parte, finiremmo per filtrare anche gli NDR destinati verso utenti esistenti che hanno semplicemente sbagliato a digitare l'indirizzo del nostro utente (non possiamo mica pretendere che tutti conoscano il CTRL+K ... ).
Se si dovesse optare per la prima scelta, è molto probabile che ad una prima diminuzione dello spam e del numero di NDR inviate verso internet, vedremmo seguire un aumento della dimensione dei log SMTP. Dovuti a cosa? Immaginate un po’, qualcuno si è accorto che stiamo filtrando gli utenti, per cui molto semplicemente sta usando uno script che genera indirizzi email in modo casuale e li sta confrontando con le risposte del nostro smtp.
550 - non buono
550 - non buono
550 - non buono
250 - ah... questo è buono. Da domani questo indirizzo può iniziare a ricevere Unsolicited Content Email... cioè SPAM.

Si vabbè, le possibili combinazioni sono troppe per riuscire a matchare completamente la nostra rubrica, però se considerate che si può partire con un "dizionario" prepopolato di parole, nomi, cognomi e che probabilmente si può inviare un rcpt to: ogni pochi ms (dipende ovviamente dalle performance del server), qualche email valida di sicuro la trova. E vi gonfia il log in modo totalmente incontrollato.
Soluzioni?
Ad esempio il tar pit, letteralmente una macchia di catrame in cui far impantanare gli spammer. Cioè si "degradano" leggermente i tempi di risposta dell'SMTP ed il gioco è fatto. Prerequisito è Windows Server 2003 SP1, nessuna patch o fix, solo l'implementazione di un parametro sul registro del servizio SMTPSVC ed un riavvio dello stesso.
Il parametro è una DWORD chiamata TarpitTime che va popolata con un valore decimale corrispondente al numero di secondi che il server SMTP dovrà attendere prima inviare una risposta di verifica degli indirizzi SMTP immessi. E' sufficiente una manciata di secondi, probabilmente anche uno solo per scoraggiare o questo tipo di attacco, che, nel tentativo di verificare anche un milione di indirizzi (ma potrebbero essere molti di più...), non può attendere le risposte per un milione di secondi (circa 11 giorni e mezzo...).
E per gli utenti legittimi? Beh anche se una mail dovesse essere indirizzata a 100 recipient, 100 secondi di attesa totale non sono poi moltissimi. E' chiaro che va monitorato l'effetto sul nostro server. Peraltro questa modifica funziona per gli invii di posta non autenticati, per cui se ci fosse necessità di ricevere grandi quantità di posta da un dominio esterno, si potrebbe sempre configurare un invio autenticato dall'altro smtp (sempre che ci si riesca...).
La DWORD va creata (se non esiste già) sotto:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMTPSVC\Parameters

Ulteriori info le trovate qui: http://support.microsoft.com/kb/842851/en-us

 

Print | posted on Monday, May 11, 2009 9:48 PM | Filed Under [ Exchange Server ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 7 and 8 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET