WordPress plugin supply chain risk assessment in 5 min

Een WordPress plugin supply chain risk assessment is sinds EssentialPlugin (april 2026) geen luxe meer: een plugin die je vandaag installeert kan morgen een risico zijn.

· 10 september, 2026 · 16 min lezen
In het kort
  • Een WordPress plugin supply chain risk assessment kost 5 minuten per plugin: last-update, committers, CVE-status, support-activiteit en code-smell nalopen.
  • Het gevaarlijkste signaal is een eigenaarwissel, en die zie je in de Committers-lijst op de Advanced-tab van de plugin-pagina op WordPress.org.
  • Zet auto-updates alleen aan voor plugins met security-oversight, want bij EssentialPlugin was auto-update juist het vehikel voor de backdoor.
  • Blijf onder 20 actieve plugins en herhaal de audit elk kwartaal, anders groeit je audit-schuld sneller dan je hem kunt inlopen.
In dit artikel

WordPress plugin supply chain risk assessment was tot voor kort iets voor enterprise-teams. Sinds april 2026 is het gereedschap voor elke webmaster van een mkb-site. Een klant uit Gent belde in de week na de EssentialPlugin-bekendmaking paniekerig: hij had 32 actieve plugins draaien, wist niet welke risico liepen en welke veilig waren.

In een halfuur werk hebben we de lijst gereduceerd tot 8 zorgpunten. Drie daarvan zijn direct vervangen, vijf gingen onder verscherpte monitoring. Een plugin die je vandaag netjes installeert, kan morgen zijn overgenomen. De aanvaller wacht dan 8 maanden voordat de backdoor activeert.

Reken op 5 minuten per plugin voor de eerste audit, en 2 uur per kwartaal voor je hele site.

WordPress plugin supply chain risk assessment

WordPress plugin supply chain risk assessment: wat er onder de motorkap gebeurt

Supply-chain risico is een nieuwe klasse dreiging. Klassieke malware infecteert je site via een lek in verouderde code. Supply-chain-compromise infecteert je site via een geldig update-kanaal, met een geldige signature van de plugin-repository. Je hebt niks fout gedaan, en toch draai je binnen 24 uur backdoor-code.

Ik zie drie klassen supply-chain risico in mijn praktijk:

1. Ownership-verandering. Een plugin met een goede reputatie wordt verkocht op Flippa of via een private deal. De nieuwe eigenaar erft de commit-access, de gebruikers-vertrouwensbasis en de auto-update kanaal. Als de nieuwe eigenaar malicious is, plaatst hij binnen weken code die maandenlang dormant blijft.

De EssentialPlugin-case is de meest complete versie van deze aanval die WordPress ooit heeft gezien. Verkoop aan “Kris” via Flippa medio 2025, eerste malicious commit v2.6.7 op 8 augustus 2025, activatie op 5-6 april 2026.

2. Compromised developer-account. Een legit ontwikkelaar wordt gephisht. Zijn WP.org-account wordt gebruikt om een malicious release te pushen. Voor de review-tijd van WordPress.org (typisch 24-72 uur) draait de payload al op geïnfecteerde sites.

Bij npm gebeurt dit constant. Op 31 maart 2026 kreeg een North Korea-actor toegang tot het axios-account (100M downloads/week) en publiceerde een RAT-payload. Drie uur later was hij gepakt. Maar de builds die in dat window fresh installeerden, hebben de malware in de pipeline.

3. Abandoned plugin met CVE. De developer stopt met onderhoud. Een security researcher publiceert een CVE. Voordat een aanvaller de exploit kan gebruiken hoeft hij alleen wp-content/plugins/ te scannen. Deze klasse is de meest voorkomende in mkb-sites, want plugins die “gewoon werken” blijven jaren staan zonder dat iemand ze audit.

Ter verdieping: Patchstack heeft de EssentialPlugin-analyse publiek gemaakt en Rescana bracht een complete post-mortem met de 400.000+ getroffen sites.

Case-study: EssentialPlugin timeline en payload

