Achtergrondartikel


Een jaar lang lekken melden, aflevering 6:

15.000 open deuren intrappen

Veel sites zijn kwetsbaar voor een voor de hand liggend probleem: door ‘/.git/’ achter een internetadres te typen, kom je in de broncode van de site. Vreemd, want via die verborgen bronnen kun je veel te weten komen over de site. Remco Verhoef ging op onderzoek uit om te kijken hoe vaak deze kwetsbaarheid voorkwam en vond 15.000 sites van zeker niet de minste partijen...

Door Chris van ’t Hof

Git is elf jaar geleden ontwikkeld door Linus Torvalds als een handig systeem waarmee je vanaf meerdere plekken aan software kunt werken. Elke verandering die in de broncode wordt aangebracht – een commit – wordt direct op alle andere plekken doorgevoerd.

De commit krijgt een unieke identiteit die voortbouwt op de vorige, zodat voor iedereen de hele geschiedenis aan wijzigingen duidelijk is. Wikipedia meldt: “As a distributed revision control system it is aimed at speed, data integrity and support for distributed, non-linear workflows.” Git is daarom ook handig als je samen aan een website werkt en wilt dat iedereen snel dezelfde versie heeft.

De software komt echter niet met een eigen access-managementtool. Die moet je er zelf voor zetten en dat blijkt dus niet iedereen te doen. Upload je dan de nieuwe versie van de site, dan kan iedereen die bekijken – inclusief de broncode – door simpelweg /.git achter de url te typen.

Broncode klonen
Verhoef ontdekte ook sites waar gewoonweg de gebruikersnaam en het wachtwoord in het configuratiebestand stonden. Daar kun je ook in door /.git/config achter de url te zetten. Dan heb je ook meteen de rechten om de site aan te passen zoals je wilt. Ook interessant is /.git/logs, waarmee je kunt terugbladeren in de geschiedenis van de applicatie. Door gebruik te maken van een eigen ontwikkelde applicatie was het voor Remco Verhoef zelfs mogelijk de gehele repository (broncode) te klonen Deze broncode bevat veelal configuraties als databasetoegang, Twitter-credentials en meer.

Verhoef informeerde hier en daar of anderen deze kwetsbaarheid ook al eens waren tegengekomen. De eerste reacties waren vooral in de trant van: “Ja, dat gebeurt wel eens, open deur.” Het had voor hem ook weinig zin om de makers van de software in te lichten. Deze kwetsbaarheid is immers geen fout in de software; de gebruikers configureren het systeem verkeerd. Feitelijk was hij ook niet aan het hacken; de bron was immers gewoon open, maar via deze open deur wordt het wel erg makkelijk de site helemaal over te nemen. Wilde hij dit probleem oplossen, dan moest hij de eindgebruikers zien te bereiken.

Opschalen
Juni 2015 neemt Verhoef contact op met het Nationaal Cyber Security Centrum. Ik vraag Security Researcher Jeroen van der Ham van het NCSC hoe er destijds is gereageerd: “We zagen dit als een ernstige kwetsbaarheid. Daarom hebben we actief met Remco Verhoef samengewerkt om een aantal partijen uit onze doelgroep te benaderen. Daarnaast hebben we regelmatig contact met hem gehad over het verder onderzoeken van deze kwetsbaarheid en het inlichten van andere partijen onder responsible disclosure. Aangezien het hier vooral om een configuratiefout gaat en niet om een kwetsbaarheid in een softwarepakket hebben wij hier geen beveiligingsadvies over uitgebracht. In onze beveiligingsrichtlijnen voor webapplicaties wordt het instellen van de juiste toegangsrestricties ook behandeld.”

Het NCSC heeft dus bekendheid gegeven aan de configuratiefout en enkele eigenaren van Nederlandse sites individueel benaderd. Maar meer dan dat kan het centrum ook niet doen. Ondertussen zag Verhoef dat steeds meer webdevelopers Git gingen gebruiken en vroeg hij zich af hoeveel sites wereldwijd hierdoor kwetsbaar zijn.

Begin september dit jaar ontwikkelde hij daarom een tool die de /.git-truc automatisch uitvoert: ANAM, Automated Network Analysis en Mass. Die had hij gewoon los kunnen laten op het internet, maar wat voor sites vang je dan? De vangst moet wel iets zeggen. Hij ging daarom voor de miljoen meestbezochte sites. De adressen kreeg hij via Alexa.com, een bedrijf van Amazon dat webtraffic meet. Met zo’n omvangrijke steekproef kan hij dus wel degelijk uitspraken doen over het hele internet.

15.000 open deuren
Op 26 september liet hij ANAM een nacht lang alle miljoen url’s uitproberen. De scanner meldde de volgende ochtend dat 15.000 sites, met hier en daar wat onderliggende sites, git open hadden staan. Vervolgens ging hij de eigenaren van de sites mailen. Eerst handmatig en vervolgens geautomatiseerd. In de header stond “Responsible Disclosure, gevolgd door deze boodschap:

“Hi,

During our campaign to clean the internet from common vulnerabilities, we've encountered that <site> is vulnerable to information disclosure, by allowing public download of the .git repository. This allows everyone to download the source code of your website and application. You can read more about us and this campaign at http://internetsecure.today/campaign/sourcecode-access-through-public-available-git-repository/.

The url https://<site>/.git/HEAD contains the repository configuration, as this is proof that it is possible as well to download the complete repository itself. See the attached files, the git config, head and commit log.

Currently we are in progress to disclose our discoveries, and we're aiming to publish the article within two weeks. We are sending our findings to info, security and abuse email addresses of the vulnerable domain.

We are sending this email in an automated way, and we are aware that in some cases this is expected behaviour. If that is the case, you can ignore this message. We believe that this issue endangers your site, application and data that we needed to inform you.

About InternetSecure.today: there are a lot of common vulnerabilities that are being exploited often. Our mission is to scan the internet and notify owners about the dangers of these vulnerabilities. You can read more about us at: http://internetsecure.today/.

Let me know if you've got any questions,

Remco Verhoef
remco@internetsecure.today
@remco_verhoef”

In deze boodschap lezen we ook het dilemma bij een dergelijke omvangrijke onthulling van kwetsbaarheden. Een van de regels van responsible disclosure is dat je de kwetsbaarheid pas bekend maakt als die gefixt is. Bij 15.000 sites zullen er echter altijd partijen zijn die niet reageren, terwijl je wel meer bekendheid wilt geven aan de kwetsbaarheid zodat anderen het ook kunnen oppakken. De tussenoplossing: van 27 september tot en met 21 oktober alle sites mailen en daarin alvast de datum van de onthulling aankondigen: 31 oktober.

Hulptroepen
Wat begon als en hobbyproject groeide uit tot een mondiale reddingsactie. Dat kon Verhoef niet alleen. Bas Eikelenboom, met wie hij samenwerkt bij Dutchsec, haakte aan als organisator en mobiliseerde hulptroepen.

Het Threat Intell Center van Ernst & Young kon de meldingen opvolgen met telefoontjes. Niet alleen met de eigenaren van de websites, maar bijvoorbeeld ook de CERT’s in verschillende landen. Considerati stond hen bij met juridisch advies, want het gaat immers om privacygevoelige gegevens. De website ging in de lucht zodat iedereen de voortgang kon volgen. Eikelenboom vroeg mij en enkele andere journalisten te schrijven over deze bijzondere zaak.

Goede oogst?
De oogst na twee maanden open deuren intrappen: 300 tot 400 positieve reacties, waar erkend werd kwetsbaar te zijn en het probleem direct werd opgelost. Een van hen was niemand minder dan onze eigen Akzo Nobel. Drie van hen beloonden de heren met een T-shirt: Vice, Sony en Knewton. Een melding naar MIT ging via bug-bountyplatform HackerOne, waardoor ze ook nog een beloning kregen van 150 dollar. Een bedrijf, dat niet bij naam genoemd wilde worden, had becijferd dat ze dankzij de melding een schade hadden voorkomen van 8 ton.

Is dit een goede score? Dat is lastig te zeggen. Veel organisaties zullen namelijk de configuratiefout verhelpen zonder daar al te veel ruchtbaarheid aan te geven. Periodiek scannen zal uitwijzen in hoeverre het internet minder kwetsbaar wordt voor deze actie en of ANAM hierbij helpt.

Al met al reageerden de meesten dus niet. Duizenden sites blijken nog kwetsbaar, omdat er geen enkele actie is ondernomen. Hieronder vallen bijvoorbeeld websites van politieke partijen, stichtingen, multinationals en heel veel kleinere sites. Ook een grote internationale hulporganisatie blijkt nog steeds kwetsbaar. Verhoeven probeert nog steeds in contact te komen met hen en krijgt daarbij hulp van het NCSC. Vooralsnog tevergeefs. Veel organisaties hebben hun responsible-disclosurebeleid nog slecht op orde.

Internet stukje veiliger
ANAM wordt nu ook uitgebreid met scans van andere veel voorkomende kwetsbaarheden. Ook wordt een methodiek ontwikkeld om op grote schaal responsible disclosures te kunnen uitvoeren en te monitoren.

Uiteindelijk is het Remco Verhoef ook niet te doen om in zijn eentje het internet te redden. Hij vindt het vooral interessant deze tool te ontwikkelen, die te delen met andere onderzoekers, om zo samen het internet een stukje veiliger te maken. Dat gebeurt, ironisch genoeg, open source op Github... Maar, we kunnen we er vanuit gaan dat de configuratie daar wel goed is ingesteld.

Eerdere afleveringen uit deze reeks:
• Aflevering 1: Easy to get and high risk
• Aflevering 2: De eerste oogst
• Aflevering 3: Voorbij melding nummer 0x125c
• Aflevering 4: Going Global
• Aflevering 5: Dit kan ook jou overkomen

Lees meer over