27% .nl domeinen slecht beschermd tegen spoofing

27% .nl domeinen slecht beschermd tegen spoofing

TLDR:

We scanden de DNS records van 1,6 miljoen .nl domeinen en vonden uit:

  1. 9% is rechtstreeks gekoppeld aan Microsoft 365, daarmee is Microsoft veruit de grootste
  2. Google is nr2 en heeft 4% van de domeinen aan zich verbonden, nagenoeg gelijk aan een aantal andere spelers.
  3. Van alle mail-enabled domeinen heeft 27% geen SPF record tegen spoofing

Open-source Marktonderzoek

Om een beeld te krijgen van het marktaandeel van Microsoft Office365 in Nederland besloten we een eigen onderzoekje te draaien. We vermoedden tenslotte al wel dat Microsoft langzamerhand met haar clouddiensten de dominante partij was geworden, maar als je een startup bent en keuzes maakt, wil je soms net iets meer dan een vermoeden. In ons geval was de vraag: moeten we Attic als eerste klaar maken voor Microsoft of voor Google, om met de eerste launch zoveel mogelijk MKB bedrijven te kunnen bedienen.

Nu zijn er niet echt betrouwbare cijfers beschikbaar over gebruik van cloud platforms. Althans ik kon ze niet vinden. Vandaar dat we zelf iets in elkaar bouwden. We wilden daarbij niet graag een dure database met alle Nederlandse bedrijven kopen, maar ons liever baseren op open data.

We besloten dat een controle op DNS configuratie van .nl domeinen een voldoende betrouwbaar beeld moest opleveren over verdeling van de markt. Immers, domeinen die gekoppeld zijn aan Office365, bevatten typisch gezien een DNS configuratie om e-mails gericht aan dat domein bij Microsoft af te laten leveren.

De enige zware kanttekening was dat niet elk Nederlands bedrijf een .nl domein zal hebben. Zoals zolder.io bijvoorbeeld. Maar wij vermoeden dat de verdeling binnen .nl domeinen naar cloudprovider toch een behoorlijk representatief beeld vormt voor de totale populatie. Vooral omdat het ons niet echt te doen is om het exacte marktaandeel maar vooral de verdeling tussen de aanbieders ten opzichte van elkaar.

En omdat we toch DNS aan het controleren waren, besloten we ook nog een paar andere checks uit te voeren. Het geheel leidde tot een aantal interessante inzichten die ik hieronder zal beschrijven. Maar niet voordat ik uiteenzet hoe we het onderzoek precies hebben uitgevoerd.

1,6 miljoen .nl domeinen

Het begon met het verkrijgen van “alle” .nl domeinen. Eigenlijk is er maar 1 club die precies weten welke .nl domeinen bestaan en dat is SIDN. Maar die bieden – mede om privacyredenen – niet de mogelijkheid om al die domeinen als 1 lijst te downloaden.

Als alternatief kwamen we op zonefiles.io. Zij crawlen het internet, een beetje vergelijkbaar met hoe zoekmachines dat doen, en slaan dan op welke domeinen ze tegen komen. In totaal leverde dit een database met 1,6 miljoen domeinen op. Zonefiles zelf geeft al duidelijk aan dat dit zeker niet alle geregistreerde .nl domeinen zijn. Want sommige domeinen worden simpelweg niet (openbaar) gebruikt, hebben geen DNS server, enz. en zijn daarom virtueel onvindbaar voor dit soort crawlers.

Die lijst was tegen betaling te downloaden. Maar wel voor een fractie van de prijs in vergelijk met de kosten van een KvK database, om een voorbeeld te noemen. Dus het onderzoekje kostte nu alsnog geld, maar bleef binnen de perken.

En zo hadden we een lijst met 1,6 miljoen domeinnamen en kon het scannen beginnen.

DNS-scan

