J'ai récemment acheté un communicateur satellite qui me permet d'envoyer une carte de mon emplacement à mes amis et à ma famille pendant que je fais de la randonnée dans la nature.
Lors du test de mon produit, j'ai remarqué que l'URL était construite comme suit:
http://www.example.com/mylocation/?id=YYYYY/XX.XXXXN/XX.XXXXW
Où X
s sont des chiffres qui font partie d'une latitude/longitude physique et les Y
s font partie d'un ID alphanumérique à 5 caractères.
Curieux, j'ai tronqué la partie latitude/longitude de l'URL et changé l'ID d'un caractère.
http://www.example.com/mylocation/?id=YYYYZ
En faisant cela, je pouvais alors voir un autre utilisateur:
Ma question est, cela présente-t-il une faille de sécurité, et l'entreprise doit-elle être alertée à ce sujet?
Mon argument pour contacter l'entreprise serait que voir les emplacements physiques des autres utilisateurs est un défaut flagrant; cependant, c'est tout l'intérêt du produit: partager facilement votre position avec votre famille/vos amis. Je ne peux pas non plus voir à qui appartient réellement l'appareil (nom, numéro de téléphone, nom d'utilisateur, e-mail, etc.), donc les données de localisation sont anonymisées pour autant que je sache.
Oui, vous devez signaler le problème à l'entreprise - avec prudence.
Update: une réponse plus courte mais très complète a été fournie par @ crovers. Mais si vous avez de la patience ...
... le problème ici n'est pas simplement la possibilité de suivre J. Random Stranger, mais plutôt que:
une fois que votre identifiant a été donné à quelqu'un, apparemment vous ne pouvez pas le récupérer et il n'expire pas. Cette personne peut maintenant vous suivre partout (pensez " petite amie trop attachée "). En outre, cet ID peut fuir. Les e-mails sont transmis par erreur et parfois le petit, facilement surveillé ... glyphe dans les programmes de messagerie couvre de nombreuses informations sensibles.
vous n'avez même pas besoin de me le donner . Si les ID sont séquentiels [comme commenté par @crovers], je peux tous les tabuler en très peu de temps, et facilement distinguer les cinq ou six qui sont assez près quelque part Je sais que tu pourrais l'être. Demain, cinq ou six autres seront assez près d'un endroit différent dans lequel vous vous trouvez maintenant; de ces cinq, peut-être deux étaient dans les cinq originaux, vous devez donc être l'un de ces deux. En relativement peu de temps, j'ai réduit mes candidats à un : j'ai maintenant votre ID et je peux vous traquer, et vous ne sont pas les plus sages .
Je peux même ne pas savoir vous. L'ID peut être utilisé pour farce à un total d'étrangers. Je viens de googler un peu et j'ai trouvé quelques milliers d'utilisateurs de Facebook qui se vantaient de leur nouveau (NOM DU GADGET RELIÉ AU GPS). J'ai utilisé une marque très connue, donc votre gadget n'aura peut-être qu'une centaine de personnes que je pourrai découvrir facilement. Je suis convaincu que la moitié d'entre eux publieront régulièrement des photos sur leur emplacement ( Facebook purge-t-il les informations GPS EXIF? ). Dans très peu de temps, l'un d'entre eux qui a attiré mon attention pourrait recevoir un message indiquant "Comment est le temps à Old Nowhereville?" même s'il (ou elle) n'a jamais rien dit à personne sur l'endroit où il (ou elle) se trouvait, ni même rien affiché n'importe où. De telles farces - et sachant qu'un inconnu total est apparemment intéressé par vous, et semble toujours savoir où vous êtes - peut totalement gâche ta journée. Et ils peuvent totalement gâcher la journée de l'entreprise, si certaines personnes farcies sont convaincues que leur GPS peut en quelque sorte être "piraté à distance", même si, comme dans ce cas, ce n'est pas ce qui se passe du tout. Oui, j'ai un esprit malade - mais je ne suis pas le seul, alors vous voudrez peut-être pointer les gens de l'entreprise vers cette page - et, pour reformuler un autre très bon point soulevé par @crovers et Arminius, faire si anonymement . Les dommages potentiels pour eux sont énormes, et vous leur faites une grande faveur en les pointant vers eux . Mais certaines entreprises peuvent avoir une réaction (à genoux) et essayer de vous intimider dans le silence en croyant que cela résout quelque chose (ou même résout le problème entièrement); L'histoire du Prix Nobel Richard P. Feynman fait une lecture hilarante ("" C'était sa solution: j'étais le danger! ") .
Vous les aidez en fait.
Cela ne devait absolument pas être comme ça.
Il est trivialement simple, du point de vue de l'entreprise, de résoudre ce problème en permettant à chaque utilisateur de régénérer un ID secret différent sur demande à tout moment. Et même définir une date d'expiration. Et ils peuvent le faire maintenant .
Une solution très rapide pourrait consister à proxy leur site Web via un simple filtre, connecté à une base de données.
Votre nouvelle URL est, disons, http://www.example.com/mylocation/?id=22b255b332474ae3e7f008cc50ebe3e0& ...
ou on pourrait traduire cela par "true.pony.pile.main.jazz.call.mine.soft.pink.rake.jane" pour obtenir quelque chose de plus facile à mémoriser ou à dicter par téléphone.
les quatre premiers mots sont quelque peu liés à "l'agrafe de batterie de cheval correcte" .
Le proxy vérifie dans une base de données et constate que 22b255b332474ae3e7f008cc50ebe3e0
est un ID valide, et est associé à l'id "réel" (ou "ancien") 12345, donc il transforme l'URL en remplaçant simplement l'ID par 12345, envoie le demande au vrai site caché, récupère la page, réécrit tout 12345 avec le truc 22b2 ... original, et hey presto! , l'utilisateur externe peut voir où vous êtes , même page qu'avant, mais il n'a aucun moyen de savoir que le véritable ID est 12345 (et, même s'il le savait, il n'aurait aucun moyen de le faire passer au système, qui n'accepte désormais que les hachages).
Mais maintenant, l'utilisateur 12345 peut avoir autant d'ID actifs que l'entreprise le souhaite (ou vend !), Et en donner un à sa maman, un à son SO, etc.). Une pièce d'identité fuit, ou il rompt avec son ami - il invalide la pièce d'identité. Il devient également possible de connaître le nombre d'accès à chaque ID, de sorte que l'espionnage peut être bidirectionnel. Peut-être pour les utilisateurs premium uniquement :-D. Pour certains identifiants, le site Web peut même publier des informations aléatoires.
Et si vous vouliez deviner au hasard une pièce d'identité valide - eh bien, il y en a 2128 de celles. Si chaque client avait cent pièces d'identité jetables (disons 27), et la société comptait un milliard de clients (disons 230), il y aurait encore environ une possibilité sur 290 pour obtenir un ID valide en essayant au hasard. Si c'est trop peu (ou si mes calculs se sont avérés un peu biaisés), il y a aussi des hachages plus gros.
Et l'ancien ID ne fonctionne plus puisque vous ne pouvez pas atteindre le serveur d'origine sans que l'ID que vous fournissez soit haché.
Étant donné le coût d'implémentation raisonnable (la valeur de quelques jours pour un développeur et un ingénieur QA, et je remplis fortement ), je suis un peu déconcerté que cela n'ait pas été conçu dès le départ.
Oui. Ils devraient utiliser une chaîne longue et impossible à deviner au lieu d'une chaîne courte et prévisible.
Je considérerais cela comme une faille de sécurité qu'il est relativement simple de corriger.
Cependant, je vous mets en garde - certaines entreprises ne gèrent pas très bien de telles situations. Certains soutiennent (à mon avis, à tort) que la modification de cet identifiant constitue un piratage et ils peuvent menacer de poursuivre ou vous faire accuser. C'est idiot, mais je vous conseille de les approcher de manière anonyme ou via un intermédiaire.
Vérifiez s'ils ont un programme de prime nom de la société Google et prime de bug). Si ce n'est pas le cas, vous pouvez envisager d'utiliser un intermédiaire - --- (Zero Day Initiative en est un.
Pour ajouter aux autres réponses - soyez conscient des risques de signaler le problème vous-même :
Si vous n'avez aucune expérience en matière de signalement de problèmes de sécurité, vous pourriez les rencontrer comme douteux et potentiellement malveillants. Une entreprise qui n'a pas d'expérience dans la gestion des problèmes de sécurité peut transmettre votre rapport à l'avocat de l'entreprise plutôt qu'au service informatique. De toute évidence, vous voulez simplement aider, mais pour eux, vous causez principalement des problèmes. Il y a de fortes chances qu'ils ne souhaitent pas que le problème devienne public (ce qui pourrait nuire gravement à leur réputation commerciale) et, par conséquent, ils pourraient vous menacer de conséquences juridiques. Dans le pire des cas, ils contacteront les forces de l'ordre sans préavis.
Curieux, j'ai tronqué la partie lat/lon de l'URL et changé l'identifiant d'un caractère.
Vous n'avez donc pas trouvé cela purement par accident. Du point de vue de l'entreprise, vous avez accédé aux données des autres clients en manipulant l'URL - peu importe pour eux la facilité et le fait que vous l'ayez fait "juste par curiosité". Ils pourraient toujours vous voir comme une menace et réagir de manière non professionnelle.
Vous devez être conscient de cette interprétation possible et décider soigneusement si cela vaut le risque. Si vous traitez des bogues de sécurité sans contrat ou politique publique qui encourage la chasse aux bogues, vous êtes dans une zone grise légale .
Si j'étais toi, je dirais quelque chose comme
Hello,
I have mistyped my ID (e.g. 12345) and pressed enter instead of backspace,
and I was dumbfounded to find that the page loaded and found
the location of a stranger who has the ID next to mine (e.g. 12346).
Being able to track someone without their permission
seems to be a security problem, as someone that knows me on Facebook
with a small bit of IT knowledge would be able to guess my ID without me knowing.
En gros, disons que vous ne l'avez pas trouvé par curiosité mais par accident. Envoyez-le également de manière pseudo anonyme (par exemple, n'utilisez pas votre véritable identifiant et envoyez-le en utilisant quelque chose comme [email protected]).
Vérifiez votre courrier avant de l'envoyer et faites-le lire à quelqu'un que vous connaissez.
Lisez-le comme si vous étiez la colère personnifiée, cela pourrait vous aider à la lisser afin de ne pas laisser quelqu'un qui a commencé sa journée en se cognant l'orteil sur le poteau de lit laisser échapper sa colère contre vous.
S'ils ne répondent pas ou ne font rien pendant un certain temps, dites (peut-être après un mois ou deux, car c'est un problème de sécurité moyenne) que vous souhaitez qu'ils fassent quelque chose ou essayez avertir les autres utilisateurs de ce problème. S'ils ne font toujours rien, faites-le, mais soyez avertis, ils pourraient ne pas aimer. voir ce cas zamfoo
Insistez sur le fait que si vous l'avez trouvé aussi trivial que cela, quelqu'un de pire pourrait l'utiliser à des fins néfastes, et d'autres utilisateurs pourraient avoir trébuché là-dessus et s'inquiéter aussi.
Faites preuve de bon sens pour que vous apparaissiez comme un utilisateur concerné qui est tombé sur quelque chose de bizarre ou un ami de cet utilisateur, qui fonctionne aussi. Un peu de "mensonge", beaucoup de calme et de politesse vont un long chemin pour tester les eaux. S'ils semblent assez amicaux, vous pourriez dire que vous êtes compétent (si vous l'êtes) et pouvez les aider à suivre le problème.
Si vous les aidez et qu'ils sont amicaux, vous voudrez peut-être leur demander s'ils veulent que vous examiniez activement d'autres problèmes potentiels. (S'ils ont une grande expérience avec vous qui pourrait vous aider à trouver un emploi (ils peuvent parler de vous, à quel point vous êtes bon (amical mais professionnel), etc.) avec d'autres personnes qui pourraient vous souhaiter. Ou simplement servir de référence), ou des amis.)
C'est aussi une occasion pour eux d'obtenir une publicité gratuite, s'ils réagissent bien, vous serez probablement enclin à en parler à des personnes qui pourraient être intéressées.
Quoi que vous et eux fassiez, gardez votre calme, n'escaladez pas rapidement, comprenez leur point de vue, et N'APPARAÎTZ PAS COMME UNE MENACE (1)
Si vous semblez pouvoir les endommager plus que vous ne l'aideriez, c'est le moyen le plus rapide de les mettre sur la défensive et d'obtenir des menaces d'avocat/un cas réel si vous avez fait quelque chose de stupide et n'a pas couvert vos motifs.
(1) Cela fonctionne dans la plupart des cas, non seulement quand on parle de sécurité, mais aussi avec des gens plus ou moins en colère (collègues, patrons).
Digression: La seule fois où vous voudrez peut-être apparaître comme une menace, c'est si vous êtes menacé par quelqu'un/quelque chose de sûr que rien ne s'opposera jamais à lui (par exemple un chien très en colère), marchez calmement vers lui sans aucune peur (même si vous brunissez votre pantalon) ), ils commenceront probablement à aboyer davantage, mais ils reculeront lentement et vous laisseront passer (ou vous tuer/maul, mais si vous vous enfuiez, ce serait la même chose).
ps: Soyez critique de ce que je dis, je suis un humain stupide, et je ne possède pas la vérité absolue, si quelque chose semble mieux, réfléchissez aux idées, faites ce qui semble le mieux et voyez ce qui se passe, apprenez.
(N'hésitez pas non plus à proposer des modifications si cela vous semble trop déstructuré/long/vagabond, je ne mords pas.)
Tout le monde semble sauter l'arme ici. La partie clé à considérer est COMMENT vous un utilisateur final, partagez votre position avec d'autres utilisateurs finaux (famille/amis).
Si vous affichez les informations avec un lien et êtes en mesure d'envoyer le même lien aux membres de la famille, il est supposé que vous publiez des informations publiquement (il n'y a pas de système d'autorisation).
La déclaration de confidentialité ou les conditions d'utilisation doivent le préciser. Qui peut accéder à vos données de localisation? Quelles informations sont fournies publiquement? Cela clarifierait certainement la question que vous avez proposée.
L'utilisation d'un simple lien Web n'est pas la façon dont je concevoir un tel système, mais semble complètement intentionnelle. Je vous suggérerais peut-être de les interroger sur les paramètres de confidentialité.
C'est une question intéressante, dans la plupart des systèmes, je considérerais cela comme une vulnérabilité de référence directe non sécurisée exposant les données de localisation.
La localisation GPS en temps réel doit être considérée comme sensible, elle pourrait avoir de multiples utilisations néfastes. Dans ce cas, il s'agit de l'intégralité du système et bien que je pense que les identifiants devraient être plus difficiles à deviner tout en restant utilisables (être alphanumériques par exemple), les données ne sont pas identifiables pour un utilisateur spécifique. Il peut également être sécurisé par un mot de passe que vous fournissez aux utilisateurs auxquels vous souhaitez accorder l'accès.
Je ne pense pas que ce soit un risque pour la sécurité en tant que tel, juste une mauvaise mise en œuvre. La question est de savoir si vous pensez que vos informations ou votre vie privée ont été violées si un étranger a accédé à votre page? Si c'est le cas, soulevez-le auprès du fabricant.
Edit: - Révisé mon avis à ce sujet. Je considérerais ce système comme vulnérable. Les identifiants doivent être plus difficiles à deviner et idéalement protégés par mot de passe.
Ce problème se produit en raison de la référence d'objet directe et des ID facilement énumérés. Nous ne devons pas utiliser d'ID facilement énumérés dans aucun système, car cela ouvre des suppositions faciles à l'attaquant. Si vous ne pouvez pas deviner les ID, nous pouvons également réduire le risque de référence d'objet directe. Ils doivent avoir une valeur d'ID aléatoire ou un GUID pour que l'utilisateur représente un utilisateur.
Comme je pense que c'est un flux majeur et l'entreprise devrait fournir une API où la famille/l'ami s'est authentifié avant de pouvoir vous suivre. Comme l'a suggéré @Arminius, nous ne pouvons pas prédire comment la société de produits acceptera votre découverte. Il est toujours préférable d'en informer Anonyme. Sinon, utilisez un modèle ou des termes Divulgation responsable .