SiteOptimo - Website optimalisatie done right Bel ons

Belgische banken en hun beveiliging

In navolging van Belgian banks & SSL, het blogbericht van Yeri Tiete waarin hij de status van de SSL certificaten van de Belgische banken onder de loep neemt, doen wij hetzelfde voor de headers die onze vertrouwde banken meesturen met hun requests.

Eén winnaar, veel verliezers

De securityheaders.io tool bracht ons op het idee om de banken te testen op veiligheid van de meegestuurde headers. Het is pijnlijk om te zien dat er slechts één bank is die op dit moment voldoet (11/02/2016). Alle lof hiervoor aan KBC met hun vernieuwde KBC touch. Correcte headers meesturen is immers slechts het begin van basisbeveiliging.

Update 17/02/16: we zien inmiddels dat bepaalde banken naar aanleiding van deze blogpost aan de slag gegaan zijn, een initiatief dat we enkel kunnen aanmoedigen. Geupdate banken: Keytrade (van E naar B), Medirect (van F naar E), ING (van B naar A), Recordbank (van B naar A)
Update 26/02/16: Crelan en VDK maken de sprong van D naar A, Hellobank, Fintro, BNP Fortis Paribas en Bpost bank van E naar A, Optimabank van F naar B.
Update 03/03/16: Belfius springt van F naar B. Dat maakt op 3 weken tijd 12 banken die een aanpassing gemaakt hebben.
Update 18/03/16: Nagelmackers maakt de sprong van E naar B.
Update 07/04/16: Belfius en Bank Van Breda geven nog een duwtje, van B naar A.
Update 03/08/16: Argenta Bank springt naar A, Beobank naar D.

Bank Rating
KBC bank A
Recordbank A (was B)
ING A (was B)
Bank Van Breda A (was B)
Crelan A (was D)
VDK A (was D)
BNP Paribas Fortis A (was E)
Hellobank A (was E)
Bpost bank A (was E)
Fintro A (was E)
Belfius A (was F)
Argenta A (was F)
Triodos B
Rabobank B
Axabank B
Keytrade bank B (was E)
Optima bank B (was F)
Nagelmackers B (was E)
Beobank D (was E)
Medirect E (was F)
Deutsche Bank E
Europabank F
BKCP F

 

We willen niet enkel de banken wijzen op de tekorten, maar willen ze aansporen om tot actie over te gaan. Een oplijsting van wat er zoal kan gedaan worden:

Weg te laten headers

Server

De “server” header wordt meegegeven om aan te duiden welke software er gebruikt werd om het verzoek af te handelen. Vaak staat hier ook nog eens de versienummer in. Op die manier kan er gerichter worden gezocht achter mogelijke kwetsbaarheden in de gebruikte software.

X-Powered-By

Soortgelijk aan de Server header, geeft de X-Powered-By header meer informatie over software die gebruikt werd. Vaak gaat het dan bijvoorbeeld over ASP.NET en PHP. Ook hier wordt vaak de versienummer meegegeven. Ideaal voor statistieken, niet zo ideaal om mogelijke aanvallers af te weren.

X-AspNet-Version

De X-AspNet-Version toont het volledige versienummer van het Microsoft .NET framework. In het geval van Belfius is dat bijvoorbeeld 4.0.30319 (van maart 2012). Niet iets wat je wil laten zien als bank. Zeker niet wanneer er kwetsbaarheden uitkomen voor die versie.

Toe te voegen headers

Content-Security-Policy

De Content Security Policy werd ingevoerd om als website meer controle uit te oefenen op de resources (scripts, styles, images, frames, …) in een website die mogen uitgevoerd worden door de browser. Wanneer er bijvoorbeeld een script wil uitgevoerd worden dat niet aan deze policy voldoet, wordt dat geblokkeerd door de (moderne) webbrowser. Het is een broodnodige maatregel ter bescherming van de gebruiker.