DNS is een open protocol en gedistribueerd systeem, dus iedereen kan voor al die 1,6 domeinen het DNS record opvragen. Op de command-line op een Windows computer heel simpel met nslookup. En als je dat 1x kan, dan kan je het ook automatisch 1,6 miljoen keer. Dus Theo bouwde een mooi python scriptje dat door die hele lijst met domeinen loopt en per domein de volgende dingen in een database zet:

  • MX-record. Om uit te vinden waarnaartoe e-mail gericht aan dit domein wordt doorgestuurd
  • SPF-record. Om te bekijken of het domein beschermd is tegen spoofing
  • DMARC-record. Om te zien of het domein ook instructies biedt aan ontvangers hoe om te gaan met gespoofde berichten
  • SOA-record. Om bij een volgende run een betrouwbaar vergelijk te kunnen maken

De code was simpel maar doeltreffend, gebruikmakend van de dnspython library. Hier de functies voor het opvragen van het MX record en het SPF record:

def get_mx(domain):
    try:
        answers = my_resolver.resolve(domain, 'MX')
        records = [str(rdata.exchange) for rdata in answers]
        return ",".join(records)
    except:
        return 'failed'


def get_spf(domain):
    try:
        answers = my_resolver.resolve(domain, 'TXT')
        for rdata in answers:
            if rdata.to_text().startswith('"v=spf1'):
                return rdata.to_text().strip('"')
    except dns.resolver.NoAnswer:
        pass
    except:
        return 'failed'
    return ''

Als DNS server gebruikte Theo een lokaal systeem. Het duurde enkele dagen voordat de complete lijst doorlopen was.

.nl DNS-scan: de resultaten

De resultaten van de scan zijn het beste als een soort drilldown te interpreteren. Wij wilden weten hoeveel van de domeinen gekoppeld zijn aan Microsoft. Dat kunnen we baseren op het MX record. Immers: e-mail gericht aan een dergelijk .nl domein moet afgeleverd worden bij Exchange Online zodat de gebruikers via Outlook het kunnen ontvangen.

Mail Enabled?

Maar voor te kijken naar verdeling van e-mail afleveradres, vond ik het logisch om eerst nog alle domeinen uit te filteren die uberhaupt geen MX record hebben. Die domeinen worden dus niet gebruikt voor e-mail. Mijn redenering daarbij is dat ze dan ook niet het primaire domein van een organisatie zijn en ook niet voor kantoorautomatisering gebruikt worden. Om iets te kunnen zeggen over marktaandeel in onze doelgroep (zakelijke NL klanten) leek het mij logisch om dergelijke domeinen buiten beschouwing te laten.

Van de totaal 1.600.749 domeinen die we scanden, was 1.330.221 (83%) voorzien van een MX record. Alle cijfers hierna zijn afgezet tegen die 1.330.221 mail enabled .nl domeinen.

9% van .nl is gekoppeld aan Microsoft Office365

Een MX record dat verwijst naar “%protection.office.com%” duidt op een koppeling met Microsoft Office365. De query:

select count(1) as cnt from domains where mxrecords like "%protection.outlook.com%" 

Dit betrof 118.671 domeinen. Oftewel 9% van alle mail-enabled .nl domeinen is gekoppeld aan Microsoft 365.

Durf je dan te zeggen dan 9% van alle Nederlandse bedrijven gebruik maakt van Microsoft365? Ja minimaal. Want er zullen ook veel bedrijven zijn die hun e-mail eerst door een anti-spam wasstraat leiden alvorens het naar Microsoft te sturen. Daarnaast zijn er vast ook bedrijven die Microsoft 365 wel gebruiken maar niet voor e-mail.

Maar eerlijk is eerlijk: de analyse die met deze scan beter te maken is, is hoe Microsoft zich verhoudt tot andere partijen. En dan met name Google, want dat is toch wel de grootste concurrent als het gaat om software voor kantoorautomatisering.

4% van .nl is gekoppeld aan Google

De query voor domeinen die aan Google gekoppeld zijn, is vergelijkbaar:

 select count(1) as cnt from domains where mxrecords like "%aspmx.l.google.com%"  

