Zo vind je lekken op internet. En help je die te dichten

Chris van 't Hof
Ethisch hacker, technologiespecialist
Foto van Victor Gevers naar ASCII omgezet.

Hackers zijn meestal de grootste nachtmerrie voor elke organisatie, maar ze kunnen ook helpen de beveiliging te verbeteren, zoals ik laat zien in mijn reeks over 0xDUDE alias Victor Gevers. In deze aflevering: Hoe vindt hij lekken?

Wat zou jij doen als iemand vertelt dat je site lek is? Dat kwaadwillenden kunnen inbreken en je gegevens verkopen?

In mijn onderzoek naar het werk van helpende hackers kom ik veel mensen tegen die dankbaar zijn voor dergelijke meldingen. Maar zelden willen ze er ruchtbaarheid aan geven. Lekken worden meestal achter de schermen opgelost. Tot ik op 1 juni deze tweet voorbij zie komen:

Received a from @0xDUDE about a security vulnerability on one of my servers— that’s super awesome, thank you! :-)

Hij is verzonden door Peter Beverloo, een van de oprichters van Op dit online forum delen spelers van het computerspel Grand Theft Auto San Andreas hun ervaringen. Beverloo vertelt dat hij tien jaar geleden, bij wijze van hobby, met een groepje de site begon. Inmiddels zijn 119.000 mensen vanuit 220 landen lid - een hele verantwoordelijkheid.

Dat blijkt als Beverloo op 26 mei een mail krijgt waarin staat dat zijn forum kwetsbaar is voor hackers. Op de server van zijn site zou ook een zogenoemde Mongodatabase staan, waar iedereen zo in kan. Als hier gebruikersdata in zouden staan, kunnen die misbruikt worden. Criminelen zouden verder de server kunnen gebruiken om kwaadaardige software bij bezoekers te installeren. Ook zouden hackers de server kunnen gebruiken om andere sites aan te vallen.

Hoe zou jij reageren op zo’n mail? Beverloo, in het dagelijks leven software engineer bij Google, gaat meteen op onderzoek uit. En inderdaad, op de server van Las Venturas Playground staat een database gewoon open. Gelukkig staan er geen persoonlijke gegevens in van gebruikers, maar cybercriminelen hadden hem dus wel kunnen

Diegene die Beverloo mailde, was helpend hacker Victor Gevers (ook wel: 0xDUDE). De man die 2016 heeft vrijgenomen met het plan elke dag kwetsbaarheden op het internet op te sporen en die bij sitebeheerders te melden. Zo wil hij het internet veiliger maken, zoals ik in de eerste aflevering van deze reeks.

Maar niet eerder kwam ik met iemand in contact die over Gevers’ meldingen wilde vertellen. Want hoe minder publiciteit voor de slechte beveiliging voor je website, hoe beter, denken veel bedrijven, overheden en publieke instanties waar hij lekken Van de inmiddels 5.000 meldingen die hij de afgelopen zeventien jaar heeft gedaan, is maar weinig naar buiten of in de media gekomen. Gevers zelf noemt ook nauwelijks namen.

Waar hij wel over wil vertellen, is hoe hij te werk gaat. Ik vraag hem daarom deze keer stap voor stap te laten zien hoe hij lekken vindt. En die vervolgens, net als bij Beverloo, meldt.

Hoe Gevers de lekken vindt - de achtergrond

We zitten in een besloten zaaltje in het licht van een laptop en Gevers vertelt over zijn hacksabbatical. Het plan om zijn vijftien uur per dag vooral thuis achter de computer door te brengen, heeft hij laten varen. In plaats daarvan reist hij de wereld rond om zijn bevindingen onder de aandacht te brengen. ‘Zo heb ik wat meer beweging. Is goed voor me. Ook voor mijn gezin, want die beginnen het inmiddels ook wel zat te worden.’ Ik begrijp dat het best een belasting is voor zijn vrouw en drie kinderen, maar ze steunen zijn plan wel.

Ook nieuw: in plaats van elk lek afzonderlijk af te handelen, levert hij nu lekken in bulk aan bij anderen - bijvoorbeeld en van landen en grote bedrijven - die ze voor hem kunnen afhandelen.

De slecht geconfigureerde Mongodatabases vormen 72 procent van de datalekken

De kwetsbaarheden in Las Venturas Playground waren dan ook bijvangst. Gevers zoekt namelijk op bekende beveiligingslekken en kijkt dan wie erachter zit. Hackers met minder goede intenties gaan vaak ook zo te werk. De slecht geconfigureerde Mongodatabases, zoals het probleem op de gamecommunity, zijn volgens Victor verantwoordelijk voor de meeste datalekken: 72 procent van zijn meldingen op dit moment.

Waarom MongoDB? Dat is een opensourcedatabase, gratis en veel gebruikt, die nogal wat Zoals - en nu begint het technisch te worden - het standaard openzetten van en automatisch toekennen aan elke bezoeker. Eind 2015 kwam er weliswaar een update die wat veiligere standaardinstellingen heeft, maar daarvoor moet je de hele database opnieuw installeren.

