Rusty padlock

Hovedformålet med denne testen er å undersøke hvilke nettbanker som benytter seg av sikkerhetsmekanismen HTTP Strict Transport Security (HSTS).

HSTS er en mekanisme der webservere kan instruere nettlesere om at websidene kun skal aksesseres over TLS.

Dette for å forhindre SSL-stripping angrep, der broen fra ikke-TLS til TLS angripes.

Datagrunnlaget av banker kommer fra Wikipedia-siden Liste over banker i Norge.

Fra lista plukka jeg alle forretningsbanker med konsensjon per. 10. februar 2015. Og de 17 sparebanker med mest forvaltningskapital.

To overraskelser!

Jeg gjorde et Google-søk på alle banknavn i et Chrome incognito-vindu.

Banker med TLS har Adwords-kampanjer med TLS-lenker.

Alle Google-resultater er oppført med TLS-lenker til bankenes websider, bortsett fra to banker:

Begge nettbanker leverer TLS-lenker først når kunder skal logge inn. Ingen benytter seg av HSTS.

Målrettede angrep mot Netfonds- og Nordea-kunder vil være relativt enkelt å utføre med lokal nettverk-tilgang.

Resultater

Testen er utført 28. august 2016.

Av 34 banker er det 17 som ikke bruker HSTS:

Halvparten av bankene bruker ikke HSTS.

Nettbanker burde skru på HSTS

I et SSL-stripping angrep blir https-lenker omformet til http-lenker. En angriper proxier ut mot den ekte nettbanken og leverer http-svaret til offeret.

Ofre vil ane ingen fare med mindre de registrerer at TLS-padlocken mangler i URL-en.

Kuriositeter

Nesten alle bankene har en max-age=31536000 som er 365 dager.

Max-age angir i antall sekunder hvor lenge nettlesere skal følge HSTS.

Kun BN Bank ASA har en lavere max-age på 2592000 som er 30 dager.

Fire av bankene har en max-age=-12221117. Faktisk er alle max-age forskjellig men de er bare 3-7 sekunder forskjellig.

RFC6797 sier at nettleseren skal forkaste den når den ikke passer til den definerte grammatikken.

Disse fire bankene har feilkonfigurert max-age til å være negativ:

Etter å ha gjort et nytt søk viser det seg at disse max-agene går lavere og lavere for hvert sekund som går.

Fire DNS-oppslag viser at alle domenene resolver til IP-adressen 94.246.120.87 som eies av Eika Gruppen (tidligere Terra-gruppen AS).

Reproduksjon

Last ned programvare:

Eksekver:

php composer.phar install
php checkHSTS.php > /tmp/results
grep ", no" /tmp/results

Epilog

Chrome har en innebygd forhåndslastet liste med domener som skal følge HSTS. Ingen av nettbankene i denne testen er forhåndslastet.

Jeg fant kun én bank på lista og det var Monobank. Navnet står i stil.

Rådata

Bank Norwegian AS, https://www.banknorwegian.no/, 200, yes
Bank2 ASA, https://bank2.no/, 200, yes
BN Bank ASA, https://www.bnbank.no/, 200, no
Eika Kredittbank AS, https://eika.no/om-oss/selskaper/produktselskaper/kredittbank, 200, yes
Gjensidige Bank ASA, https://www.gjensidige.no/privat/bank, 200, no
KLP Banken AS, https://www.klp.no/person/bank, 200, no
Komplett Bank ASA, https://www.komplettbank.no/, 200, no
Landkreditt Bank AS, https://www.landkredittbank.no/, 200, no
Netfonds Bank ASA, https://www.netfonds.no, 302, no
Nordea Bank Norge ASA, https://nettbanken.nordea.no/login/, 200, no
OBOS-banken ASA, https://bank.obos.no/, 200, no
Pareto Bank ASA, https://paretobank.no/, 200, no
Santander Consumer Bank AS, https://www.santanderonline.no/, 302, no
Storebrand Bank ASA, https://www.storebrand.no/privat/bank-og-lan, 200, yes
Easybank, https://easybank.no/, 200, no
Voss Veksel- og Landmandsbank ASA, https://vekselbanken.no/, 200, yes
yA Bank AS, https://ya.no/, 200, no
DnB ASA, https://www.dnb.no/, 200, yes
SpareBank 1 SR-Bank, https://www.sparebank1.no/nb/sr-bank/privat.html, 200, yes
Sparebanken Vest, https://www.spv.no/, 200, yes
SpareBank 1 SMN, https://www.sparebank1.no/smn/, 200, yes
SpareBank 1 Nord-Norge, https://www.sparebank1.no/nb/nord-norge/privat.html, 200, yes
Sparebanken Møre, https://www.sbm.no/, 200, no
Sparebanken Øst, https://www.oest.no/, 200, no
Sparebanken Sør, https://www.sor.no/, 200, no
Sandnes Sparebank, https://sandnes-sparebank.no/, 200, yes
Sparebanken Sogn og Fjordane, https://www.ssf.no/, 200, no
SpareBank 1 Buskerud-Vestfold, https://www.sparebank1.no/nb/bv/privat.html, 200, yes
Helgeland Sparebank, https://www.hsb.no/, 302, no
Sparebank 1 Telemark, https://www.sparebank1.no/nb/telemark/privat.html, 200, yes
Fana Sparebank, https://www.fanasparebank.no/, 200, yes
Totens Sparebank, https://totenbanken.no/, 200, yes
SpareBank 1 NordVest, https://www.sparebank1.no/nb/nordvest/privat.html, 200, yes
SpareBank 1 Ringerike Hadeland, https://www.sparebank1.no/nb/nordvest/privat.html, 200, yes