Dit komt neer op 53.380 domeinen. Oftewel 4% van alle mail-enabled .nl domeinen is gekoppeld aan Google Workspace. Wat neerkomt op minder dan de helft van het Microsoft klantenbestand. Een vrij groot verschil.

En het betekent ook dat 87% aan een andere dienst gekoppeld is dan Microsoft of Google.

36% van .nl wordt afgeleverd bij 1 van 10 cloud providers

Vervolgens kan de query omgedraaid worden om een indruk te krijgen welke andere grote aanbieders van e-mail diensten aan .nl domeinen gekoppeld zijn:

select mxrecords,count(1) as cnt from domains where mxrecords not like "%protection.outlook.com%" and mxrecords not like "%aspmx.l.google.com%" group by mxrecords order by cnt desc

Dit levert naast Microsoft en Google de volgende top 10 aan hits op:

AanbiederAandeel (tov mail-enabled .nl)
Microsoft118.671 (8,9%)
Google53.380 (4,0%)
Sonexo52.943 (4,0%)
Mijndomein50.950 (3,8%)
Strato (rzone.de)48.564 (3,7%)
TransIP44.383 (3,3%)
Hostnet40.332 (3,0%)
Yourhosting (yourfilter.nl)31.529 (2,4%)
Argeweb23.667 (1,8%)
Vimexx (spamrelay.zxcs.nl)15.773 (1,2%)

Kortom: e-mail hosting is nog enorm versnipperd. En dat is maar goed ook. Maar binnen die versnippering is Microsoft met 9% inderdaad al een dominante factor te noemen. En dat terwijl Microsoft de Exchange Online service pas sinds 2009 wereldwijd aanbiedt (inmiddels 12 jaar). En het .nl domein toevallig afgelopen week het 35 jarig bestaan viert.

Naar ons gevoel is Microsoft vooral de laatste jaren sinds de introductie van Office365 hard gegroeid, en nog eens extra snel door de adoptie van videobellen in het bijzonder via Teams tijdens de coronapandemie.

We zullen deze scan jaarlijks proberen te herhalen om een trend te kunnen publiceren.

27% van .nl domeinen heeft geen SPF record

En dan om de titel van dit artikel nog maar even te onderbouwen. Zoals gezegd besloten we om, als we dan toch aan het scannen waren, ook te kijken hoe het zat met SPF en DMARC bij die .nl domeinen. Er is de laatste weer veel te doen om spoofing en wie een e-mail domein bezit, zal zelf aan de slag moeten om te voorkomen dat iemand anders zich voordoet als iemand met een e-mailadres binnen dat domein.

Dat begint met het instellen van een SPF record, een DNS onderdeel tegen e-mailspoofing die als standaard opgenomen is in 2004. Er zijn ook alternatieven, maar SPF is langzamerhand wel een soort must-have geworden om te vermijden dat je merk misbruikt wordt EN te vermijden dat je e-mails in spamfolders belanden.

De query:

select count(1) from domains where ( spf = "failed" or spf = "" ) and mxrecords not like "failed"

Het resultaat hiervan is 363.265. Oftewel 27% van mail-enabled .nl domeinen heeft geen SPF record en is dus niet of slecht beschermd tegen spoofing.

Opvallend daarbij was nog wel dat als we deze zelfde query uitvoeren op domeinen die verbonden zijn aan Microsoft, er slechts 3111 resultaten zijn. Oftewel 3% van de domeinen die aan Microsoft zijn gekoppeld, is slecht beschermd tegen spoofing. Dit betekent dat Microsoft kennelijk een succesvolle campagne voert om domeinen van klanten te beschermen tegen spoofing.

96% van .nl domeinen heeft geen DMARC record

DMARC is nog iets ingewikkelder te begrijpen, en voegt nog een extra laag toe aan SPF (en DKIM). Met DMARC geef je namelijk instructies aan ontvangers van e-mails van jou domein, over wat te doen met e-mails die niet valideert kunnen worden tegen het SPF record.

Lees de vorige paragraaf maar een paar keer en als je het dan nog niet begrijpt: don’t worry. Zet gewoon Attic aan dan testen wij of alles goed staat 😉