我最近购买了卫星通讯器,可以在野外徒步旅行时将自己的位置地图发送给朋友和家人。

在测试产品时,我注意到该网址已构建如下所示:

http://www.example.com/mylocation/?id=YYYYY/XX.XXXXN/XX.XXXXW


其中X s是物理纬度/经度的一部分,而Y s是5个字符的字母数字ID的一部分。 >
出于好奇,我截断了网址的纬度/经度部分,并将ID更改了一个字符。

http://www.example.com/mylocation/?id=YYYYZ


这样,我可以看到其他用户的信息:


地图上的物理纬度/经度位置
设备名称(无论他们选择用哪种名称;大多数人都使用“ Harry's GPS”之类的名称)
发送自己的位置信息时使用的自定义预设消息(如果有一组话)(例如:“正在检查-我很安全。”)

我的问题是,这是否表示安全性缺陷,是否应该通知公司?

我与该公司联系的理由是,看到其他用户的实际位置是一个明显的缺陷;但是,这就是产品的重点-与家人/朋友轻松分享您的位置。我也看不到该设备实际属于谁(姓名,电话号码,用户名,电子邮件等),因此据我所知,位置数据是匿名的。

评论

请去搜索“负责任的披露”,以便您知道这样做的正确方法以限制您的个人责任。

@SteveJessop我遇到过一些程序员,他们在不了解该漏洞的情况下编写了这样的漏洞,并破坏了允许其部署的代码审查流程。通知他们可能是值得的。

@SteveJessop实际上,这种情况经常发生,以至于它出现在OWASP的前十名中-A4(不安全的直接对象引用)

您可以发表跟进内容,以便我们听到公司的回应吗?

我认为,一如既往,重要的是要注意,即使这些答案提到合法性和潜在问题,也不能构成法律建议。

#1 楼

是的,您应该将问题通知公司-请谨慎。
更新:@crovers提供了一个简短但非常完整的答案。但是,如果您有耐心...
...这里的问题不仅仅是跟踪J. Random Stranger的可能性,而是:


被授予某人,显然您无法取回它,并且它不会过期。该人现在可以随处关注您(认为“恋恋过度的女友”)。此外,该ID可能会泄漏。电子邮件会被错误地转发,有时邮件程序中的小图标很容易被监控……字形覆盖了很多敏感信息。


您甚至不需要将其提供给我。如果这些ID是连续的[如@crovers所评论],我可以在很短的时间内将所有这些ID制成表格,检查它们的位置,然后轻松地找出与我知道的位置足够接近的五个或六个。明天,另外五个或六个将足够接近您现在所在的其他位置;在这五个中,也许有两个在原始五个中,所以您必须是这两个中的一个。在相对较短的时间内,我将候选人缩小为一个:我现在有了您的身份证并且可以跟踪您,而您却再也不明智。


我什至可能都不认识您。该ID可用于恶作剧总数的陌生人。我只是在Google上搜索了一下,发现有成千上万的Facebook用户夸耀了他们的新名字(与GPS相关的小工具的名称)。我使用了一个非常知名的品牌,所以您的小工具可能只有一百个人,我很容易发现。我有信心,其中的一半会例行发布有关其所在位置的图片(Facebook是否清除EXIF GPS信息?)。
在很短的时间内,其中一个吸引了我的朋友可能会收到一条消息,指出“ Old Nowhereville的天气如何?”即使他(或她)从未对任何人说过他(或她)在哪里,也没有在任何地方张贴任何东西。这样的恶作剧-知道某些陌生人显然对您感兴趣,并且似乎总是知道您在哪里-完全会破坏您的一天。
如果某些被恶作剧的人确信,他们可能会完全破坏公司的一天。他们的GPS可以以某种方式被“远程入侵”,即使在这种情况下,这根本就没有发生。是的,我的想法很糟糕-但我不是唯一的一个,所以您可能希望将该公司的人员指向此页面-并且,为了重申@crovers和Arminius提出的另一个非常好的观点,请匿名进行。对他们的潜在损害是巨大的,您可以通过向他们指出这一点来帮他们大忙。但是有些公司可能会产生(膝盖)反应,并认为这解决了某些问题(甚至完全解决了问题),试图欺负您。诺贝尔奖获得者理查德·费曼(Richard P. Feynman)的故事很有趣(“那是他的解决方案:我是危险!”)。


您实际上是在帮助他们。

相信我,很多人会完全按照您在URL中看到“ id = XXXXX”时所做的事情来做。我会做的。根据小工具的受欢迎程度,我敢打赌其他许多人也会这样做。因此,这并不意味着您向本来可以保持安全的任何人释放了僵尸末日-您可能只是第一个有良心告诉他们根本不安全的人。因为那比具有更改ID的好奇心要稀少得多。

完全不必像这样。
从公司的角度来看,通过允许每个用户随时选择重新生成不同的秘密ID来解决此问题非常简单。甚至设置到期日期。他们现在仍然可以这样做。
一个非常快速的解决方法是通过与数据库连接的简单过滤器代理其网站。
您的新URL为http://www.example .com / mylocation /?id = 22b255b332474ae3e7f008cc50ebe3e0&...
可以将其转换为“ true.pony.pile.main.jazz.call.mine.soft.pink.rake.jane”以更轻松地获取内容通过电话记住或命令。
前四个单词在某种程度上与“正确的电池钉”相关。
代理在数据库中检查并发现22b255b332474ae3e7f008cc50ebe3e0是有效的ID,并且与“真实”(或“旧”)id 12345,因此它可以通过简单地将ID替换为12345来转换URL,将请求发送至真实的隐藏网站,获取页面,用原始22b2...内容重写任何12345,嘿presto !,外部用户可以看到您所在的页面,页面和以前一样,但是他无法知道真实的ID是12345(即使他知道,他也无法通过它来获取信息)
,但是现在,用户12345可以拥有公司想要的(或出售!)任意数量的活动ID,并给他妈妈一个,给他妈妈一个,等等。上。一个ID泄漏,或者他与朋友分手-他使那个ID失效。还可以知道对每个ID进行了多少次访问,因此侦听可以是双向的。可能仅适用于高级用户:-D。对于某些ID,该网站甚至可能会发布随机信息或低精度的GPS坐标。
而且,如果您想随机猜测一个有效的ID,那么,其中的2128个就可以了。如果每个客户有一百个一次性ID(例如27个),而公司有十亿个客户(例如230个),那么通过随机尝试获得有效ID的超过290个可能性仍然超过290个。如果太小(或者我的数学碰巧有点歪斜),也有更大的哈希值。
旧的ID不再起作用,因为如果没有提供的ID散列就无法访问原始服务器。
鉴于合理的实施成本(一个开发人员和一名QA工程师需要花费几天的时间,而我的工作量很大),我对此感到困惑,因为这并不是一开始就设计的。

评论


@kundor,我不知道。描述为5个字符的字母数字ID。即使它是增量的,它实际上也不是很多(因此可能会随着时间变成32个字符的字母数字ID)。可预测性的问题仍然存在。

– Lerni
17年1月10日在8:01

无论是更新ID还是用户ID,他们选择不遵循的一般原则是,面向公众的ID应该足够大,(伪)随机性要足够使人难以猜测。面向公众的个人信息也应该是可撤销/可删除的。因此,即使它只是一个更新ID,其影响也没有此处所述,但同样令人讨厌的是,他们没有正确地做到这一点。

–史蒂夫·杰索普(Steve Jessop)
17年1月10日在13:21



@LSerni-是的,Facebook会清除EXIF数据。总的来说,这是社交媒体和照片共享网站长期以来一直擅长的事情。他们多年来一直在消除照片元数据。

–niemiro
17年1月10日在18:52

强奸犯可能会寻找所有的女性名字,然后跟踪它们,直到它们处于僻静的地方。

– Chloe
17年1月11日在17:51

@Chloe仅显示设备名称。聪明的人将使用通用设备名称。大多数设备将很难确定它们是男性还是女性。实际上,缠扰者可能会很难过。真正的问题是有人在跟踪他们认识的人或已经在跟踪的人。我认为另一种选择是...他们只会随机攻击某人。我认为他们不需要几天跟踪。

–user64742
17年1月14日17:41



#2 楼

是。他们应该使用长而不可猜测的字符串,而不是可预测的短字符串。

我认为这是一个相对容易修复的安全漏洞。

但是,我要提醒您-一些公司不能很好地处理这种情况。有些人(我认为是错误的)认为,更改该ID构成黑客入侵,他们可能威胁要起诉或指控您。那太蠢了,但我建议您匿名或通过中介与他们联系。

检查他们是否有赏金计划-(Google公司名称和Bug赏金)。如果他们没有,那么您可能要考虑使用中介机构-零日倡议是其中之一。

评论


是的,要非常小心!美国法院(re:AT&T)认为更改ID是非法的!

–user15392
17年1月9日在22:02

+1可以直接解决问题,与更加强调“是”相比,对我而言这相对没意思,但是对于记者可能存在公司的反动态度构成风险。问题是“我应该举报吗?”,而不是“他们应该怎么做?”,所以我认为这更简洁地达到了目标。

– underscore_d
17年1月10日在2:15



但是,就定义而言,难道不会发现安全问题并将其报告给公司而没有将其视为道德黑客吗?

– Neinstein
17年1月10日在7:23



@Neinstein听到“道德黑客”时,有些人会听到“道德”,而其他人只会听到“黑客”。

– Stig Hemmer
17年1月10日在8:08

@Neinstein:这样做的人面临的下行风险是围绕“道德黑客”仍然可以被起诉的事实,因为并非所有道德行为都是合法的。为更好的安全事业而mart难是一件好事和高尚的事,但您仍然不应偶然误入歧途;-)

