Sherlock Holmes had zijn vergrootglas. Hercule Poirot vertrouwde op zijn ‘kleine grijze cellen’. Maar de 21e-eeuwse internetdetective heeft wat meer nodig om de slechteriken te vangen. In dit artikel presenteren we tools en trucs die we gebruikten om erachter te komen wie er achter een groot netwerk zaten van websites die eindeloos valse, aangedikte of verouderde verhalen recycleden om advertentieinkomsten te oogsten.

Een onderzoek als dit begint vaak met een paar virale nepnieuwsberichten, gepubliceerd door een handvol websites. Hier zijn de tools waarmee we een netwerk van meer dan 70 websites bloot legden (enkele al uit 2016) en de namen van de mensen erachter, terwijl we begonnen met niet meer dan een lijstje met sites die vorig jaar op Twitter werden gepromoot.

Netwerken in kaart brengen

Trendolizer & de Trendolizer fingerprinter

Trendolizer, ontwikkeld door Lead Stories, is een tool die monitort welke verhalen van welke websites viraal gaan door onder meer het aantal Facebook-engagements (reacties, shares, comments) te meten dat die verhalen per uur genereren. Met Trendolizer kun je niet alleen het internet in het algemeen volgen, maar ook groepen sites en/of verhalen die overeenkomen met bepaalde keywords. Gebruikers kunnen zelf lijsten sites toevoegen die ze willen volgen, zoals reeds bekende nepnieuwssites of sites die deel uitmaken van een bepaald netwerk.

Trendolizer houdt bovendien bij welke advertentiecodes (zoals Google AdSense, Taboola, ContentAd…) en andere unieke identificatiekenmerken (Google Analytics-codes, WHOIS-gegevens, IP-adressen…) het tegenkwam op elke website waarvan het ooit een artikel indexeerde. Uit die ‘vingerafdrukken’ kun je afleiden welke sites mogelijk worden beheerd door dezelfde personen.

Screenshot van netwerkweergave in de ‘fingerprinting tool’ van Trendolizer

Met die vingerafdruk-optie konden we veel sites in het netwerk aan elkaar linken, omdat ze allemaal hetzelfde identificatienummer gebruikten in hun Google AdSense of ContentAd-advertentiecode. We gebruikten ook de ingebouwde alert-functie om ons te laten waarschuwen als er nieuwe sites opdoken met vingerafdrukken die overeenkwamen met  die van sites uit het netwerk die we al kenden.

Vingerafdruk van Akniinfo, een van de sites uit het Kumanovo-netwerk, in Trendolizer

Twitter search: wie spamt wat?

Het netwerk van sites dat wij onderzochten maakte op grote schaal gebruik van fake Twitter-accounts om continu links te spammen naar artikelen. Omdat Twitter met anti-spamfilters probeert te voorkomen dat een account voortdurend links post naar dezelfde sites of artikelen, maakten de spammers de hele tijd nieuwe accounts aan (waarschijnlijk deels automatisch, we vonden er honderden) en lieten ze die telkens maar een klein aantal links achter elkaar twitteren, vaak naar verschillende sites uit het netwerk.

Zo hielden ze ons op de hoogte van de nieuwste sites: wij konden immers volgen welke sites nog meer gepusht werden door accounts die ook links postten naar de sites die we al kenden.

@Laura97164132 doet niets liever dan links posten naar sites in het netwerk…

Paradoxaal genoeg belemmerden de maatregelen van Twitter tegen spam soms onze research: hoewel we een aantal van de fake accounts links zagen pluggen naar lifeinfo24.net, konden we er niet naar zoeken met Twitter Search, waarschijnlijk omdat Twitter die site verdacht vindt:

Twitter Search houdt resultaten achter

Hier bleek Google onze vriend: zoeken op ‘lifeinfo24.net’ op Twitter in combinatie met ‘Jessica’ (de favoriete naam van de fake accounts) leverde het volgende resultaat.

Google trekt zich niets aan van de spamfilter van Twitter

Inhoudsanalyse: script op maat, BuzzSumo, Google, archive.org, archive.is

Toen we met dit onderzoek begonnen, viel ons al snel op dat veel van de sites artikelen recycleden die al eerder waren gebruikt op andere sites in het netwerk. We schreven daarom een scriptje om alle koppen van alle sites die nog online waren te downloaden en normaliseerden ze (hoofdletters en interpunctie eruit, woorden als Watch‘ of ‘BREAKING’ weg, namen van sites aan het eind van de kop eraf, etc.), zodat we konden tellen hoe vaak elke kop was gebruikt.

Output van het ‘koppensnellers’-script

Dat resulteerde in een lijst van de verhalen waar de exploitanten van het netwerk kennelijk zo dol op waren dat ze ze op tien of zelfs twintig verschillende sites publiceerden.

