Veiligheid van web applicaties

Er is altijd een grote discussie over welk open-source CMS het veiligste is. Vaak zijn er personen die dan ook zeggen dat een niet open-source CMS nog het veiligste is.

In dit artikel zal ik een focus leggen op een meta-tag die vaak al voor een security-issue kan zorgen.

Algemeen

Als we het hebben over open-source vs proprietair, dan zijn de argumenten vaak als volgt:
Open-Source is goed omdat er duizenden developers de code controleren en onderhouden.
In-house is beter omdat de achterliggende code niet gezien kan worden door hackers.

Beiden hebben een punt.
In-house/custom is goed omdat de achterliggende code niet beschikbaar is, en dus zwakke punten moeilijker te vinden. Echter zijn er minder developers die de code controleren waardoor de kans op een fout groot is.

Open-source kan door iedereen bekeken worden en hierdoor kan de volledige code doorzicht worden op zwakke plekken. De meeste developers gaan wel de security issue melden en eventueel zelfs helpen om het te sluiten.

Versies

Dat security issues gemeld worden en opgelost worden voor open-source software is terug een probleem. Het stelt mensen in staat om gericht te gaan zoeken naar websites of modules die niet upgedate zijn.
 

programming-code-open-source.png


De beste bescherming voor website is het up-to-date blijven met de laatste versie. Ook de modules van het CMS moeten ook regelmatig een update krijgen. Bij modules van Wordpress (gekend CMS) worden de kwetsbaarheden van modules gedocumenteerd. De bekendmaking is pas na het patchen van de kwetsbaarheid, maar dan moeten nog alle websites met die module upgedate worden.

Daar ligt dan vaak ook het probleem bij veel CMS. Ze tonen de versie van de installatie en soms zelf de versies van modules.
De versie kan in de footer van de webpagina, op login pagina, of in de generator meta-tag staan.

Meta-tag generator

De meta-tag ‘generator’ wordt gebruikt door websites zoals builtwith om te zien hoeveel websites een bepaald systeem gebruiken. Wordpress is nog altijd een veel gebruikt systeem, maar is juist daarom ook een geliefd doelwit om aan te vallen.

De generator meta-tag van wordpress is als volgt : ‘Wordpress <versienummer>’.

Het wordt echter nog slechter als er grote modules geïnstalleerd worden zoals WooCommerce. WooCommerce maakt ook een generator tag aan met de versie erin.
 

wordpress-metas.JPG
Screenshot van Wordpress meta tags


Wordpress is trouwens niet de enigste die dit verkeerd doet.
Nota: Ik viseer zeker en vast niet Wordpress, maar gebruik het als voorbeeld omwille van de populariteit.

Hier een lijstje van bekende CMS systemen en hoe hun generator tags opgebouwd zijn:

Wordpress

 

“Wordpress <volledig versienummer>”

“<modulenaam> <versie>” (enkel bij grote modules)

Drupal

“Drupal <versie> <link naar drupal.org>”

Joomla

“Joomla!”

Concrete5

“Concrete5 <volledig versienummer>”

ModX

Geen generator tag

Umbraco

Geen generator tag

DotNetNuke

Geen generator tag

ExpressionEngine

Via Module

ImpressPages

“ImpressPages CMS”

SilverStripe

Geen generator tag

Fork CMS

“Fork CMS”

Sommige CMS-systemen kunnen dus wel nog verbeteren. De generator tag heeft ook voordelen aangezien het aanduidt voor zoekrobotten welke technologie gebruikt is. Enkel zou ik geen volledig versienummer ergens tonen.

Ik raad weliswaar niet aan om aan de hand van dit lijstje een CMS of een bedrijf te kiezen. Er zijn namelijk in dit lijstje ook systemen die het versienummer tonen op de login pagina van de administrator. Hierdoor is het voordeel van geen generator tag te hebben ook teniet gedaan.

Conclusie

Veiligheid is belangrijk, zeker op het web en in IoT (toestellen verbonden met het internet).

Er zijn veel meer factoren die de veiligheid van een web applicatie kunnen ondermijnen dan enkel een versienummer.

Daarom is het belangrijk om onder andere:
1. Gebruik een generator-tag, maar zonder (volledig) versienummer.
2. Installeer een SSL certificaat
3. Installeer updates regelmatig, of gebruik een systeem die automatische updates mogelijk maakt.

Lees nog meer security tips voor CMS