Security

Webshop security: voorkomen, ontdekken, herstellen

Een gehackte checkout kost je klanten, omzet en vertrouwen. Dit is de hub voor alles wat wij weten over het beveiligen van Magento-, Shopify- en Laravel-webshops: van patchbeleid tot incident response.

Patchen
Binnen dagen, niet maanden

Kritieke Magento-kwetsbaarheden worden snel misbruikt. Een vast patchritme is je beste verdediging.

Checkout
Waar skimmers zitten

Aanvallers richten zich op betaalpagina’s en scripts van derden. Daar begint effectieve detectie.

3 platforms
Magento, Shopify, Laravel

Elk platform heeft een eigen aanvalsoppervlak en een eigen verdeling van verantwoordelijkheid.

Direct
Geen tussenlagen

Bij een incident praat je met de senior developer die je shop kent, niet met een ticketsysteem.

Hoe webshops echt worden gehackt

Bijna elke inbreuk die we tegenkomen valt in een van deze zes categorieën. Per route zie je hoe aanvallers werken en waar je verdediging begint.

01

Niet-gepatchte kwetsbaarheden

Zodra er een advisory of patch verschijnt, scannen aanvallers massaal naar shops die de fix nog niet hebben. Bij kritieke Magento-lekken zit tussen publicatie en misbruik vaak maar een paar dagen.

Verdediging: Vast patchritme, test op staging, en een versie die nog binnen support valt.
Lees de gids →
02

Kwetsbare extensies van derden

Een extensie draait met dezelfde rechten als de kern van je shop. Eén onderhouden-niet-meer module is genoeg voor code-uitvoering of een open uploadpunt.

Verdediging: Extensie-inventaris met eigenaar, composer audit, en weghalen wat je niet gebruikt.
Lees de gids →
03

Skimmers op de checkout

Kwaadaardige JavaScript op de betaalpagina leest kaartgegevens mee terwijl de klant typt. De shop blijft gewoon werken, dus je merkt het vaak pas via je betaalprovider.

Verdediging: Content Security Policy, inventaris van scripts, en detectie van gewijzigde bestanden.
Lees de gids →
04

Gekaapte admin-accounts

Phishing, hergebruikte wachtwoorden en oud-medewerkers met nog actieve toegang. Eenmaal in de admin kan een aanvaller code of betaalinstellingen aanpassen.

Verdediging: 2FA verplicht, IP-beperking, minimale rollen en een offboarding-procedure.
Lees de gids →
05

Geautomatiseerd misbruik

Carding met gestolen kaarten, credential stuffing op klantaccounts en scrapers die je server belasten. Het zijn bots, geen gerichte aanvallen.

Verdediging: WAF en bot-regels, rate limiting op login en checkout, en monitoring op afwijkend verkeer.
Lees de gids →
06

Supply chain en werkplek

Gecompromitteerde packages, gelekte CI-secrets of een besmette ontwikkelaarslaptop geven toegang tot productie zonder dat de shop zelf kwetsbaar is.

Verdediging: Lockfiles, dependency-audit in CI, secrets-beheer en deploy-rechten volgens least privilege.
Lees de gids →

Zo pakken we een security check aan

Geen rapport van honderd pagina’s dat in een la verdwijnt. Je krijgt een lijst waar je morgen mee verder kunt.

  1. 1

    Inventariseren

    Platformversie en patchniveau, extensies, hosting, toegangen, betaalflow en scripts van derden. Eerst weten wat er staat.

  2. 2

    Analyseren

    Configuratie en code-review op de risicovolle plekken, malware-scan, dependency-controle, serverinstellingen en admin-rechten.

  3. 3

    Prioriteren

    Elk punt krijgt een risico en een inspanning. Je ziet wat vandaag moet, wat deze maand kan en wat bewust blijft liggen.

  4. 4

    Oplossen

    Patches, hardening, WAF- en CSP-regels, gecontroleerd uitgerold via staging en met een terugvalplan.

  5. 5

    Borgen

    Monitoring, alerts en een patchritme, zodat de shop veilig blijft en niet alleen op de dag van de check.

Wat we controleren, per laag

Een shop is zo sterk als de zwakste laag. Dit is waar we per laag naar kijken.

Applicatie

  • Patchniveau tegenover de laatste release
  • Versie nog binnen support
  • Custom code op injectie en autorisatie
  • Developer- en debugmodus uit op productie
  • REST- en GraphQL-endpoints beperkt tot wat nodig is

