De Britse tak van de Santander bank bewaart creditcardnummers en andere persoonlijke informatie in de cookies van gebruikers, aldus een onderzoeker die naar eigen zeggen al twee jaar bij de bank over de slechte veiligheid klaagt. De cookies met de vertrouwelijke gegevens, die naast creditcardnummers, ook volledige naam, rekeningnummer, 'sort code', alias en User ID bevatten, worden tijdens het internetbankieren op het systeem geplaatst.
In het eigen beleid stelt de bank dat de 'site-tracking cookies' geen adresgegevens bevatten, terwijl dit wel het geval is. Daarnaast wordt voor geen enkele cookie de HTTPOnly flag gebruikt, waardoor ze bijvoorbeeld via cross-site scripting (XSS) zijn te stelen. En dat is een serieus risico, want op de website van de bank is al een keer XSS voorgekomen, dat pas na ongeveer een jaar werd verholpen.
Uitloggen
Verder verlopen de cookies aan het einde van de sessie, maar worden ze niet na het uitloggen overschreven. "Dit betekent dat elke gebruiker die zijn browser niet sluit, ook als die wel correct uitlogt, deze cookies nog steeds heeft totdat ze hun browser sluiten, wat het venster voor een aanval vergroot", aldus de anonieme onderzoeker.
Gevoelige gegevens
"Cookies gebruik je niet om gevoelige informatie zoals creditcard gegevens in op te slaan, zoals ook staat in de Advanced Web Application Scan checklist item 4.3: 'Check for sensitive information stored in cookies'", zegt Frank van Vliet, CTO van Certified Secure.
Volgens Van Vliet kunnen cookies zonder HTTPOnly instelling worden gestolen als er XSS-problemen zijn. Daarnaast kunnen de cookies achterblijven in de browser, wat een probleem is als de computer wordt gedeeld met anderen.
Gezond verstand
"Het is common sense om daarom cookies alleen te gebruiken voor het opslaan van een random token (het session-id). Dit token wordt vervolgens op de server gekoppeld aan de gevoelige informatie zoals de gebruikersnaam en het creditcardnummer. Hiermee wordt het probleem echter niet volledig opgelost. Als iemand de cookies nu van gebruiker X kan uitlezen, heeft hij niet direct het creditcard nummer, maar heeft hij wel een session-id waarmee hij zelf kan verbinden met de server", gaat de CTO verder.
Hij stelt dat op de server een aantal aanvullende controles moeten worden uitgevoerd om te voorkomen dat de sessie van de gebruiker X wordt overgenomen. "Dit kan bijvoorbeeld door de sessie van gebruiker X te koppelen aan het IP adres van gebruiker X."
Openbaarmaking
Omdat de bank zo slecht op beveiligingsproblemen reageert, besloot de anonieme onderzoeker zijn bevindingen direct via de Full-disclosure mailinglist te openbaren. Daar stellen verschillende beveiligingsexperts dat het probleem ook bij andere banksites aanwezig is.
Deze posting is gelocked. Reageren is niet meer mogelijk.