donderdag 23 juni 2011

Een korte spam historie

Spam (UCE = Unsolicited Commercial E-mail)
Voor wie nog niet weet wat spam is; het wordt omschreven als e-mail die over het algemeen tenminste aan de volgende drie criteria voldoet:

1. Je hebt er niet om gevraagd
2. De afzender is onbekend (en wenst dat ook te blijven)
3. Het wordt in zeer grote aantallen over het Internet verspreid

De eerste spam-message wordt verondersteld te zijn verzonden op 3 mei 1978 door een manager van DEC. Het bericht betrof een uitnodiging aan alle op dat moment geregistreerde Arpanet-gebruikers voor een demonstratie van nieuwe DEC hardware. Hieronder een fragment van dat eerste spambericht. De afzender beschikte destijds nog niet over de geavanceerde e-mailprogramma's die wij nu kennen; hij moest de hele lijst van enkele honderden adressen zelf intikken. In het oorpronkelijke bericht (zie de link hieronder) is te zien dat het aantal ingevoerde adressen te groot was voor het TO: en het CC: veld.
In die tijd bestond het woord spam nog niet in de context van e-mail misbruik. De afzenders, Carl Gartley en Gary Thuerk, zonden hun bericht aan een paar honderd adressen uit een lijst van Arpa (toen nog een overheidsnetwerk). De reactie op het bericht liet niet veel aan duidelijkheid te wensen over:
De DEC medewerkers schijnen zich deze reactie wel te hebben aangetrokken en hebben zich vervolgens niet meer aan deze vorm van e-mail bezondigd. (... de spammers van nu hebben deze moraal allang niet meer ...). Het hele verhaal is hier te vinden.

In 2006 zijn de activiteiten van spammers weer hoog opgelaaid. De constante strijd tussen spammers en ontwikkelaars van anti-spam methoden wordt van beide kanten voortgezet met steeds geavanceerder middelen. Het gaat om het gemak waarmee je via Internet een afzetmarkt van vele miljoenen potentiële kopers aan je voeten hebt. Het verzenden van e-mail, -ook bulk e-mail-, is nog steeds gratis en lijsten met miljoenen e-mailadressen zijn voor luttele dollars te koop. De irritatie die deze vorm van advertising bij de gebruiker teweeg brengt is iets waar de verspreider geen boodschap aan heeft; die verschuilt zich bovendien zorgvuldig achter de anonimiteit die het wereldwijde web hem kan bieden. De bulk e-mail veroorzaakt behalve irritaties ook overvolle mailboxen waarin het lastig zoeken is naar legitieme e-mail, van tijd tot tijd dichtslibbende Internet lijnen en overbelaste servers. Verdediging tegen de overlast kan op meerdere fronten worden aangepakt:

- Regulering door Overheden (Boetes voor verzenden van UCE)
- Filtering bij ISP's, SMTP Servers en E-mail Clients
- Gebruikerseducatie

Spam technieken

Om spamfilters te misleiden worden in spamberichten regelmatig enige hoeveelheden onschuldige trefwoorden -onzichtbaar- in het bericht meegezonden. Dit wordt gedaan om de spam-score of het Spam Confidence Level (SCL) gunstiger te laten uitpakken. Deze waarde komt onder andere tot stand door de verhouding tussen het aantal Spam-kenmerken en de overige inhoud van een bericht te meten. Bepaalde trefwoorden zijn kenmerkend voor spam, terwijl heel veel andere -legitieme- woorden zelden of nooit in spam voorkomen. Deze "Poison-Pills" zijn voor de lezer soms onzichtbaar gemaakt door ze in html-mail op te maken in witte tekst tegen een witte achtergrond, aan het einde van het bericht. Dit is een reden waarom veel spammers een voorkeur hebben voor het gebruik van HTML-opmaak. (In plaats van witte html-opmaak worden deze teksten ook wel in een heel klein font in het bericht geplaatst).
Voorbeeld van een "Poison Pill" in een spam-bericht:

De strijd gaat door ...