Om te begrijpen wat een risk assessment moet detecteren, ontleed je één casus in detail. De EssentialPlugin-timeline is publiek gedocumenteerd.

  1. Late 2024 tot medio 2025: Minesh Shah (originele developer met goede reputatie) listte de EssentialPlugin-portfolio op Flippa nadat de omzet 35-45% was gezakt. Een koper die zich “Kris” noemde (SEO/crypto/gambling-marketing achtergrond) kocht de hele set voor een zes-cijferig bedrag; ownership-transfer rond mei 2025.
  2. 8 augustus 2025: eerste commit van de nieuwe eigenaar. Versie 2.6.7 werd gepusht met een PHP object-injection-backdoor (deserialization gadget chain) die alle 30+ plugins raakte, verstopt onder de changelog-regel “Check compatibility with WordPress version 6.8.2”.
  3. Augustus 2025 tot april 2026: backdoor bleef dormant (circa 8 maanden). Gebruikers zagen legit-lijkende updates in wp-admin en installeerden ze via auto-update.
  4. 5-6 april 2026: activatie via het endpoint analytics.essentialplugin.com. Het injection-window op 6 april duurde 6 uur en 44 minuten (04:22 tot 11:06 UTC).
  5. Payload: cloaked spam-pagina’s. Bezoekers zagen niks abnormaals; Googlebot kreeg 200+ spam-pagina’s per site over online casino’s en online-gambling geïndexeerd. Rankings crashten binnen 48 uur.
  6. 7 april 2026: WordPress Plugin Review team sloot alle 31 plugins van de EssentialPlugin-auteur op één dag. Zie TechCrunch coverage.
  7. 21 mei 2026: WordPress.com publiceerde een officiële response met lessons-learned en aangescherpte review-procedures.

Cijfers: 31 plugins, 400.000+ geïnfecteerde WordPress-sites, 8 maanden dormant. Geïnfecteerde plugins bleven zichtbaar in wp-admin met een groen “Active”-icoon tot 7 april. Er was geen manier voor een gemiddelde site-owner om dit vooraf te detecteren via de WP.org-plugin-pagina. Wat je wél had kunnen zien: recente eigenaarwissel via commit-history op de “Advanced” tab van de plugin-pagina.

Red flags checklist: welke plugins direct auditen

Deze tabel gebruik ik als eerste filter. Elk red-flag scoort een plugin op de shortlist voor diepere assessment.

SignaalErnstActie
Plugin >12 maanden geen updateHoogWeiger install of vervang
Ownership recente wijziging (<6 maanden)Zeer hoogNauwer monitoring + verscherpte review
Naam ex-developer verdwenen van websiteHoogInvestigate motivatie eigenaarwissel
Website plugin bestaat niet meer, alleen WP.orgHoogOverweeg vervanging binnen 30 dagen
Code minified/obfuscated in main plugin fileZeer hoogDirect verwijderen
Nieuwe committer <3 maanden actiefMiddelMonitor volgende 2-3 releases
Support forum quasi-stil >60 dagenMiddelVraag vervanging
Website ge-parked of domain-for-saleZeer hoogDirect verwijderen
Reviews wisselend/afgekeurd na eigenaar-wisselHoogInvestigate + monitor
Plugin claimt >10.000 installs maar geen changelogMiddelVerificatie via CVE-database
Update-frequentie plotseling verdrievoudigdHoogCheck commits, mogelijk shipping-frenzy vóór backdoor
Wordt niet meer genoemd in Patchstack of WPScanMiddelCross-check via community forums

Signalen van ownership-verandering: wat je op WP.org kunt zien

Voordat de EssentialPlugin-case brak, keek bijna niemand naar deze signalen. Nu wel. WordPress.org zelf documenteert dat commit-access wordt beheerd via de Advanced-tab van elke plugin-pagina.

