Hallo allemaal,
Van de week was er enige opschudding toen bleek dat een betalingsmodule voor iDeal niet helemaal veilig was ontwikkeld. iDeal was zo vriendelijk geweest om alle iDeal klanten in te lichten over het probleem en te benadrukken dat het probleem in de module zat, dus dat iDeal op zich niets aan te verwijten viel.
Wij hebben voor een klant van ons een webshop ontwikkeld en daarin ook iDeal geimplementeerd. De webshop was intern ontwikkeld, en het iDeal betalingssysteem hebben we aan de hand van uitleg van iDeal geimplementeerd. Toen het bericht van de fraude onze klant bereikte, vroeg hij ons te onderzoeken of dit hem ook kon overkomen. We gingen het proces nalopen en inderdaad, in principe is het mogelijk dat een koper met slechte bedoelingen in de broncode variabelen kon aanpassen alvorens de betalingsprocedure bij iDeal in gang te zetten, met als gevolg dat er een ander bedrag betaald kan worden dan eigenlijk zou moeten. iDeal geeft dus tips ter implementatie die fraudegevoelig zijn. De implementatie zit dan dus wel in de shop, en ligt dus niet aan iDeal, het is echter wel een stukje kant en klare code die dit probleem veroorzaakt.
In tweede instantie gingen we onderzoeken of het probleem wel op te lossen was. Het volgende stappen worden doorgelopen:
Waarom post ik dit hier:
Tot slot 2: Ik wil onderzoeken of mijn bevindingen juist zijn. Ik hoop dat ik iets over het hoofd zie en dat er helemaal geen probleem is.
Van de week was er enige opschudding toen bleek dat een betalingsmodule voor iDeal niet helemaal veilig was ontwikkeld. iDeal was zo vriendelijk geweest om alle iDeal klanten in te lichten over het probleem en te benadrukken dat het probleem in de module zat, dus dat iDeal op zich niets aan te verwijten viel.
Wij hebben voor een klant van ons een webshop ontwikkeld en daarin ook iDeal geimplementeerd. De webshop was intern ontwikkeld, en het iDeal betalingssysteem hebben we aan de hand van uitleg van iDeal geimplementeerd. Toen het bericht van de fraude onze klant bereikte, vroeg hij ons te onderzoeken of dit hem ook kon overkomen. We gingen het proces nalopen en inderdaad, in principe is het mogelijk dat een koper met slechte bedoelingen in de broncode variabelen kon aanpassen alvorens de betalingsprocedure bij iDeal in gang te zetten, met als gevolg dat er een ander bedrag betaald kan worden dan eigenlijk zou moeten. iDeal geeft dus tips ter implementatie die fraudegevoelig zijn. De implementatie zit dan dus wel in de shop, en ligt dus niet aan iDeal, het is echter wel een stukje kant en klare code die dit probleem veroorzaakt.
In tweede instantie gingen we onderzoeken of het probleem wel op te lossen was. Het volgende stappen worden doorgelopen:
- Wanneer de persoonsgegevens in de webshop zijn ingevuld, wordt betaalmethode gekozen.
- Als de klant kiest voor iDeal, wordt de order bevestigd en gaat de klant door een druk op de knop naar de betaalomgeving van iDeal (externe site).
- De betaalomgeving van iDeal vereist van de webshop een unieke winkelcode, ordernummer, nog wat variabelen uiteraard het betaalbedrag.
- Hier zit hem het probleem: de variabelen worden vereist middels _POST variabelen. Dit houdt in dat wij in de webshop de betalingsvariabelen frontend in hidden input fields moeten stoppen en dat dit 'verborgen' formulier met de druk op de knop als POST variabelen naar de betaalomgeving worden gestuurd, om de juiste interface terug te krijgen.
- Dit is natuurlijk zo lek als een mandje. Als ik in de laatste stap in de broncode het bedrag aanpas in de hidden form field en vervolgens overga op betaling, kan ik elk gewenst bedrag afrekenen. iDeal voert geen backend request naar de webshop uit om te controleren of het bedrag wel klopt, na betaling wordt gewoon een bevestiging gestuurd naar de webshop-eigenaar.
Waarom post ik dit hier:
- Is mijn analyse correct of mis ik iets in het proces waardoor de variabelen welzeker achterlangs kunnen worden doorgegeven, zonder tussenkomst van de bezoeker?
- Ben ik de eerste die ontdekt dat het probleem daadwerkelijk voor een groot deel bij iDeal zit of is het een algemeen aanvaard/gedoogd probleem?
- Is dit lek niet ontzekkend risicovol voor de ca. 3000 iDeal-webwinkels in ons land?
Tot slot 2: Ik wil onderzoeken of mijn bevindingen juist zijn. Ik hoop dat ik iets over het hoofd zie en dat er helemaal geen probleem is.
www.stevelock.nl