10 onbekende Drupal veiligheid modules (die je zou moeten gebruiken)

17 feb 2017

Joris Snoek - Project lead
Vragen? Let me know!
020 - 261 14 99

Iedereen die een Drupal site beheert weet dat veiligheid bovenaan staat. Het up-to-date houden van de Drupal core -en contrib modules is bekend, maar er zijn veiligheidsaspecten die vaak over het hoofd gezien worden. Simpelweg omdat deze veelal onbekend zijn bij Drupal administrators.

Veel van die security issues kunnen opgelost worden middels Drupal modules, die voor veel Drupal gebruikers buiten beeld blijven. Handig dus om deze op een rijtje te hebben.

Een gehackte Drupal site valt niet meteen op

Zonder de juiste monitoring tools hebben Drupal site eigenaars het vaak niet eens door als hun website gehackt is. Dit wordt bewust door de hackers niet getoond, zodat de server stilletjes op de achtergrond misbruikt kan worden voor bijvoorbeeld:

  • Verzenden van spam.
  • Hosten van illegale, obscene content.

Vaak kom je er te laat achter dat je server gebruikt wordt voor kwaadaardige doeleinden, soms zelfs pas als de autoriteiten aankloppen!

Gratis Drupal site audit

Wij controleren uw Drupal website op meer dan 100 punten.

Krijg het rapport vrijblijvend in uw inbox!

0. Beveiligde verbinding (SSL)

Je kunt je Drupal website over een beveiligde verbinding laten lopen, dit betekent dat alle data die verzonden en ontvangen wordt versleuteld is. Daardoor kan de data niet ingelezen worden als iemand deze onderschept.

Voor elke Drupal site belangrijk, omdat op elke Drupal site ingelogd wordt voor content management. Je wilt je login gegevens graag versleuteld verzenden, zodat iemand die dat onderschept er niks me kan: de data is niet te lezen.

Als je zoekt naar een beveiligde verbinding voor je Drupal website, dan kom je al snel uit op de Secure pages Drupal module. In die module kan je configureren welke pagina’s, formulieren of specifieke rollen over een beveiligde lijn moeten lopen middels SSL.

Deze module is niet noodzakelijk: nadat je de SSL-certificaten op de server hebt geïnstalleerd kun je ook de Drupal site forceren naar SSL middels Drupal's .htaccess file -een kleine tweak is voldoende:

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Zorg wel dat je deze ‘hack’ zorgvuldig documenteert met een Drupal patch, zodat je hem niet overschrijft bij de volgende update.

SSL en SEO

SSL wordt overigens steeds meer relevant voor zoekmachine optimalisatie.

https://www.drupal.org/project/securepages

1) Wachtwoord sterkte in Drupal

Als Drupal bezoekers zich registreren hebben ze de neiging om een makkelijk wachtwoord in te stellen, omdat dat nou eenmaal eenvoudig te onthouden is. Dit maakt het wachtwoord helaas ook makkelijk te hacken.

Om dit tegen te gaan kan je de password policy module inzetten.

Daarmee kan je als Drupal administrator instellen hoe complex een ingevoerd wachtwoord moet worden. Dit wachtwoord beleid kan volgende regels bevatten:

  • Vervaltijd, de tijd die een wachtwoord geldig blijft voordat je hem moet wijzigen.
  • Sterkte, maakt het vereist dat een wachtwoord een speciaal karakter of nummer móet bevatten.
  • Onthouden van geschiedenis van wachtwoorden, waardoor mensen niet een oud wachtwoord in ere kunnen herstellen.
  • Geen gebruikersnaam, het wachtwoord mag niet de gebruikersnaam bevatten.
  • Blokkeer een gebruiker, als zijn wachtwoord verlopen is.

https://www.drupal.org/project/password_policy

2. Betere 'flood control' in Drupal

Zelfs als een gebruiker een sterk wachtwoord kiest, dan is die wellicht te kraken door een brute force attack op je Drupal systeem. Bij deze hacking methode laat de hacker een robot los op je login pagina, die zeer snel allerlei login combinaties probeert, totdat hij ingelogd is en dus de gebruikersnaam en wachtwoord weet.

Drupal biedt standaard een oplossing, maar die is makkelijk te omzeilen door hackers. Drupal blokkeert namelijk op basis van IP adres: na 5 mislukte logins wordt een IP geblokkeerd voor 6 uur. Deze standaard flood control methode kan makkelijk omzeild worden doordat een hacker zijn IP adres kan spoofen.

De Drupal contrib module Flood control helpt:

  • Limiet instellen op aantal mislukte login pogingen op basis van IP
  • Limiet instellen op aantal mislukte login pogingen, op basis van gebruikersnaam
  • Limiteren van versturen van ‘wachtwoord vergeten’ e-mails.

https://www.drupal.org/project/flood_control

3. Cross frame scripting (XFS) in Drupal

XFS is een minder bekende techniek en een sneaky one: een hacker kan jouw Drupal website binnen een iframe op zijn eigen site plaatsen. Bezoekers worden daarheen gelokt en denken dat ze jóuw website bekijken. Vervolgens gaan bezoekers inloggen via dat iframe, waardoor de hacker alle toetsaanslagen kan vastleggen en dus direct inlog gegevens binnen krijgt.

