Cum am scăpat de un spammer insistent

Cum am scăpat de un spammer insistent

Cum am scăpat de un spammer insistent

09/10/2015

cuvinte ()

Cred că s-a observat din postarea despre blocarea IP-urilor AWS că am o aversiune față de spammeri. Ei bine, săptămâna trecută am mai găsit o soluție și pentru cei care trimit „comunicări nesolicitate” (așa cum sunt numite în lege).

Puțin background — tl;dr

(Treci la partea următoare dacă nu te interesează.)

În general sunt mulțumit de filtrele anti-spam Gmail, fac o treabă foarte bună. Mai ratează uneori, alteori tratează mailuri bune ca fals-pozitive. Dar nu mă supăr din cauza asta, spammerii sunt foarte inventivi și schimbă metodele periodic.

Ei, și tocmai pentru că uneori mai spamează câte un mail „cuminte”, verific periodic folderul Spam, și salvez câte un „nevinovat”, dar și scanez vizual să văd dacă e vreun insistent care nu știe când să se oprească.

Tocmai peste unul dinăsta am dat săptămânile trecute. Aveam in Spam vreo 10 mailuri de la același sender, cu subiecte total diferite (de la mașini și „țoale” la farmaceutice). I-am oferit totuși prezumția de nevinovăție, și am dat click pe unsubscribe. Dar fiecare mail era trimis de pe o altă listă (cei care au trimis vreodată un newsletter știu despre ce vorbesc), și peste o săptămână apăreau alte liste. Așa că am trecut și eu la „atac”.

Cum l-am trecut în offline

Nu prin metode de black-hat, dacă asta ați crezut, ci foarte oficial și legal.

1. Mail headers

Mai întâi, am studiat sursa mailurilor primite. Nu toți clienții de mail suportă, eu folosesc Mailbird, dar și Thunderbird are opțiunea. Nu știu despre Outlook, iar la cele „online” în general nu se poate.

Cam așa arată header-ul mailurilor (toate îl au, obligatoriu). Ăsta e un altul, recent, pentru exemplu.

Delivered-To: [adresa mea]  
...
Return-Path: <members@elinkedin.com>  
Received: from mail.ksp.gov.in (mail.ksphc.org. [IP-uri intermediare])  
        by mx.google.com with ESMTP id 
...
Received-SPF: neutral (google.com: [IP-uri intermediare] is neither permitted nor denied by best guess record for domain of members@elinkedin.com) client-ip=[IP-uri intermediare];  
...
Received: from mail.ksp.gov.in ([127.0.0.1])  
...

Header-ul e mai lung, am păstrat doar câteva detalii esențiale.

În primul rând, semnele de spammer sunt foarte vizibile. Începând cu adresa de la Return-Path care sună foarte ciudat (LinkedIn are alte domenii) până la rezolvarea domeniului mail.ksp.gov.in în adresa locală (în mod normal trebuie să rezolve în IP-ul public). Iar faptul că domeniul e „spoofed” este un semn și mai clar: from mail.ksp.gov.in (mail.ksphc.org ...) — ambele aparțin unei secții de poliție din India.

Și deși Google a zis inițial că este „neutru” (Received-SPF: neutral) din cauză că a fost trimis prin SMTP-ul Google, totuși l-a identificat corect ca spam pe baza celorlalte informații.

Identificarea corectă a locației

Cu domeniile identificate în header am mers la statdns, o aplicație foarte utilă care oferă multe informații despre setările DNS publice. Există și alte soluții, în special dacă ești pe Linux, dar pentru viteză am mers pe varianta asta.

Ce spune statdns despre ksp.gov.in:

# IP (A)
{ "name": "ksp.gov.in.",
  "type": "A",
  "class": "IN",
  "ttl": 10800,
  "rdlength": 4,
  "rdata": "218.248.45.4" }
# Nameservers (NS)
{ "name": "ksp.gov.in.",
  "type": "NS",
  "class": "IN",
  "rdlength": 12,
  "rdata": "ns11.bsnl.in." }
# Mail exchange (MX)
{ "name": "mail.ksp.gov.in.",
  "type": "A",
  "class": "IN",
  "ttl": 10800,
  "rdlength": 4,
  "rdata": "218.248.45.2"
}

De aici am dedus faptul că poliția din Karnataka își tine serverele la serviciul de hosting BSNL (ns11.bsnl.in), care le oferă și linia de internet. În cazul primului spammer, era o firmă românească ce deținea mai multe domenii pe un server în Germania.

Contactarea service-provider-ului

Am trimis toate informațiile din header la adresa de contact a serviciului de hosting, cu notificarea de spam. Nemții s-au mișcat repede, și i-au blocat contul de găzduire. La indieni, mai aștept să văd dacă mai apar, însemnând că serverul poliției probabil a fost compromis sau că poliția indiană se mai ocupă și de „altele”.

Marius Stuparu - http://www.mariusstuparu.com

Frontend developer senior, cu afinitate pentru responsive web ?i tehnologii noi. Mare iubitor de Node.js, Sass ?i Angular. Dar ?i fotograf acreditat, Nikonist ?i iubitor de muzic? electronic?.