security.txt: meldpunt voor kwetsbaarheden
Vindt iemand een beveiligingsprobleem op je website, dan wil je dat diegene weet bij wie hij dat kan melden. Daarvoor is security.txt: een klein tekstbestand op een vaste plek op je website met je contactgegevens voor beveiligingsmeldingen.
Waarom security.txt?
security.txt is een open standaard (RFC 9116). Beveiligingsonderzoekers en organisaties die kwetsbaarheden melden, zoeken het bestand op een vaste plek: /.well-known/security.txt. Zonder dat bestand moeten ze zelf een contactpersoon zoeken, en belandt een melding vaak bij een algemene inbox of helemaal nergens.
De Nederlandse overheid raadt het gebruik van security.txt aan. Het is ook voor kleinere organisaties een eenvoudige manier om meldingen op de juiste plek te krijgen.
Wat erin staat
Het bestand bestaat uit regels in de vorm Veld: waarde. Twee velden zijn verplicht, de rest is optioneel.
- Contact (verplicht): waar meldingen naartoe moeten, bijvoorbeeld een e-mailadres met mailto: of een webformulier met https://. Je mag meerdere Contact-regels opnemen.
- Expires (verplicht): de datum waarna het bestand niet meer als actueel geldt. Kies een datum binnen een jaar en werk hem op tijd bij.
- Preferred-Languages: de talen waarin je meldingen wilt ontvangen.
- Policy: een link naar je beleid voor het melden van kwetsbaarheden, bijvoorbeeld een pagina over coordinated vulnerability disclosure.
- Canonical: het adres waarop dit bestand officieel staat.
Voorbeeld
Een eenvoudig security.txt-bestand ziet er zo uit. De Expires-datum schrijf je in het formaat jaar-maand-dagTuur:minuut:seconde, in UTC.
Contact: mailto:security@example.nl
Expires: 2027-10-01T00:00:00.000Z
Preferred-Languages: nl, en
Canonical: https://example.nl/.well-known/security.txtHet bestand plaatsen
Zet het bestand in de map .well-known in de hoofdmap van je website, zodat het bereikbaar is op https://jouwdomein.nl/.well-known/security.txt. De server moet het via HTTPS aanbieden als platte tekst (Content-Type text/plain).
Gebruik je een CMS zoals WordPress, dan zijn er plugins die het bestand voor je aanmaken. Zorg dat het e-mailadres in Contact echt wordt gelezen; een meldpunt waar niemand reageert, helpt niemand.
Zelf controleren
Met curl zie je of het bestand bereikbaar is en met welk Content-Type de server het aanbiedt.
curl -si https://example.nl/.well-known/security.txtHoe SteadyHost security.txt beoordeelt
- In orde: er is een security.txt gevonden met een Contact-regel en een Expires-datum in de toekomst.
- Aandachtspunt: er is geen security.txt, of Contact of Expires ontbreekt.
- Probleem: de Expires-datum is verstreken.
- Deze controle telt niet mee in de score.
Controleer je eigen website
Een gratis controle laat in enkele seconden zien hoe je website ervoor staat: bereikbaarheid, HTTPS en TLS, het SSL-certificaat, security headers, DNS en DNSSEC, de domeinregistratie en e-mailbeveiliging.
Meer uitleg
- Website niet bereikbaar? Zo vind je de oorzaak
- HTTPS en de redirect van HTTP naar HTTPS
- SSL-certificaat controleren: geldig en niet verlopen
- TLS-versies: zet TLS 1.0 en 1.1 uit
- Security headers: wat ze doen en hoe je ze instelt
- Mixed content: http:// op een HTTPS-pagina
- DNS-records uitgelegd: A, AAAA, MX en NS
- DNSSEC: wat het is en hoe je het aanzet
- CAA-record: wie mag certificaten uitgeven?
- Domeinregistratie controleren: status en vervaldatum
- SPF-record instellen: wie mag mailen namens jouw domein?
- DKIM-record controleren en instellen
- DMARC instellen: bescherm je domein tegen phishing