Stel je ontvangt op een dag deze e-mail:
“Dear madam, sir,
Could you please forward this message to your client/the owner of this server?
Thank you very much!
I want to inform you that your website is running a MongoDB instance which appears not to be correctly configured or protected by a firewall allowing connections via port 27017 from anywhere and anyone without any form of authentication and grants full admin access (Create, Read, Update and Delete records). But also allows replication to other remote servers and shell (admin) access to the server which is a security risk.”
Wat volgt is een serie screenshots van directory’s op je server, enkele scenario’s met wat criminelen met de database kunnen doen en hoe je het lek kunt dichten. De mail is ondertekend door Victor Gevers van GDI Foundation. Wat zou jij doen met deze mail?
- Meteen onderzoeken wat er aan de hand is.
- Doorsturen naar afdeling IT.
- Antwoorden: WTF is dit?
- Negeren. Zal wel spam zijn.
De meesten mensen doen 4, sommigen 2 en dat is het dan wel. Zo niet Peter Beverloo van Las Venturas Playground, die dit bericht ontving op 26 mei jongstleden. Hun site is een online community rondom het spel Grand Theft Auto, San Andreas met maar liefst 117.000 leden Die zijn uiteraard het beschermen waard. Bovendien is Peter in het dagelijks leven software-engineer bij Google, dus hij weet wel hoe om te gaan met security-issues. Hij ging meteen onderzoeken wat er aan de hand is.
Wat bleek? Inderdaad, op hun server stond een Mongo-database gewoon open online. Gelukkig stonden hier geen gegevens van gebruikers in. Dat scheelt weer een melding naar de Autoriteit Persoonsgegevens. Volgens melder Gevers zou de database door criminelen gebruikt worden om illegale content te hosten, malware te verspreiden, DDoS’en uit te voeren… Ook dat bleek volgens de logfiles gelukkig niet het geval. Maar het had dus wel gekund en dan had Las Venturas Playground toch wel een groot probleem gehad.
Vergeten database
Hoe heeft dit kunnen gebeuren? Beverloo: “De groei van de community naar meer dan 117.000 gebruikers stond absoluut niet in de planning; het begon als een server voor een klein groepje vrienden. Hierdoor hebben we, met name op het gebied van security, zeker de nodige groeipijnen meegemaakt. (Gelukkig niets met verlies en/of uitgave van persoonsgegevens.) Een van de consequenties hiervan is dat de server beheerd werd door vier mensen die af en toe ook voor eigen redenen software installeerden. MongoDB is hier een voorbeeld van: iemand wilde er meer over leren, heeft het een week of twee gebruikt en heeft er daarna niet meer aan gedacht.”
Totdat de database dus opdook in een van de scans van Victor Gevers, alias @0xDUDE. Dergelijke slecht geconfigureerde MongoDB’s zijn volgens hem momenteel verantwoordelijk voor 72 procent van zijn meldingen over potentiële datalekken. Mongo is open source, gratis en veel gebruikt, maar heeft blijkbaar nogal wat kwetsbare standaardinstellingen. Zoals het standaard openzetten van poort 27017 en automatisch adminrechten toekennen aan elke bezoeker. Eind 2015 kwam er weliswaar een update uit die wat veiligere standaardinstellingen heeft, maar die is niet compatible met de oude. Veel organisatie blijven daarom de oude gebruiken. Hun cloudproviders gaan daarin mee en leveren nog steeds de oude, kwetsbare versie, wat zorgt voor een constante stroom van nieuwe datalekken.
Open source intelligence
Als ik Gevers weer eens spreek demonstreert hij hoe hij te werk gaat. Hij maakt gebruik van wat hij noemt ‘open source intelligence’, oftewel onderzoek naar kwetsbaarheden dat al door anderen is gedaan en online is te raadplegen. Zoals Zmap, een website van Michigan University waar je een scan kunt uitvoeren op alle beschikbare websites die IPv4 gebruiken en welke diensten daar worden aangeboden. Daar selecteert hij sites uit die MongoDB draaien.
Daar laat hij een scanner op los van Nmap (network map) waarmee hij opdrachten kan sturen naar de beruchte poort 27017. Krijgt hij de reactie ‘It looks like you are trying to access MongoDB over HTTP on the native driver port’, dan weet hij dat hij beet heeft. Met de opdrachten “db.serverStatus();” ziet hij welke versies er draaien, met “show dbs” welke databases. Vervolgens ziet hij wat voor soort informatie erin staat met de opdrachten “use {dbname}” en “show collections”. Tot slot is van belang of de database ook wel gebruikt wordt. Dat ziet hij door er “show log global” naartoe te sturen.
Dat is genoeg om te weten of hier sprake is van een mogelijk lek. Hij hoeft niet te weten wat er in de database staat. Dat wil hij ook niet, gezien zijn ethische code als helpende hacker. Sterker nog, omdat deze informatie vrij opvraagbaar is, hackt hij niet eens in de strikte zin van het woord. Hij kijkt niet welke informatie er staat, alleen maar of er informatie staat.
Super awesome
Zo kwam hij dus ook terecht bij de database van Las Venturas Playground. Maar nog vele honderdduizenden anderen. Die kan hij niet allemaal melden, dus filtert hij op de gevallen waar sprake lijkt te zijn van misbruik en die meldt hij als bulk bij de Internet Service Provider. In dit geval kon hij zien dat de site heel veel gebruikers heeft. En dat dit een gamingplatform is, maakte het naar zijn inschatting waarschijnlijker dat er mensen achter zitten die zijn melding op waarde kunnen schatten.
Zo geschiedde. De database werd binnen een dag offline gehaald en op 1 juni tweette @beverloo: “Received a “responsible disclosure” from @0xDUDE about a security vulnerability on one of my servers— that’s super awesome, thank you! :-)” Hij stuurt ook een mail naar Gevers, met “Thank you *so much* for sharing this issue in a friendly manner with us!”, uitleg over wat er aan de hand was en de vraag of ze nog iets kunnen overmaken aan een goed doel.
Dit lijkt een kleinigheid, maar de meeste meldingen van kwetsbaarheden worden stilletjes afgehandeld, vaak ook nog zonder enige reactie. In Nederland krijgt Gevers meestal wel een positieve reactie, maar blijft dit onder de melder en ontvanger en Tweet @0xDUDE er niet over. Dit keer dus niet en daarom kan ik er hier over schrijven.
Heartbleed
Gevers is intussen alweer verder met de volgende meldingen. Uiteraard niet alleen over MongoDB. Ook Heartbleed waart 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 0xDUDE wereldwijd gaat zoeken naar eigenaren van websites waar het woord ‘bank’ in voorkomt, vindt hij al 852.612 systemen die mogelijk kwetsbaar zijn voor Heartbleed. Hier zitten ook valse positieven bij, dus moet hij een bewerkelijke schifting maken om alleen de serieuze gevallen te vinden en die te melden.
5000 meldingen
Als ik de laatste hand leg aan dit artikel, staat de teller van aantal afgehandelde meldingen op 4.997. Ook de laatste was weer een MongoDB, maar dan een waar veel medische data zijn gelekt. Hier wilde de eigenaar ervan, om begrijpelijke reden, niet echt veel openheid over geven. Binnenkort komt dus melding nummer 5.000 eraan. Is er dan reden voor een feestje? Nee, zelf hecht hij daar niet zoveel waarde aan. Het gaat hem er vooral om internet veiliger te maken.
Deze bijdrage is geschreven door internetsocioloog, schrijver en presentator Chris van ’t Hof (@cvthof) en werd gepubliceerd op Securityvandaag.nl.