Category Archives: Spam

Weniger Spam durch Reverse-MX?

Manchmal liest man Dinge wo einem sofort durch den Kopf schiesst ‘Das kann nicht funktionieren’ und bei näherer Beschäftigung mit dem Thema kommt man zu der Erkenntniss, das wohl doch was dran ist. So ist es mir ergangen als ich bei Nico Lumma über den Mail-Out DNS-Record gelesen habe.

Dort wird auf Nils Jeppes How to stop sender forgeries Artikel verwiesen, indem ein zusätzlicher DNS-Record, ähnlich dem MX-Record für eingehende Email, vorgeschlagen wird um SMTP-Server kenntlich zu machen die Email für bestimmte Domains versenden dürfen.

Spammer verschicken bekanntlich ihre Email entweder über offene Relays/Proxies oder einfach über eine Dial-UP Leitung mit eigenem SMTP-Server. Dabei verwenden sie meist als Absender bestehende Domains wie Hotmail oder Yahoo, da mittlerweile viele SMTP-Server Mails ablehnen, wenn sie im From: eine Domain haben die es im Internet-DNS nicht gibt. Das ist verschicken mit ‘fremden’ Domains ist auch kein Problem, denn nirgends im Internet gibt es Infomationen darüber, welcher Server überhaupt Email für eine bestimmte Domain verschicken darf. Genau hier soll der MO-Record (Mail-OUT) ansetzen, indem er genau diese Information enthält.

Wie gesagt, habe ich das erst für eine Schnapsidee gehalten, aber beim Suchen bin ich auf einen Internet-Draft bei der IETF (Internet Engineering Task Force) gestossen, der genau diese Idee aufgreift, allerdings dem Kind den Namen RMX (Reverse-MX) gibt. Aussehen könnte das Ganze so:


RMX records could look like this:

rmxtest.de. IN RMX host:relay.provider.com
danisch.de. IN RMX apl:relays.rackland.de
relays.rackland.de. IN APL 1:213.133.101.23/32 1:1.2.3.0/24

Ein Adress-Bereich hat natürlich seine Vor- und Nachteile. Zum einen kann ein dämlicher Admin das gesamte Internet freigeben, wenn er 0.0.0.0/0 in die Liste eintragen würde, allerdings würde er dann ziemlich schnell in DNSRBL-Listen landen, auf die auch in Zukunft nicht verzichtet werden kann. Die andere Seite ist natürlich Bequemlichkeit oder man hat sehr viele ausgehende Mailserver (GMX, T-Online, Web.de), so das eine einzelne Adresse nicht ausreichen würde.

Der Internet-Draft enthält auch einige negative Punkte, so z.B. die Angreifbarkeit von DNS durch Cache-Poisoning oder andere Dinge, jedenfalls ist es sehr lesenswert.

Letztlich bin ich Zwiegespalten. Denn Spam ist ein Problem und man sollte jede vernünftige Chance nutzen um ihn zu bekämpfen und diese Idee ist recht einfach und wird viele Spammer ärgern. Auf der anderen Seite nimmt ein RMX ein gutes Stück Freiheit, Freiheit über jeden SMTP-Server meine Mail zu verschicken der es mir erlaubt, denn nicht immer kann man auf den eigenen SMTP-Server zugreifen. Auch Leute mit DynDNS werden sich umstellen müssen.

Spam – Ein Preis der Freiheit?

Mir geht die Sache schon länger durch den Kopf. Spam nervt – keine Frage. Aber wenn man Meldungen über Anti-Spam-Initiativen liest stolpert man unweigerlich über das Wort Gesetze. Der Staat soll es also mal wieder richten mit Verordnungen und dem allseits beliebten Amts-Schimmel. Will ich das wirklich? Staat heisst immer Regulierung und eine Regulierung des Internets halte ich für keine gute Idee.

Wie könnte so ein Gesetz denn aussehen? Strafe bei zusenden? Dann wird die Firma ihren Sitz irgendwo auf Krakatau haben und sich damit der deutschen Rechtsprechung entziehen. Die Richtung wird also in ‘vertrauenswürdiger’ und ‘vertrauenunwürdiger’ Mail-Server gehen, man nimmt keine Mails mehr von Servern an denen man nicht vertraut, wobei die Authentifizierung ohne Probleme über Zertifikate aller Art zu lösen wäre. Dieses Zertifikat darf man dann beim Ortsamt beantragen für 20 Euro im Jahr – schöne neue Welt.

Gut, die Idee wurde auch schon in diversen Anti-Spam Diskussionen durchgekaut und ich könnte mir das mit einem Zertifikats-System vorstellen das dem Web of Trust von PGP ähnelt. Damit könnte ich leben. Aber bevor der Staat Gesetze erlässt und versucht das Internet in, für den Amtschimmel, passende Bahnen zu lenken bekomme ich lieber weiterhin Spam.