Extensies & dependencies

  • Overzicht met eigenaar per extensie
  • Wordt de extensie nog onderhouden?
  • Composer audit en lockfile onder versiebeheer
  • Ongebruikte modules verwijderd
  • Geen code buiten de repository geüpload

Admin & toegang

  • 2FA voor alle admins
  • Toegang beperkt op IP of via VPN
  • Rollen met minimale rechten
  • Offboarding van oud-medewerkers en bureaus
  • API-tokens en sleutels geroteerd

Server & hosting

  • Bestandsrechten en schrijfbare mappen
  • Database, OpenSearch en Redis niet publiek bereikbaar
  • SSH met sleutels, geen wachtwoorden
  • Back-ups die daadwerkelijk getest zijn
  • Logging die je kunt terugzoeken

Checkout & betalingen

  • Content Security Policy en Subresource Integrity
  • Inventaris van scripts op de betaalpagina
  • Hosted fields of iframe van de betaalprovider
  • Detectie van wijzigingen op betaalpagina’s
  • PCI-scope zo klein mogelijk

Data & compliance

  • Alleen bewaren wat je nodig hebt
  • Bewaartermijnen voor logs en bestellingen
  • Een datalekprocedure die iemand kent
  • Verwerkersovereenkomsten op orde
  • PCI DSS en NIS2 vertaald naar maatregelen

Wie is waarvoor verantwoordelijk?

Het platform bepaalt hoeveel je zelf moet regelen. Dit is de verdeling in grote lijnen.

OnderdeelMagentoShopifyLaravel
Platform- en frameworkpatchesJij of je onderhoudspartnerShopifyJij (framework en packages)
Hosting en serverbeveiligingHostingpartij en jij samenShopifyJij of je hostingpartij
Extensies, apps en packagesJijJij (app-rechten en keuze)Jij
Scripts en pixels op de betaalpaginaJijJij (thema en pixels)Jij
Admin- en staff-accountsJijJijJij
Back-ups en herstelJij met je hostingpartijJij (themacode en exports)Jij

Samengevat: bij Shopify ligt het platformwerk bij Shopify. Bij Magento en Laravel regel je het zelf of laat je het door je onderhoudspartner doen.

Als het misgaat: de eerste uren

In een incident telt volgorde. Dit is hoe wij het aanpakken, uitgebreid beschreven in onze gids.

  1. 1

    Beperk de schade

    Checkout of shop offline of in onderhoudsmodus als er kaartdata gevaar loopt.

  2. 2

    Zet bewijs veilig

    Snapshot van bestanden, database en logs voordat je iets opruimt.

  3. 3

    Vind de ingang

    Zonder de ingang te dichten komt de aanvaller terug. Eerst begrijpen, dan opruimen.

  4. 4

    Herstel vanuit schone data

    Kernbestanden en code vanuit versiebeheer, geen handmatig geplozen malware.

  5. 5

    Roteer alle sleutels

    Wachtwoorden, API-tokens, database- en betaalsleutels vervangen.

  6. 6

    Meld en leer

    Betaalprovider informeren en beoordelen of een datalek binnen 72 uur gemeld moet worden bij de Autoriteit Persoonsgegevens.

Lees het volledige stappenplan →

Doe de snelle check

Acht vragen. Antwoord je op meer dan twee “nee” of “weet ik niet”, dan is een security check de moeite waard.

  • 1Draait je shop op een versie die nog security-updates krijgt?
  • 2Staat 2FA aan voor elk admin-account?
  • 3Weet je precies welke scripts er op je betaalpagina draaien?
  • 4Wordt elke geïnstalleerde extensie nog onderhouden?
  • 5Is je admin niet voor het hele internet bereikbaar?
  • 6Heb je een back-up die je daadwerkelijk hebt teruggezet?
  • 7Krijg je een melding als er bestanden op de server wijzigen?
  • 8Weet je wie er ingrijpt als het om 02:00 misgaat?

Veelgestelde vragen

Zodra Adobe een patch uitbrengt voor jouw 2.4.x-versie, plan je die in. Voor kritieke kwetsbaarheden is dat een kwestie van dagen. Een vast patchritme met een staging-test voorkomt dat het een brandoefening wordt. Draai je op een versie die niet meer wordt ondersteund, dan krijg je geen patches meer en is upgraden de eerste stap.

Weet je zeker dat je shop veilig is?

Plan een vrijblijvend gesprek. We kijken naar je versie, patchniveau, extensies en hosting en vertellen je eerlijk waar de risico’s zitten.