–史蒂夫·杰索普(Steve Jessop)
17年1月10日在13:26



#3 楼

要添加其他答案,请当心自己报告问题的风险:

如果您不熟悉报告安全性问题,则可能会发现它们存在危险和潜在恶意。没有处理安全问题经验的公司可能会将您的报告转发给公司律师,而不是IT部门。显然,您只是想提供帮助,但主要是给他们造成麻烦。可能是,他们不希望此问题公开(这可能会对他们的商业声誉造成极大损害),因此,它们可能会以法律后果威胁您。在最坏的情况下,他们将联系执法机构,而无需另行通知。


出于好奇,我将URL的经纬度截短了一部分,并将ID更改了一个字符。


因此,您并不是偶然发现的。从公司的角度来看,您可以通过操纵URL来访问其他客户的数据-对他们而言,它的简单程度和您出于“好奇”而进行操作并不重要。他们可能仍然将您视为威胁,并做出不专业的反应。

您应该意识到这种可能的解释,并仔细决定是否值得承担这个风险。如果您在没有合同或没有鼓励漏洞发现的公共政策的情况下处理安全漏洞,那么您就处于合法的灰色地带。

评论


...以及最近有人不时地被多家公司轰炸的灰色地带,正如其他人指出的那样:-(

– Lerni
17年1月10日在15:17

#4 楼

如果我是您,我会说类似

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.


基本上,说您不是出于好奇而是偶然发现的。还可以匿名匿名发送(例如,不要使用您的真实身份证,而使用诸如jon.doe@gmail.com之类的邮件)。

在发送之前检查您的邮件,并可能让您认识的人读过

阅读它,就好像您是愤怒的拟人角色一样,这可能有助于您使其平顺,这样您就不会再因为某个人通过在床头上敲打脚趾而开始新的一天而发怒了。您。

如果他们不回答,或者一段时间没有做任何事情,请说(也许是一个月或2个星期,因为这是中等安全性问题),您会希望他们为此,您将尝试警告其他用户有关此问题的信息。如果他们仍然什么也不做,那就去做,但是要被警告,他们可能会不喜欢它。请参阅此zamfoo案例

,坚持认为,如果您发现这样琐碎的事情,则可能有更糟的人出于恶意目的使用,而其他用户也可能偶然发现了此事并对此感到担忧。

使用常识,使您看起来像是一个涉嫌用户,偶然发现了某个奇怪的用户或该用户的朋友,也可以使用。一点点“失误”,很多平静和礼貌对考验水势大有帮助。如果他们看起来足够友好,您可能会说您有能力(如果有),可以帮助他们跟踪问题。

如果您帮助他们并且他们很友好,您可能想问他们是否希望您积极检查其他潜在问题。 (如果他们在您方面有丰富的经验,可能会帮助您找到工作(他们可以谈论您,您有多好(友好但专业),等等。对于可能想要您的其他人。或者只是作为参考),或一些朋友。)

这也是他们获得免费广告的机会,如果他们反应良好,您可能会倾向于与有兴趣的人谈论他们。

无论您和他们做什么,保持冷静,不要迅速升级,了解他们的观点,也不要表现为威胁(1)

如果您看起来可以对他们造成的伤害超过您这将是有帮助的,这是将其置于防御状态并获得律师威胁/真实案件的最快方法,前提是您做了一些愚蠢的事情并且没有掩盖自己的理由。

(1)大多数情况下,不仅涉及安全问题,而且涉及或多或少生气的人(同事,老板)。

题外话:
你唯一想表现为威胁的地方是,如果你受到某人的威胁/某物确信没有人会反对他们(例如,非常生气的狗),请冷静地行走对他们表现出毫无恐惧感(即使您变棕色了),它们可能会开始吠叫更多,但它们会慢慢退缩,并让您通过(或杀死/伤害您,但如果您逃离那将是相同的) 。

ps:批评我说的话,我是一个愚蠢的人,我没有绝对的真理,如果事情看起来更好,思考一下想法,做最好的事情,看看会发生什么, 学习。

(也可以随意提出修改,如果看起来过于结构化/太长/乱七八糟,我不会咬。)

评论


如果您说我输入了错误的ID(例如12345),这会破坏您的匿名性吗? (因为您提供了自己的ID?)

–toogley
17年1月12日在7:07



@toogley“将其伪匿名发送(例如,不要使用您的真实ID,[...])”

–讽刺
17年1月12日在7:23

这是一种显而易见的方法,但我不建议您揭穿事实。匿名报告,是的。

–通配符
17年1月14日在5:20

提及您所担心的公司,以12346标识的同伴可能会输错12345并查看我的位置

–usr-local-ΕΨΗΕΛΩΝ
17年1月14日在13:07

我会通过通过TOR注册的一次性电子邮件向他们发送消息,然后,如果他们在几周内仍未解决该问题,则可以通过TOR发布漏洞。责怪“黑客”比承认错误要容易得多,因此请确保您不可能(或者确切地说)很难追查。

–乔纳森·雷兹(JonathanReez)
17年1月16日在11:47

#5 楼

其他所有人似乎都在这里开枪。要考虑的关键部分是您如何成为最终用户,与其他最终用户(家人/朋友)共享您的位置。

如果您通过链接查看信息,并能够发送相同的链接对于家庭成员,则假设您是公开发布信息(没有授权系统)。

隐私声明或使用条款应对此进行说明。谁可以访问您的位置数据?公开提供了哪些信息?肯定可以澄清您提出的问题。

使用简单的Web链接不是我设计此类系统的方式,而是完全有意的。我也许建议您向他们询问有关隐私设置的信息。

评论


从严格的法律角度来看,您可能是对的。但是事实仍然是,隐私设置只有一个设置,那是“无”。鉴于可以用那么少的成本增加这么多的价值,我发现还没有这样做,很好……令人着迷。

– Lerni
17年1月9日在22:16

当然,如果我要设计它,则至少要有一个密码,以便只有您共享密码的某些人才能访问。即使没有重大的思想缺陷,也没有适当的身份验证或授权系统是非常荒谬的。您认为他们还忘记了什么?

– dark_st3alth
17年1月9日在22:29

我同意在这里使用链接不是理想的选择,但这并不是重点。即使用户不共享链接,其他人也可以访问其位置。因此,您对谁和什么问题的答案似乎就是所有人。我怀疑该设备是否以此为广告,因此这确实是一个安全漏洞。

–蒂姆
17年1月10日17:36



但是,假设是通过使用服务,您允许未指定的其他人访问您的位置信息。这在实践中不是很好,但是为简单起见,这是非常合理的。没有缺乏隐私控制的借口,但是用户确实注册并开始使用该服务。

– dark_st3alth
17年1月10日在21:29

#6 楼

这是一个有趣的问题,在大多数系统中,我认为这是暴露位置数据的不安全的直接参考漏洞。

实时gps位置应该被认为是敏感的,它可能有多种恶意用途。在这种情况下,虽然这是系统的整个要点,尽管我认为ID在保持可用状态(例如为字母数字)的同时应该更难猜测,但特定用户无法识别数据。还可以通过提供密码给想要授予访问权限的用户来保护它。

我认为这并不是安全隐患,只是实现不佳。问题是,如果一个陌生人浏览您的页面,您是否会觉得您的信息或隐私受到侵犯?如果是这样,请与制造商联系。

编辑:-修改了我对此的看法。我认为该系统容易受到攻击。标识符应该更难猜,并且最好使用密码保护。

评论


考虑-如果有人知道您拥有这样的设备并且当前知道您的实际位置。他们可以通过检查所有ID并找到您当前所在的设备来找到您的设备。从那时起,他们总是可以找到答案。我认为这肯定是一个安全漏洞。

–crovers
17年1月9日在21:40

好一点,这对于脚本来说是微不足道的,并且也可以快速枚举。

–iainpb
17年1月9日在21:58

#7 楼

发生此问题的原因是直接对象引用和易于枚举的ID。我们不应该在任何系统中使用容易枚举的ID,因为它会使攻击者容易猜到。如果您无法猜测ID,那么我们也可以降低直接对象引用的风险。他们应该为用户提供一些随机ID值或GUID来代表用户。

我认为这是一个主要流程,公司应该提供一些API,供家人/朋友通过身份验证,然后他们才能跟踪您。正如@Arminius所建议的,我们无法预测产品公司如何接受您的发现。最好将此通知为“匿名”。如果不使用责任披露模板或条款。

#8 楼

它并不代表缺陷。他们似乎认为这是可以接受的风险。我想知道以编程方式循环遍历UID并收集您可以参考以识别某人的数据有多么容易。如果他们只是给ID加盐,您仍然可以公开共享它,但是您不能轻易地在人们的位置之间循环。

评论


完全同意。但是我怀疑他们没有考虑到风险业务。如果我的位置被泄漏,这并不是什么大恶作剧,但这很容易使人们相信该小工具是不安全的。给ID加注盐的成本是否比在社交网络上仅响一声警报的PR成本高得多? (这很快就会想出一打“ l33t crack3rs”的十几个“教程”-好像我们没有看到太多次)。

– Lerni
17年1月9日在22:10

优点。基于云的位置跟踪器不应对安全问题有所反应。这是破坏业务的好方法。

–tim_shane
17年1月10日,0:08

要明确:不要编写并运行该假设程序。结果,使用AT&T iPad注册系统执行此操作的那个人在美国联邦监狱呆了几年。

–没人
17年1月10日,下午3:10

有趣的一点。出于成本原因,大多数公司即使意识到了这种隐私问题,也仍然低估了它们。他们说:“只要有人举报,我们就不要做任何事情。这很冒险,但是修复很昂贵”。只有有足够的隐私法支持的强大监管机构,才能迫使公司遵守这些标准。在欧盟有时会发生这种情况,但与小公司打交道时,很难采取行动或及时受到制裁。当有人说“ Whatsapp可能泄漏敏感数据”和“ ACME可能泄漏敏感数据”时,情况完全不同。

–usr-local-ΕΨΗΕΛΩΝ
17年1月14日在13:12

#9 楼


我最近购买了卫星通讯器,可以在野外远足时将自己的位置地图发送给朋友和家人。


基于突出显示的内容,我认为该人主要购买了跟踪设备,该设备的主要目的是经常更新其在Internet上可公开获得的可预测位置的位置,以便搜索和救援服务可以自由轻松地访问您的位置信息,以协助您进行救援。

如果设备没有随附带有可预测网址的卡片,或者没有在卡片上写下您的ID的位置以获取位置信息的意图,那么我对此不会感到惊讶。

如果需要保护,则由您的家人进行搜索和救援。如果数据得到保护,搜索和救援获得访问权将变得更加困难。特别是由于该设备可以在全球范围内运行,并且法律在不同位置存在差异,因此即使家庭成员可以提供其登录凭据来搜索和救援团队成员,他们也很有可能在法律上不允许他们使用您的凭据来使用该服务。 br />
实时更新您的位置信息也特别有用,尤其是在步行很长时间且步行者仍在漫游的情况下。

发送电子邮件通知您当前位置的功能是一种签到的方式。由于在x倍的时间之后或在特定的时间或在特定的时间和位置之后没有签到电子邮件,它是家庭成员进行搜救的指示。这是一种便宜的方式,无需购买实际的卫星电话即可办理登机手续,而无需在无处可去的地方办理登机手续。

我认为他们很清楚它没有被保护,也认为它根本没有风险,因为正如产品的整个观点一样,它是整个产品的重点……这完全是设计使然。

如果您不想被追踪,请关闭设备,它将不再更新您的位置信息。

评论


这是一个安全站点。不,“在荒野中可用”并不意味着“应该面向公众”。卫星通信是野外连通的必要条件。但这并不意味着应该假定客户使用该连接。

–通配符
17年1月14日下午5:23

#10 楼

听起来这就是产品的设计方式。它使用UID + LAT / LONG与他人共享您的位置...因此,您基本上是在说您发现了产品的设计方式。那里没有缺陷。他们是否应该在需要PIN或访问位置数据的地方实施安全系统?当然。但是,如果产品的重点是共享您的位置,那么您只是发现了查看其他人的位置的捷径,这就是...等待它...它打算做什么。

如果需要,可以提交功能请求并说“嘿,您应该使用PIN或其他任何东西,因为任何人都可以看到别人的位置,等等”,但是根据您的描述,这似乎并不是一个缺陷。

评论


其他答案涵盖了其中的缺陷:仅仅因为您现在想共享位置并不意味着您要永远共享它,而仅仅因为您想与一个人共享位置并不意味着您要与他人共享位置大家。说这不是安全缺陷,因为它旨在共享位置数据,这有点像说一个问题,即您可以查看任何其他用户的Dropbox文件,这并不是Dropbox中的缺陷,因为它是为共享文件而设计的服务。

–熊佳亚诺夫
17年1月9日23:52

@XiongChiamiov对...这就是为什么我和其他人建议输入密码/ PIN的原因。我从来没有说过,这是做他们正在做的事情的最佳方法,就像两个锡罐和绳子可能不是长距离沟通的最佳方法一样。它可以满足他们的需求,但并不是最安全/最佳的方式。

– Evan R.
17年1月10日,0:47



从OP来看,似乎不需要LAT / LONG起作用-只是UID似乎可以提供地图上的位置(即LAT / LONG被拉到后端,然后填充进去,很可能将数据输入前端,以便前端可以找出正确显示地图的位置)。

–纤巧
17年1月12日在19:29