Magento 2 gehackt: dit doe je de eerste 24 uur
Terug naar blog

Magento 2 gehackt: dit doe je de eerste 24 uur

AuthorRuthger Idema
1 maart 202612 min leestijd

Je Magento 2 shop is gehackt. Geen paniek. Volg dit stappenplan en herstel je webshop veilig — inclusief AVG-meldplicht en malware verwijdering.

Magento 2 gehackt: dit doe je de eerste 24 uur

Je ontdekt dat je Magento shop gehackt is. Misschien zag een klant iets vreemds op de betaalpagina. Misschien staat je shop op een blacklist. Misschien stuurde Google Search Console een waarschuwing.

Haal diep adem. Dit is oplosbaar.

We herstellen bij coding.nl regelmatig gehackte Magento shops. Wat we keer op keer zien: de eerste reactie — alles meteen offline halen en de boel wissen — maakt de situatie vaak erger. Dit artikel geeft je een gestructureerd stappenplan voor de eerste 24 uur.

Stap 1: Maintenance mode aan — niet offline halen

Je eerste instinct is begrijpelijk: alles uitzetten. Maar als je de server volledig afsluit of bestanden begint te verwijderen, vernietig je het bewijsmateriaal dat je nodig hebt.

Voer dit uit via SSH:

bash
php bin/magento maintenance:enable
Doe daarnaast direct:
  • Wijzig alle adminpaneel-wachtwoorden
  • Vernieuw je API-sleutels (Mollie, betaalgateway, ERP-koppeling)
  • Blokkeer tijdelijk toegang tot /admin voor alle IP-adressen behalve die van jezelf

Stap 2: Aanvalsvector identificeren

Voordat je iets repareert, moet je weten hoe de aanvaller is binnengekomen.

Controleer de logbestanden

bash
tail -200 /var/www/html/var/log/system.log
tail -200 /var/www/html/var/log/exception.log
tail -500 /var/log/nginx/access.log | grep -i "POST"

Controleer de database

sql
-- Onbekende admingebruikers
SELECT user_id, username, email, created_at FROM admin_user ORDER BY created_at DESC;

-- Verdachte configuratie (externe scripts)
SELECT config_id, path, value, updated_at FROM core_config_data
WHERE value LIKE '%<script%' OR value LIKE '%eval(%' ORDER BY updated_at DESC;

-- Geïnjecteerde CMS-blokken
SELECT block_id, title, update_time FROM cms_block
WHERE content LIKE '%<script%' OR content LIKE '%base64%' ORDER BY update_time DESC;

Meest voorkomende aanvalsvectoren

AanvalsvectorKenmerken
Admin brute forceVeel mislukte loginpogingen, onbekende admin-accounts
Ongepatche CVESpecifieke URL-patronen in logs
Gecompromitteerde extensieVerdachte bestanden in vendor/ of app/code/
FTP/SSH credentials gelektOnbekende bestanden, geen spoor in Magento logs

Stap 3: Malware scannen

Geautomatiseerde scantools

  • Sansec eComscan — meest betrouwbare commerciele Magento malware scanner
  • Magento Security Scan Tool — gratis via account.magento.com
  • MageReport — snel overzicht via magereport.com

Handmatige controle op PHP-backdoors

bash
grep -r "eval(base64_decode" /var/www/html --include="*.php" -l
grep -r "system(\$_" /var/www/html --include="*.php" -l
grep -r "exec(\$_" /var/www/html --include="*.php" -l
find /var/www/html -name "*.php" -mtime -30 | grep -v "var/cache"

Magecart/skimming herkennen

De meest gevreesde aanval: een JavaScript-skimmer die betaalgegevens steelt. De klant merkt niets, jij merkt niets — totdat iemand klaagt over creditcardfraude.

Zo werkt het:

  1. Aanvaller krijgt toegang tot je omgeving
  2. Ze injecteren JavaScript in je checkout (via core_config_data, CMS-blok of themabestand)
  3. Dat script luistert naar toetsaanslagen in het betaalformulier
  4. Kaartgegevens worden naar een externe server gestuurd

