Das Cybersicherheitsunternehmen Intruder fand 28.000 offengelegte .git-Repositories, nachdem es 3,5 Millionen aktive HTTP-Hosts gescannt hatte. Die Repositories enthielten Zugangsdaten für Dienste wie AWS, Stripe, OpenAI und GitHub. Die Ziele wurden aus einer anfänglichen Auswahl von 40 Millionen potenziell relevanten Domains eingegrenzt, die mithilfe von Certificate-Transparency-Daten ermittelt worden waren.
Die Forscher konnten mehr als 400 AWS-Zugriffsschlüssel, 107 Stripe-API-Schlüssel, 123 OpenAI-API-Schlüssel, 80 Telegram-Tokens und 17 persönliche GitHub-Zugriffstokens sichern. Intruder erklärte, dass viele der gefundenen Zugangsdaten bei der Überprüfung noch aktiv waren, darunter eine Handvoll der 107 Stripe-Schlüssel und mehrere der 17 persönlichen GitHub-Zugriffstokens.
Das Problem geht über die versehentliche Veröffentlichung der neuesten Version einer Quelldatei hinaus. Ein offengelegtes .git-Verzeichnis kann die Historie eines Repositorys preisgeben, einschließlich Dateien und Zugangsdaten, von denen Entwickler glaubten, sie gelöscht zu haben.
Alte Git-Historien können Geheimnisse am Leben erhalten
Intruder entwickelte ein Open-Source-Tool namens gitreaper, das speziell für das Scannen offengelegter Repositories in diesem Umfang konzipiert wurde. Statt komplette Repositories auf die Festplatte herunterzuladen, durchläuft das Tool deren Git-Objekthistorie im Arbeitsspeicher und durchsucht einzelne Blobs nach Geheimnissen.
Dadurch kann es über den aktuellen HEAD-Stand hinausblicken. Gelöschte Branches, frühere Commits und Reflogs können Verweise auf Informationen bewahren, die im aktiven Codebestand nicht mehr auftauchen.
Ein offengelegter AWS-Zugangsschlüssel, etwa, ermöglichte den Zugriff auf einen Bucket mit internen Beschäftigtendokumenten, darunter Anwesenheits- und Disziplinaraufzeichnungen. Ein weiterer AWS-Schlüssel, der in einer zuvor committeten .env-Datei gefunden wurde, ermöglichte den Zugriff auf eine Sammlung eines Musik-Hosting-Dienstes.
Auch die Zahlungsrisiken waren erheblich. Intruder erklärte, dass ein offengelegter Stripe-Schlüssel seinen Forschern Einblick in die Transaktions- und Auszahlungsverläufe eines Unternehmens gewährte, einschließlich Umsatzzahlen, Auszahlungsplänen und teilweise sichtbarer Bankkontodaten. Je nach Berechtigungen eines Schlüssels könnte ein Angreifer außerdem Rückerstattungen veranlassen, auf Kundeninformationen zugreifen oder Auszahlungen umleiten.
Das Risiko reicht bis in die Entwicklung hinein
Persönliche GitHub-Zugriffstokens eröffnen einen weiteren potenziellen Zugang zu einer Organisation. Ein gültiges Token mit ausreichenden Berechtigungen könnte den Zugriff auf private Repositories ermöglichen oder bösartige Codeänderungen ermöglichen.
Damit ist ein offengelegtes .git-Verzeichnis mehr als nur ein Problem der Entwicklungshygiene. Die darin enthaltenen Zugangsdaten können als aktive Zugriffsschlüssel auf andere Bereiche der Infrastruktur eines Unternehmens fungieren.
Die Untersuchung fällt außerdem in eine Zeit, in der autonome Systeme in der Lage sind, offengelegte Zugangsdaten zu finden und zu verwenden. Intruder verwies auf einen Vorfall im Juli, bei dem OpenAI-Agenten aus einer Evaluierungs-Sandbox entkamen, öffentlich zugängliche Zugangsdaten fanden und einige davon bei Angriffen verwendeten, durch die Teile der Produktionsinfrastruktur von Hugging Face kompromittiert wurden. OpenAI erklärte, die Modelle seien in einer Forschungsumgebung ohne die in seinen Produktionssystemen eingesetzten Schutzmaßnahmen ausgeführt worden.
Warum das für Unternehmen wichtig ist
Die Ergebnisse zeigen, dass ein grundlegender Fehler bei einem Webserver zu einem direkten Sicherheitsproblem werden kann, wenn die Git-Historie noch gültige Zugangsdaten enthält. Für Unternehmen kann ein offengelegtes .git-Verzeichnis je nach den mit den durchgesickerten Schlüsseln verbundenen Berechtigungen zu Cloud-Datendiebstahl, Zahlungsbetrug, dem Zugriff auf privaten Code oder gezielten Angriffen führen.
Die größere Sorge ist die Geschwindigkeit. Automatisierte Scanner können offengelegte Repositories und Zugangsdaten in großem Maßstab finden, sodass Organisationen weniger Zeit haben, ein Geheimnis zu entdecken und zu widerrufen, bevor es jemand anderes verwendet.
Was Organisationen tun sollten
Teams sollten den öffentlichen Zugriff auf .git-Verzeichnisse auf Ebene des Webservers oder CDN blockieren und die Repository-Historie scannen, nicht nur die aktuellen Dateien.
Jede Zugangsdaten, die in einem offengelegten Repository gefunden werden, sollte als potenziell kompromittiert betrachtet und ausgetauscht oder widerrufen werden. Organisationen sollten außerdem Cloud-, Zahlungs- und Quellcodeverwaltungsaktivitäten überprüfen, die mit offengelegten Zugangsdaten verknüpft sind.
Intruder erklärte, das Unternehmen habe die Offenlegungen, sofern möglich, verantwortungsvoll an die Betreiber gemeldet. Viele der betroffenen Repositories wurden anschließend entfernt, und mehrere Organisationen tauschten die von den Forschern gemeldeten Zugangsdaten aus. Die praktische Schlussfolgerung lautet: Das Entfernen eines Geheimnisses aus dem aktuellen Code beseitigt das Risiko nicht. Organisationen müssen die Zugangsdaten widerrufen, die vollständige Repository-Historie prüfen und untersuchen, ob der offengelegte Zugang bereits genutzt wurde.
Ein aktueller SAP-npm-Lieferkettenangriff zielte auf GitHub-Tokens, Cloud-Zugangsdaten und CI/CD-Geheimnisse, und zeigte damit, wie sich ein offengelegter Entwicklerzugang in Softwareumgebungen ausbreiten und eine Kompromittierung verursachen kann.





