Meer dan 100.000 GitHub repositories lekken API-sleutels

Onderzoekers scanden als onderdeel van een academisch onderzoek dertien procent van alle publieke GitHub repositories. Uit de vele miljarden documenten die gescand zijn, bleek dat meer dan 100.000 van die repositories API-tokens en cryptografische sleutels bevatten. Duizenden nieuwe repositories lekken dus op dagelijkse basis geheimen.

De scan werd uitgevoerd door een team van de North Carolina State University (NCSU) en de resultaten zijn vervolgens meteen gedeeld met GitHub. Dat heeft daarop besloten om de ontwikkeling van zijn nieuwe veiligheidsfunctie, Token Scanning, dat zich in een bètafase bevindt, te versnellen.

Brede analyse

De studie van de NCSU is de meest diepgravende die tot nu toe van GitHub gedaan is. Er werden gedurende een periode van bijna zes maanden, tussen 31 oktober 2017 en 20 april 2018, GitHub-accounts gescand. Daarbij zochten de onderzoekers specifiek naar tekst die gelijkenissen draagt met API-tokens en cryptografische sleutels.

Daarvoor gebruikten de onderzoekers niet alleen de GitHub Search API om naar die tekstpatronen te zoeken, maar keken ze ook naar snapshots die opgeslagen staan in Google’s BigQuery-database. Uiteindelijk zijn er 4.493.473 bestanden uit 681.784 repositories via de GitHub Search API bekeken. Die data is aangevuld met nog eens 2.312.763.353 bestanden uit 3.374.973 repositories uit de BigQuery-database.

Sleutels analyseren

Omdat niet alle API-tokens en cryptografische sleutels in hetzelfde format geschreven zijn, besloot het NCSU-team om 15 formats van API-token (van vijftien verschillende diensten, toebehorend aan 11 bedrijven, waarvan er vijf uit de Alexa Top 50 komen) mee te nemen in het onderzoek. Ook zijn er vier verschillende cryptografische formats meegenomen in het onderzoek.

Daarop vonden de onderzoekers elke dag opnieuw duizenden matches. Er zijn in totaal 757.456 API-sleutels gevonden. Daarvan waren er 201.642 uniek en verspreid over meer dan 100.000 GitHub-projecten. Het team kon, doordat het onderzoek zes maanden duurde, ook zien of deze sleutels langere tijd openbaar waren.

Geheimen openbaar

Volgens de onderzoekers werd 6 procent van de sleutels die gevolgd werden binnen een uur verwijderd. Dat impliceert dat de eigenaren van die GitHub repositories zich meteen bewust waren van hun fout. 12 procent van de sleutels werd na 1 dag verwijderd en 19 procent bleek 16 dagen online. “Dat betekent ook dat 81 procent van de geheimen die we ontdekten niet verwijderd is,” aldus de onderzoekers.

In een reactie hierop heeft GitHub besloten om zijn Token Scanning te versnellen. Dat is een project waarmee het bedrijf dit soort lekken kan opspeuren en melden bij ontwikkelaars.