Question:
Est-il urgent de révoquer l'accès à un repo privé une fois qu'une personne l'a obtenu par erreur et en a pris conscience?
gaazkam
2017-11-22 18:18:05 UTC
view on stackexchange narkive permalink

Il y a eu un article sur Niebezpiecznik.pl, un blog InfoSec populaire, décrivant une situation intéressante.

Une entreprise a accordé par erreur l'accès à son dépôt BitBucket à un programmeur aléatoire . Ce programmeur a par la suite alerté divers employés de l'entreprise, les exhortant à révoquer l'accès dès que possible. Il a trouvé ces employés lents (par exemple, l'un d'eux a dit qu'il ne révoquerait l'accès qu'une fois de retour de vacances), a donc alerté le blog Niebezpiecznik, qui a ensuite contacté l'entreprise. Ce n'est qu'alors que l'accès a été révoqué.

Il est clair que le programmeur considérait l'absence de révocation rapide de l'accès comme une très grave erreur de la part de la politique de sécurité de l'entreprise. Et c'est là que je suis surpris.

Alors, considérons cela du point de vue de l'entreprise. Quelqu'un les contacte, affirmant qu'on lui a faussement accordé l'accès à leur dépôt privé et les exhortant à révoquer cet accès. Désormais, cette personne est intéressée ou non par le contenu de ce dépôt; il a aussi ou n'a pas des valeurs morales assez fortes pour s'abstenir de le télécharger. S'il est prêt à inspecter le contenu du repo, il a déjà eu amplement le temps de le faire; et s'il ne l'a pas encore fait, il ne l'aura probablement toujours pas fait au moment où l'employé reviendra de ses vacances. En d'autres termes, le lait s'est déjà répandu et rien de pire que ce qui s'est déjà produit ne risque de se produire à l'avenir.

En conséquence, je pense que la situation n'est plus urgente et peut attendre sérieusement jusqu'à ce que l'employé soit de retour de ses vacances.

Où me suis-je trompé?

Et si quelqu'un piratait ce programmeur aléatoire?Voilà votre propriété intellectuelle.Bonne chance.
Le problème des vacances n'est pas un problème - si l'entreprise n'a qu'une seule personne capable de faire ce changement et que cette personne est en vacances, c'est le vrai problème.
En cherchant à révoquer son accès, il a laissé entendre "et évaluer si des secrets auraient pu être compromis".En vérifiant si son accès fonctionne toujours, il sait que personne n'a probablement examiné le problème du tout.
Souvenez-vous de moi d'une "légende" de hacker classique quand [les gars de Motorola ont trouvé un problème de sécurité dans un système xerox] (http://catb.org/jargon/html/meaning-of-hack.html)
Le blog a-t-il commenté les aspects qualitatifs du référentiel, par exempletaille ou contenu?Par exemple, savons-nous si ce référentiel contenait l'intégralité de la base de code massive de l'entreprise avec des secrets commerciaux, ou s'il s'agissait potentiellement d'un contenu mineur et sans importance?
Posez-vous sérieusement cette question?!Est-ce vous qui étiez en vacances?
Je restaurerais le repo à partir d'une sauvegarde avant l'erreur d'autorisation si cela se produisait.
Ne pas se ridiculiser sur les blogs infosec populaires est une très bonne raison en soi d'agir rapidement, et qui ne devrait vraiment pas nécessiter le recul.C'est un problème de savoir s'il existe une vulnérabilité réelle qui est exacerbée en prenant votre temps.Mais ils auraient également dû réfléchir à la façon dont cela affecte l'image de l'entreprise s'ils réagissent de manière très décontractée.Si vous voulez faire confiance à vos utilisateurs, il ne suffit pas d'être professionnel, vous devez également avoir l'air professionnel.
Le programmeur aléatoire ne veut rien avoir à faire avec eux.Et si quelque chose de mauvais se produit?Le programmeur ne veut pas être sur la liste des suspects
Voici [une perspective] (https://panic.com/blog/stolen-source-code/) d'un développeur sur ce qui se passe lorsque votre code source est pwn'd.Cela explique pourquoi une brèche peut ne pas être considérée comme la fin du monde.
Neuf réponses:
Anders
2017-11-22 18:30:15 UTC
view on stackexchange narkive permalink

Il y a un certain nombre de raisons:

  • Si cela est arrivé à une personne, cela peut être arrivé à plus. Ces autres personnes pourraient ne pas être aussi gentilles.
  • Qui sait, cette personne pourrait changer d’avis. Lorsqu'ils ont fait l'effort de vous contacter et qu'ils reçoivent juste un "meh" en retour, ils pourraient être un peu agacés et décider de vous punir pour cela.
  • Ou peut-être qu'ils veulent juste fouiller un peu pour vous amuser et casser quelque chose par accident.
  • Vous voudrez probablement vérifier les journaux pour voir que cette personne dit la vérité. Peut-être qu'ils ont volé silencieusement vos clés de cryptage avant de vous contacter. Vous voulez probablement changer tous vos secrets juste pour être sûr.
  • Et surtout, c'est un Big F * cking Deal ™. Quiconque ne réagit pas avec le choc et l'horreur, mais commande à la place une autre piña colada, ne comprend clairement pas la gravité de la situation.

Il y a de très bons points dans les commentaires et cette réponse que tout pourrait bien se passer dans certaines circonstances (par exemple, accès en lecture seule, pas de secrets dans le code, etc.). C'est exact, mais je dirais toujours que cela devrait être pris plus au sérieux. Êtes-vous vraiment sûr à 100% qu'il n'y a pas de secrets dans un ancien commit de votre repo? Le fait même que quelqu'un qui ne devrait pas avoir accès à vos systèmes l'ait de toute façon est en soi un mauvais présage.

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/69189/discussion-on-answer-by-anders-is-it-urgent-to-revoke-the-access-to-a-privé-re).
"* Êtes-vous vraiment sûr à 100% qu'il n'y a pas de secrets dans un ancien commit de votre dépôt? *" Si le dépôt est privé, alors par définition, il contient des secrets.
@Simba J'ai beaucoup de dépôts privés qui ne contiennent aucun secret - ils sont juste privés parce que je n'ai jamais pris la peine de les partager, généralement parce qu'ils n'intéresseraient personne d'autre que moi.
Aussi: tant qu'ils ont accès au repo, ils peuvent être accusés de fuites et de piratages effectués avec des informations du repo.(Cela ne se termine pas complètement lorsque l'accès est révoqué, mais cela limite les dommages potentiels.)
Monica Apologists Get Out
2017-11-22 18:32:51 UTC
view on stackexchange narkive permalink

Bien qu'il soit impossible de lire dans les pensées des personnes en jeu - je pense que le programmeur indépendant

A) Ne veut pas être accusé d'irrégularité - Il est beaucoup plus difficile d'être accusé Le vol d'IP si vous donnez un coup de pied et criez pour que votre accès soit révoqué après la hâte.

B) Est consterné par la sécurité de l'entreprise qui contrôle le référentiel privé et sait que s'il était responsable, il le voudrait être informé.

A, A et encore A. Et un peu de B. Mais surtout beaucoup d'A.
Il sait probablement exactement combien de problèmes il peut avoir s'il gardait le silence.Ils connaissent évidemment ses coordonnées pour lui avoir donné accès.
Je ne comprends pas pourquoi cela a obtenu 40 votes positifs.La question porte sur les actions de l'administration.La discussion sur la motivation du programmeur n'a pas sa place dans une réponse.
@Harry Johnston si vous avez un point, alors faites-le.Le troisième paragraphe ne concerne pas les actions du programmeur, mais l'attitude du programmeur.
@Acccumulation, Je ne comprends pas pourquoi vous pensez que cette distinction est pertinente, ce qui me fait penser que mon commentaire précédent n'était pas clair, alors je vais reformuler: la question est fondée sur l'hypothèse douteuse que "l'attitude" du programmeur comme vous le ditesrepose entièrement sur une évaluation objective du risque pour l'entreprise.Le consensus sur Stack Exchange est qu'expliquer pourquoi la prémisse d'une question est erronée est une réponse valable.Ceci est parfois appelé «défi de trame».
@HarryJohnston Étant donné que la dernière phrase du paragraphe en question est "Et voici où je suis surpris.", Je ne vois pas comment la question peut être considérée comme supposant que la position du programmeur est valide.
@Acccumulation, J'ai interprété cette phrase comme signifiant "J'ai trouvé cela surprenant, et c'est pourquoi je pose cette question" car sinon il n'y aurait pas grand intérêt à la mentionner.Si vous l'interprétiez différemment, je peux comprendre pourquoi cette réponse vous paraîtrait sans pertinence.
J'apprécie cette réponse.Cela me donne une meilleure compréhension du sujet.
Nzall
2017-11-22 20:35:32 UTC
view on stackexchange narkive permalink

