web-dev-qa-db-fra.com

Compte Github piraté et repo effacé - Réponse Github

Un de mes repo a été effacé aujourd'hui et juste un message laissé à sa place avec une rançon bitcoin. Je ne sais pas comment ils ont accédé à mon compte, je ne vois vraiment rien sur la page de sécurité de github.

Le domaine de l'e-mail qu'ils souhaitent que je contacte n'a été créé qu'aujourd'hui, Google n'apporte rien, semble également être une nouvelle adresse Bitcoin, car Google ne renvoie rien pour cela.

Ils n'ont effacé qu'un seul dépôt et il y en a comme 50+, ce qui me fait penser qu'ils n'ont jamais accédé à mon compte directement et possible à partir d'un serveur sur lequel j'avais cloné le dépôt, ou c'était une attaque ciblée et ils savaient exactement ce qu'ils recherchaient.

Est-il possible de vérifier si mes autres dépôts ont été consultés récemment et clonés? ils sont tous mis en privé.

Je suis un peu perdu en ce moment, que faire, le facteur 2 a été activé dans github, le serveur principal où le code a été utilisé, j'ai supprimé les scripts inutilisés, etc. changé les mots de passe, en train de construire une nouvelle droplet de serveur et déplacer tout par précaution en cas d'accès au serveur.

Ce code était encore en version bêta, bien que 50 clients l'utilisent. Et il y a quelques cas pendant le développement juste à cause du manque de temps que je suis passé pour l'ancienne sécurité à travers l'obscurité ... Cela aura donc un impact direct sur mes clients.

Tout le monde a obtenu une entrée, comment puis-je essayer de retrouver la source de cela, savoir comment ils ont obtenu l'accès en premier lieu?

Je viens de vérifier les derniers détails du commit,

ATTENTION

gitbackup
gitbackup validé il y a 4 heures

Toute l'histoire des validations et tout le code ont disparu.

Mise à jour: l'adresse et l'e-mail Bitcoin commencent à faire surface sur Google avec des rapports d'incidents similaires, au moins je sais maintenant que c'est aléatoire et non ciblé.

Réponse de Github

Github m'a répondu aujourd'hui avec une réponse assez standard.

Nous avons récemment remarqué une activité suspecte sur votre compte GitHub qui suggère qu'un attaquant peut s'être connecté, téléchargé et modifié de manière malveillante certains référentiels, répertoriés ci-dessous. Par prudence, nous avons décidé de forcer la réinitialisation du mot de passe pour le compte associé à cette adresse e-mail. Nous n'avons aucune raison de croire que GitHub a été piraté ou compromis.

Ce type d'accès non autorisé se produit souvent à la suite de la réutilisation des informations d'identification sur plusieurs services en ligne. Un attaquant peut alors obtenir des listes d'adresses e-mail et de mots de passe provenant d'autres services en ligne qui ont été compromis par le passé, et les essayer sur GitHub.

Dépôts suspectés de reprise:

xxxx

Si vous avez une copie locale du référentiel, le forcer à le pousser vers GitHub devrait restaurer le référentiel à son état précédent. Si vous n'en avez pas de copie locale, veuillez contacter notre équipe d'assistance à l'adresse e-mail ci-dessous afin de demander de l'aide.

17
Raymie

Du PO:

Ok, la source a été trouvée.

https://en.internetwache.org/dont-publicly-expose-git-or-how-we-downloaded-your-websites-sourcecode-an-analysis-of-alexas-1m-28-07- 2015 /

Que je suis bête! :)

LA PRÉVENTION -

<DirectoryMatch "^/.*/\.git/">
  Require all denied
</DirectoryMatch> 

dans votre configuration Apache.

pour restaurer votre repo,

git Push Origin HEAD: master --force

Pour le rendre autonome, cela se produit lorsque vous servez un entier Git repo pour votre site Web. Ainsi, par exemple, si votre processus de déploiement ressemble à

  1. Poussez vos changements
  2. SSH dans le serveur Web
  3. Tirez vos changements

Ensuite, vous devriez en prendre note.

Git a un .git dossier qui contient toutes les méta-informations sur votre dépôt, y compris vos URL distantes. Si vous intégrez vos informations d'identification dans l'URL distante (si elle ressemble à https://user@pass:github.com/user/repo.git, vous l'avez fait), ces informations d'identification peuvent être utilisées pour accéder à votre référentiel et y faire n'importe quoi que vous pourriez faire.

Il existe quelques atténuations, selon votre situation:

  1. Comme indiqué ci-dessus, vous pouvez simplement configurer votre serveur Web pour ne pas servir le .git dossier. C'est la solution la plus rapide et la plus simple, mais pas non plus excellente, car vous exposez toujours le contenu du dépôt à quiconque connaît les chemins. Si vous avez des éléments propriétaires là-dedans, utilisez une autre atténuation .
  2. Mettez le code de votre site Web dans un sous-répertoire du référentiel. Vous obtenez toujours la facilité de déploiement, mais maintenant tout ce que vous voulez suivre mais pas publié, vous ... ne le mettez pas dans le répertoire public. Il s'agit d'un coût de migration plus élevé, mais d'une approche plus propre et plus facile à réaliser à long terme.
  3. Tirez avec SSH, pas avec HTTPS. Le fichier de clés, à moins que vous ne fassiez quelque chose d'horrible, ne sera pas publié, donc personne d'autre ne peut accéder au dépôt même s'ils faites ont accès au .git dossier. N'oubliez pas qu'avec cette solution, ils peuvent toujours accéder au .git dossier, mais pour certains projets (par exemple la plupart des projets open-source), cela n'est pas pertinent, car tout y est déjà public. En prime, la connexion de votre serveur à GitHub sera plus sécurisée.
2