Verwijderd schreef op 16 januari 2004 @ 22:25:
Als we het nou eens vanuit een andere invalshoek bekijken: stel nou dat de maker geen winst wil maken, maar alleen chaos wil scheppen, een soort internet-terrorisme. Hierbij wijk ik eerst een beetje van de originele vraag af door op de huidige situatie in te gaan, maar hierop kom ik later terug.
Worm
Er wordt hier veel gefocust op de man in the middle attack, het idee van een virus is wel geopperd, maar is niet echt uitgewerkt. Uit eerdere voorvallen blijkt al dat wormen zeer succesvol kunnen zijn, een goed geschreven worm kan in een korte tijd een enorme hoeveelheid systemen infecteren. De release van een worm kan samenvallen met de ondekking van een gat, de worm zelf kan bijvoorbeeld al klaarliggen. Op die manier kun je toeslaan op het moment dat er zoveel mogelijk systemen kwetsbaar zijn.
Eenmaal op een systeem heb je de volledige controle. Met behulp van BHO's (browser helper objects) is het mogelijk om de verrichtingen die de gebruiker in internet explorer uitvoert exact te volgen. Met wat meer moeite (denk ik, ik ken de mogelijkheden van BHO's niet precies), het patchen van wininet of iets dergelijks, is het mogelijk om zowel SSL als normale verbindingen af te luisteren en aan te passen. Op deze manier is het een fluitje van een cent om te detecteren of de gebruiker gebruik maakt van internetbankieren.
De volgende stap is het inbouwen van ondersteuning voor verschillende internet-bankieren websites. Bij sites die per challenge/response of andere vorm van authenticatie meerdere transacties ondersteunen kunnen op de achtergrond transacties worden toegevoegd, anders kan de originele transactie onzichtbaar voor de gebruiker vervangen worden door een 'spooktransactie'. Uiteraard worden deze transacties volledig verborgen gehouden voor de gebruiker, door alle responses van de bank exact te filteren.
Maar dan nu de vraag: waar moet dat geld dan heen? Het antwoord is eenvoudig: Als je alleen op chaos uit bent maakt het niet uit waarheen, als het maar ergens heen gaat. De worm kan uit bijvoorbeeld uit een geschiedenis van transacties proberen zoveel mogelijk rekeningnummer/naam-combinaties filteren. Door deze gegevens mee te nemen bij de verspreiding, of zelfs door direct contact tussen de wormen onderling, kan snel een grote hoeveelheid geldige rekeninggegevens verzameld worden. Indien de maker zelf toch geld wil verdienen kan deze proberen een voorkeur te geven aan rekeningnummers die aan bepaalde voorwaarden voldoen, bijvoorbeeld "rekeningnummer deelbaar door 63", en zo te hopen op een groter aandeel van de transacties. Hierbij is de maker niet persoonlijk identificeerbaar en maakt hij misschien een kans om weg te komen in de ontstane chaos.
Als de worm zichzelf snel verspreidt, en het aantal ondersteunde banksystemen groot genoeg is, heeft dit in zeer korte tijd een enorme hoeveelheid spooktransacties als gevolg. De chaos kan hierdoor enorm zijn.
Snelheid is de kritische factor bij de uitbraak, zodra de worm bekend wordt, is een kleine wijziging in de code aan de kant van de bank voldoende om de website onbruikbaar te maken voor de worm. Alles komt dus aan op de eerste klap, de worm zal zich zeer snel moeten verspreiden.
Beveiliging
Bovenstaand scenario is nog niet voorgekomen, doordat het een grote opgave is een dergelijke worm te ontwikkelen. Alles is echter technisch goed haalbaar. Om deze reden denk ik dat je zowel de computer van de gebruiker als het internet als 'untrusted' moet beschouwen.
Een mogelijke oplossing voor dit probleem is een extern kastje, vergelijkbaar met een rabox met een groter display, verbonden via USB met de computer. Dit apparaat in combinatie met de bankpas is beveiligd met een pincode en beschikt over encryptiefuncties. De bankpas van de gebruiker bevat de private key van de gebruiker, gebruikt voor communicatie met de bank.
Op het moment dat transacties op het punt staan naar de bank gestuurd te worden, krijgt de gebruiker deze op het schermpje van het apparaat te zien. Na het accepteren van de gegevens zorgt het apparaat voor de versleuteling van de transactiegegevens en geeft deze door aan de computer. De computer van de gebruiker kan vervolgens niets beginnen met de gegevens, omdat deze de private key nooit te weten komt.
Heeft iemand nog op- of aanmerkingen m.b.t. de veiligheid en haalbaarheid van deze methode? Of is het misschien allemaal te moeilijk gedacht en kan het veel eenvoudiger?