Une chose à noter est que donner à un utilisateur supplémentaire l'accès à un référentiel ouvre un tout nouveau vecteur d'attaque possible. Si quelqu'un d'autre avec des intentions malveillantes a accès au compte qui a obtenu l'accès au repo sans que le titulaire du compte d'origine ne le sache, cette personne pourrait facilement télécharger l'intégralité de votre code source.

Oui +1, on ne peut jamais savoir si les informations d'identification d'un tiers inconnu sont solides.Ou compromis.
C'est pourquoi vous ne stockez jamais de clés d'API ou d'informations sensibles dans votre dépôt, car les dépôts sont constamment divulgués.
Voo
2017-11-24 03:15:29 UTC
view on stackexchange narkive permalink

Pour fournir un point de vue différent de celui de la majorité, cela ne devrait vraiment pas être un risque pour la sécurité ssi le projet est bien géré.

Il y a essentiellement deux choses qui ont doit être remplit. Premièrement,

  • Vous ne pouvez pas introduire de code dans les branches de version sans que d'autres personnes aient à le signer. Ceci est généralement réalisé en exigeant des demandes d'extraction et des révisions de code sur tout code entrant dans une branche de publication. Dans ce cas, si la personne n'a obtenu que l'accès en lecture au référentiel, vous n'avez pas à vous en soucier. Mais quand même, vous devriez l'avoir en place de toute façon.

et deuxièmement,

  • Personne n'inclut de secrets dans le dépôt. Oui, vous pouvez avoir des clés API secrètes, des certificats de signature de code et autres, mais les vrais ne devraient JAMAIS être dans votre référentiel principal accessible à tous. Si certains secrets sont nécessaires pour que le code fonctionne, incluez des versions factices de développement / test dans votre référentiel. Mais les vrais doivent être conservés séparément avec seulement un petit nombre de personnes ayant accès, de préférence pour que votre système de construction les inclue automatiquement sans intervention manuelle.

Si les deux sont vrais, je ne vois pas vraiment de mal du point de vue de la sécurité. La question de savoir s'il y a des secrets commerciaux précieux dans le code qui pourraient être divulgués à un concurrent est un autre sujet.

Ou une autre façon de penser à cela: la situation ici n'a rien de spécial. Vous devez faire face aux mêmes problèmes à chaque fois qu'un employé quitte ! Si votre référentiel contenait des secrets, une personne externe les connaît désormais tous.

Si l'entreprise stocke un secret commercial ou une propriété intellectuelle précieuse dans ces derniers, il est fort probable que l'employé qui quitte son emploi aura une sorte de clause NDA dans son contrat et sera responsable de toute utilisation de ces informations.Une personne aléatoire à qui l'accès a été accordé n'a aucune obligation contractuelle de ne pas utiliser ces informations dans la mesure où la loi le permet.
+1 même si je pense que c'est urgent, c'est urgent pour les raisons que vous mettez en évidence - l'étranger _peut_ avoir reçu l'autorisation de valider et de déployer du code, et _secrets_ pourrait être dans le dépôt, peut-être caché dans d'anciens commits, car personneest parfait et la sécurité a besoin de plusieurs niveaux de vigilance.
@Anders Oui, je pensais uniquement du point de vue de la sécurité.Si des considérations commerciales ou des exigences légales doivent être prises en compte, cela devient beaucoup plus compliqué et je ne me sens pas qualifié pour donner une réponse complète à ce sujet.
Les NDA @Zefiryn ne valent pas le papier sur lequel ils sont imprimés.
Pieter B
2017-11-24 05:03:37 UTC
view on stackexchange narkive permalink

Si des objets sont volés, regardez d'abord quelles personnes ont la clé du coffre-fort.

J'ai donné des coups de pied et crié dans le passé, de ne pas avoir ça key donc si (quand) quelque chose était volé, ils ne me considéreraient pas comme un possible auteur.

Donc, cela aurait pu être la même chose pour ce programmeur. Il ne voulait pas avoir cette clé.

Si vous avez un dépôt privé, vous pouvez décider de m'accorder l'accès sans me le dire.(Vous pouvez récupérer mes clés ssh publiques depuis github à mon insu ou sans mon consentement, puis les ajouter de manière appropriée à .ssh / allowed_keys.) J'ai les clés pour apporter des modifications dans votre dépôt privé.Vais-je en abuser?Probablement pas.Est-ce que j'en ai quelque chose à faire?NON.
Booser
2017-11-23 16:24:22 UTC
view on stackexchange narkive permalink

