Apps, die alte Repository-Namen auf GitHub als Abhängigkeiten verwenden, könnten Benutzer tatsächlich zu Malware führen. Folgendes müssen Sie wissen:
Es wird immer deutlicher, dass GitHub-Repojacking ein legitimes Risiko für Entwickler darstellt. Hacker können es ausnutzen, dass Benutzer und Unternehmen ihre GitHub-Namen ändern, indem sie alte Repositorys kapern Namen in der Hoffnung, dass die von ihnen hinzugefügten schädlichen Dateien von Anwendungen abgerufen werden könnten, die den Code als verwenden Abhängigkeit.
Daher ist es wichtig, dass Sie Maßnahmen ergreifen, um Ihr eigenes GitHub-Projekt zu schützen, wenn Sie kürzlich Ihren Benutzernamen geändert haben oder andere Repositorys als Abhängigkeiten referenzieren.
Was ist RepoJacking?
GitHub-Repojacking ist eine Art Exploit, der stattfinden kann, nachdem ein Repository-Besitzer seinen Benutzernamen geändert hat. Die alte Kombination aus Benutzername und Repository-Name wird verfügbar, und ein Repojacker kann seine Abhängigkeiten ausnutzen, indem er den Benutzernamen und beansprucht
Erstellen eines Repositorys mit dem gleichen Namen.Repojacking kann zwei verschiedene Arten von Risiken bergen:
- Repojacking kann eine ansonsten vertrauenswürdige Anwendung unzuverlässig machen. Wenn Sie eine Anwendung verwenden, die ein GitHub-Repository als Abhängigkeit verwendet, und der Eigentümer das Repository umbenennt, sind Sie durch die Verwendung der Anwendung angreifbar.
- Repojacking kann eine von Ihnen entwickelte Anwendung gefährden. Wenn Sie auf ein GitHub-Repository als Abhängigkeit verweisen und es beim Umbenennen des Repositorys nicht bemerken oder aktualisieren, ist Ihre Anwendung anfällig für Repojacking-Exploits.
Repojacking stellt kein großes Risiko für Benutzer dar, es gibt jedoch berechtigten Grund zu der Annahme, dass es als Mechanismus für einen schwerwiegenden Angriff auf die Lieferkette dienen könnte. Wenn eine Anwendung über eine Abhängigkeit verfügt, die auf ein repojackertes Repository verweist, fordert sie Code von den Repojackern an und empfängt ihn, der möglicherweise Malware enthält.
Wenn Sie auf GitHub entwickeln, wissen Sie, wie Sie es können Minimieren Sie Ihr Risiko von Angriffen auf die Lieferkette und Repojacking – sowohl im Hinblick darauf, das gekaperte Repository zu sein als auch als Dritter mit Abhängigkeiten – ist von entscheidender Bedeutung.
So minimieren Sie das RepoJacking-Risiko
Repojacking-Angriffe basieren auf einem äußerst vorhersehbaren Mechanismus: Die Hijacker übernehmen die Kontrolle über ein nicht beanspruchtes Repository und machen sich dann alle Anwendungen zunutze, die darauf als Abhängigkeit verweisen. Glücklicherweise lässt sich Repojacking dadurch leichter bekämpfen.
Erstellen Sie private Klone von Repositorys
Klonen eines Repositorys ist eine hervorragende Möglichkeit, das mit Abhängigkeiten in Ihrem Projekt verbundene Risiko zu minimieren, da Sie die absolute Kontrolle über Ihre private Kopie haben. Sie können eine private Kopie eines öffentlichen Repositorys durch bloßes Klonen und Mirror-Pushing erstellen, wie auf dokumentiert GitHub.
Verfolgen Sie Ihre Projektabhängigkeiten sorgfältig
Wenn Sie sich entscheiden, den Ärger lieber zu vermeiden und auf öffentliche Repositorys zu verweisen, sollten Sie sicherstellen, dass Sie Ihre Projektabhängigkeiten regelmäßig überprüfen. Die Überprüfung des Status Ihrer Abhängigkeiten ein paar Mal im Jahr dauert höchstens weniger als eine Stunde – und erspart Ihnen viel Stress.
Überdenken Sie die Umbenennung Ihres Kontos
Im Idealfall wäre es kein Grund zur Sorge, Ihren Benutzernamen auf dem neuesten Stand zu halten. Angesichts des Repojacking-Risikos sollten Sie jedoch darüber nachdenken, Ihren veralteten Namen beizubehalten. Wenn Sie Ihren Benutzernamen ändern müssen, sollten Sie den alten Namen beanspruchen und reservieren, indem Sie ein anderes Konto registrieren.
Nutzen Sie externe Ressourcen mit Bedacht
Abhängigkeiten stellen ein inhärentes Risiko dar, da sie Zugriffspunkte Dritter in Ihrer Anwendung schaffen. Obwohl sie sich in der Regel durch die Zeitersparnis lohnen, ist die regelmäßige Überprüfung Ihrer Projektabhängigkeiten von entscheidender Bedeutung. Sie sollten auch andere Sicherheitsmaßnahmen ergreifen, z. B. die Verwendung einer SSH-Authentifizierung, um Exploits zu verhindern.