Overslaan en naar de inhoud gaan

De ultieme Drupal security checklist: 20 tips die je Drupal website veiliger maken

Thomas van Eldijk
 | Bijgewerkt op 10 september 2022

De beveiliging van je Drupal website zorgt er niet alleen voor dat je Drupal website niet gehackt wordt, maar beschermt ook de veiligheid van je bezoekers.

Gelukkig nemen steeds meer website-eigenaren de beveiliging van hun website serieus. Al is het maar vanwege aangescherpte wetgeving (meldplicht datalekken) of de voorkeur van Google voor beveiligde websites zonder malware.

Waar moeten we ons tegen beveiligen?

  • Hackers die uit zijn op de privégegevens van onze bezoekers. Dit is een van de grootste bedreigingen. Er is sinds enkele jaren ook veel om te doen geweest. Nieuwe wetten die bedrijven en organisaties verplichten een datalek te melden. Boetes die uitgedeeld worden wanneer de beveiliging niet op orde is en een reeks aan grote datalekken waarbij onze gegevens buit zijn gemaakt.
     
  • Hackers die erop uit zijn om je website over te nemen. In dit geval merk je meestal niets van de hack en wordt je website gebruikt in een DDoS-aanval. Over het algemeen maken deze hacks gebruik van bekende zwakke plekken van je CMS of de plug-ins van je CMS.
     
  • Spambots die formulieren of commentgedeeltes misbruiken om spamlinks te plaatsen. Dit probleem wordt vaak onderschat maar de links die geplaatst worden gaan vaak naar websites waarop phishing of malware actief is. Laat je deze links staan op je website, dan faciliteer je dus eigenlijk dat er bij je bezoekers schadelijke software wordt geïnstalleerd.

    De checklist

    Deze checklist is bedoeld voor iedereen die een website beheert. Van de website voor de plaatselijke sportclub tot de website voor een multinational. Allemaal krijgen we te maken met hackers en spambots en moeten we verantwoordelijk omgaan met de gegevens van de bezoekers op je website.

    Je hoeft geen programmeer- of webdevelopmentkennis te hebben om de beveiliging van je Drupal website op order te krijgen. Bij veel van de punten in de checklist is het wel handig als je weet hoe je een back-up kunt maken van je website en hoe je een plug-in of een module installeert.

    Kun je dit niet, maar ben je wel verantwoordelijk voor de website? Overleg deze lijst dan met degene die je website heeft gebouwd of onderhoudt.

    De checklist is niet gericht op Drupal developers of engineers die verantwoordelijk zijn voor de beveiliging van de code van een website en de server waar je een website op host.

    1# Houd je Drupal CMS en alle modules en themes up-to-date

    Met name bij een opensource-CMS is het zaak dat je CMS en de plug-ins of modules up-to-date zijn. Open source biedt ontzettend veel voordelen maar een van de nadelen is dat als je software verouderd is, de kans groot is dat deze beveiligingslekken bevat die hackers kunnen gebruiken om bijvoorbeeld je website over te nemen.

    2# Maak geen aanpassingen aan de core van je Drupal CMS

    Of instrueer je websitebouwer dit absoluut niet te doen. Door aanpassingen te (laten) maken aan de software van je CMS kun je het CMS misschien wel naar je eigen hand zetten, maar het nadeel is dat je soms maar gedeeltelijk of helemaal niet meer gebruik kunt maken van de security-updates die uitkomen voor je CMS. Je website raakt verouderd en de kans is groot dat je gehackt wordt.

    Deze video legt heel goed uit hoe open source werkt, wat de voordelen- en nadelen zijn en waarom je mee wilt liften op de verbeteringen die de community voor je maakt. 

    3# Beperk het aantal Drupal modules

    De ketting is zo sterk als de zwakste schakel. Door veel modules te gebruiken voeg je extra schakels toe. Eén van deze modules hoeft maar een beveiligingslek te bevatten om ervoor te zorgen dat je website gehackt kan worden. Gebruik modules en plug-ins daarom met mate. 

    4# Verwijder plug-ins en modules die je niet meer gebruikt

    Het kan zijn dat je bij de bouw van je website bepaalde modules of plug-ins hebt geïnstalleerd die nu niet meer gebruikt worden. Dat betekent niet dat deze code niet meer beschikbaar is.

    Dat geldt voor plug-ins en modules van je CMS, maar ook voor andere software. Bijvoorbeeld een oude versie van de website. Deze is vaak wel bereikbaar voor hackers en wordt meestal ook niet meer onderhouden.

    Voor Drupal heb je de module: Unused Modules die je precies vertellen welke plugins of modules niet gebruikt worden en je dus kunt verwijderen.

    5# HTTPS

    Dit is het slotje dat je bij beveiligde websites ziet, links van het websiteadres. Het betekent dat het verkeer tussen de browser en de server versleuteld wordt.

    https icoon

    Gelukkig is dit een vrij standaard beveiliging aan het worden. Deels doordat overheidsorganisaties verplicht zijn HTTPS te gebruiken en doordat Google websites zonder HTTPS-verbinding lager in de zoekresultaten plaatst.

    Er zijn verschillende manieren om je website met HTTPS te beveiligen. Wil je hier meer over weten, lees dan ook: Hoe stap je over naar HTTPS?

    6# Installeer anti-spamtools

    Binnen je website kun je op verschillende manier spammers tegengaan. Bekend zijn de captcha’s waarbij de bezoeker een plaatje te zien krijgt van letters en cijfers en moet intypen welke letters en cijfers getoond worden. Maar er zijn ook tal van andere gebruiksvriendelijke methodes.

    Zo kun je een onzichtbaar invoerveld aanmaken dat niet te zien is voor je bezoekers, maar door spambots wel wordt ingevuld. Zo kun je bezoekers en bots van elkaar scheiden. De modules Spamicide en Honeypot voor Drupal werken bijvoorbeeld op deze manier.

    Nog een manier is om te controleren of degene die een reactie plaatst of formulier invult op jouw website niet op een spamblacklist staat. Project Honeypot is een initiatief waarbij websites samen een blacklist bijhouden van spammers.

    Krijg je nog steeds spammers op je website nadat je gebruik hebt gemaakt van gebruiksvriendelijke anti-spamtools? Dan is de Google reCAPTSCHA een uitkomst. Deze vereist alleen een klik van de bezoeker.

    animatie van de recaptcha functionaliteit van Google
    De gebruiksvriendelijke captcha van Google.

    7# Pas het login-URL van je CMS aan

    Bekende CMS-en zoals Joomla, Drupal en Wordpress hebben een bekende inlog-URL zoals /administrator, /user en /wp-admin. Je houdt een hoop hackers en bots tegen die bijvoorbeeld fake-accounts proberen aan te maken op je website door deze URL aan te passen.

    Je kunt je login- of admin-path makkelijk aanpassen via de Rename Admin Paths module voor Drupal.
     

    8# Laat gebruikers verplicht een krachtig wachtwoord gebruiken

    Sommige CMS-en vereisen al het gebruik van minimaal 8 tekens en een combinatie van cijfers en letters. De CMS-en die dit niet direct kunnen, kun je meestal uitbreiden met een plug-in of module waardoor dit wel strikter wordt.

    9# Voeg two-step authenticatie toe

    Nog beter dan een krachtig wachtwoord is two-step authenticatie. Naast de correcte logingegevens moet je dan een code invoeren die je ontvangt via SMS of die verschijnt in een authenticator-app.

    uitleg two step authentificatie
    Alleen met je logingegevens en de code op je mobiel kun je inloggen.

    Google heeft bijvoorbeeld zo’n authenticator-app en steeds meer diensten bieden dit aan als extra beschermingslaag. Je kunt deze app gebruiken om jouw website beter te beveiligen.

    10# Laat bezoekers geen bestanden uploaden

    Handig bij een sollicitatieformulier maar het vormt wel een beveiligingsrisico. Niet alleen voor de server of het CMS, maar ook voor de mensen die de bestanden moeten downloaden en openen. Daarnaast gaat het vaak om bestanden met persoonlijke gegevens, zoals een cv, waarvan je absoluut niet wilt dat deze op straat komen te liggen.

    11# Creëer een extra beveiligingsbuffer via Cloudflare

    Cloudflare is een dienst die kan opereren tussen je bezoeker en de server van je website. Daardoor kan het ongewenste bezoekers tegenhouden, je website beveiligen met een SSL-certificaat en zelfs DDOS-aanvallen tegenhouden. Het is gratis en maakt je website ook nog sneller.

    12# Koppel je website aan Google Search Console

    Meestal wordt dit gedaan vanuit SEO-perspectief. Je kan binnen de Search Console bijvoorbeeld zien met welke zoekwoorden bezoekers bij je website komen. Maar de Search Console controleert ook je website op Security issues.

    13# Installeer extra security modules binnen je Drupal CMS

    Je hebt modules die alleen monitoren en advies geven. Deze kijken bijvoorbeeld naar directories die openstaan qua rechten voor buitenstaanders en melden dit. Maar je hebt ook plug-ins en modules die een extra bescherming toevoegen. Voor Drupal heb je bijvoorbeeld de module Security Review. 

    Het voordeel van deze securityplug-ins en modules zijn in ieder geval dat ze specifiek naar de zwakke plekken kijken van jouw CMS.

    Maar er zijn ook modules die actief de verbinding tussen jouw website en de bezoekers beter beveiligen, zoals de Security Kit module. Deze module vereist wel de nodige technische kennis en het kost ook even tijd om alles goed te installeren en configureren maar met deze module maak je het hackers wel heel moeilijk. 

    14# Doe een securityscan of Penetration test. 

    Deze scans zijn meestal beperkt in de zin dat ze niet kijken naar zwakke plekken binnen je Drupal CMS. Over het algemeen wordt er gekeken naar fouten in je HTML, onveilige instellingen op je hosting server of correcte configuratie van je SSL certificaat. Dit zijn een enkele bekende security scanners:

    Nog beter is het om je website door te laten lichten middels een penetration test of pentest zoals dit vaak genoemd wordt. Hierbij laat je security specialisten in opdracht van jou, je eigen website hacken. Althans ze gaan een poging doen. Vaak zijn hierbij verschillende gradaties af te spreken zodat je de pentest kunt afstemmen op het risico dat de website loopt of de gevoeligheid van de data.

    Het voordeel van een pentest is dat er vrijwel altijd waardevolle inzichten uitkomen die de beveiliging nog verder aanscherpen en de kans op een mogelijke hack flink reduceren.

    De security specialisten gaan tijdens een pentest op zoek naar zwakke plekken en vaak zien ze opties om binnen te komen, die ze door een gebrek aan tijd niet verder kunnen uitzoeken. Die opties worden vermeld als mogelijke zwakke plek na de pentest en kun je extra beveiligen. Een hacker die wel de tijd zou nemen maakt daardoor minder kans binnen te komen.

    Hou er wel rekening mee dat een pentest een moment opname is. Na verloop van tijd heb je nieuwe onderdelen in de website gebouwd, zijn er modules bij gekomen of ben je misschien veranderd van hosting provider. Idealiter doe je na zo'n grote aanpassing weer een pentest, al is het in een lichtere vorm of maak je van de pentest een periodieke controle.

    15# Investeer in een goede hostingprovider

    Het is natuurlijk moeilijk te bepalen of een hostingprovider 'goed' is. Meestal kom je hier pas achter als de website al een tijdje bij de hostingprovider draait.

    Prijs zegt niet zoveel en grootte ook niet. Maar je zou wel een beetje research kunnen doen. Bekijk hun twitterfeed; gaat dit meer over acties en kortingen dan over security en innovatie, dan weet je genoeg. Datzelfde geldt voor hun website, blog en Facebookpagina.

    Je kunt vanuit jouw kant alles op orde hebben maar als je website bij een hostingprovider staat die zijn servers niet up-to-date houdt, dan is het dweilen met de kraan open.

    16# Vraag je hostingprovider om hulp en advies

    Hostingproviders weten natuurlijk alles over de problemen rondom hackers en spammers. Sommige hostingproviders bieden extra beveiligingsdiensten aan zoals security-audits of tools die periodiek je files scannen op malware.

    17# Houd je admin-accounts beperkt

    We zien vaak dat er te makkelijk en te vaak admin-accounts worden uitgedeeld. Deze admin-accounts mogen alles binnen je CMS. Plug-ins en modules installeren, gebruikers wissen, exports maken van je database of de website offline plaatsen. Daarom is het belangrijk voorzichtig met deze rol binnen je CMS om te gaan.

    • Creëer voor gebruikers een beperktere rol die wel alle content kan beheren, maar bijvoorbeeld niet modules of plug-ins kan installeren.
    • Behoud de adminrol alleen voor mensen die ook daadwerkelijk alles moeten kunnen.
    • Houd een overzicht bij van alle admin-accounts. Worden deze niet meer gebruikt? Bijvoorbeeld omdat een medewerker niets meer met de website doet of uit dienst is, verwijder deze accounts dan.
    • Laat gebruikers nooit admin-accounts delen door samen in te loggen met dezelfde logingegevens. Creëer een eigen account per gebruiker.

    18# Sla niet onnodig veel persoonsgegevens op binnen je website

    Natuurlijk is het handig om terug te kunnen zien wie zich aangemeld heeft voor die conferentie van drie jaar geleden. Maar naast dat het onnodig bewaren van persoonsgegevens in conflict is met de AVG maar krijgt een hack of datalek een stuk meer impact als de hoeveelheid persoonsgegevens vrij groot blijkt te zijn. Kijk dus kritisch naar wat je aan gegevens bewaard en maak afspraken over wanneer je wat verwijderd. Natuurlijk voorkomt dit geen hack, maar mocht het gebeuren dan beperkt het de impact ervan enorm. 

    19# Maak een backupplan

    Bedenk bij een backupplan hoe de back-ups gemaakt worden, hoe vaak, waar deze staan en wie deze terug kan plaatsen. Kun je dit niet zelf dan is het raadzaam je hostingprovider hiervoor om advies te vragen. Ga er niet vanuit dat back-ups standaard een onderdeel van je hostingdienst zijn. In veel gevallen is dit namelijk niet zo.

    20# Bedenk een noodplan

    Dit is niet hetzelfde als een backupplan. Een back-up zet je terug. Maar als je als bedrijf of organisatie gehackt bent en je website bevat privégegevens, dan moet je dit gaan melden.

    Het is daarom geen gek idee een paar scenario’s te bedenken en alvast te beslissen wie de leiding neemt in dit soort gevallen, en als er kosten gemaakt moeten worden tot welk bedrag dit kan voordat er een akkoord gegeven moet worden.

    Dat was het. De ultieme security checklist voor je website. Heb je vragen over een van de punten in de lijst of een toevoeging voor de checklist? Dan lees is dat graag hieronder in het reactie gedeelte.

    Gerelateerde artikelen

    Wij delen graag de kennis die we in huis hebben

    Reacties

    ben erg blij om te horen dat alleen verouderde open source software onveilig kan zijn en verouderde niet-opensource software dus blijkbaar wel altijd veilig is. wie had dat gedacht!

    ook een goede tip is om om aan te bevelen een wachtwoord van 8 cijfers en letters te gebruiken zodat dit voor een mens heel moeilijk is te onthouden en voor een computer erg makkelijk te raden.

    Er zijn mensen die een combinatie van allerdaagse woorden gebruiken zoals 'correcthorsebatterystaple' wat voor een mens makkelijk te onthouden is maar een voor en pc moeilijk te raden maar niemand zit natuurlijk te wachten om veel te typen.. dat kost toch maar tijd.

    maar goed.. dit was sarcasme. als je zo'n checklist gaat maken dan ben ik van mening dat je niet dit soort onzin er tussen zet want veel mensen hebben de neiging dingen te geloven die ze lezen.

    hoop dat jullie dit dus willen aanpassen af het artikel weghalen.

    Reactie van guus op 22 mei 2018

    Hi Guus, het advies om minimaal 8 tekens te gebruiken voor een wachtwoord waarbij je cijfers en letters door elkaar plaatst is een algemeen advies dat overgenomen wordt van o.a. wetenschappers die onderzoek op dit gebied doen zoals Willian Cheswick. In 2012 verscheen er in ACM magazine een artikel over zijn onderzoek naar wiskundige mogelijkheden om wachtwoorden te kraken via een brute force attack. Dit is een techniek waarbij je een CPU of GPU berekeningen laat uitvoeren en in feite alle mogelijke opties laat proberen:

    "William showed that a standard eight character alpha-numeric password could withstand a brute force attack of ten million attempts per second, and remain unbroken for 252 days. This is, of course, assuming the password does not use a common word that a dictionary attack could break much sooner."

    Een langer wachtwoord dan 8 tekens is uiteraard nog veel beter en kost nog meer tijd om te hacken. Maar je kunt je afvragen of hackers de moeite nemen en investering doen om jouw wachtwoord te hacken. Er zijn zoveel andere en makkelijkere manieren om een wachtwoord te achterhalen. Vandaar ook mijn advies is om two-step verificatie toe te voegen. Voor meer info over wachtwoorden, zie ook: 

    https://www.technologyreview.com/s/542576/youve-been-misled-about-what-…
    https://youtu.be/KRVRlhrLKkI

    Reactie van Thomas van Eldijk op 23 mei 2018