Casus · Externe Asset Scan

Schildwaard is geen echte gemeente.
Maar haar problemen zijn dat wel.

Wij hebben een fictieve gemeente opgezet — met de configuraties, verouderde software en blinde vlekken die wij in de praktijk tegenkomen. Vervolgens scanden wij de omgeving zoals een aanvaller dat zou doen, vanaf het publieke internet. Dit is wat we vonden.

Een demonstratie door
PDCS
01 De opzet

Een gemeente met de typische blinde vlekken

Voor deze demonstratie is een externe omgeving opgezet die representatief is voor wat wij in de praktijk aantreffen bij Nederlandse gemeenten. Geen extreem geval — een gemiddeld geval.

De omgeving bestond uit een burgerportaal, een content management systeem, een stagingomgeving voor ontwikkelaars, en een aantal ondersteunende diensten op het publieke internet.

De scan is uitgevoerd vanaf het internet, zonder voorkennis van de infrastructuur en zonder inloggegevens. Precies zoals een aanvaller te werk zou gaan.

42
Bevindingen totaal
4
Kritiek (CVSS ≥ 9.0)
1
Bevestigde RCE
~28min
Tot eerste bevinding
02 De bevindingen

Wat de aanvaller ziet, wat de verdediger zou willen zien

Uit de bevindingen lichten we er drie uit. Deze zijn representatief voor wat wij regelmatig tegenkomen bij gemeenten en hun toeleveranciers.

Bevinding 01
Kritiek · CVSS 9.8
CVE-2024-4577

De webserver kon van afstand worden overgenomen

Wat de aanvaller ziet

Een webserver met een verouderde versie van PHP. Door een specifieke fout in de manier waarop deze versie URL's verwerkt, kan een aanvaller met één zorgvuldig opgesteld verzoek eigen commando's laten uitvoeren op de server — zonder gebruikersnaam, zonder wachtwoord.

# Eén HTTP-verzoek aan een onschuldig ogend pad
POST /index.php?%ADd+allow_url_include=1+...

# Server voert opgegeven code uit en geeft het bestand terug
[database]
host = sql-prod.gemeente.intern
gebruiker = burgerzaken_app
wachtwoord = P@ssw0rd2023!
api_sleutel = sk_live_R8tQ...
Wat de verdediger zou willen zien

De software op publieke servers wordt actief beheerd en binnen redelijke termijn voorzien van beveiligingsupdates. Voor onderdelen die niet gebruikt worden — zoals in dit geval een verouderde uitvoeringswijze van PHP — wordt bewust gekozen om ze uit te schakelen. Versie-informatie wordt niet onnodig vrijgegeven aan bezoekers.

Bevinding 02
Hoog · Geen authenticatie vereist
Configuratie · Geen CVE

Een database stond open voor het hele internet

Wat de aanvaller ziet

Een open netwerkpoort die gebruikelijk is voor databases. De service luistert op alle netwerkinterfaces in plaats van alleen op het lokale netwerk. Omdat er geen voorzieningen tegen automatisch raden van wachtwoorden zijn ingebouwd, kan een aanvaller onbeperkt veel inlogpogingen doen — net zo lang tot een veelvoorkomende combinatie raakt.

# Poortscan toont openstaande database
3306/tcp  open  mysql

# Geautomatiseerde inlog met veelvoorkomende combinaties
$ mysql -h target -u webapp -pwebapp123
mysql> Welcome to the MySQL monitor.
Wat de verdediger zou willen zien

Databases zijn alleen bereikbaar binnen het beheerde netwerk, nooit vanaf het publieke internet. Authenticatie is verplicht en gebruikt sterke, unieke wachtwoorden of certificaten. Externe firewalls en netwerksegmentatie vormen een tweede laag, voor het geval een service per ongeluk verkeerd wordt geconfigureerd.

Bevinding 03
Middel · Toegang tot interne omgeving
Configuratie · Interne omgeving

Een interne testomgeving stond open op het internet

Wat de aanvaller ziet

Naast de officiële website zijn er voor ontwikkelaars en leveranciers meerdere subdomeinen actief — vindbaar door publieke certificaatregisters te raadplegen. Een daarvan, een testomgeving, was beveiligd met een eenvoudig te raden inlognaam en wachtwoord. Eenmaal binnen bleek het een vrijwel volledige kopie van de productieomgeving te zijn.

# Subdomeinen vindbaar via publieke registers
www.gemeente.nl
acceptatie.gemeente.nl
test.gemeente.nl       ← testomgeving
oud-portaal.gemeente.nl

# Inloggen met een veelvoorkomende combinatie
test.gemeente.nl   →   admin / Welkom2025!   → toegang
Wat de verdediger zou willen zien

Test- en acceptatieomgevingen zijn niet vanaf het publieke internet bereikbaar, maar uitsluitend via een interne netwerkverbinding of een VPN. Wanneer externe leveranciers tijdelijk toegang nodig hebben, gebeurt dat via een afgesproken kanaal met meervoudige authenticatie. Wachtwoorden die in handleidingen voorkomen worden nooit gebruikt — ook niet "tijdelijk".

En verder, in de overige bevindingen

  • Mogelijke SQL-injectie in een zoekformulier op een ondersteunende dienst
  • Configuratiebestanden die per ongeluk publiek toegankelijk waren
  • Een verouderde versie van het content management systeem met bekende kwetsbaarheden
  • Een stagingomgeving met een eenvoudig te raden wachtwoord
  • Beveiligingskoppen die op meerdere webapplicaties ontbraken
  • Versie-informatie van software die onnodig werd vrijgegeven
  • Een onversleutelde inlogpagina op een subdomein
03 Tot slot

Wat zou er op uw gemeente staan?

Schildwaard is verzonnen. De bevindingen waren gericht — wij wisten wat we aan het bouwen waren. In de praktijk is het andersom. Een gemeente weet doorgaans niet welke systemen aan het internet zichtbaar zijn, welke versies er draaien, welke leverancier waarvoor verantwoordelijk is. Onze Externe Asset Scan brengt dat in kaart.

Onze dienst

EASM & Vulnerability Scanning

Wij combineren External Attack Surface Management met geautomatiseerde kwetsbaarhedenscans, en houden vinger aan de pols met doorlopende monitoring. Vier pijlers, één dienst.

01
Externe scope

Wij kijken zoals een aanvaller kijkt — vanaf het publieke internet, zonder voorkennis. Geen interne scans, geen blind spots aan uw kant van de firewall.

02
Inventarisatie

Welke systemen, subdomeinen en diensten zijn überhaupt zichtbaar? Veel gemeenten ontdekken via deze stap dat er meer aan het internet hangt dan zij wisten.

03
Kwetsbaarheden

Per asset toetsen we op bekende kwetsbaarheden, foutieve configuraties en zwakheden in webapplicaties. Geprioriteerd op werkelijk risico in uw situatie.

04
Continuïteit

Beveiliging is geen momentopname. Op verzoek monitoren wij doorlopend en alerteren wanneer er nieuwe kwetsbaarheden of nieuwe blootgestelde assets opduiken.