Afgelopen week heb ik flink wat tijd in de auto doorgebracht. Terwijl ik naar BNR Nieuwsradio luisterde, hoorde ik over de naderende feestdagen zoals Black Friday, Cyber Monday, Sinterklaas en Kerst. Helaas werd ook vermeld dat veel mensen de dupe zijn geworden van frauduleuze webshops. Tijdens het autorijden, dat tegenwoordig door de lage snelheden behoorlijk saai kan zijn, gingen mijn gedachten alle kanten op. Dat gebeurt wel vaker, een typisch voorbeeld van ADHD. Ik stelde me voor hoe iemand een cadeau van onder de kerstboom uitpakt, alleen om een aankooporder van een “te mooi om waar te zijn” product te vinden.
Mijn oudste zoon heeft inmiddels zijn eigen bank-app op zijn telefoon en geniet ervan zijn hardverdiende geld online uit te geven. iDEAL is natuurlijk supermakkelijk, en meestal veilig. Maar zoals ik hoorde op het nieuws, is het gebruik van iDEAL geen garantie dat alles goed gaat. Een webshop moet aan enkele voorwaarden voldoen om iDEAL te mogen aanbieden, zoals een zakelijke rekening, een goed functionerende website en een zichtbare registratie bij de Kamer van Koophandel (KvK). Toch biedt dat onvoldoende bescherming tegen oplichters. Ikzelf gebruik liever een prepaid creditcard of een dienst zoals Klarna, omdat je dan altijd nog een mogelijkheid hebt om je geld terug te krijgen. Maar voor een leek is het vaak lastig om een frauduleuze webshop te herkennen, en een aankoop is zo gedaan. Dan is het probleem helaas al ontstaan: je geld kwijt en een illusie rijker.
Een oplossing voor mijn gezin.
Met vier kinderen, waarvan drie nog niet toe zijn aan een eigen bank-app maar wel fanatiek online browsen, wilde ik iets doen om frauduleuze webshops in ons gezin te weren. Ik hoorde op het nieuws dat de politie een lijst bijhoudt van malafide webshops. Deze lijst bevat e-mailadressen, bankrekeningnummers en domeinnamen. Helaas was de informatie niet direct bruikbaar, dus ging ik zelf aan de slag.
Omdat ik bezig ben met het leren van Python , heb ik samen met mijn vriend ChatGPT een script gemaakt dat de website van de politie ‘scrapet’ om die data op te halen. De domeinnamen sla ik direct op in een database, die ik automatisch laat bijwerken zodra de lijst verandert. Stap één was daarmee afgerond.
Vervolgens wilde ik die data toepassen in mijn netwerk. Ik gebruik een Mikrotik-router (RouterOS) als firewall en DNS-server. Hiermee kan ik websites in mijn netwerk blokkeren door domeinen om te leiden naar “localhost“. Zo worden frauduleuze webshops onbereikbaar. Hoewel dit technisch werkte, was het in de praktijk niet ideaal: een blanco pagina of foutmelding is niet duidelijk genoeg. Daarom besloot ik dat bezoekers een waarschuwingspagina moesten zien. Hiervoor gebruik ik een CNAME-record dat naar mijn webserver verwijst, waar een waarschuwingstekst word gepresenteerd staat.
Hoe werkt het precies?
Het script dat ik heb gemaakt, werkt als volgt:
-
Data ophalen: Het script scrapet de politie-website en slaat de domeinnamen op in een database.
-
Data verwerken: De domeinen worden omgezet naar DNS-records die verwijzen naar “localhost” of mijn waarschuwingspagina.
-
Firewall updaten: Een tweede script draait op mijn Mikrotik-router. Dit script:Downloadt de meest recente lijst van mijn webserver.Verwijdert oude DNS-records die de opmerking “FRAUDE_WEBSHOP” bevatten.Importeert de nieuwe lijst in de DNS-tabel.
-
Automatisering: Ik heb een cronjob ingesteld die dit proces dagelijks om 02:00 uitvoert. Zo blijft mijn netwerk altijd up-to-date.
Voor iedereen beschikbaar
Ik deel mijn script graag, zodat anderen hun netwerk ook veiliger kunnen maken. Het Mikrotik-script is eenvoudig aan te passen en werkt als volgt:
/system scheduler
add interval=1d name=daily_fraude_webshop on-event=fraude_webshop policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=2024-12-14 \
start-time=02:00:00
/system script
add comment="Daily get fraude_webshop list" dont-require-permissions=no name=fraude_webshop \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\
/tool fetch url=\"https://list.siekman.io/fraude_webshop.rsc\" mode=https;\
\n:log info \"Downloaded fraude_webshop blacklist\";\
\n/ip dns static remove [find where comment=\"FRAUDE_WEBSHOP\"]\
\n/import file-name=fraude_webshop.rsc;"
/system script run fraude_webshop
Mijn motivatie om dit te delen.
Vanwege medische redenen ben ik momenteel niet meer werkzaam in de ICT. Toch blijf ik graag mijn kennis delen en iets bijdragen aan de community. Dit soort projecten helpen mij actief en betrokken te blijven. Mijn doel is om meer blogs te schrijven over mijn oplossingen, ideeën en digitale nalatenschap. Wil je meer lezen? Volg mij dan!