15 Tage

Genau 15 Tage hat es gedauert bis ich auf die Server-Admin Adresse dieses Apache eine Spam-Mail erhalten habe. Ich hatte absichtlich noch keine Kontakt-Adresse auf die Seite gemacht um zu schauen was passiert, dann werde ich das die Tage nachholen.

Spam und offene Proxies

Viele sind heutzutage noch der Meinung Spam würde zumeist über offene Relays verschickt. Das ist aber schon lange nicht mehr der Fall, wie auch The Register richtig bemerkt. Denn vielfach haben die Hersteller/Programmierer reagiert und liefern ihre Mailserver mit recht restriktiven Voreinstellungen aus. Spam wird heute auf vielen Wegen an den unfreiwilligen Kunden gebracht.

Einen Namen, nicht nur bei Spammern, hat sich das FormMail-Script gemacht, welches durch diverse Sicherheitslücken es Spammern erlaubt ihr Handwerk nachzugehen indem sie ihre Post über dieses CGI-Script versenden. Genaue Hintergründe findet man hier.

Viel einfacher ist es sich ein paar Server bei einem ISP zu mieten und fröhlich Spam zu versenden. Das klingt zu einfach um wahr zu sein, ist aber leider Realität denn viele ISPs tolerieren soetwas, für ein paar extra Dollars versteht sich. Ein normaler Nutzer bekommt sowas auch nicht mit, denn wer schaut schon auf die Email-Header und wenn was sollte er dagegen tun? Hier helfen auf Server-Seite nur die diversen RBL-Listen wie spamhaus.org, spamcop.net oder ordb.org.

Ein vollkommen unterschätztes Problem sind offene Proxy-Server. Ein Proxy-Server ist zuersteinmal ein Stellvertreter, d.h. bei einem HTTP-Proxy sagt der Browser dem Proxy das er gerne die Seite www.foobar.baz sehen möchte. So zieht also der Proxy los und holt die Seite und gibt sie dem Browser zurück. Dazu muss man noch wissen das ein Proxy-Server immer abhängig vom Applikations-Protokoll ist, also ein FTP-Proxy nur FTP spricht und ein HTTP-Proxy nur HTTP. Es gibt auch generische Proxies, aber das würde zuweit führen. Eine gesonderte Rolle spielt hier HTTPS, dabei wird über SSL/TLS ein verschlüsselter Tunnel aufgebaut bevor die eigentliche HTTP-Verbindung beginnt. Dies ist allerdings eine Ende-Ende-Verschlüsselung, d.h. der Browser und Webserver ver- und entschlüsseln die Daten, der Proxy-Server ist dabei aussen vor. Wäre er nämlich Teil der Verbindung könnte man über dem Proxy-Server die Verschlüsselung aushebeln und die Verbindung belauschen, eine sog. Man-in-the-Middle Attacke. Um nun doch HTTPS über einen Proxy zu ermöglichen wurde der CONNECT-Befehl eingeführt, der letztlich dafür sorgt das ein Tunnel entsteht durch den man jedweden TCP-Traffic schleusen kann, auch SMTP. Ein Beispiel:

% telnet proxy.example.local 3128
Trying 192.168.12.90...
Connected to proxy.example.local.
Escape character is '^]'.
CONNECT mail.example.local:25 http:/1.0

HTTP/1.0 200 Connection established
Proxy-Agent: IJ/2.0.2

220  mail.example.local ESMTP Sendmail 8.12.3
quit
221 2.0.0 mail.example.local closing connection
Connection closed by foreign host.

Ansich stellt das ganze kein echtes Problem dar, wenn denn der Proxy-Server richtig konfiguriert ist lässt ein Proxy-Server nur ausgehende Verbindungen auf Port 443 zu, und das auch nur für bestimmte IP-Kreise (z.B. das eigene LAN), auf dem normalerweise HTTPS gemacht wird. Allerdings gibt es viele falsch oder nicht konfigurierte Systeme, die es schlichtweg jeden in der Welt erlauben den Proxy zu nutzen und genau hier gehen die Probleme los. Zuerst wurden diese offenen Proxies von Crackern eingesetzt um ihre Angriffe auf fremde Computer zu tarnen, später wurden dann IRC Chat-Netze von Kiddies mit dem gleichen Ziel heimgesucht. Allerdings haben sich das die Server-Administratoren nicht lange gefallen lassen und so scannen heute fast alle IRC-Server ihre ‘Kundschaft’ nach offenen Proxy-Servern bevor sie auf die Server kommen. Quasi als Abfall-Produkt dieser Scannerei gibt es auch eine RBL die sich nur mit offenen Proxies beschäftigt. Zu finden ist sie unter Open Proxy Monitor List und lässt sich am Mail-Server wie jede andere RBL nutzen, hier ein Beispiel für Sendmail:


FEATURE(dnsbl)dnl
FEATURE(`dnsbl’, `opm.blitzed.org’, `Mail blocked see: http://opm.blitzed.org/info/’)dnl

Sicher erhebt die Liste keinen Anspruch auf Vollständigkeit, noch scannen die Betreiber aktiv im Internet nach offenen Proxies, aber dennoch ist diese RBL sicher ein gute Ergänzung zu bereits bestehenden RBLs.

Zum Schluss noch ein Advisory des CERTs zu offenen Proxies.

Steigerung von Sinnlos?

Es ist schon erstaunlich mit was die Leute ihre Freizeit vertreiben. Da gibt es welche, die schreiben sinnlose Software wie Food4Spam oder nutzen Personal Firewalls. Beide haben gemeinsam das sie schwer was her machen und einem noblen Ziel folgen, bei genauer Betrachtung sich allerdings als nutzlos erweisen. Sicher kann man die Leute darauf aufmerksam machen (hier und hier) in der Hoffnung das sie sich nochmal Gedanken machen. Ich habe da aber keinerlei missionarische Ambitionen.

Wer zu spät kommt…

Wie ich gerade festgestellt habe, hat sich Urban Netizen schon vor geraumer Zeit mit Fakemail-Scripten auseinandergesetzt und kommt so ziemlich auf das gleiche Fazit wie ich in Reality Check Fakemail-Scripte. Es lebe der Placebo-Effekt.

Ein Teil dieser Ideen in Fakemail-Scripten ist übrigens schon recht alt (zumindest in Internet-Zeit gerechnet) und stammen aus den Jahren 1998-99 als Sugarplum das Licht des Internets erblickte, dessen Output doch recht Psychedelisch auf mich wirkt. Einzig Intressant an Sugarplum finde ich das Konzept der Teergrube, welches den Faktor Zeit mit ins Spiel bringt. Sowas ist aber leider sehr, sehr selten in der freien Wildbahn anzutreffen.

Ansonsten wünsche ich den Herrn Netizen etwas mehr Gelassenheit.

Reality Check Fakemail-Scripte

Anscheinend sind diese Fakemail-Scripte, wie sie z.B. Der Schockwellenreiter auf seiner Seite hat schwer in Mode. Sie sollen auf Dauer die Datenbanken von Spammern mit unbrauchbaren Email-Adressen füllen und ihnen so die Arbeit verleiden. Ich halte das für ein denkbar honoriges Anliegen, aber ändern werden sie nichts. Der Spammer wird auch weiterhin das Web nach Email-Adressen abgrasen und vielleicht auf jede Menge Fakemail-Scripte treffen. Wenn er nun seinen Massmailer anwirft und aufgrund der vielen ungültigen Email-Adressen mehr Rückläufer als üblich erhält, wird er sich seine Datenbank anschauen und sehen was los ist.

Was folgt ist recht einfach: Man nimmt sich einen Rechner mit Internet-Verbindung und das allseits bekannte Sendmail. Dies hat schon seit langem die Funktion check_mail, die eigentlich dazu gedacht ist zu klären ob es die Absender-Domäne einer Email überhaupt gibt. Ironischerweise wurde diese Funktion als Anti-Spam Feature implementiert, aber wie alles Gute gibt es auch hier eine dunkle Seite. Er füttert nun sein Sendmail mit den Email-Adressen seiner Datenbank und folgendes passiert:

foobar:~# echo "check_mail kgmb@sprjqzivdm.at" | sendmail -bt | grep 553
Basic_check_mail returns: $# error $@ 5 . 1 . 8 $: "553 Domain of sender address " " does not exist"
check_mail       returns: $# error $@ 5 . 1 . 8 $: "553 Domain of sender address " " does not exist"

Es gibt eine Fehlmeldung anhand der man sehen kann das es die Domain sprjqzivdm.at im Internet nicht gibt, man kann die Adresse also löschen.

Zum Vergleich eine Adresse mit gültiger Domain:

foobar:~# echo "check_mail kgmb@aol.com" | sendmail -bt | grep 553
foobar:~#

Dies packt man in ein kleines Script und jagt es über die Datenbank und schon ist man das Problem los. Man kann auch alle neuen Adressen durch ein solches Script schicken und so dafür sorgen, das diese nie die DB erreichen.

Eine anderen Idee Spammer zu ärgern beruht auf der Annahme das der Absender einer Email auch gleichzeitig der Spammer ist. Man sammelt nun alle Adressen im From: einer erkannten Spam-Mail und stellt sie ins Internet, in der Hoffnung das der Spammer nun selbst Opfer seiner Kollegen wird. Ich habe darüber schon eine Diskussion geführt und auf die Sinnlosigkeit hingewiesen. Hier ein wenig Hintergrund:

Ich benutze Zuhause Spammassassin, das Spam anhand von bestimmten Eigenschaften erkennt und in eine Datei schreibt, wo ich hinundwieder reinschaue um false Positives zu vermeiden. Suche ich nun nach Spam-Absender in meinen Spam-Mails

foobar:~$ grep “From:” mail/caughtspam
From: “Murray Brandon” < *@spinfinder.com>
From: “” <adent @africaonline.co.sz>
From: “” <aden97 @hotmail.com>
From: “Damian Chen” <lbb6dzu33f @earthlink.net>
From: “Noah Murdock” <kslw386wqmom @prestigiousresponse.com>
SPAM: Hit! (1.8 points) No MX records for the From: domain
From: “Divito Klinich” <divitoklinich @catchamail.com>
SPAM: Hit! (1.8 points) No MX records for the From: domain
From: “Rob” <stljohnson @earthlink.net>
From: “Rolland Busby” <utgku4954 @earthlink.net>
From: “Tara Simmons” <u7c8nib7eexi @yahoo.ca>
From: “Jimmy Sewell” <ne72275a4f @earthlink.net>
From: “Sharon Ervin” <782nycnayi35@aol.com>
From: clairefowler@doramail.com
foobar:~$

und nehme mir eine Adresse (z.B. kslw386wqmom@prestigiousresponse.com) zum Testen heraus. Zuerst muss ich die Mail-Server finden, die Mails für prestigiousresponse.com annehmen.

foobar:~$ host -v -t mx prestigiousresponse.com
Query about prestigiousresponse.com for record types MX
Trying prestigiousresponse.com ...
Query done, 1 answer, status: no error
The following answer is not authoritative:
prestigiousresponse.com 3600    IN      MX      10 mx1.prestigiousresponse.com
Authority information:
prestigiousresponse.com 3600    IN      NS      localhost
Additional information:
mx1.prestigiousresponse.com     3600    IN      A       66.118.180.245
stadler:~$

Es soll also mx1.prestigiousresponse.com Mails annehmen.

foobar:~$ telnet mx1.prestigiousresponse.com 25
Trying 66.118.180.245...
telnet: Unable to connect to remote host: Connection refused

Hmm, es gibt dort also keinen Server der Mails annimmt. Also der nächste:

foobar:~$ host -t mx -v catchamail.com
Query about catchamail.com for record types MX
Trying catchamail.com ...
Query failed, 0 answers, status: no error
Authority information:
catchamail.com          2560    IN      SOA     ns1.blackcab.com hostmaster.catchamail.com (
                        1055779215      ;serial (version)
                        86400   ;refresh period (1 day)
                        7200    ;retry interval (2 hours)
                        86400   ;expire time (1 day)
                        7200    ;default ttl (2 hours)
                        )
catchamail.com MX record currently not present

Hier wurde kein Server definiert, der Mail annehmen soll. Weiter.

foobar:~$ telnet mx04.earthlink.net 25
Trying 207.217.120.249…
Connected to mx04.earthlink.net.
Escape character is ‘^]’.
220 robin EL_3_8_5 /EL_3_8_5 ESMTP EarthLink SMTP Server Mon, 16 Jun 2003 11:03:00 -0700 (PDT)
helo dd.de
250 robin Hello dd.de [62.206.130.21], please to meet you
mail from:<paul @t-online.de>
250 <paul @t-online.de>… Sender ok
rcpt to:<stljohnson @earthlink.net>
554 Quota violation for stljohnson@earthlink.net
rcpt to:<utgku4954 @earthlink.net>
550 utgku4954@earthlink.net…User unknown
quit
221 robin closing connection
Connection closed by foreign host.

Hier habe ich gleich 2 Adressen getestet da ich schonmal da war. Bei der ersten Adresse ist das Postfach voll wohl mit Beschwerden über den Spam. Das zweite Postfach gibt es nicht.

Fazit: 4 Adressen getestet, 3 davon nicht vorhanden und 1 Adresse zwar erreichbar, aber wie soll man nun Beweisen das der Inhaber auch wirklic den Spam verschickt hat? Ich könnte es nicht.

Ich könnte noch weiter ausholen, aber ich denke das Obiges fürs Erste reichen sollte. Sicher wird es jetzt Leute geben die mich Kreuzigen wollen, weil ich Spammern verrate wie sie Probleme mit Fakemail-Scripte umgehen können, aber damit kann ich Leben :)

p.s: Musste das eben nochmal überarbeiten, weil durch meine rudimentären HTML-Kenntnisse ein Teil des Textes verschluckt wurde.

Seite 8 von 8« Erste...45678