Om de kwetsbare versies te vinden, maakt Gevers gebruik van bronnen die iedereen online kan raadplegen. Zoals en sites die een overzicht geven van alle beschikbare websites en welke diensten daar worden aangeboden. Dergelijke bronnen worden meestal gehost door universiteiten en onderhouden door een bonte stoet vrijwilligers die vooral houden van openheid. Zo ook online scanners zoals en waarmee je opdrachten kunt versturen naar de in kaart gebrachte internetadressen. Bij een goed beveiligde website levert zo’n opdracht niets op, maar meestal komt er nuttige informatie tevoorschijn. Of kun je gewoon direct in het systeem, zoals bij de oude MongoDB.

Hoe Gevers de lekken vindt - de praktijk

Tot zover de achtergrond. Gevers duikt in zijn laptop en begint codes in te kloppen. Het valt me op dat hij ineens twee keer zo snel begint te praten. De rustige, beschouwende beveiligingsexpert verandert ineens in een manische hacker. Telkens moet ik hem onderbreken met de vraag: ‘En wat doe je nu?’

‘Binnen laat ik onder andere Zmap zoeken naar sites die MongoDB draaien. Ze zijn nu wat langzamer, want de universiteit is met vakantie. Ik ben daarom bezig zelf iets te maken. Binnen deze bulkoutput zoek ik naar kwetsbare versies door vanuit Nmap een opdracht te sturen naar poort 27017.’ Hij typt: ‘script mongodb-info <hostnaam>.’

‘Kijk, als ik deze reactie krijg weet ik dat ik beet heb.’ Zijn scherm meldt: ‘It looks like you are trying to access MongoDB over HTTP on the native driver port.’

‘Deze reactie krijg je voornamelijk bij verouderde versies van de databasesoftware. Die kun je dus zonder in te loggen.’

Gevers vervolgt: ‘Heel veel MongoDBs draaien met root priviliges. Dit in combinatie met shell access en de mogelijkheid om te kunnen scripten en file accessen maakt MongoDB de gevaarlijkste combinatie die je maar kan voorstellen.’ In gewonemensentaal betekent deze melding dat je met de database kunt doen wat je wilt - alles doorzoeken, eigen data erin zetten of alles wissen.

Omdat dat computervredebreuk zou zijn, houdt Gevers zich daar verre van. Wel wil hij weten of het überhaupt mogelijk is en wat de eventuele schade zou zijn. Met de opdrachten ‘db.serverStatus();’ ziet hij welke versies er draaien, met ‘show dbs’ welke databases en hoeveel data erin staat.

Vervolgens kijkt hij wat voor soort informatie erin staat door de naam van de database of de titels boven de kolommen op te vragen. Dat doet hij met de opdrachten ‘use {dbname}’ en ‘show collections.’

Tot slot is van belang of de database wel gebruikt wordt. Dat ziet hij door er ‘show log global’ naartoe te sturen. De logfiles zijn de bestanden die aangeven hoeveel verkeer er van en naar de server heeft plaatsgevonden.

Zo toon je dus kwetsbaarheden aan zonder persoonsgegevens te downloaden en hack je zonder de wet te overtreden. Sterker nog, de data staat al vrij opvraagbaar online. Het enige wat Gevers doet, is de eigenaar daarop wijzen. Een screenshot opsturen van de mappenstructuur volstaat. Oftewel: je stuurt iemand een foto van zijn open voordeur, zonder zelf naar binnen te lopen.

Nog veel werk te verrichten

Volgens Gevers blijven veel organisaties de oude versie van MongoDB gebruiken omdat de ontwikkelaars daar nu eenmaal aan gewend zijn. Ze willen niet de moeite nemen zich de nieuwe versie eigen te maken en de boel te updaten. Hij kan zich behoorlijk opwinden over cloudproviders die daarin meegaan. ‘Zelfs de grote - ik zal geen namen noemen - leveren gewoon nog steeds de oude, kwetsbare versie omdat hun klanten daarom vragen. Dat zorgt voor een constante stroom van nieuwe datalekken.’

De oude MongoDB is slechts een voorbeeld van veel voorkomende online kwetsbaarheden. Ook Heartbleed waart volgens Victor nog rond over het internet. Dit is een kwetsbaarheid in de veel gebruikte versleutelingssoftware OpenSSL. Draai je hier een verouderde versie van, dan kan iedereen die je internetverkeer afvangt zich voordoen als jou of de ontvanger en versleuteld verkeer ontsleutelen. Kwaadwillenden kunnen dan wachtwoorden afvangen, banktransacties overnemen of zelfs volledige beheerdersrechten krijgen over systemen.

Als hij wereldwijd zoekt naar eigenaren van websites waar het woord ‘bank’ in voorkomt, vindt hij al 852.612 systemen die mogelijk kwetsbaar zijn voor Heartbleed. Ook hiervan krijg ik een korte demonstratie:

Gevers relativeert: ‘Hier zitten ook valspositieven bij, dus ben ik nu vooral bezig daar schifting in te maken om alleen de serieuze gevallen te vinden en die te melden.’

Zo zal Victor Gevers, alias @0xDUDE nog doorgaan tot 1 januari 2017, elke dag, vijftien uur, lekken opsporen, melden en afhandelen, om voor jou en mij het internet telkens weer een stukje veiliger te maken.

Eerder in deze reeks: