De aanleiding voor de storing waar Rabobank donderdag 7 april 2011 mee te maken had, blijft vooralsnog onbekend. De bank is intern wel een technisch onderzoek gestart, maar weet vooralsnog niet hoe alles kon mislopen en negenhonderd klanten via internetbankieren de rekening van iemand anders voorgeschoteld kregen. Ondertussen speculeren lezers van Computable over de oorzaak.
Lezer Marcel merkt op dat onderhoud aan de website zeer waarschijnlijk niet de storing heeft veroorzaakt en dat er zeer waarschijnlijk in de achterliggende systemen iets is misgegaan. ‘Een website verzint natuurlijk niet zomaar om de gegevens van een andere klant op te halen, dat ligt waarschijnlijk in de back-office daarachter waar een query niet goed gaat.'
Check, check en dubbelcheck
‘IT-er' is het met Marcel eens. ‘Waarschijnlijk is er een verkeerde query gedraaid waardoor na inloggen de verkeerde rekeninggegevens opgehaald worden. Als dat het geval is, is de oplossing simpel voor in de toekomst: check, check en dubbelcheck nog beter je queries voordat je deze uitvoert.'
Lezer Chris denkt dat het probleem te maken heeft met kernel caching op een IIS-webserverfarm. ‘Onder grote load worden dezelfde sessionIDs verstrekt voor meerdere sessies. Dit stond standaard aan (machine.config) op IIS-servers van voor versie 6. Het zou me niet verbazen als banken nog achter zouden lopen en een boerderijtje met IIS 5-machines hebben draaien. Inmiddels heeft Microsoft deze configuratieoptie standaard uitgezet en dit probleem in de top tien gezet van application pitfalls.'
Hybride oplossing
Het idee dat het aan een IIS-server zou liggen, wordt door ‘knutsel' ontkend. ‘Ik heb als beheerder gewerkt op de afdeling waar dit fout gegaan is. Ik kan je verzekeren dat zo'n grote bank geen IIS-servertjes heeft. Ze hebben fouttolerante systemen, meerdere beveiligingslagen en uitwijklocaties.'
‘Chris' laat zich niet te snel afpoeieren door ‘knutsel'. ‘Ik zeg niet dat alle applicatieservers een IIS frontend farm gebruiken. Ik kan me voorstellen dat voor een hybride oplossing is gekozen en dat de financiële transactiesystemen strict gescheiden moet zijn qua technologie als de frontend servers. Anders kom je de audits al meteen niet door. Dus die queries waar IT-er mee komt, lijken me ook niet de oorzaak.'
Iemand anders worden
Toch denkt lezer Chris wel het probleem te herkennen. ‘Dit lijkt alles te maken te hebben met de frontend servers, die delen de sessieIDs uit. Veel architecten vinden frontend servers minder belangrijk ,zetten daar het stempel ‘niet business/mission critical' op, want deze hebben de functie om gegevens vanuit backend systemen alleen maar te tonen; wie wat mag zien wordt daar niet geregeld. Dat ze ook nog een functie hebben om het http-protcol statefull te 'laten lijken', wordt vaak vergeten of geacht dat een webserver dat automagisch regelt. Dat klopt, maar dus niet altijd! Aannemlijk is dat dat de login een sessionID heeft opgeleverd die meerdere keren is uitgegeven. Tijdens je sessie was de gebruiker eerst nog jezelf op de frontend server, maar na een aantal requests kun je dan iemand anders worden, omdat de webserver de requests niet meer uit elkaar kan halen.'
‘Chris' weet niet of dat hier ook gebeurd is, maar deze casus komt hem wel iets te bekend voor. ‘Ook omdat je dit in labtests bijna niet kunt reproduceren, omdat dit alleen voorkomt onder specifieke high-load omstandigheden. Voordat ik deze conclusie in mijn geval kon trekken, heeft mij dit een half jaar onderzoek gekost in samenspraak met Microsoft Redmond, die daarna heeft besloten deze kernel caching in volgende versies uit te zetten.'
Hetzelfde ip-adres
Lezer knutselis het met ‘Chris' eens. ‘Ik denk ook wel dat de fout in verwisseling van sessies zit. Misschien stelt iemand zich voor dat een bank draait op twee pc's en dat de hele administratie van de bank bestaat uit een paar MySQL-tabellen. Zo is het niet. Alles draait om onvoorstelbaar grote getallen en een tekening met alle betrokken hardware voor telebankieren beslaat meerdere A3'tjes. Wat denk je dat er gebeurt als alle 5 miljoen klanten van een bank kerstinkopen gaan doen? Daar zijn die systemen op berekend. Ik denk eerder dat het iets banaals is als twee machines hetzelfde ip-adres geven, na een verhuizing. Ik denk niet dat dit de schuld is van een programmeur.'
@knutsel: eens, voor de Himalaya (ik wist niet dat ze die nog gebruiken) staat de webserver/handler die de vertaling maakt van extern ip-adres/intern ip-adres.
I rest my case.
@Knutsel: jij presenteert je als de grote kenner. Je zult best op een bepaalde afdeling van de Rabo gewerkt hebben, maar er zijn meer mensen die gereageerd hebben die bij Rabo werken of gewerkt hebben. Waaronder ook mensen met meer overzicht over het totale systemenlandschap. Dat je aangeeft gewerkt te hebben “als beheerder op de afdeling waar dit fout is gegaan” is al een indicatie dat je zelf dat totaaloverzicht misschien niet hebt. Want als je daar weg bent kun je denk ik heel moeilijk inschatten dat het nou precies daar is misgegaan.
@Richard: Reverse proxy waarbij voor iedere sessie een nieuw intern ip-adres wordt gevraagd. Wie het begrijpt mag het zeggen. In mijn wereld heeft ieder device in ieder geval hetzelfde ip-adres zolang er geen powerdown is geweest en – in dit soort situaties – ook na een powerdown. Worden er ook mac-adressen uitgegeven of alleen IP-adressen?
@Rob: ip-adressen. Op de HP-Nonstop Himalya worden dynamisch servers bijgestart op verzoek van de webserver/security handler. In een testsituatie kan je dit puur theoretisch nabootsen met Loadbalancer, maar komt bijna nooit naar boven. Dit is vaak een stille bug die jaren erin kan zitten zonder dat iemand iets in de gaten heeft.
Het blijft gissen natuurlijk.
@Richard: Servers bijgestart. Nou begrijp ik je eindelijk. Thx.
Snap niet dat er deze reacties zijn..
Dit heeft alles te maken met een query die niet goed gaat.
Vind het trouwens verdacht dat er bij rabo brand uitbreekt.
Tot 2 X toe zelfs , die bankwereld is 1 crimineel zootje.
Misschien is dit ook een vorm van sabotage om rabo in de wielen te rijden.
Er zijn misschien krachten die rabo niet mogen…
Ver gezocht dan blijf je gewoon naief !
Een super grote schoonmaak is de enige oplossing.
@allen
Dank voor al jullie reacties. Het is voor een ict-vakblad lastig om een goed, technisch onderbouwd artikel te schrijven, als de bron, Rabobank, voorlopig niets wil zeggen. Zij weten zelf nog niet wat de directe aanleiding is en onderzoeken dit nog. Ze willen ook niet vertellen hoe hun ict-situatie is, ze richten zich momenteel liever op de ‘damage control’ richting klanten. Uiteraard begrijp ik dat, maar als ict-vakblad wil ik toch liever ingaan op de ict-aspecten. De woordvoerder van de Rabobank zelf wees me nota bene op de interessante discussie onder het vorige artikel en daarom heb ik hiervan een samenvatting gemaakt. Hopelijk geeft Rabobank binnenkort wel openheid van zaken.
@knutsel
Uiteraard had ik verder onderzoek willen doen, bijvoorbeeld via jou, maar ik heb ‘knutsel’ via Google gezocht, maar vond helaas niet jouw contactgegevens. Dat is dus het nadeel van anoniem reageren. Misschien dat je je echte naam bekend kan maken? Stuur me anders even een mail op sander@computable.nl, dan mag je alles uit de doeken doen. Dit geldt trouwens ook voor alle andere mensen die (anoniem) reageren. Als je meer weet van de ict-situatie bij Rabobank, neem dan contact met me op.
Een beetje journalist laat zich niet afpoeieren door een PR medewerker.
De Rabobank kan best trots zijn op zijn IT, ze moeten er alleen van overtuigd worden dat een verhaal in Computable ook gunstig kan zijn voor ze.
Ik snap heel goed dat de prioriteiten nu even bij de klanten liggen.
Ik zou erg onprofessioneel zijn als ik mijn oude handboeken aan een journalist zou geven, of andere informatie die me is toevertrouwd. Een keer sjoemelen met een bonnetje, en je werkt nooit meer bij een bank. Je niet aan afspraken houden idem.
Ik vind de reactie van Sander Hulsman nogal merkwaardig en dan met name: “Stuur me anders even een mail op sander@computable.nl, dan mag je alles uit de doeken doen.”
Iemand die bij een IT bedrijf of een IT-afdeling hoort dit vanuit professioneel oogpunt helemaal niet te doen …hooguit wanneer er sprake is van een ‘klokkeluider situatie'(wantoestanden ed.).
@ Kaspar, jij vindt het geen wantoestand als een totale vreemdeling jouw bankrekening via internet te zien krijgt? Persoonlijk vind ik het nogal flauw van de Rabobank dat ze niks willen zeggen. Doet me vermoeden dat er wel meer speelt. Ik zeg: luidt die klokken maar!