SignaalWaar te vindenZichtbaar effect
Nieuwe committer verschijntwordpress.org/plugins/{slug}/advanced/Nieuwe naam in Committers-lijst
Ex-developer verwijderdCommitters-lijst historisch vergelijkenNaam verdwenen sinds vorige controle
Auteurs-URL wijzigtPlugin-pagina header, link naar auteurVerwijst naar andere website
Support-repliers wisselenSupport-forum threadsAnder accountnaam beantwoordt tickets
Changelog stijl-breukreadme.txt in plugin-zipAndere schrijfstijl, andere versioning
Contact-e-mail wijzigtWebsite pluginNieuw domein of gmail-adres
Roadmap plotseling andersRecente changelog entriesFocus verschuift van bugfix naar “features”

5-minuten pre-install audit ROADMAP

Deze workflow doe ik voor elke nieuwe plugin voordat ik hem op een klant-site activeer. Reken op 5 minuten totaal.

  1. Last-updated check (30 sec). Ga naar de WP.org plugin-pagina, kijk in de rechter-sidebar bij “Last updated”. Meer dan 6 maanden geleden en de plugin heeft geen mature-stable reputatie? Weiger de install. Meer dan 12 maanden? Direct weigeren.
  2. Committers-check (60 sec). Klik door naar de “Advanced” tab van de plugin (URL-format: wordpress.org/plugins/{plugin-slug}/advanced/). Scroll naar het “Committers” segment. Één naam die al jaren commit? Groen. Nieuwe naam pas verschenen in de laatste maanden? Rode vlag. Meerdere ex-committers die weg zijn? Zeer rode vlag.
  3. Google-search naar acquisitie (90 sec). Zoek op: "plugin-slug" acquired OR sold OR "new owner". Ook Twitter/X: "plugin-slug" sold. Bij een legit overname (Elementor door WPTools bijvoorbeeld) vind je aankondigingen op blog en persberichten. Bij een silent takeover vind je niks; dat is een yellow flag omdat het niet transparant is.
  4. Patchstack + WPScan CVE-search (60 sec). Open Patchstack database en WPScan CVE feed. Zoek op plugin-naam. Actieve CVE’s zonder patch = direct weigeren. Historische CVE’s die netjes gepatcht zijn = OK, dat toont juist responsible disclosure van de developer.
  5. Support-forum activiteit (30 sec). Terug op de plugin-pagina, klik “Support”. Kijk of er in de laatste 30 dagen threads beantwoord zijn door de developer. Actief antwoorden = groen. Stilte >60 dagen = plugin drifted naar abandoned status.
  6. Code smell check voor developers (60 sec). Download de plugin-ZIP via de “Download” knop. Unzip lokaal. Open het main PHP-bestand (meestal plugin-slug/plugin-slug.php). Zie je obfuscated code, base64-blocks, eval() op runtime-strings? Weg ermee. Legit plugins hebben leesbare, gecommentarieerde PHP.

Totaal: 5 minuten. Voor kandidaten die alle 6 stappen passeren: install en monitor. Voor plugins die op stap 2 al struikelen: zoek een alternatief.

Plugin risico-check voor installatie

Beoordeel zes signalen. Je krijgt een snelle red-flag-score, een nuchter verdict en een controlelijst voor je pre-install audit.

1. Vul de pluginsignalen in

Een enkel signaal is geen bewijs. De combinatie bepaalt of extra onderzoek nodig is.

Installatievolume zegt niet dat een plugin veilig is. Het is alleen een contextsignaal.

0 van 12 risicopunten Groen: installeren na normale controle

