Kort gezegd: Advertentieaccounts worden niet gehackt door het wachtwoord te raden. De gedocumenteerde methoden zijn een gestolen browsersessie, een phishingproxy die het wachtwoord en de eenmalige code doorstuurt, een nepverzoek voor een manageraccount of partner, een gestolen API-token en toegang die nooit is ingetrokken. Bij Lynt voeren we daarom elke 30 minuten een check uit op elk Google Ads- en Meta-account van klanten. We controleren of het account nog actief is. We controleren of de betaalmethode of bestedingslimiet is gewijzigd. We controleren of de advertenties nog naar het klantdomein wijzen en of iemand nieuw toegang heeft gekregen. Elke wijziging gaat naar Slack en naar een interne pagina. Daar keurt de verantwoordelijke persoon de wijziging goed of af. De implementatiebriefing is beschikbaar als download.
Aanvallers raden wachtwoorden van Google Ads- of Facebook-advertentieaccounts niet. Beveiligingsrapporten uit 2025 en 2026 beschrijven vijf manieren om binnen te komen. Bij geen van deze methoden is het wachtwoord de zwakke plek.
- Een gestolen browsersessie. Infostealer-malware kopieert cookies uit een ingelogde browser. Recorded Future indexeerde 276 miljoen inloggegevens met een actieve sessiecookie in 2025. Een cookie vereist geen wachtwoord en geen tweede factor (Recorded Future). Aanvallers leveren Ducktail als nepvacatures voor marketingfuncties (WithSecure). Ducktail is een malwarefamilie geschreven voor Facebook Business-accounts.
- Een phishingproxy die de tweestapsverificatie doorstaat. Het slachtoffer typt het echte wachtwoord in op een pagina die eruitziet als de echte inlogpagina. Het slachtoffer keurt de prompt goed. De proxy behoudt vervolgens de sessie die de echte site aanmaakt. Medio 2025 zat één gehuurde phishingkit achter 62 % van de phishingpogingen die Microsoft blokkeerde (Microsoft). Criminelen hebben Google Search-advertenties gekocht voor de zoekopdracht ‘Google Ads’ om slachtoffers naar zo’n proxy te sturen (Malwarebytes).
- Een nepuitnodiging. Op Meta dient de aanvaller een partnerverzoek in. De loktekst zit in de bedrijfsnaam, terwijl de e-mail zelf een echt bericht van Meta is (Huntress). Op Google stuurt de aanvaller een nepuitnodiging voor een manageraccount die het slachtoffer naar een nagemaakte inlogpagina leidt. Bureaus verloren op deze manier hele manageraccounts terwijl tweestapsverificatie was ingeschakeld (Search Engine Land).
- Een gestolen API-token of app-toestemming. OAuth-toestemmingen en tokens van Meta-systeemgebruikers blijven werken na een wachtwoordreset. Ze werken totdat een beheerder ze intrekt.
- Toegang die niemand heeft ingetrokken. De freelancer van twee jaar geleden. Het vorige bureau. De voormalige marketingmanager van de klant.
Eenmaal binnen voegt de aanvaller een beheerder toe en koppelt een bovenliggend account. Daarna wijzigen ze de betaalmethode of de bestedingslimiet. Ze lanceren campagnes en wijzen de advertenties naar een domein dat niet van de klant is. Mimecast telde 1,86 miljoen detecties van advertentieaccountdiefstal in de tweede helft van 2025. Een gestolen account levert een paar honderd dollar op (Mimecast). In de gepubliceerde zaken ontdekten de bureaus de diefstal zelf. Dit gebeurde vaak de volgende ochtend.
Waarom we een 30-minutencheck hebben gebouwd
We beheren klantaccounts op Google Ads en Meta. Onze eerdere check draaide elke 2,5 uur en keek alleen naar gebruikerstoegang. In gepubliceerde gevallen liep de schade binnen een dag op. Toegang is slechts één van de dingen die veranderen in een overgenomen account. De check draait nu elke 30 minuten en dekt meer. De check controleert accountstatus, betaalmethode, bestedingslimiet, advertentiebestemmingen en gebruikerstoegang.
Deze versie ging live in september 2026. De software leest elk beheerd account op beide platforms elke 30 minuten uit. De lijst met wie toegang heeft op Google wordt nog vaker uitgelezen, elke 18 minuten. Eén keer per dag leest de monitor ook elk account volledig opnieuw uit. Dit dekt de data die de runs van 30 minuten niet raken. De software wijzigt niets in beide platforms. Een mens neemt de beslissingen.
Wat de software controleert
| Check | Google Ads | Meta |
|---|---|---|
| Is het account actief? | Accountstatus uitgelezen via ons manageraccount. Statussen omvatten opgeschort, geannuleerd of gesloten. De API geeft geen reden voor een opschorting en de waarschuwing vermeldt die beperking. | Accountstatus en reden voor uitschakeling. Dit omvat de eigen gehackt-markering van Meta. |
| Is er een betalingsprobleem? | Accountbudget uitgeput op gefactureerde accounts. De API toont geen geweigerde kaart en geen prepaid saldo. De waarschuwing vermeldt deze beperking. | Financieringsbron gewijzigd. Bestedingslimiet gewijzigd of gereset. Account gemarkeerd wegens een openstaand saldo. |
| Wijzen de advertenties nog naar het klantdomein? | Wijzigingsgebeurtenissen plus het bestemmingspaginarapport van vandaag elke 30 minuten. De check leest gewijzigde items opnieuw uit. Een dagelijkse ronde dekt geconfigureerde URL's en trackingtemplates op elk niveau. | Links in elke actieve advertentie elke 30 minuten. Een volledige audit draait dagelijks. Deze audit vangt elke wijziging in URL-parameters op. |
| Heeft iemand nieuw toegang gekregen? | Van elke gebruiker zien we de rol, de aanmaakdatum en wie de gebruiker heeft uitgenodigd. Openstaande uitnodigingen. Managerkoppelingen in elke status. We zien een openstaand verzoek voordat de klant accepteert. We scannen onze eigen manageraccounts op dezelfde manier. | Via het activiteitenlogboek zien we welke gebruikers aan het account zijn toegevoegd of ervan zijn verwijderd. Partnerbedrijven toegevoegd of verwijderd. Dagelijkse checks dekken onze eigen Business Manager-gebruikers, systeemgebruikers en tweestapsverificatie-instellingen. |
| Zijn we onze eigen toegang kwijt? | Een account dat niet meer reageert, wordt gemarkeerd als onleesbaar totdat het weer reageert. | Een verloren toestemming activeert een waarschuwing. Een ongeldig token laat de run falen en rapporteert de fout. |
Het systeem vergelijkt elke lezing met de vorige momentopname. Elke toegevoegde, verwijderde of gewijzigde rij wordt een bevinding. Een toestemmingsfout wordt opgeslagen als een eigen status per account. Een toestemmingsfout wordt nooit opgeslagen als een leeg resultaat. De dagelijkse samenvatting kleurt rood wanneer een check niet binnen het geplande interval is uitgevoerd.
Hoe het team hiermee werkt
- Gerelateerde bevindingen op één account smelten samen tot één incident. Het incident wordt naar Slack gestuurd als een direct bericht naar de beoordelaar en als één record in het teamkanaal geplaatst. Het bericht en het record noemen beide de klant en de specialist die het account beheert. Dit gebeurt in twee regels met een link. Waarschuwingen herhalen zich niet tenzij het incident escaleert.
- De link opent een interne pagina die alleen binnen ons netwerk bereikbaar is. De pagina toont het account en wat er is veranderd. De pagina toont de vorige en de nieuwe status. Je ziet wanneer we de wijziging zagen en wat je moet verifiëren.
- Het goedkeuren van een gebeurtenis registreert de exacte reikwijdte. De goedkeuring benoemt exact wat is toegestaan, bijvoorbeeld een specifieke gebruiker met een specifieke rol, of een specifiek domein op een specifiek account. Een latere wijziging vereist een nieuwe beoordeling. Het afwijzen van een gebeurtenis houdt het incident open als ongeautoriseerd. Wanneer een nieuwe uitlezing een gebeurtenis niet kan bevestigen of weerleggen, sluit de beoordelaar deze met een notitie.
- Een mens lost het probleem op in Google Ads of Meta. Het incident sluit wanneer de volgende volledige lezing de verwijdering van de ongeautoriseerde status bevestigt.
- De statuspagina vermeldt de specialist voor elk account. De pagina toont de laatste succesvolle lezing en openstaande beslissingen. De pagina toont ook de data die we niet kunnen lezen. Eén samenvatting van twee regels voor beide platforms gaat om 07:00 uur naar Slack.
Waarom deze keuzes
- Elke 30 minuten. Het API-quotum bepaalt dat interval. Elke uitlezing en het verbruik van onze andere tools tellen mee voor hetzelfde quotum. De monitor houdt bij hoeveel van het quotum zijn eigen operaties verbruiken en rapporteert elke vertraagde run.
- Alleen-lezen met menselijke goedkeuring. Een nieuwe gebruiker of een nieuw domein is vaak het gevolg van een wijziging door een specialist of van de komst van een nieuw bureau. Het kan net zo goed een overname zijn. De monitor kan ze niet uit elkaar houden. De verantwoordelijke persoon kan dat wel, meestal binnen een uur.
- Fouten worden nooit verborgen. Een monitor die stilletjes stopt is erger dan geen monitor. Het zorgt er namelijk voor dat het team stopt met kijken. Een verlopen token laat de run falen en rapporteert de fout. Een toestemmingsfout krijgt een eigen status en wordt niet als nulresultaat geregistreerd. Een account dat niet kan worden gelezen, wordt elke dag gemarkeerd als niet gelezen.
- Limieten op elke waarschuwing. Groen mag nooit betekenen dat we het niet kunnen zien. Product-URL’s voor Shopping staan in Merchant Center en niet in de Ads API. Dynamic Search Ads kiezen hun bestemmingspagina tijdens de weergave. In onze eigen scan stond de link bij vier op de tien actieve Meta-advertenties in een paginabericht. Catalogusadvertenties bewaren hun link in de catalogus. Voor het uitlezen van paginaberichten of de catalogus zijn toegangsrechten nodig waarover onze app niet beschikt. Google toont geen geweigerde creditcards. De tweestapsverificatiestatus van klantgebruikers blijft onleesbaar op beide platforms. We dwingen tweestapsverificatie in plaats daarvan af in de accountinstellingen.
Download de checklist en de implementatiebriefing
Eén bestand. Een beveiligingschecklist om door te nemen met de mensen die je Google Ads- en Meta-accounts beheren. Het bestand bevat ook een implementatiebriefing voor de bovenstaande monitor. Het bevat voorbeeldquery's voor Google Ads API v23 en voorbeelden van uitlezingen via Meta API v24. Je vindt er voorgestelde detectieregels en de bekende dekkingshiaten. Een implementator moet het bestand aanpassen en testen voor jouw accounts. Laat je e-mailadres achter en het bestand is van jou.
Eén bestand, één lijst. Ik schrijf alleen als er iets te lezen valt.
Mijn Google Ads-account is gehackt. Wat doe ik als eerste?
Gebruik een vertrouwd apparaat. Isoleer elke computer die je verdenkt van een infectie. Meld de inbreuk direct bij Google Ads via het formulier voor gehackte accounts. Kun je het account nog openen? Pauzeer dan ongeautoriseerde campagnes. Bewaar de wijzigingsgeschiedenis en factureringspagina’s als bewijs. Verwijder bevestigde ongeautoriseerde gebruikers en managerkoppelingen onder Toegang en beveiliging. Ben je buitengesloten? Start dan het accountherstel van Google. Stel het wachtwoord opnieuw in. Controleer ingelogde apparaten. Trek toegang van derden in die je niet herkent. Controleer het herstel-e-mailadres, het telefoonnummer en de betaalmethoden. Meld ongeautoriseerde afschrijvingen bij je creditcardmaatschappij.
Hoe weet ik of mijn Facebook-advertentieaccount of Business Manager is gehackt?
Onderzoek elke onbekende gebruiker of partner. Onderzoek elke verwijdering van een beheerder die je niet hebt aangevraagd. Controleer elke wijziging in de financiering en elke campagne die je niet hebt geautoriseerd. Eén van deze signalen is genoeg om in te grijpen. Wacht niet op een volledige reeks of op de gehackt-markering van Meta. Beveilig het gecompromitteerde Facebook-account via het accountherstel van Facebook. Neem contact op met Meta business support over de getroffen onderdelen. Heb je nog toegang? Pauzeer dan ongeautoriseerde advertenties. Verwijder bevestigde ongeautoriseerde toegang. Vraag de bedrijfsbeheerder om integraties te controleren. Laat de bedrijfsbeheerder getroffen tokens van systeemgebruikers intrekken.
Waarom hield tweestapsverificatie dit niet tegen?
Een gestolen sessie laat een aanvaller handelen zonder opnieuw in te loggen. Er wordt dus niet om een tweede factor gevraagd. Een phishingproxy stuurt je wachtwoord en eenmalige code door naar de echte site. De proxy bewaart vervolgens de sessie die de echte site aanmaakt. Passkeys en hardwarebeveiligingssleutels weerstaan die vorm van phishing. Ze kunnen een sessie die al is gestolen van een geïnfecteerd apparaat echter niet beschermen. Het goedkeuren van een toegangsverzoek van een aanvaller is een aparte fout. Je hebt de aanvaller zelf geautoriseerd.
Kunnen de Google Ads API en Meta API de tweestapsverificatiestatus van gebruikers rapporteren?
Google Ads API v23 toont de status van tweestapsverificatie per gebruiker niet. De API toont ook de vereiste op accountniveau niet. Meta toont tweestapsverificatievelden voor een bedrijf dat je mag beheren. In onze test met partnertoegang ontbraken die velden in de API-respons voor het bedrijf van een klant. De API gaf een lege gebruikerslijst terug. Behandel een ontbrekend veld als onbekend en niet als uitgeschakeld. Verifieer de vereisten voor klanten in de instellingen.
Hoe vaak moet een bureau controleren wie toegang heeft tot advertentieaccounts van klanten?
Kies het interval op basis van potentiële uitgaven en toegangsrisico. Kijk ook hoe snel iemand kan reageren. In gepubliceerde gevallen gaven aanvallers binnen één dag tienduizenden dollars uit. Een nachtelijke controle laat een lang venster open op een account met hoge uitgaven. Wij peilen elk klantaccount elke 30 minuten. Een wekelijkse of driemaandelijkse toegangscontrole is een check bij vertrek. Het detecteert geen lopende overname. Gebruik daarom de beveiligings- en factureringsmeldingen van de platforms tussen de controles door.
Overschrijdt elke 30 minuten peilen het quotum van de Google Ads API?
Een klein portfolio komt niet in de buurt van de limiet. De berekeningen hieronder gaan ervan uit dat elke uitlezing elke 30 minuten draait. Met een interval van 30 minuten worden vier uitlezingen van toegangsgegevens elk 48 keer per dag uitgevoerd. Samen met zeven dagelijkse uitlezingen van bestemmingsgegevens en één uitlezing van wijzigingsgebeurtenissen om de 30 minuten komt dat neer op 247 operaties per account per dag. Dit is vóór gerichte herlezingen, nieuwe pogingen en andere tools. Basis-toegang staat 15.000 operaties per glijdende 24 uur toe. Met 247 operaties per account dekt dat maximaal 60 accounts. Een groter portfolio heeft een langer interval of Standaard-toegang nodig. Controleer het toegangsniveau van je Google Cloud-project. Reserveer capaciteit voor de hele werklast.
Begin met één account. Verifieer de gebruikerslijst en de goedgekeurde bestemmingen handmatig. Test vervolgens de detectie, een mislukte lezing en de levering van waarschuwingen. Breid de monitor daarna pas uit naar de rest.