Vertrouwen is goed, controleren is beter (NL)

Beveiliging is en blijft een kat‑en‑muisspel. Dat is ook de reden waarom ik en vele anderen blijven zeggen dat ‘awareness’ belangrijker is dan welke security‑policy of maatregel dan ook. Waarom? Dat leg ik hier uit met een bijzonder voorbeeld: hoe zelfs ik, een diplomaloze grappenmaker, een vrij geavanceerde dynamische Microsoft login ‑‘spoof/phishing’- site kan maken.
En dit verhaal begon allemaal omdat ik een realistische screenshot wilde voor ons awareness stukje op intranet. 🙂
This post is in dutch, english auto translation can be found here. (not available yet)
Omdat het beveiliging betreft, treed ik niet in detail en geef ik weinig informatie weg. Mocht je verder onderzoek willen doen, voeg me dan even toe op LinkedIn, zodat we eerst contact hebben.
Van de securitypartner die wij geintroduceerd hebben bij mijn werkgever kregen we een ‘anti‑spoof‑plugin’ voor de Microsoft‑loginpagina (o.a. in gebruik voor SSO en M365). Ik had dit volgens mij al een keer eerder ergens gezien, maar dat weet ik niet 100 % meer zeker. Maar deze was mooi branded en voorzien van een telefoonnummer, etc. etc.
Omdat deze implementatie alle gebruikers betreft, wilden we hen informeren over deze wijziging, met daarbij een mooi bericht over de awareness van spoofing en phishing, inclusief een screenshot van deze nieuwe anti‑phishingverificatie. Ik weet niet waar het vandaan komt, maar ik wil alles wat ik implementeer testen, zelfs dit soort bijna ontestbare dingen,maar ja, daar ligt dan duidelijk weer de uitdaging. Dus hoe ga je dit testen? Ik ben geen securityspecialist, maar programmeren heb ik nu wel aardig onder de knie. Dus begon ik met mijn man‑in‑the‑middle‑attack. Tot mijn verbazing was het, na een paar probeersels, inderdaad heel simpel om een dynamische spoof op te zetten:
Het was maar goed dat ik zo eigenwijs was om dit op deze manier te testen: er bleek iets niet goed ingesteld te staan voor de anti‑spoof‑module, waardoor die een soort soft‑fail gaf. Op de echte pagina stond dat hij geverifieerd was, maar op de spoofsite verscheen de rode melding niet. Mooi dat we dit konden terugkoppelen in een ticket voor de toekomst.
Als het om beveiliging gaat: Vertrouwen is goed, controleren is beter. Worden we allen beter van!
Dus wat krijg je te zien op mijn "Spoofsite"? Voor Microsoft tenants zonder anti-spoof de gewone inlogpagina, en met een anti-spoof verificatie een rode melding:
Works as intended :)
Maar ik zei daar eerder wat over kat-en-muisspel toch?
Deel2: Anti-spoof onderschepper?
Wie zijn we nou? Kat of Muis?
Tja, dit is precies waarom awareness zo belangrijk is en je niet kunt vertrouwen op groene vinkjes. Want als ze je echt willen hebben en je een specifiek doelwit bent, halen ze alle truucs uit de kast.
Ook ik kon deze variant van een anti‑spoof verificatie op een wel wat smerigere manier onderscheppen:
Ik heb “ARE YOU SURE” erbij gezet, omdat ik het wat te gortig vond dat hij perfect overeenkwam; dat wilde ik niet. Ik heb ook expres niet de tijd genomen om hem helemaal perfect te maken, want tja... wat blijft er dan nog over? Alleen de link/URL?
Je kunt ook zien dat de onderschepper alleen pagina’s met anti‑spoof onderschept; dit werkt uiteraard ook op de Microsoft Common Login-pagina:
Eigenlijk zou Microsoft standaard een basisverificatie aan hun loginpagina’s moeten toevoegen; zij zijn de enigen die daar het verst mee kunnen gaan. Eerlijk gezegd dacht ik dat dit nauwelijks voorkwam. Maar na dit projectje ben ik gaan googelen en lezen, en ontdekte ik dat er complete toolpakketten bestaan die dit kunnen (minus de specifieke ‘spoof‑interceptor’?).
Lekker dan…
Dus bij deze: help je collega(s) er weer eens aan te herinneren:
- Gaat normaal inloggen (bijna) volledig automatisch maar moet je nu ineens alles weer intikken? Check dan of de link
login.microsoftonline.com
is. - Nieuwe webapp/ site die inloggen via Microsoft aanbied? Check of deze zekerweten doorleidt naar
login.microsoftonline.com
en geen enkele andere link/ site. - Krijg je in een (nieuwe) app een Microsoft‑loginpagina te zien maar kun je de URL niet controleren? Log dan niet in. Het is namelijk best practice voor programmeurs om de gebruiker naar zijn/haar webbrowser te leiden om daar in te loggen. Er bestaan wel uitzonderingen, dus:
- Bij twijfel altijd contact opnemen met je Servicedesk of de Systeembeheerder.
Met meer awareness komen we er wel. Dank voor het lezen van dit stukje. Ik heb het einde wat afgeraffeld, maar ik heb al genoeg tijd aan dit projectje besteed. En ik heb mijn oorspronkelijke doel behaald: een realistische screenshot. 😉
Hier een video met alle video's van dit blogpostje aan elkaar geplakt:
Proost,