Met zoekmachines als BuzzSumo & Google zochten we toen naar andere sites die dezelfde artikelen hadden gepubliceerd. Dat leidde in een aantal gevallen tot de ontdekking van de oorspronkelijke bron, de site waarvan het artikel was gestolen. In andere gevallen vonden we meer sites die bij het netwerk hoorden, maar slechts kort actief waren geweest of bepaalde vingerafdrukken misten waardoor we ze met de eerdere verzameling tools niet hadden opgepikt.

Zoeken met BuzzSumo naar het vaakst gerecyclede verhaal

Wat ook heel nuttig was in deze fase waren tools waarmee je webpagina’s of sites die offline zijn gegaan kunt terughalen: we vonden er een aantal terug in de cache van Google en in archive.org en archive.is.

De mensen achter het netwerk opsporen

Domeinnaamgegevens: WHOIS.com, Domaintools, SecurityTrails, DomainBigData

Nadat we een omvangrijke lijst hadden samengesteld van onderling verbonden domeinnamen gingen we na wie de sites had geregistreerd. Huidige registratiegegevens zijn eenvoudig te vinden met WHOIS.com, maar bij de meeste sites in het Macedonische netwerk zaten de registranten verstopt achter registrars die anonimiteit garanderen en WHOIS.com vertelt niet wie de vorige eigenaar was van een site die later is verkocht of wanneer de registratie verviel.

Screenshot: whois.com-gegevens voor akniinfo.com, een van de sites uit het netwerk. De landcode ‘MK’ staat voor Macedonië.

Tip:

Om historische WHOIS-gegevens te vinden van een website die niet meer online is, loont het soms de moeite om de domeinnaam van de site te googelen in combinatie met ‘Registrant’ of ‘Technical Contact’. Soms heb je geluk en ontdek je dat iemand een paar jaar geleden een WHOIS-search heeft gedaan en de resultaten op een forum of blog heeft gepost waar de site werd bediscussieerd.

Om nog meer historische domeinregistratiegegevens te achterhalen, maakten we flink gebruik van DomainTools (een betaalde dienst) en soms ook van DomainBigData (gratis maar minder compleet). Ook een vermelding waard: SecurityTrails (gratis), met een interessante afdeling ‘Historical Data’, waar je in een oogopslag onder meer kunt zien wanneer een site van eigenaar is veranderd.

In sommige gevallen (maar helaas niet voor ons Macedonische netwerk) loont het ook om met de zojuist genoemde sites en diensten te checken welke andere sites dezelfde IP-adressen of naamserver(s) gebruiken als de site die je onderzoekt. Sommige hosting providers geven elke klant een eigen IP-adres en een aangepast naamserver-adres – een uitstekende manier om sites die met elkaar verbonden zijn op het spoor te komen. Andere providers zetten meerdere klanten op hetzelfde IP-adres en alle domeinnamen van de klanten op dezelfde gedeelde naamservers. Het netwerk waar wij ons in verdiepten, liet sites hosten en registreren door Once.com, en dat is helaas een provider van de tweede soort.

Bij het in kaart brengen van dit soort schimmige netwerken, zo is onze ervaring, is de kans het grootst dat de registratiedata van de oudste sites echte persoonsnamen en mailadressen prijs geven. Vaak zijn de eerste sites die mensen bouwen nog legitiem en gebruiken ze hun eigen naam of ze zijn nog onervaren en beseffen niet dat je domeinnamen anoniem kunt registreren.  Maar wanneer ze latere sites wel anoniem registreren, laten ze vaak toch sporen achter naar de oudere sites (door dezelfde identificatiecodes van advertentienetwerken te gebruiken of door sites te laten hosten op dezelfde IP-adressen).

Socialemediaprofielen zoeken

Met de namen en mailadressen die we vonden in oude WHOIS-gegevens konden we vervolgens zoeken naar profielen van mogelijke betrokkenen op sociale media als Facebook, LinkedIn, Pinterest, Google+ en Twitter. We zochten onder andere met Google, Facebook en Pipl. In een aantal gevallen konden we bevestigen dat de profielen inderdaad van betrokkenen waren, omdat ze massa’s links naar sites binnen het netwerk hadden gepost. Deze profielen waren een andere bron van informatie om sites te vinden die we eerder hadden gemist.

De verspreiders opsporen: CrowdTangle & WhoPostedWhat

CrowdTangle is een tool die eigenaar Facebook gratis ter beschikking stelt van journalisten en mediaorganisaties. Gebruikers kunnen er een gigantische hoeveelheid Facebookberichten in openbare groepen of op openbare pagina’s mee doorzoeken. Via CrowdTangle kun je ook ontwikkelingen volgen op Instagram, Twitter en Reddit.

Voor ons doel is de ‘linkchecker’-optie onmisbaar: die laat zien wanneer bepaalde links zijn gepost, in welke groepen en door wie. Door deze informatie chronologisch te sorteren en de uitkomsten voor verschillende websites te vergelijken werd het al snel duidelijk welke Facebook-groepen en welke accounts werden ingezet om links te ‘zaaien’ naar sites binnen het netwerk. Een nadeel van dit dashboard is dat het niet meer dan de 500 meest recente resultaten toont. Dat was voor veel van de sites geen probleem, omdat links daarnaar nog niet vaker dan 500 keer waren gepost. Een trucje om deze beperking te omzeilen als je een grotere en of oudere site onderzoekt, is zoeken op de URL van een afzonderlijk artikel, in plaats van op de domeinnaam.

