Was ist passiert?
Forscher haben eine kritische Schwachstelle in der Git-Signaturverifizierung entdeckt. Signierte Commits auf GitHub können manipuliert werden, ohne dass die digitale Signatur ungültig wird. Ein Angreifer kann ohne den privaten Schlüssel des Entwicklers einen neuen Commit mit identischen Dateien, Autor und Datum erstellen – GitHub kennzeichnet diesen als „Verified“, obwohl der Commit-Hash völlig unterschiedlich ist.
Hintergrund & Bedeutung
Git-Commits werden durch kryptographische Hashes eindeutig identifiziert. Diese Hash-Werte gelten in der Softwareentwicklung als unveränderbare Identitäten. Die aktuelle Implementierung signiert jedoch nicht den Hash selbst, sondern die Commit-Metadaten. Dies ermöglicht es Angreifern, alternative Commit-Hashes zu generieren, die die gleiche Signatur bewahren.
Das Risiko ist erheblich: Supply-Chain-Angriffe werden erleichtert, da Reviewer alle sichtbaren Informationen als vertrauenswürdig einstufen – nur der Hash unterscheidet sich unbemerkt. Dies könnte zu unerkanntem Code-Injection in kritischen Repositorien führen.
Empfehlungen fuer IT-Teams
- Commit-Hashes validieren: Vertrauen Sie nicht ausschließlich auf das „Verified“-Badge. Überprüfen Sie Commit-Hashes in kritischen Repositories manuell.
- Code-Review verstärken: Implementieren Sie zusätzliche Kontrollen jenseits der GitHub-Signaturverifizierung.
- Branch-Protection aktivieren: Nutzen Sie Require signed commits und zusätzliche Approval-Richtlinien.
- Monitoring ausbauen: Überwachen Sie unerwartete Commit-Änderungen in kritischen Projekten.
- Updates verfolgen: Beobachten Sie GitHub-Sicherheitsupdates und warten Sie auf offizielle Patches.
Fazit
Die Schwachstelle zeigt, dass GitHub-Signaturverifizierung nicht als alleinige Sicherheitsmaßnahme ausreicht. IT-Teams sollten mehrstufige Verifikationsprozesse implementieren und ihre Code-Review-Praktiken entsprechend anpassen.
Quelle: The Hacker News