Je website is vaak het eerste waar een aanvaller naar kijkt. Niet omdat jouw bedrijf zo bijzonder is, maar omdat geautomatiseerde scanners elke website op internet elke dag op dezelfde handvol zwakke plekken controleren.
Het goede nieuws: de meeste zwakke plekken zijn eenvoudig op te lossen. Hier zijn twaalf controles, ongeveer in de volgorde waarin we ze het vaakst zien misgaan.
De basis
1. Overal HTTPS, met HSTS. Elke pagina laadt via HTTPS en gewone HTTP stuurt automatisch door. Voeg de header Strict-Transport-Security (HSTS) toe, zodat browsers de onveilige versie nooit meer proberen.
2. Een certificaat dat je nooit verrast. Een verlopen TLS-certificaat haalt je site in de praktijk offline: browsers tonen een paginagrote waarschuwing. Gebruik automatische verlenging (bijvoorbeeld Let’s Encrypt) én controleer de verloopdatum, want automatische verlenging faalt vaker stilletjes dan je denkt.
3. Alleen moderne TLS. Zet TLS 1.0 en 1.1 uit. Alle huidige browsers ondersteunen TLS 1.2 en 1.3.
Beveiligingsheaders
4. Voeg de belangrijkste headers toe. In elk geval:
- Content-Security-Policy: bepaalt waarvandaan scripts mogen laden, wat cross-site scripting veel moeilijker maakt.
- X-Content-Type-Options: nosniff: voorkomt dat browsers bestandstypes gaan raden.
- Referrer-Policy en een frame-ancestors-regel in je CSP (of X-Frame-Options) tegen clickjacking.
Gratis tools zoals de HTTP Observatory van Mozilla laten zien welke headers ontbreken.
Logins en software
5. Tweestapsverificatie voor elke beheerder. Je CMS, hostingpaneel, domeinregistrar en DNS-provider vragen allemaal om een tweede factor. Een gestolen wachtwoord alleen mag nooit genoeg zijn.
6. Verberg of beperk beheerpagina’s. Gebruikt alleen je eigen team /wp-admin of /admin? Beperk de toegang dan op IP-adres of zet het achter een VPN of single sign-on.
7. Werk CMS, plugins en thema’s bij. De meeste website-inbraken gebruiken een bekende kwetsbaarheid in een plugin waarvoor al een update was. Zet automatische updates aan waar het kan en verwijder plugins die je niet gebruikt.
8. Patch eerst wat actief wordt misbruikt. Niet elke update is even dringend. Kwetsbaarheden op de CISA-lijst Known Exploited Vulnerabilities worden bij echte aanvallen gebruikt, dus die gaan voor. Lees meer in Welke kwetsbaarheden patch je eerst?
Rondom de website
9. Kijk wat er nog meer openstaat. Je webserver kan meer laten zien dan de website: extern bureaublad (RDP), SSH, een databasepoort of een vergeten testsite. Alles wat niet vanaf internet bereikbaar hoeft te zijn, hoort dat ook niet te zijn.
10. Bescherm je domein en e-mail. Vergrendel je domein bij de registrar en publiceer SPF-, DKIM- en DMARC-records, zodat criminelen niet zomaar e-mail uit jouw naam kunnen sturen.
11. Back-ups die je echt hebt teruggezet. Bewaar back-ups offline of onveranderbaar, buiten de webserver, en test minstens twee keer per jaar een herstel. Een back-up die je nooit hebt teruggezet is een hoop, geen plan.
12. Monitor doorlopend. Websites veranderen: een plugin-update, een nieuw subdomein, een certificaatverlenging die mislukt. Een eenmalige controle is volgende maand alweer verouderd. Doorlopende monitoring laat het meteen weten als er iets verschuift.
Hoe OZAG Security helpt
OZAG Security monitort je websites en systemen die vanaf internet bereikbaar zijn volgens een vast schema: uptime, verloopdatum van certificaten, verouderde TLS, ontbrekende beveiligingsheaders en open risicovolle diensten zoals RDP of databases. Je krijgt een melding voordat een klant of aanvaller het merkt. Probeer het 14 dagen gratis.
Bronnen
- OWASP Secure Headers Project (Engels)
- MDN: Strict-Transport-Security (Engels)
- CISA Known Exploited Vulnerabilities Catalog (Engels)