Stap 4: Schade inschatten

Beantwoord deze vragen:

  • Welke data had de aanvaller toegang tot? Klantgegevens, betaalgegevens, wachtwoorden, bestelhistorie
  • Hoe lang was de aanvaller actief? Check timestamps in logs en database
  • Is er een skimmer actief geweest? Zo ja: ga ervan uit dat alle betaalgegevens in die periode zijn buitgemaakt

Stap 5: AVG/GDPR melding — binnen 72 uur

Bij een datalek met persoonsgegevens ben je in de meeste gevallen verplicht dit te melden bij de Autoriteit Persoonsgegevens — binnen 72 uur na ontdekking.

Meld via: autoriteitpersoonsgegevens.nl/nl/melden-datalek Bij gelekte betaalgegevens (hoog risico) ben je ook verplicht de betrokken klanten te informeren.

De 72-uurstermijn begint op het moment dat je kennis neemt van het lek. Twijfel? Meld alvast voorlopig en vul later aan.

Stap 6: Herstel en opschonen

De volgorde is belangrijk

  1. Sluit het lek (patch de CVE, verwijder gecompromitteerde extensie, wijzig credentials)
  2. Verwijder alle malware en backdoors
  3. Herstel vanuit een schone backup van voor de aanval
  4. Controleer opnieuw na het herstel

Wachtwoorden en credentials resetten

  • Alle Magento admin-accounts
  • Database-wachtwoord + env.php bijwerken
  • FTP/SFTP-wachtwoorden
  • Hosting control panel
  • API-sleutels voor alle koppelingen
  • Verwijder onbekende admin-accounts

Stap 7: Herhaling voorkomen

  • Verander de admin-URL — de standaard /admin is het eerste wat aanvallers proberen
  • Schakel 2FA in voor alle admin-gebruikers
  • Houd Magento up-to-date — de meeste hacks misbruiken bekende kwetsbaarheden
  • Beperk admin-toegang op IP-niveau
  • Installeer een WAF (Cloudflare, Sucuri)
MaatregelPrioriteit
Security patches direct installerenHoog
Admin 2FA verplichtHoog
Regelmatige security scanHoog
Minimale extensies, alleen betrouwbare bronnenHoog
Offsite backups (30 dagen)Hoog
File integrity monitoringMedium
Admin-URL wijzigenMedium

Wanneer bel je een specialist?

Bel een specialist als:
  • Je geen SSH-toegang hebt
  • Je geen schone backup kunt vinden
  • Je na het schoonmaken opnieuw gehackt wordt
  • Er aanwijzingen zijn voor een skimmer
  • Je de aanvalsvector niet kunt identificeren

Bij coding.nl helpen we webshop-eigenaren met spoed bij dit soort incidenten.

Veelgestelde vragen

Moet ik aangifte doen bij de politie?

Niet verplicht, maar aan te raden bij financiële schade voor klanten. Meld via 0900-8844 of het digitaal loket.

Moet ik mijn betaalprovider informeren?

Ja, absoluut. Neem direct contact op met je PSP (Mollie, Adyen, MultiSafepay). Zij kunnen transacties monitoren op fraude.

Hoe lang duurt het herstel gemiddeld?

Voor een specialist: 4 tot 8 uur. Zonder ervaring kan het dagen duren.

Hoe weet ik of mijn shop nu echt schoon is?

Voer meerdere scans uit met verschillende tools, controleer handmatig verdachte locaties, en herstel bij voorkeur vanuit een gevalideerde schone backup. Blijf daarna logs monitoren.

Wat kost een hack gemiddeld?

Van een paar honderd euro voor technisch herstel tot tienduizenden euro's inclusief reputatieschade, klantvergoedingen en gemiste omzet.

Ruthger Idema

Geschreven door Ruthger Idema

15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.

Meer over ons team →
Deel dit artikel:

Wil je jouw e-commerce naar het volgende niveau?

Plan een vrijblijvend gesprek met onze experts over Magento, Shopify of Laravel maatwerk.

Plan een Tech Check