De linkchecker van CrowdTangle: wie heeft die site gespamd?

Om de relaties tussen de diverse betrokkenen in kaart te brengen, vonden we Stalkscan.com een gebruiksvriendelijke tool: plak de URL van iemands Facebook-account in het zoekvenster om foto’s, posts en comments te ontdekken waarin hij of zij getagd is, te zien welke video’s, foto’s en posts iemand heeft geliket, enzovoort. Wie feliciteert wie op haar verjaardag, wie drinkt een biertje met welke groep vrienden?

Een andere handige optie van StalkScan is een link om alle Facebook-posts te zien van een gebruiker. WhoPostedWhat.com biedt diezelfde mogelijkheid, met aanvullende opties om te zoeken binnen een bepaalde periode of op posts die bepaalde steekwoorden bevatten. Zoals we op Twitter accounts vonden die links naar het netwerk zaaiden, troffen we ook op Facebook profielen aan die herhaaldelijk links naar verscheidene sites uit het netwerk zaaiden in Facebookgroepen. Een nieuwe mogelijkheid om te sites te ontdekken die we eerder hadden gemist.

Sommige Facebook-accounts zagen eruit als echte mensen, bij andere hadden we onze twijfels (vaak omdat de naam en biografische gegevens niet overeen kwamen met de inhoud van de posts, bijvoorbeeld bij accounts met een Amerikaanse naam en woonplaats, maar met louter Macedonische vrienden…)

Stalkscan: wie liket wat? Wie wordt waar getagd?

Connecties vaststellen: omgekeerd foto’s zoeken, zoeken naar Facebookvrienden

Toen we eenmaal hadden vastgesteld welke accounts frequent links naar sites binnen het netwerk postten, konden we een aantal ervan in verband brengen met accounts van de personen van wie we al hadden vastgesteld dat ze sites hadden geregistreerd. Hoewel sommige daarvan hun lijst van Facebookvrienden privé hielden, zagen we ze wel opduiken in de vriendenlijsten van de accounts die links hadden gespamd.

Een andere interessante manier om verbanden te vinden, bleek via de profielfoto’s. Door omgekeerd op foto’s te zoeken met Google Afbeeldingen of de Russische zoekmachine Yandex ontdekten we dat een aantal avatars van de fake Facebook- en Twitter-accounts in werkelijkheid foto’s waren van Servische en Macedonische zangeressen.

Reverse image search ontmaskert ‘Nina Nince’ als een lookalike van de Servische celebrity Nina Lecic

Een ander stel profielfoto’s van de nepaccounts zagen we terug in de vriendenlijst van enkele van de hoofdrolspelers in het netwerk; het bleken vrienden en verwanten.

Een aantal van de nep-Jessica’s lijkt als twee druppels water op de echtgenote van een van de centrale figuren in het netwerk

Het bereik schatten

Met CrowdTangle konden we zien hoe vaak links naar sites binnen het netwerk werden gedeeld op openbare Facebook-pagina’s, samen met een schatting van het bereik (het aantal gebruikers dat elk van deze pagina’s of groepen volgt):

Voorbeeld uit de linkchecker van CrowdTangle

Uiteindelijk kun je hier weinig mee als je wilt weten hoeveel mensen die links ook zagen: niet alle volgers van de groepen en pagina’s kregen de berichten te zien en het aantal keren dat een link gepost werd, stijgt even hard voor een bericht op een pagina met 1000 fans als op een met 200.000. Maar het geeft een goed idee van de omvang van de inspanningen om de sites te promoten.

BuzzSumo is een andere goede bron om het bereik van een netwerk te schatten. BuzzSumo kan je voor elke site vertellen wat het totale aantal engagements is voor alle berichten van die site op een aantal sociale netwerken (Facebook, Twitter, Pinterest en Reddit), en ook wat het gemiddelde aantal engagements was per bericht.

Voorbeeld van totale en gemiddelde engagement in BuzzSumo

Een andere waardevolle optie van Buzzsumo was dat het engagement-cijfers verschaft voor de sociale netwerken afzonderlijk. In het geval hierboven bleek cvrcinfo.com vooral engagement te genereren op Twitter:

BuzzSumo: voorbeeld van gemiddelde engagement uitgesplitst naar sociaal netwerk

 

Lees het hele verhaal in Dossier Kumanovo-Connectie

De Kumanovo-Connectie: Macedonische spam clans verdienen aan nepnieuws over moslims en migranten

De cijfers: maatregelen Facebook duwen Macedonische nepnieuwsexploitanten naar Twitter

Hoe een tattoo ons naar de Macedonische vrachtwagenchauffeur leidde die ladingen nepnieuws afleverde op internet

Met deze tools en technieken brachten we een Macedonisch nepnieuwsnetwerk in kaart