Op basis van je antwoorden zijn er weinig opvallende signalen. Controleer de basis voordat je installeert.

    2. Pre-install audit 0 van 6 gecontroleerd

    Gemarkeerde punten verdienen op basis van je antwoorden eerst aandacht.

    Zes controles voor je besluit
    Plan een kwartaalreview. Controleer opnieuw op ownership-wijzigingen, stilgevallen onderhoud en nieuwe CVE’s. Verwijder plugins die je niet gebruikt.

    Een indicatie op basis van je antwoorden. Een mogelijk gecompromitteerde plugin vraagt om een echte incident-aanpak, niet alleen om deze score.

    Monitoring tools comparison

    Vervolg-vraag na installatie: hoe blijf je vroeg op de hoogte als een van je actieve plugins in de gevarenzone belandt? Onderstaande tools dekken samen het spectrum van gratis-passief tot betaald-proactief.

    ToolPrijs 2026Wat monitoringAlert-methodeGDPR
    Patchstack CommunityFree (tot 3 sites)CVE + XSS + auth-bypassEmail + dashboardJa
    Patchstack Developervanaf $5/site/maandZero-day virtual patchingEmail + webhookJa
    Wordfence freeFreeThreat feed (30-dagen delay)DashboardJa
    Wordfence Premium$149/jaarReal-time threat feed + 2FADashboard + emailJa
    WPScan freeFree, 25 API-calls/dagCVE databaseAPI + dashboardJa
    WPScan EnterpriseOn-request quoteFull CVE-feed + APIAPI + dashboardJa
    ManageWP Standard$1-2/site/maandUpdate monitoringDashboard alertsJa
    Solid Security Pro$99/jaar single-siteCVE + updates + 2FADashboardJa
    MalCare Protect$99/jaar per siteCloud-scan + malwareDashboard + emailJa

    Voor mkb-sites raad ik meestal Patchstack Community + Wordfence Premium aan: samen $149/jaar gedekt voor CVE-alerts én real-time threat firewall. Voor multi-site freelancers (5+ klanten) is ManageWP een investering die zich terugverdient in tijd-per-audit.

    Quarterly audit workflow ROADMAP

    Elke drie maanden loopt elke actieve site door deze cyclus. Reken op 2 uur per site voor de eerste keer, 45 minuten voor herhaal-audits als de plugin-lijst stabiel is.

    1. WP-CLI export van plugin-lijst met versie + last-update datum (5 min)
    2. Cross-reference tegen Patchstack CVE database + WPScan (20 min voor 20 plugins)
    3. Committers-check op WP.org voor elke plugin. verify no ownership changes since last audit (30 min)
    4. Test-restore laatste backup op staging. bevestig backup-integriteit en restore-time (20 min)
    5. Log de audit-uitkomst (5 min). datum, actieve plugins, red-flags, actie-items
    6. Incident-response drill (15 min per kwartaal). simuleer één scenario (bijv. “welke stappen als plugin X morgen als backdoored gepubliceerd wordt”). Actie: documenteer de response-tijd.
    7. Documenteer voor de klant. een korte email met verzicht: X plugins actief, Y zorg, Z actie ondernomen. Klanten waarderen zichtbaarheid.

    Concrete commands: WP-CLI, bash, PHP

    Deze snippets doen het zware werk in de audit-workflow.

    WP-CLI plugin audit (SSH-users):

    # Alle actieve plugins met last-update
    wp plugin list --status=active --fields=name,version,update,update_version
    
    # Plugin verify checksums (core + WP.org plugins)
    wp core verify-checksums
    wp plugin verify-checksums --all
    
    # Export plugin-lijst voor cross-reference tegen CVE-databases
    wp plugin list --format=csv > /tmp/plugins-$(date +%Y%m%d).csv
    
    # Filter plugins die niet in laatste 180 dagen updated zijn
    wp plugin list --fields=name,version,update,update_version --format=json \
      | jq '.[] | select(.update == "available" or .version == null)'

    Bash cron voor Patchstack RSS-feed weekly digest:

    #!/bin/bash
    # Weekly plugin CVE-check via Patchstack RSS
    # Draai via cron: 0 8 * * 1 /usr/local/bin/patchstack-digest.sh
    
    FEED="https://patchstack.com/feed/"
    OUTPUT=$(curl -s "$FEED" | grep -A2 "critical\|high" | head -60)
    
    if [ -n "$OUTPUT" ]; then
        echo -e "Patchstack weekly digest:\n\n$OUTPUT" \
          | mail -s "Patchstack weekly CVE-digest $(date +%Y-%m-%d)" \
                 webmaster@lypii.nl
    fi

    PHP-snippet voor plugin-inventaris export via functions.php (voor sites zonder SSH):

    add_action('admin_menu', function() {
        if (current_user_can('administrator')) {
            add_management_page(
                'Plugin Audit',
                'Plugin Audit',
                'manage_options',
                'plugin-audit',
                function() {
                    if (!function_exists('get_plugins')) {
                        require_once ABSPATH . 'wp-admin/includes/plugin.php';
                    }
                    $plugins = get_plugins();
                    echo '<div class="wrap"><h1>Plugin Audit Export</h1><pre>';
                    foreach ($plugins as $file => $data) {
                        printf(
                            "%s | v%s | %s\n",
                            esc_html($data['Name']),
                            esc_html($data['Version']),
                            esc_html($data['PluginURI'])
                        );
                    }
                    echo '</pre></div>';
                }
            );
        }
    });

    Grep-check op site na infectie-vermoeden:

    # Zoek naar EssentialPlugin backdoor-endpoint
    grep -rn "analytics.essentialplugin.com" /var/www/html/wp-content/
    
    # Zoek naar veelvoorkomende serialize-payload patronen
    grep -rn "O:8:\"stdClass\"" /var/www/html/wp-content/plugins/
    grep -rn "unserialize(" /var/www/html/wp-content/plugins/
    
    # Modification-tijd van plugin-files na verdachte activatie-datum
    find /var/www/html/wp-content/plugins/ -name "*.php" \
         -newermt "2026-04-05" -type f -ls

    Per hostingpaneel: plugin-inventaris ophalen

    Niet iedereen heeft SSH. Op alle Nederlandse mkb-hostings kun je de plugin-map inzien via de file manager.

    Via DirectAdmin (Antagonist, Vimexx, mijn.host)

    1. Log in → File Manager → open public_html/wp-content/plugins/
    2. Kolommen sorteren op Last Modified
    3. Elke plugin-directory heeft een hoofdbestand {slug}.php met plugin-metadata in de header

    Via Plesk (o.a. TransIP zakelijk, Combell)

    1. Domains → jouwsite.nl → Files
    2. Navigeer naar httpdocs/wp-content/plugins/
    3. Klik plugin-directory → hoofdbestand openen om header-metadata te lezen (Name, Version, Author)

    Via cPanel (o.a. Neostrada)

    1. File Managerdomains/jouwsite.nl/public_html/wp-content/plugins/
    2. DirectAdmin toont geen hidden files standaard; klik het oogje in de toolbar

    Via Hostinger hPanel

    1. Files → File Managerdomains/jouwsite.nl/public_html/wp-content/plugins/
    2. Hostinger heeft een ingebouwde Malware Scanner die je gratis kunt draaien als je op een acute infectie vermoedt

    Via Managed WordPress (Kinsta, WP Engine, Cloudways)

    1. Dashboard → site kiezen → File Browser of SFTP
    2. Kinsta biedt ingebouwd Kinsta Malware Security Pledge (dashboards → Security)
    3. WP Engine heeft threat detection binnen “Site Insights”

    3 concrete scenario’s uit mijn praktijk

    Scenario A: EssentialPlugin post-incident cleanup

    Klant met 4 getroffen plugins (Popup Anything, Login Logout Menu, Accordion, Countdown Timer Ultimate). Site had rankings verloren in 72 uur na 5 april 2026.

    Workflow:

    1. Alle 4 plugins verwijderd via WP-CLI (wp plugin delete {slug}. nooit alleen deactiveren)
    2. Grep op analytics.essentialplugin.com in database, verwijdering van geïnjecteerde posts
    3. Voor elk verwijderde plugin een vervanging gevonden: Popup Anything → Popup Maker; Login Logout Menu → Nav Menu Roles; Accordion → Ultimate Blocks; Countdown Timer → Otter Blocks
    4. Alle admin-passwords reset (backdoor had potentieel credentials kunnen lekken)
    5. Search Console Security Issues → Request Review
    6. Alle backups van vóór 5 april 2026 apart bewaard voor forensics

    Totaal-tijd: 4 uur werk. Ranking-herstel: 3 weken na Google-review goedkeuring.

    Scenario B: Legitimate acquisition (hoe onderscheid je van malicious)

    Elementor werd in 2022 overgenomen; Yoast is verkocht aan Newfold Digital. Beide zijn legit. Hoe onderscheid je die van EssentialPlugin?

    Kenmerken van een legit acquisitie:

    1. Publieke aankondiging op zowel de plugin-website als de acquirer-website
    2. Persbericht in Wall Street Journal / TechCrunch / Search Engine Land
    3. Founder blijft als adviseur of C-level bij het nieuwe bedrijf gedurende transitie
    4. Roadmap-continuïteit: bestaande features blijven, nieuwe features conform vorige richting
    5. Support-team blijft grotendeels op zijn plaats
    6. Changelog blijft dezelfde schrijfstijl gedurende overgangsperiode

    Kenmerken van een risky acquisitie:

    1. Geen publieke aankondiging, alleen commit-history op WP.org verraadt de wissel
    2. Ex-developer’s website offline of geparked
    3. Nieuwe owner heeft geen zichtbare track-record in WordPress-ecosystem
    4. Directe roadmap-breuk: nieuwe versie brengt features die de originele scope niet dekten
    5. Support-forum quasi-stil na de wissel

    Scenario C: Abandoned plugin met CVE, vervangings-strategie

    Klant draait een plugin (naam vergunt, was niche-plugin voor form-integratie) waarvoor sinds november 2024 geen update meer verschenen was. In januari 2026 verscheen een CVE (SQL-injection). Developer reageerde niet.

    Vervangings-workflow zonder site te breken:

    1. Op staging: de vervangende plugin installeren + configureren
    2. Bestaande data-export uit oude plugin (formulieren-submissions, settings)
    3. Import in nieuwe plugin (indien mogelijk) of handmatige migratie
    4. Test-flow: submit een form, verify data komt door in de backend
    5. Op productie: op tijdstip laag-verkeer (bijv. dinsdagochtend 06:00 CET) → deactiveer oude → activeer nieuwe → live-test → verwijder oude plugin volledig
    6. Update alle DNS-of externe integraties (bijv. Zapier-webhooks)
    7. Klant informeren: welke plugin vervangen, waarom, wat de impact is voor hun workflow

    Reken op 2 tot 4 uur voor een niet-triviale vervanging.

    Patchstack CVE-database met severity-badges

    Preventie: long-term supply-chain hygiëne

    Assessment op zich is niet genoeg. Je hebt een set gedragsregels nodig die het risico structureel minimaliseren.

    1. Minimaliseer plugin-count. Richt op maximaal 20 actieve plugins voor mkb-sites. Elke plugin is een aanvalsoppervlak plus een supply-chain risico. In audits ontdek ik regelmatig dat sites 40+ plugins draaien waarvan de helft ongebruikt of vervangbaar door één multi-purpose plugin.
    2. Voorkeur voor multi-purpose plugins. één page-builder (Elementor/Gutenberg blocks) vervangt vaak slider-plugin + popup-plugin + gallery-plugin + FAQ-plugin. Minder plugins = minder supply-chain-koppelvlakken.
    3. Auto-updates ALLEEN voor plugins met Patchstack-coverage. auto-updates zijn een productiviteitswin voor plugins waarvan je weet dat er security-oversight is. Zonder oversight riskeer je een EssentialPlugin-scenario, waarbij auto-update juist het aanvalsvehikel is. In wp-admin: Plugins → per plugin “Enable auto-updates” alleen aanvinken voor de gemonitorde set.
    4. Quarterly full audit. de 2-uurs-per-kwartaal workflow uit de roadmap hierboven. Niet skippen.
    5. Backup vóór elke bulk-update. een gescheiden UpdraftPlus of hosting-native backup vlak vóór de update-batch. Restore mogelijk binnen 30 minuten als de update misgaat.
    6. File-integrity monitoring. Wordfence Premium doet dit automatisch, alternatief is een dagelijkse cron met wp core verify-checksums en wp plugin verify-checksums --all die e-mailt bij mismatch.
    7. Beperkte admin-users. één admin per site (jij als webmaster), rest laagste rol. Als een backdoor credentials exfiltreert, verkleint dit de blast radius.

    Wat als je een compromised plugin hebt gebruikt. 8-step incident ROADMAP

    Als je in de EssentialPlugin-context (of soortgelijk) achter blijkt te zitten:

    1. Direct verwijderen (niet alleen deactiveren). een deactivated plugin blijft in wp-content/plugins/ en de backdoor-code blijft aanwezig. Gebruik wp plugin delete {slug} of verwijder handmatig via file manager.
    2. Restore van backup vóór eerste installatie. als je backups hebt van vóór de datum dat de compromised versie geïnstalleerd werd, restore die. Dat is sneller en veiliger dan handmatig alle payloads verwijderen.
    3. Wachtwoorden reset. WP-admin, FTP/SFTP, database, hostingpaneel én admin-e-mailadres. Elk krachtig, elk uniek, opgeslagen in een wachtwoordmanager (Bitwarden Teams $6/user/maand, 1Password Teams $19.95/maand voor 10 users).
    4. Malware-scan met twee tools naast elkaar. Wordfence full scan + Sucuri SiteCheck remote. Verschillende signature-databases, verschillende blind spots.
    5. Check .htaccess + wp-config.php + wp-content/uploads op suspicious files. PHP in uploads-map is per definitie fout. Rogue rewrite-rules in .htaccess filter je met een diff tegen de default WP-block.
    6. Database-check. onbekende admin-users? Gewijzigde siteurl/home in wp_options? Recente posts met spam-content? Zie mijn artikel WordPress gehackt malware redirect fix voor de SQL-queries.
    7. Google Search Console Security Issues → Request Review. pas na complete cleanup, met concrete beschrijving van wat je hebt opgeruimd. Vage aanvragen worden afgewezen.
    8. Klanten notify volgens AVG 72-uur meldplicht. als PII (persoonsgegevens, e-mailadressen, wachtwoord-hashes, bestelhistorie) potentieel ingezien is, meld je binnen 72 uur bij de Autoriteit Persoonsgegevens. Bij twijfel meld je: verzwijgen wordt zwaarder gestraft.
    WP-CLI plugin-list met last-update kolom

    Wanneer een echte webmaster inschakelen

    Doe deze audits zelf als je site onder 20 plugins blijft. Je hebt dan 2 uur per kwartaal nodig en wat basisvertrouwen met de terminal. In deze gevallen bel je beter iemand in.

    1. Je hebt een EssentialPlugin-achtig incident en klanten klagen al over onbereikbare functies of spam-content in Google.
    2. Je draait 50+ plugins op één site en de audit is binnen 2 uur niet uitvoerbaar.
    3. Je draait een webshop met live iDEAL-transacties en de assessment moet gebeuren zonder downtime.
    4. Je Search Console Security Issues is twee keer afgewezen na eigen cleanup-pogingen.
    5. Je draait multi-site of multi-tenant hosting (WP Multisite of MainWP-cluster) waarbij één supply-chain-breach 20+ sites raakt.

    Voor mijn klanten kost een first-time audit gemiddeld 3 tot 4 uur (€210 tot €280), inclusief documentatie, quarterly-schema opzetten en installatie van monitoring-tools. Herhaal-audits zitten meestal onder de 1 uur.

    Vast door dit type incident?

    Als je twijfelt over de veiligheid van je actieve plugins of je bent ná EssentialPlugin nog niet aan een audit toegekomen, stuur me een mail via /contact/. Ik doe een eerste risk-assessment in 30 minuten (kosteloos voor bestaande klanten, €70 fixed fee voor nieuw), en lever een lijst met actie-items plus een quarterly-schema op. Voor spoedgevallen (actieve infectie, bezoekers die spam zien, Google-flag): binnen 4 uur reactie tijdens kantoortijden.

    Serhii Lypii
    Wat je krijgt

    Loop je vast met beveiliging?

    Stuur me een mail via /contact/. Binnen 24 uur reactie tijdens kantooruren.

    Contact
    Vond je dit nuttig? Deel het:
    FAQ

    Veelgestelde vragen

    Mag ik Elementor Pro nog vertrouwen na de acquisitie-golf in de WordPress-ecosystem?
    Ja. Elementor werd overgenomen door legit VC-partijen, met publieke aankondiging en behoud van founder-betrokkenheid. De risicoprofielen die ik hierboven schetste bij scenario B zijn afwezig. Wat ik wel doe: Elementor updates test ik altijd eerst op staging (major-releases 2 dagen laten "settlen" voordat productie deploy), en ik monitor Patchstack op Elementor-CVE's.
    Wat is het verschil tussen supply-chain en normale malware?
    Normale malware infecteert je site via een lek (unpatched CVE, zwak wachtwoord, phishing). Supply-chain infecteert je site via een geldig update-kanaal. Dat betekent: je hebt niks fout gedaan. Auto-update leverde de malicious code. De detectie is moeilijker omdat de "signature" (WP.org plugin, groen icoon in wp-admin) juist de basis is voor vertrouwen. Dit is waarom pre-install audit + monitoring belangrijker wordt dan reactief malware-scannen.
    Moet ik alle premium-plugins vervangen door free alternatieven?
    Nee. Premium plugins hebben vaak actievere onderhoudsteams, snellere CVE-fixes, dedicated support. De keuze premium vs free is orthogonaal aan supply-chain risico. Wat wel telt: is de developer transparent over ownership, roadmap, changelog, en beveiliging? Elegant Themes (Divi), Awesome Motive (WPForms, MonsterInsights), StellarWP (SolidWP, LearnDash) zijn premium en transparent. EssentialPlugin was free en werd toxic. Meten doe je op transparantie, niet op prijs.
    Hoe controleer je een theme (niet alleen plugins)?
    Themes hebben dezelfde supply-chain-risico's. Werkwijze: dezelfde 5-min audit workflow, maar voor het theme. Check WP.org theme-pagina (voor free themes) of de developer-website (voor premium). Themeforest-themes zijn structureel risicovoller omdat de review-standaard van Envato lager is dan die van WP.org core-team. Voor mkb-sites raad ik meestal een Gutenberg-native theme (bijv. Kadence, GeneratePress, Astra) plus custom CSS aan boven een zwaar ThemeForest-template.
    Wat als een klant een supply-chain incident heeft en mij niet heeft ingehuurd?
    Dan is de emergency-cleanup mijn eerste prioriteit. Ik factuur uurtarief (€70/uur) en verwacht start-toegang binnen 30 minuten (SFTP + WP-admin + hosting-panel). Daarna werk ik in blokken van 4 uur. Dat gaat door tot de site schoon is, de Search Console-review is aangevraagd en de AVG-melding (indien nodig) is gedaan. Preventie-workflow en quarterly-schema komen daarna in een follow-up gesprek.
    Serhii Lypii
    Over de auteur

    Serhii Lypii

    Freelance webmaster · Terneuzen

    Sinds 2012 werk ik met websites en leverde ik ruim 210 projecten op. Ik help mkb-ondernemers met onderhoud, snelheid, beveiliging en praktische automatisering. Nuchter, zonder hype.

    Ik schreef dit artikel op .

    Meer over Lypii
    Even sparren over je site?

    Loop je ergens tegenaan of twijfel je over je site? Ik denk graag mee. Kies hieronder hoe je contact opneemt.

    Reactie binnen 4 uur op werkdagen
    Navigatie
    Home Over mij Kennisbank
    Contact
    +31 6 39 56 93 03 serhii@lypii.nl WhatsApp
    Stuur een bericht