Om dit te voorkomen kan je de Drupal Secure kit module installeren. Deze biedt hulp bij volgende security issues:

https://www.drupal.org/project/seckit

4. Social hacking in Drupal

Veiligheid issues zijn niet gelimiteerd tot technische aspecten, soms kan een gebruiker gehackt worden simpelweg doordat deze niet uitgelogd wordt. Een random persoon of collega kan hierdoor zijn account gebruiken en wachtwoord wijzigen.

Door een gebruiker automatisch uit te loggen na een bepaalde tijd kan dit voorkomen worden. Deze module faciliteert dat, als Drupal administrator kan je instellen hoe lang een ingelogde gebruiker inactief mag zijn, voordat hij automatisch uitgelogd wordt.

Er kan optioneel een bericht getoond worden als gebruiker uitgelogd dreigt te worden.

https://www.drupal.org/project/autologout

5. Concurrent Drupal Sessions

Een soortgelijk issue kan ontstaan als iemand inlogt op een ander apparaat. Om meerdere simultane sessies te voorkomen kan je deze Drupal module installeren.

  • Je kunt dan als Drupal administrator instellen of iemand eerst handmatig uit móet loggen, voordat je ergens anders kan inloggen.
  • Of, de module kan automatisch de sessie op het andere apparaat beëindigen.

https://www.drupal.org/project/session_limit

6. Voorkom blootgeven van Drupal usernames

Als een hacker iemands gebruikersnaam weet, kan er makkelijk een brute force attack gedaan worden (zie boven), daarom is het goed om de Drupal usernames zo veel mogelijk te verbergen.

Hackers kunnen in een standaard Drupal installatie makkelijk gebruikersnamen achterhalen, door een techniek genaamd [Username enumeration](https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessab...(OWASP-AT-002).

De hacker navigeert naar het ‘wachtwoord vergeten’ scherm van Drupal en gaat gebruikersnamen raden. Zodra er een gebruikersnaam klopt, dan zal Drupal dat bevestigen doordat er een ‘succes bericht’ komt, in plaats van een ‘fail bericht’. De hacker kan dus (middels een snelle robot) gebruikersnamen achterhalen.

Deze Drupal module pareert dit, hij zorgt ervoor dat de gebruiker altijd hetzelfde bericht krijgt zodra het een nieuw wachtwoord wordt aangevraagd, zodat de hacker niet kan vaststellen of een gegokte username bestaat.

https://www.drupal.org/project/username_enumeration_prevention

7. Paranoia: maak PHP in Drupal content onmogelijk

Binnen Drupal is het mogelijk om PHP in te voeren als content, wat in veel opzichten een zeer slecht idee is. Binnen deze context is het verkeerd omdat hackers hierdoor code kunnen plaatsen in content, waarmee de Drupal site gehackt kan worden.

Deze module zorgt ervoor dat alle plekken waar PHP ingevoerd kan worden geblokkeerd worden:

  • De permissie ‘use PHP for block visibility’ wordt permanent uitgeschakeld
  • Input formats kunnen geen PHP filter toegewezen krijgen.
  • De Drupal uber-admin (user 1) kan niet gewijzigd worden.
  • De module zelf kan niet uitgeschakeld worden in het Drupal backend, alleen via de Drupal database.

https://www.drupal.org/project/paranoia

8. Shield: scherm je Drupal testomgeving af.

Voordat je een Drupal systeem live plaatst, wil je hem testen op een afzonderlijke omgeving. Tenminste, als je gebruik maakt van een OTAP straat.

Een testomgeving is vaak niet geoptimaliseerd op veiligheid en mag sowieso niet publiekelijk zichtbaar zijn, niet voor bezoekers en niet voor de Google bot.

Deze module zorgt ervoor dat je gehele website afgeschermd wordt, tenzij je inlogt met een Drupal account.

https://www.drupal.org/project/shield

9. Actieve monitoring van Drupal met Nagios

De laatste is de Nagios module voor Drupal. Deze module integreert Drupal in het Nagios monitoring systeem en biedt instant centraal inzicht in Nagios van:

  • Is de Drupal core up-to-date?
  • Zijn de Drupal contrib modules up-to-date?
  • Zijn de Drupal site settings correct?
  • Veel overige veiligheid aspecten in Drupal

https://www.drupal.org/project/nagios

BONUS: Drupal distributie ‘Guardr’

Guardr is een Drupal distributie die een combinatie van modules en instellingen bevat om de veiligheid van Drupal aan te scherpen. Enkele van bovenstaande modules zitten hier in gebakken.

De Drupal distributie volgt de ‘CIA information security triad’: betrouwbaarheid, integriteit en beschikbaarheid. Zie ook Wikipedia

https://www.drupal.org/project/guardr

Wrap up

That's it, vragen of opmerkingen? We vernemen het graag.

Credits foto midden
Credits foto onder

Op de hoogte blijven?

Wees de eerste die nieuwe, relevante content leest,

we zullen nooit spammen of je e-mail adres delen.

Digitale Strategie en Realisatie

Kunnen wij helpen? Bel ons op 020 - 261 14 99,

mail ons op hallo@luciuswebsystems.nl, of stuur ons een bericht:

Zij gingen je voor: