Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un développeur affirme que le code source de GitHub a fuité en ligne. Mais le PDG de GitHub rassure : non
GitHub n'a pas été piraté, malgré des apparences qui pourraient laisser penser le contraire

Le , par Stéphane le calme

69PARTAGES

11  0 
Il y a déjà plusieurs heures, le développeur TypeScript et activiste de la vie privée répondant au pseudonyme Resynth1943 a publié un billet dans lequel il affirmait que le code de GitHub avait fuité :

« L'ensemble du code source du service d'hébergement de code utilisé par les développeurs, GitHub.com, vient d'être divulgué au public.

« Dans un commit suspect au sein du référentiel officiel GitHub DMCA, un individu inconnu a téléchargé le code source confidentiel, se faisant passer pour Nat Friedman en utilisant un bogue dans l'application de GitHub.

« Au cœur de l'open source, GitHub a longtemps été critiqué pour avoir gardé son code source privé. La plateforme héberge des millions de projets open source, et les critiques affirment que la position de GitHub est quelque peu hypocrite.

« Cependant, cela soulève des questions sur la sécurité du code source de GitHub et sur le fait que GitHub ait quelque chose à perdre ou non, s'ils prévoient de publier le code source dans un cadre public.

« Certains craignent que cela nuise à la sécurité globale de GitHub, et cela peut être vrai. Généralement, les applications à source fermée assurent la "sécurité par l'obscurité". Cela signifie que le code source est caché, dans le but de dissimuler les risques de sécurité.

« Depuis l'acquisition de GitHub par Microsoft en 2018, Microsoft a souligné à plusieurs reprises son "amour" pour l'open source. Nous l'avons vu à travers des publicités commerciales répétées, qui visent à placer Microsoft à l'avant-garde du développement open source.

« Certains utilisateurs, tels que Drew DeVault, suggèrent que Microsoft tente de centraliser l'open source. Grâce aux applications à source fermée et aux extensions propriétaires de Git, GitHub est considéré comme une plateforme qui tente de contenir l'open source. Un exemple de ceci est lorsque GitHub a été déconnecté pendant deux heures, laissant des milliers de projets open source inaccessibles et inutilisables.

« GitHub est, à bien des égards, le Google du développement open source.

« Peut-être que GitHub a eu 12 ans de retard pour finalement révéler son code source au public; et c'est peut-être exactement ce dont nous avons besoin ».

Resynth1943 semble être celui qui a annoncé la prétendue fuite du code source de GitHub par un inconnu sur un commit qui a été falsifié pour faire croire qu'il provenait du PDG de GitHub Nat Friedman. Peu de temps après qu'il ait diffusé cette annonce sur les réseaux sociaux, Nat Friedman a réagi pour apporter des éclaircissements.

Tout d'abord, Nat Friedman a démenti être l'auteur du commit. Il a également affirmé que GitHub n'a pas été piraté d'une quelconque manière. De plus, selon lui, le « code source divulgué » ne couvrait pas tout le code de GitHub, mais seulement le produit GitHub Enterprise Server. Bien que les deux partagent un volume considérable de code, la distinction est significative. Il s'agit d'une version de GitHub Enterprise que les entreprises peuvent faire fonctionner sur leurs propres serveurs sur site, au cas où elles auraient besoin de stocker le code source localement pour des raisons de sécurité, mais qu'elles souhaitent néanmoins bénéficier des fonctionnalités de GitHub Enterprise.

Bien que ni GitHub ni GitHub Enterprise Server ne soient du code open source, le code source de GitHub Enterprise Server est systématiquement expédié aux clients, bien entendu dans un format simplifié et obscurci. Selon Nat Friedman, GitHub a accidentellement fourni à certains clients une archive tar complète et non obscurcie de GitHub Enterprise Server il y a quelques mois; c'est le code qui a été sauvegardé dans le référentiel DMCA public de GitHub.

À en juger par le timing, il est probable que « l'individu inconnu » auquel fait allusion Resynth1943 ait téléchargé le code source en grande partie par colère à propos du récent retrait de Youtube-dl. En effet, la Recording Industry Association of America (RIAA), l’association interprofessionnelle de défense des intérêts de l'industrie du disque aux États-Unis, a émis une requête DMCA adressée à la plateforme GitHub pour violation des droits d'auteur ciblant Youtube-dl. La base de code qui sert de socle aux outils de téléchargement de vidéos sur diverses plateformes est désormais hors ligne depuis plusieurs jours. Un grand nombre de développeurs et d'utilisateurs en colère ont exprimé leur mécontentement en mettant à nouveau en ligne le code litigieux sur GitHub. Alors que Github affirme vouloir aider à restaurer l’outil de téléchargement du contenu multimédia sur YouTube, la plateforme a émis un avertissement selon lequel les comptes pourraient être supprimés s'ils se voyaient coupables de mettre en ligne du contenu qui a été retiré en raison des avis de retrait du DMCA.

Le code publié par « l'individu inconnu » a lui aussi été déposé dans le référentiel DMCA de GitHub, qui sert d'historique des demandes de retrait DMCA que GitHub a reçues, au fur et à mesure qu'il les reçoit, comme l'explique GitHub : « Inspiré par Lumen (anciennement Chilling Effects) et Google, ce dépôt contient le texte des avis de retrait et des contre-avis DMCA que nous avons reçus ici sur GitHub. Nous les publions au fur et à mesure de leur réception tout en supprimant uniquement les informations personnellement identifiables ».

GitHub n'a pas été « piraté ». L'occasion d'apporter plusieurs modifications ?

Le commit semblait provenir de l'utilisateur Nat (alias Nat Friedman, l'actuel PDG de GitHub). Tout comme le contenu du commit, cela est trompeur et peut induire en erreur. Notons que Git lui-même, le système de contrôle de version du code source sous-jacent à GitHub, ne protège pas de manière significative contre l'emprunt d'identité des utilisateurs. Le commit en question n'a pas été étiqueté comme étant « vérifié », ce qui signifie qu'il n'a pas été signé avec la clé GPG de Friedman.


La fuite de code source a disparu de GitHub lui-même très rapidement et n'est pas restée très longtemps sur web.archive.org

Comment l'usurpateur s'y serait pris ?

Les commits Git, tout comme les messages e-mails, permettent aux utilisateurs de mettre toutes les informations qui leur plaisent dans les champs user.name et user.email. Cela rend l'usurpation de ces informations triviale. À moins que le commit ne soit réellement signé avec une clé GPG associée à cette adresse e-mail, il n'y a pas de véritable vérification qu'il provient de là où il le devrait.

Reste alors à savoir comment un commit d'un utilisateur aléatoire apparaîtrait dans le référentiel DMCA de GitHub en premier lieu, mais la réponse n'implique pas non plus un piratage de compte.

Voici une théorie qui circule sur la toile :

Lorsque vous transmettez un commit à un référentiel Git, vous obtenez un hachage qui représente ce commit et peut être utilisé pour le localiser dans l'arborescence. GitHub, dont une partie est l'application Web qui fournit un accès dans le navigateur à cette structure Git sous-jacente, conserve tous les fork d'un référentiel Git dans un seul référentiel sous-jacent, bien qu'il n'apparaisse généralement pas de cette façon dans la structure d'URL.

Ainsi, pour créer l'illusion que le PDG de GitHub, Nat Friedman, s'était engagé dans le dépôt GitHub DMCA, l'individu inconnu devait d'abord cloner le référentiel DMCA. Après avoir fait un fork du référentiel (en créant une copie sur laquelle il avait le privilège de faire des commits), l'étape suivante consistait à valider la source divulguée, en usurpant le nom et l'adresse e-mail de Friedman dans user.name et user.email.

Cela entraînerait un dépôt forké, avec le faux commit. Mais cela n'aurait toujours pas semblé tout à fait correct (l'URL, après tout, pointerait toujours à la fois vers le fork et vers le vrai nom d'utilisateur et compte GitHub de l'attaquant). Mais sous le capot, le parent et le fork font tous deux partie du même référentiel au niveau Git sous-jacent. Cela a permis à l'attaquant de construire une URL qui donne l'impression que le commit a été effectué vers le référentiel principal, pas vers le fork.

Pour parachever la tromperie, l'attaquant a commencé par https://github.com/github/dmca, puis a ajouté tree/$ hash à la fin, où $hash était le hachage du commit effectué sur son propre fork. Le résultat était une URL qui semblait être un commit, fait par le PDG Nat Friedman, vers le propre référentiel DMCA de GitHub.

La note positive c'est qu'il n'y a eu aucun piratage ici. Le code source a été librement, bien qu'accidentellement, donné aux clients et non exfiltré d'un serveur compromis. De même, Friedman n'a pas perdu le contrôle de son propre compte et GitHub n'a pas perdu le contrôle de son référentiel DMCA. Selon les propres mots de Friedman : « tout se passe bien, la situation est normale ».

Source : blog Resynth1943, GitHub DMCA, Nat Friedman

Et vous ?

Qu'en pensez-vous ? GitHub pourrait-il profiter de cette expérience pour améliorer certains de ses processus ?
Que pensez-vous de la théorie selon laquelle l'auteur pourrait être un développeur qui manifeste sa colère à propos du récent retrait de Youtube-dl ?
Partagez-vous l'avis de ceux qui pensent que GitHub, en tant que plateforme hébergeant du code open source, devrait publier également son code en open source ? Dans quelle mesure ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de user056478426
Membre habitué https://www.developpez.com
Le 06/11/2020 à 12:24
Citation Envoyé par phil995511 Voir le message
Il faudrait lancer une "plateforme concurrente" similaire mais libre, non dépendante de Micro$....
Tu veux dire comme GitLab et Gitea ?
4  0 
Avatar de eikofee
Nouveau membre du Club https://www.developpez.com
Le 06/11/2020 à 12:30
Citation Envoyé par phil995511 Voir le message
Il faudrait lancer une "plateforme concurrente" similaire mais libre, non dépendante de Micro$....
Y'a pas genre GitLab que "tout le monde" a rejoint quand GitHub s'est fait racheté par Microsoft y'a un an et demi ou presque ?

edit: mince pas vu que je fais doublon
2  0 
Avatar de phil995511
Membre averti https://www.developpez.com
Le 06/11/2020 à 13:07
Citation Envoyé par eikofee Voir le message
Y'a pas genre GitLab que "tout le monde" a rejoint quand GitHub s'est fait racheté par Microsoft y'a un an et demi ou presque ?

edit: mince pas vu que je fais doublon
Citation Envoyé par user056478426 Voir le message
Tu veux dire comme GitLab et Gitea ?

Merci pour l'info ainsi que ces bonnes adresses

Il ne reste plus qu'à se désabonner / boycotter GitHub...
0  2 
Avatar de phil995511
Membre averti https://www.developpez.com
Le 06/11/2020 à 11:53
Il faudrait lancer une "plateforme concurrente" similaire mais libre, non dépendante de Micro$....
0  3