Content Security Policies dus voornamelijk gebruikt om te vermijden dat kwaadaardige scripts kunnen uitgevoerd worden binnen de context van de veilige webpagina. Zo wordt er onder meer extra bescherming geboden tegen aanvallen zoals XSS attacks, clickjacking en dergelijke.

Strict Transport Security

Wanneer een gebruiker naar de website van zijn bank “https://www.bank.be” wil surfen, typt hij veelal “www.bank.be” in in zijn URL balk. Dit wil zeggen dat er eerst een onveilig HTTP verzoek wordt verstuurd naar de website van de bank. De bank stuurt meestal wel een antwoord zoals “nee slimmerik, je moet op onze beveiligde website zijn!”, maar dan kan het al te laat zijn. Op dat moment is de gebruiker namelijk vatbaar voor een Man-in-the-Middle attack waarbij iemand anders zich voordoet als de bank. Onze nietsvermoedende hardwerkende Belg kan dan vervolgens naar een phishing website worden doorverwezen.

Gelukkig bestaat er dus zoiets als “Strict Transport Security”. Dit is een header die aanduidt dat verkeer naar www.bank.be (en mogelijk alle subdomeinen zoals touch.bank.be) altijd via HTTPS moet verlopen. Bij alle volgende bezoeken zal de browser van de bezoeker hier dus rekening mee houden.

Public Key Pins

Door een Public-Key-Pins header mee te geven met de webpagina, geef je aan de browser van de gebruiker een whitelist mee. In deze whitelist staat welke public keys er bij die server horen en dus bij volgende bezoeken moeten worden vertrouwd door de browser. Op die manier kan een hacker niet zomaar even een rogue certificaat genereren wanneer er een private key van een Certificate Authority wordt gelekt.

X-Frame-Options

Met deze header voorkom je dat iedereen zomaar jouw website kan inladen in een frame op zijn webpagina. Dit is een techniek die vaak voorkomt bij clickjacking. Wanneer er op een creatieve manier overlays over die verborgen frame worden gezet, kan een gebruiker worden misleid om op schijnbaar onschadelijke dingen te klikken terwijl hij eigenlijk handelingen aan het verrichten is op de website in de frame.

X-Xss-Protection

Deze header gebruikt men om aan de browser expliciet aan te geven om de ingebouwde XSS bescherming in te schakelen.

X-Content-Type-Options

Wanneer er X-Content-Type-Options: “nosniff” wordt toegevoegd aan de headers, worden Google Chrome en Internet Explorer verhinderd om het mime-type van een bestand automatisch te herkennen. Dit vermoeilijkt onder andere drive-by-downloads.

Over Koen Van den Wijngaert

Koen Van den Wijngaert

Koen is gepassioneerd door alles wat ook maar iets te maken heeft met het web. Binnen SiteOptimo is hij de programmeur en weet hij verbazend veel random facts. Je kan Koen altijd verleiden met een broodje boulet en een aflevering van The Big Bang Theory.

Koen Van den Wijngaert schreef nog 3 andere artikels over SEO, snelheid en usability.

2 Responses to “Belgische banken en hun beveiliging”

  1. Paul Van Kessel

    Ik zou graag willen weten welke risico’s zijn gelinkt met deze rating. Graag aanduiding waarom een bank een rating krijgt.

    Beantwoorden
    • Beste Paul,

      Elke bank in de tabel is aanklikbaar, waar je meer informatie vindt waar de bank al dan niet voldoet aan het type deeltest. De risico’s zelf zijn op een volledig up-to-date, niet geïnfecteerd systeem met volledige controle over de internetverbinding miniem. Het probleem bestaat vooral eens de cirkel niet volledig gesloten is (vb. wifi op verplaatsing, geïnfecteerd systeem,…), dan staan banken op dit moment nog teveel toe. Over de deelaspecten zelf geven we onder de tabel meer informatie.

      Beantwoorden

Plaats een reactie