Een van de laatste trends aan het spammersfront is het meezenden van afbeeldingen van tekstberichten. Het e-mailbericht is verder geheel leeg en bevat nog slechts een .jpg of .gif attachment, dat bij het openen van het bericht automatisch wordt getoond. Omdat het bericht geen echte -voor de computer leesbare- tekst bevat is het door de meeste spamfilters niet te controleren op kenmerkende spam-woorden.
 Filteren op attachments of op de kenmerken van deze attachments (o.a. grootte, checksums) is lastig te organiseren omdat de afzender ieder plaatje voorziet van een unieke vingerafdruk door het genereren van ruis in de afbeelding. Op deze manier wordt ieder verzonden bericht voorzien van een afwijkende afbeelding. De boodschap blijft ondanks de ruis voor mensen gewoon leesbaar. Zie onderstaand voorbeeld uit een spambericht van zondag 26-11-2006 ...


De "sierlijke" stippen (zie rechts) zijn in ieder plaatje afwijkend geplaatst, zodat op de afbeelding berekende checksums in ieder verzonden bericht anders uitpakken. Hieronder nog een paar voorbeelden. Let op de verschillen in tekstopbouw en de variatie in ruis.

... en een variatie op hetzelfde thema ...
Een verdediging tegen deze vorm van spam kan bestaan uit het toepassen van OCR (optische karakterherkenning) in afbeeldingen, waardoor op herkenbare spam-woorden kan worden gefilterd. Al met al gaat ook deze filtering-methode weer ten koste van een beetje performance. Een volgende zet kon natuurlijk niet uitblijven en nu worden de plaatjes, voordat ze in het e-mailtje worden meegezonden, eerst in stukjes geknipt en door elkaar gehaald. Pas zodra ze bij de ontvanger belanden worden door het e-mailprogramma de fragmenten automatisch weer tot één plaatje samengevoegd. Zo kan ook OCR niets met de fragmenten aan.

Tarpitting
Een van de maatregelen die je bij Exchange Server 2003/2007/2010 kunt nemen om spammers een beetje te ontmoedigen is het inschakelen van de teerput . (Eng. Tarpit)



Met deze instelling, die vanuit de server-registry kan worden geactiveerd, wordt bij een door een anonieme client geopende SMTP sessie de response van de server met tientallen seconden vertraagd zodra de response met een foutcode begint (5xx). Dit is bijvoorbeeld het geval wanneer een anonieme connectie vanaf het Internet probeert een e-mailbericht af te leveren aan een ter plaatse niet-bestaande SMTP-ontvanger. (Uiteraard dient dan wel de filtering op niet bestaande AD-accounts ingeschakeld te zijn). (N.B. Bij Exchange 2007 en 2010 is deze al ingesteld op 10 seconden.) 
Een dergelijke dialoog zal bijvoorbeeld als volgt verlopen: ...


(C) helo bogus.unicorn.org
(S) 250 mail.mydomain.com
(C) mail from: bob@unicorn.org
(S) 250 2.1.0 Sender OK
(C) rcpt to: fake@mydomain.com
 ... (Delay 10 - 20 sec.) ...
(S) 500 5.7.1 Unknown recipient

Wanneer de zender nu een hele lijst met potentieel niet-bestaande adressen probeert af te werken neemt de tijd pér foutreactie steeds 10 tot 20 seconden in beslag ... (... moed zakt in de schoenen ...)

Het inschakelen van tarpitting bij Exchange 2003 verloopt volgens drie stappen:
1. Open met Regedit.exe de volgende registerlocatie:
    HKLM/System/CurrentControlSet/Services/SMTPSvc/Parameters
    Voeg nu een nieuwe DWORD-variabele toe met de naam "TarpitTime". (Het kan zijn dat deze variabele al is aangemaakt) Kies voor Decimale notatie en geef een vertragingstijd in seconden op, bijvoorbeeld 10.


Herstart de SMTP service

2. Schakel in de Exchange System Manager bij Global Settings het recipient filter in en zet een vinkje bij "Filter recipients who are not in the directory". Geeft ook bij de individuele SMTP service(s) aan dat op recipients moet worden gefilterd.