暴力枚举短URL获取私有分享文件

通过bit.ly,goo.gl生成的短URLs(以及其他相似的服务)都非常短,所以能够对其进行暴力扫描。我们通过扫描发现了大量的微软OneDrive账号的私有文档。

其中有许多都没有锁定,任何人都可以插入恶意软件,之后会被自动下载到用户的设备中。同时我们还发现了许多引导性的敏感信息可以用于识别个人信息,包括访问医疗设施,监狱,以及成人场所。

bit.ly和goo.gl这样可以直接执行的任务通常会将长的URL转换成短的,包括域名也只有5~7个左右的字符。这一方便的特性造成了意想不到的后果—由于这些字符非常短短所以整个URLs集合能够被暴力扫描。事实上,只要稍微有点耐心长URLs也能够被任何人发现。

今天,我们将公布我们18个月努力的研究成果——对于云服务的安全与隐私短URL意味着什么? 我们没有对短URLs进行综合的扫描(正如分析看到的,这样的扫描需要对手有更强大的能力),但我们的样本已经足够去发现有趣的信息并得出重要的结论了。我们的研究聚焦于两款可以直接通过短URL访问的云服务:微软的OneDrive云存储(就是SkyDrvie)和谷歌地图。在这两个例子中,用户无论什么时候想要分析一个文档,文件夹或者地图的链接给另一个用户,云服务都会生成一个短的URL,正如我们展示的,来使源URL得以公开。

OneDrive

OneDrive使用1drv.ms域名为文档和文件夹生成短URL,这是bitly操作的“短域名品牌”并且和bit.ly使用相同的符号。因此,任何bit.ly短域名的扫描会自动发现1drv.ms的URL. 在我们的样本中会扫描100,000,000个bit.ly URL 使用随机的6个字符,42%是真实存在的URLs。当然,19,524 URLs指向OneDrive 文件和文件夹,大部分都是可以用的。但这仅仅是个开始。

OneDrive URLs有用可预测的结构。 从一个简单的种子文档的URL,可以构建根URL并自动遍历账户,发现种子文档权限下的所有文件和文件夹。 举个例子,假设你获取到一个短URL比如 http://1drv.ms/1xNOWV7 定向到

https://onedrive.live.com/?cid=48…48&id=48…48!115&ithint=folder,xlsx&authkey=!A..q4 。

首先解析URL提取cid和认证密钥参数。然后,构建为这个账号构建根URL  

https://onedrive.live.com/?cid=48…48&authkey=!A. ..q4。

从这个根URL,很容易自动发现这个账号下的其他共享文件和文件夹的URLs(提示:这个方法从2016年三月开始就不能用了)。为了找到个性化的文件,解析页面的HTML代码然后找到包含 &app= , &v=, /download.aspx?, or  /survey? 的href元素。为了找到其他文件,查找以https://onedrive.live.com/开头并包含用户cid的链接。

通过参数遍历扫描产生的URLs发现227,276 个公共访问的OneDrive文档,包含成千上万的PDF和Word文件,电子表格,多媒体文件和可执行文件。 对100,000,000 个随机的7字符bit.ly扫描产生了1,105,146个公共访问的OneDrive文档链接。我们没有下载里面的内容,通过元数据就很明显的看到许多私有的敏感信息。

大约7%的OneDrive文件夹是允许写入的。 这意味着任何人通过随机扫描bit.ly URLs将会发现成千上万的未锁定的文件夹并且能够修改文件中的内容,插入恶意软件。微软针对OneDrive账户的病毒扫描很容易被绕过(举个例子,如果攻击者进行压缩,简单的EICAR测试病毒都没有办法被发现)。 此外,OneDrive“同步”账号的内容到用户的OneDrive客户端。因此,插入的恶意软件将会自动下载到运行OneDrive的机器和设备上。

谷歌地图

2015年9月之前,goo.gl和maps的短URLs使用5个字符。我们的样本随机扫描生成了23,65,718个存活的链接,其中10%是地图和行驶路径。这些包括许多敏感地点的访问:特定疾病的诊所(包括癌症和精神病院),治疗中心,流产医院,少管所,发薪日,车主贷款,绅士俱乐部等等。这些行驶路径的终点往往包含足够的信息(例如单亲家庭的住宅地址)来唯一定位到个人信息。 如下例所示,当分析这些端点,我们得到了这个分析计划生育路径的年轻女人的地址,全名,年龄。 相反,从住宅地址和映射所有地址出现的端点的方向,从最初的地址,可以创建一个谁访问了谁的地图。

Clipboard Image.png

Clipboard Image.png

 

与个人住宅地址相关的细粒度数据可以用来推断居民有趣的信息。我们猜想,最经常发生在我们样本住宅地址的是一个寻宝爱好者的住所。他分享的定位几百个都在奥斯汀,德克萨斯,如图中所示,许多都是GPS的坐标。我们在寻宝数据库中找到了一些这里的坐标。

值得一提的是,定位数据中有大量的信息能够推倒出个人信息。举个例子, Crandall et al ,基于地理位置的人与人之间的社会联系。Isaacman et al.  从人们生活的位置与活动轨迹,推断出重要的地方。  Montjoye et al. 95%的个人信息都能够通过高质量位置数据集给出的4条线索来唯一标识。

当我们将这些告诉他们时发生了什么?

我们屡次尝试将OneDrive的短URLs的安全隐私风险报告给微软安全响应中心(MSRC)。在近两个月的邮件交流之后,“Brian”通知我们2015年8月1日,短URL的问题是“由于设计导致的”并且“不当作MSRC的案例”。 在2016年3月,短URL选项在OneDrive接口上已经不可用了,前面的遍历账号的方法已经无效了。当我们再次联系MSRC时,他们拒绝承认这一改变与我们之前的报告有关并且认为我们之前发现的问题不是一个有质量的安全漏洞。

在写这篇文章时,所有先前生成的短OneDrive URL仍然非常容易受到扫描和恶意软件注入。

我们将谷歌地图的短URL隐私风险报告给谷歌安全团队。很快就得到了答复,新的goo.gl/maps URLs将生成11或12个字符长度的短URL,并且部署策略限制会已知URLs的扫描。

云服务该如何使用短URL

1、将长URL转变为短URL;

2、提醒用户短URL可能会将内容泄漏给第三方;

3、用你自己的符号吧,不要用bit.ly;

4、限制扫描,使用CAPTCHAs技术将人类用户与自动扫描器区分开来。

5、最后,设计更好的APIs,别让一个URL能够计算出同一账户下的所有共享URL。