Cybercriminelen ontfutselen creditcard gegevens via webshop

Het ontfutselen van creditcard gegevens binnen het bestelproces van een webshop, heet formjacking en tast naar verluid 4.800 websites per maand aan. Het klinkt nieuw, maar is het zeker niet.

Formjacking binnen webshops

Onder meer NOS en Emerce berichten over het fenomeen formjacking. Zonder als webshop bezoeker door te hebben dat er virtueel wordt meegekeken, maken cybercriminelen via formjacking gegevens afhandig. Zoals je creditcard gegevens. In Nederland zijn hiervan weliswaar geen grote aanvallen bekend, geeft NOS aan. Echter, Emerce meldt dat in het algemeen juist kleine- en middelgrote retailers het vaakst getroffen worden.

Hoe komt webshop security in het geding?

Websites maken veelal gebruik van third-party toepassingen, zonder te controleren wat deze doen. Dit kan komen doordat een website geen persoonsgegevens verwerkt en privacy niet in het geding kan komen. Dit kan ook komen doordat het open source toepassingen betreffen, en het veelal vanzelfsprekend is wat de toepassingen exact doen. Desondanks kan:

  • een third-party toepassing reeds de security en privacy van een website in het geding brengen;
  • de code van een third-party tussentijds wijzigen, waardoor de security en privacy van een website of webshop in een later stadium in het geding komt.

Een jaar geleden schreven we reeds over de invloed van third-party of open source code en hoe daarmee meerdere webshops getroffen kunnen worden. De samenvatting:

  • Iemand kan bewust een praktisch bruikbare plugin schrijven die vervolgens door meerdere website bouwers gebruikt gaan worden. Zodra meerdere webshops zo een plugin hebben toegepast, kan een plugin-schrijver de code wijzigen om kwaadaardige code toe te voegen;
  • Een ander voorbeeld dat zich in praktijk heeft afgespeeld, is dat een andere (door)ontwikkelaar verantwoordelijk wordt voor een reeds bestaande als ook door webshops gebruikte third-party plugin. Zo een plugin heeft in verloop van tijd reeds het vertrouwen gewonnen, waarna het vervolgens door cybercriminelen ingezet kan worden voor meer kwaadaardige doeleinden. Formjacking is hier slechts een voorbeeld van.

Doordat plugins weer een beroep kunnen doen op andere plugins, is het ook mogelijk dat een webshop kwetsbaar is, wanneer de direct gebruikte third-party plugins op zichzelf de security niet in het geding brengen.

Risico van formjacking

Het risico van formjacking laat zich op basis van bovenstaand raden: iemand kan ongeautoriseerd meekijken. In de media wordt het vergeleken met het skimmen van een pinpas, waarmee pinpasfraude tot stand komt. Formjacking kan echter breder worden ingezet.

Mogelijkheden van formjacking beperkt zich dus niet enkel tot de invoer van creditcard gegevens. Ook andere algemene of bijzondere persoonsgegevens kan hiermee afgevangen worden, en door een cybercrimineel doorgezet worden naar een eigen omgeving. Dit zal door een respondent, bijvoorbeeld een webshop klant of iemand die middels een online formulier een verzekering wil aanvragen, niet opgemerkt worden.

Naast directe datalekken als gevolg, kan het leiden tot bijvoorbeeld identiteitsfraude, financiële schade of afpersing op basis van de verworven gegevens.

Maatregelen tegen formjacking

Een programmeurs-credo is: Never trust user input, ofwel altijd de ontvangen (gebruikers-)invoer controleren. Dit zou in een webshop waar gevoelige gegevens rond gaan, niet anders moeten zijn. Met andere woorden: waarom luk-raak third-party libraries gebruiken, als er een kans is dat de library nu of in de toekomst over kan gaan tot kwaadaardige acties.

Omdat de bedoelingen van een plugin door de tijd kan wijzigen, is éénmalige monitoring niet voldoende. Oplossingen en maatregelen kunnen als volgt zijn:

  • Binnen het formulier dat tegen formjacking beschermd moet worden, geen (third-party) JavaScript code publiceren;
  • Het betreffende formulier (met uitzondering van third-party code) afzonderen in een iframe, zodat er geen communicatie tussen het formulier en third-party plaats kan vinden;
  • Indien mogelijk het invoerproces uitbesteden. Payment providers zijn hier een goed voorbeeld van, die veelal de optie bieden om zelf de gegevens van bezoekers te vergaren, of een beroep te doen op hun bestelproces. De payment provider beschikt over de juiste security kennis om formjacking op hun eigen omgeving en dus invoerprocessen die op hun servers plaats vinden, tegen te gaan;
  • De third-party scripts op de eigen server plaatsen, zodat de inhoud en bedoelingen ervan niet tussentijds kunnen wijzigen.
  • Dit kan bijvoorbeeld gedaan worden voor de gehele website of webshop, of enkel op plekken waar gevoelige gegevens ingevoerd kunnen worden (zoals dus een bestelproces binnen een webshop);
  • Toepassing van een Content Security Policy kan een oplossing zijn, maar zal wegens Resource Hint ontwikkelingen in nieuwere versies van bijvoorbeeld Chrome geen drempel meer opwerpen voor cybercriminelen;
  • De bron-integriteit van externe bronnen controleren via subresource integrity, betreft een security maatregel. Mocht de inhoud en daarmee wellicht bedoelingen van een bestand wijzigen, dan zal de externe bron niet meer uitgevoerd worden.
    Risico hierin is dat een externe bron reeds een zogenaamde backdoor kan hebben, welke wellicht pas op een later moment actief wordt, waardoor het de (integriteits-controle)dans ontspringt.

Heb je een webshop of twijfels omtrent security en persoonsgegevens die binnen een website verwerkt worden? Onze security en privacy consultants beantwoorden graag je vragen!

Contact opnemen Meer security