Vous avez raison de dire que la situation n'est peut-être pas du tout urgente et que la réaction laxiste des employés peut être justifiée. Peut-être que l'employé ne s'est pas soucié du problème parce que le code en question n'était plus utilisé ou qu'il n'y avait plus de secrets.

Felix
2017-11-23 20:17:19 UTC
view on stackexchange narkive permalink

J'ai déjà travaillé pour une startup où tout le monde utilisait les mêmes clés SSH parce que quelqu'un pensait qu'il serait plus facile de supprimer / remplacer une clé si quelqu'un faisait quelque chose de stupide.

Il y a aussi le possibilité que le développeur ait sa clé stockée dans une machine accessible au public comme un ordinateur à l'université. Cela peut sembler très peu sûr, mais convient pour "Hello World" et "Practice Papers".

Dans ce cas, comme vous l'avez dit, l'entreprise peut être relativement sûre que la personne qui a signalé le l'incident n'essaiera pas de nuire à l'entreprise. Mais vous ne pouvez jamais être sûr de qui a accès au compte / aux clés de la personne qui signalait l'incident.

CGretski
2017-11-25 04:06:13 UTC
view on stackexchange narkive permalink

Je ne lis pas le polonais, alors pardonnez tout ce qui a déjà été abordé:

Bitbucket héberge git et mercurial repo's - les deux sont distribués CVS; ceux-ci sont généralement incompatibles avec les contrôles technologiques pour protéger la propriété intellectuelle / empêcher la sortie de propriété intellectuelle; tout clone / fork existant pourrait être cloné sans visibilité centrale de la piste d'audit.

Des contrôles de sécurité appropriés doivent être en place pour modifier n'importe quel dépôt, par exemple.

  • Approbation PKI pour tous les commits
  • repo en lecture seule avec pull requests

Ainsi, tout dommage possible est déjà fait.

Giacomo1968
2017-11-25 12:42:13 UTC
view on stackexchange narkive permalink

La sécurité, en fin de compte, est un ensemble de processus et de procédures et un état d'esprit. Ce n'est pas un ensemble de règles strictes et rapides. Si vous pensez qu'un système est vulnérable en raison d'une une brèche minable, alors votre état d'esprit en matière de sécurité est au mieux défectueux et ne peut être utile qu'à Henny Penny / Chicken Little.

  • Si les informations d'identification ne sont pas exposées, qui s'en soucie? D'après mon expérience en tant que codeur, administrateur de systèmes Linux et responsable du nettoyage et de la réparation de la sécurité, le plus gros problème avec le code être exposé dans un repo est simplement le risque que les informations d'identification soient exposées. La réalité est que la plupart des codeurs sensés savent coder sans coder en dur dans leur code. Mais la plupart des codeurs sont simplement paresseux et savent pourquoi - ou comment - quelqu'un peut concevoir un système avec des informations d'identification séparées du code principal.

    Donc, si ce système a été exécuté par des codeurs sensés, et que le dépôt ne le fait pas exposer les informations d'identification alors vous savez quoi? On s'en fout. Mais - comme beaucoup d’entre nous le savent déjà - il existe des codeurs de niveau "flic de centre commercial" merdiques qui ne font que pousser les informations d'identification dans le code de base et c'est tout. Vous devez y jouer à l'oreille.

  • L'exposition au secret commercial est un risque. Cela dépend du secteur et des exigences pour lesquels le code a été créé. Si le code est pour un blog ou un simple site Web? Peu importe. Même s'il s'agit d'un site de commerce électronique, s'il s'agissait d'une copie localisée de quelque chose comme Magneto, ce n'est pas vraiment un risque puisqu'il s'agit d'un logiciel open source. Mais si ce logiciel était quelque chose de propriétaire et risqué à exposer - comme quelque chose qui pourrait exposer des dossiers financiers et peut-être même un nouveau code chaud à un jeu - alors c'est un risque.

Mais en fin de compte, le travail d'un hacker «chapeau blanc» est d'informer les autres sur les problèmes. S'ils vont prendre un "Qui s'en soucie?" attitude face à l'exposition, c'est leur problème. Peut-être ne voient-ils vraiment aucun risque? Peut-être qu’ils ne s’en soucient vraiment pas et que cette exposition blessera les autres? Peut-être sont-ils des idiots? Peut-être sont-ils si intelligents qu'une exposition au code ne signifierait - peut-être - que quelques jours de refactorisation pour limiter les risques? Mais en fin de compte, il y a tellement de choses que l'on peut faire pour empêcher quelqu'un de se blesser.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...