Les applications qui utilisent d'anciens noms de référentiel sur GitHub en tant que dépendances pourraient en fait conduire les utilisateurs vers des logiciels malveillants. Voici ce que vous devez savoir.

Il est de plus en plus évident que le repojacking GitHub présente un risque légitime pour les développeurs. Les pirates peuvent profiter des utilisateurs et des entreprises qui modifient leurs noms GitHub en détournant l'ancien référentiel noms dans l'espoir que les fichiers malveillants qu'ils ajoutent peuvent être récupérés par des applications qui utilisent le code comme un dépendance.

Il est donc important que vous preniez des mesures pour protéger votre propre projet GitHub si vous avez récemment changé votre nom d'utilisateur ou si vous faites référence à d'autres référentiels en tant que dépendances.

Qu'est-ce que le repojacking?

Le repojacking GitHub est un type d'exploit qui peut avoir lieu après qu'un propriétaire de dépôt a changé son nom d'utilisateur. L'ancienne combinaison de nom d'utilisateur et de nom de référentiel devient disponible, et un repojacker peut tirer parti de ses dépendances en revendiquant le nom d'utilisateur et

instagram viewer
création d'un référentiel avec le même nom.

Le repojacking peut poser deux types de risques distincts :

  • Le repojacking peut rendre une application par ailleurs digne de confiance peu fiable. Si vous utilisez une application qui utilise un référentiel GitHub comme dépendance et que le propriétaire renomme le référentiel, l'utilisation de l'application vous rendra vulnérable.
  • Le repojacking peut mettre en danger une application que vous développez. Si vous référencez un référentiel GitHub en tant que dépendance et que vous ne le remarquez pas ou ne le mettez pas à jour lorsque le référentiel est renommé, votre application sera vulnérable aux exploits de repojacking.

Le repojacking ne présente pas un risque énorme pour les utilisateurs, mais il y a des raisons légitimes de croire qu'il pourrait servir de mécanisme pour une attaque sérieuse de la chaîne d'approvisionnement. Si une application a une dépendance qui fait référence à un référentiel repojacké, elle appellera et recevra du code des repojackers qui peuvent contenir des logiciels malveillants.

Si vous développez sur GitHub, savoir comment vous pouvez minimiser votre risque d'attaques de la chaîne d'approvisionnement et le repojacking, à la fois en tant que référentiel piraté et en tant que tiers avec des dépendances, est vital.

Comment minimiser le risque de repojacking

Les attaques de repojacking reposent sur un mécanisme extrêmement prévisible: les pirates de l'air prennent le contrôle d'un référentiel non réclamé, puis profitent de toutes les applications qui le référencent en tant que dépendance. Heureusement, cela rend le repojacking facile à combattre.

Créer des clones privés de référentiels

Cloner un dépôt est un excellent moyen de minimiser les risques liés aux dépendances dans votre projet car vous aurez un contrôle absolu sur votre copie privée. Vous pouvez créer une copie privée d'un référentiel public en clonant à nu et en le poussant en miroir, comme documenté sur GitHub.

Suivez attentivement les dépendances de votre projet

Si vous décidez que vous préférez éviter les problèmes et référencer des référentiels publics, vous devez vous assurer d'auditer fréquemment les dépendances de votre projet. Vérifier l'état de vos dépendances quelques fois par an prendra moins d'une heure tout au plus, et cela vous évitera beaucoup de stress.

Repensez à renommer votre compte

Idéalement, garder votre nom d'utilisateur à jour ne devrait pas vous inquiéter. Compte tenu du risque de repojacking, vous devriez toutefois envisager de conserver votre nom obsolète. Si vous devez changer votre nom d'utilisateur, vous devez réclamer et réserver l'ancien nom en enregistrant un autre compte.

Utiliser judicieusement les ressources externes

Les dépendances présentent un risque inhérent car elles créent des points d'accès tiers dans votre application. Bien qu'ils valent généralement le temps qu'ils économisent, il est crucial d'auditer régulièrement les dépendances de votre projet. Vous devez également prendre d'autres mesures de sécurité, telles que l'utilisation de l'authentification SSH, pour empêcher les exploits.