一.概述
数据泄露已成为数字时代企业和个人面临的重大威胁之一,不仅会造成经济损失,还可能损害企业声誉和用户信任。因此,深入分析数据泄露的趋势和成因至关重要。 2024年,国际知名咨询机构Verizon发布的《2024年数据泄露调查报告》(2024 Data Breach Investigations Report)[1]指出,“68%的数据泄露事件涉及人为错误,如配置错误、社工攻击、话术欺诈等,人依然是安全链条上的重要一环”[2]。这一结论与近年来频发的云安全事件[3,4,5,6,7]相呼应,表明由“人为因素”引发的数据泄露问题将持续存在。 绿盟科技创新研究院在云上风险发现和数据泄露领域深耕多年,并发布了多篇相关研究报告[3,4,5,6,7]。早在2021年,研究院就针对对象存储导致的数据泄露问题进行了深入研究[8]。然而,数据泄露问题不仅限于对象存储,网盘数据外泄事件也屡见不鲜。以下是几起典型的历史事件[13]: 2014年iCloud泄密事件:攻击者通过钓鱼攻击和暴力破解等手段,获取了苹果公司iCloud的访问权限,盗取了大量名人的私密照片和视频。这些内容随后被公开,引发了广泛的社会关注。
-
2015年百度网盘数据泄露事件:攻击者利用百度网盘的系统漏洞,获取了部分用户的个人文件和隐私信息,并将其公开在互联网上。
-
2016年Dropbox数据泄露事件:Dropbox披露其在2012年遭遇的数据泄露事件中,有6800万个用户账号信息被盗,包括邮箱地址和加密后的密码。事件的根源是2012年的漏洞未及时修补,导致数据在4年后被发现外泄。
-
2023年12月日本Ateam Entertainment数据泄露事件:日本游戏开发商Ateam Entertainment母公司公告称,近百万人的个人信息因Google Drive配置错误泄露近6年。
-
2024年9月阿里网盘数据泄露事件:阿里网盘因系统BUG导致用户个人隐私照片泄露[9]。多名用户反映,在阿里网盘PC端相册中创建新文件夹时,系统会自动加载陌生人的隐私照片和视频,这些内容不仅可预览,还可直接打开。
此外,2023年底,数据安全公司Metomic的一份报告显示,存储在Google Drive上的文件中,有40.2%包含敏感数据。Metomic分析了约650万个Google Drive文件,发现34.2%的文件与公司域外的外部联系人共享,超过35万个文件可供公开访问,任何拥有链接的人均可不受限制地查看。 基于上述历史事件和报告分析,笔者近期在网盘安全领域展开了相关研究。本文将从以下几个方面展开:首先,介绍主流网盘的访问控制机制及其潜在安全隐患;其次,探讨针对网盘信息收集的主要方法,包括测绘引擎、代码仓库、Google Hacking等,并分析网盘内敏感信息的发现途径;最后,分享绿盟科技创新研究院在云上风险发现领域的创新研究方案,以期为读者在网盘泄露防护方面提供新的思路与启发。
二.网盘文件访问控制机制探索
当今云存储市场中,国内外网盘厂商众多,各具特色。国外以Google Drive、Microsoft OneDrive和iCloud等大厂推出的网盘产品为主,而国内则以百度网盘、阿里网盘、腾讯微云和360网盘等为代表。此外,开源类网盘如Seafile、Cloudreve和Nextcloud也在市场中占据一席之地。尽管网盘产品种类繁多,但笔者在研究其文件访问控制机制时发现,这些机制在本质上具有较高的相似性。限于篇幅,本文将以国外的Google Drive和国内的百度网盘为例进行说明。
2.1 百度网盘文件访问控制机制
百度网盘为用户提供了三种文件或文件夹的访问方式:通过链接访问、通过客户端/Web端密码登录方式访问,以及目标文件访问地址结合Token及SDK形式的访问。本文重点介绍通过链接的访问方式,并对其访问控制机制进行详细分析。 百度网盘通过链接的访问方式具有以下特征:
-
访问有效期:必填项,用户可选择1天、7天、30天或永久有效。
-
公开访问配置:用户可选择是否配置提取码。若配置提取码,则链接为非公开访问,提取码可由系统自动生成或由用户手动设置。
-
授权对象:链接可分享给任何人或仅限于网盘好友。
从上述特征可以看出,百度网盘的访问控制机制主要依赖于提取码和有效期的结合。此外,分享链接的格式会因是否配置提取码以及用户使用的是个人版还是企业版而有所不同。需要注意的是,百度网盘在生成分享链接时,会对初始链接进行302重定向,最终生成实际访问链接。以下是不同场景下的链接格式说明:
个人版分享链接格式
-
公开分享(无需提取码) 生成链接:https://pan.baidu.com/s/<22位随机字符> 实际访问链接:https://pan.baidu.com/share/init?surl=<22位随机字符>
-
有提取码分享 生成链接:https://pan.baidu.com/s/<22位随机字符>?pwd=<4位数字> 实际访问链接:https://pan.baidu.com/share/init?surl=<22位随机字符>&pwd=<4位数字> 企业版分享链接格式
-
公开分享(无需提取码) 生成链接:https://pan.baidu.com/e/<22位随机字符> 实际访问链接:与生成链接相同。
-
有提取码分享 实际访问链接:https://pan.baidu.com/e/verify?surl=<22位随机字符>(需要输入提取码)
个人版与企业版的区别 个人版和企业版的网盘文件分享链接格式存在一定差异: 个人版:链接前缀为 https://pan.baidu.com/s/<22位随机字符>,其中参数为 s/<22位随机字符>。 企业版:链接前缀为 https://pan.baidu.com/e/<22位随机字符>,其中参数为 e/<22位随机字符>。
2.2 Google Drive文件访问控制机制
Google Drive实际上也是通过共享链接的方式去查看文件信息的,但访问控制机制略有不同:
- 访问有效期:个人版无有效期设置,企业和校园版才有有效期设置[12]
- 公开访问配置:
Google Drive中,文件的公开访问配置主要分为两种模式:Restricted(禁止公开)和Anyone with the link(公开访问)。这两种模式决定了文件或文件夹的访问权限范围。 Restricted(禁止公开):当选择此模式时,文件或文件夹的访问权限将被严格限制。分享链接时,必须输入被授权访问对象的Google账号。授权完成后,可以进一步设置访问对象的具体操作权限,如图3,4所示,包括: Ziewer(可查看):仅允许查看文件内容,无法进行编辑或评论。 Commenter(可评论):允许查看文件内容并添加评论,但无法编辑文件。 Editor(可编辑):允许查看、评论并编辑文件内容。 配置完成后,浏览文件分享链接将自动跳转至Google账号的登录页面。只有被授权的Google账户才能访问该文件,否则系统会提示“需要申请权限”才能访问,如图5所示。 Anyone with the link(公开访问):当选择此模式时,任何拥有该链接的用户都可以访问文件或文件夹,且无需登录Google账号。这种设置适用于需要广泛共享的文件,但也可能带来数据泄露的风险,尤其是在未设置访问限制的情况下。
- 访问对象:Google Drive支持多种访问对象类型,包括:授权Google账户:指定具体的Google账号,只有这些账号才能访问文件
- 账户组:可以将多个Google账号组成一个群组,并授权该群组访问文件。
- 任何人:允许所有拥有链接的用户访问文件,无需登录Google账号。
Google Drive分享链接格式
Google Drive的分享链接主要分为两种类型:drive和docs。具体格式如下: drive类型:适用于Blob类型的文件或文件夹,生成的链接格式为: 文件:https://drive.google.com/file/d/<33位随机字符> 文件夹:https://drive.google.com/drive/folders/<33位随机字符> docs类型:适用于Google Workspace文档,如Google Docs、Google Sheets、Google Slides等,生成的链接格式为: Google Docs:https://docs.google.com/document/d/<44位随机字符> Google Sheets:https://docs.google.com/spreadsheets/d/<44位随机字符> Google Slides:https://docs.google.com/presentation/d/<44位随机字符>
根据上述访问控制机制,如果未正确配置访问权限,可能会导致数据泄露,其中:
百度网盘:如果将文件或文件夹设置为公开分享,且未设置提取码或过期时间,则任何人在任何时间都可以访问该文件,存在较大的数据泄露风险。 Google Drive:如果分享文件时未限制特定Google用户或群组访问,且设置为“Anyone with the link”,则任何人都可以在匿名情况下访问该文件,同样存在数据泄露的隐患。
三.网盘信息收集方法探索
上述内容不难看出,生成并分享一个公开的网盘链接是非常简单的操作。然而,正是这种便捷性导致了每天都有大量的网盘文件分享链接被生成并传播。如果这些链接未经过严格的访问控制,网盘数据外泄的问题将变得尤为严重。特别是当这些文件中包含敏感信息(如公民隐私数据、商业机密等)时,可能会导致隐私泄露、法律纠纷,甚至面临执法部门的追责。 如前文所述,通过在浏览器中输入正确的网盘分享链接,任何人都可以访问并获取网盘内的文件内容。因此,如何获取这些网盘链接成为了一个关键问题。近期,笔者针对多种信息源渠道进行了相应研究与测试,包括测绘引擎、公共代码仓库、自建仓库以及Google Hacking等技术手段。测试结果表明,大量已存活的网盘分享链接被暴露在公网上,进一步证实了网盘数据外泄问题的普遍性和严重性。
注:文中案例相关操作均在实验环境中进行,相关技术仅供研究交流,请勿应用于未授权的渗透测试。
3.1 测绘引擎
开源情报(OSINT)领域,Shodan和Fofa等测绘引擎常被用于查询现网存活的资产信息。本文以这两款主流测绘引擎为例,探讨如何通过指纹(如icon_hash,title等)来查询暴露的网盘链接。
通过分析查询结果,我们可以从Title字段中识别出资产的类型。
其中,占比最高的Title为“百度网盘|Synology”,笔者推测这些资产可能与群晖科技与百度网盘合作的增值套餐有关[11]。值得注意的是,这些资产大多为私有地址,进一步验证了其可能的企业或特定用户属性。由于其他Title对应的资产数量较少,笔者暂未对其进行深入分析。 类似地,Google Drive的分享链接也可以通过特定的指纹进行定位,例如使用“Location:https://drive.google.com/drive/folders/”作为查询条件。
虽然通过开源情报工具可以获取部分网盘分享链接,但由于时效性和数据更新频率的限制,这种方法在实际应用中可能并不高效。未来研究可以探索结合其他技术手段(如动态爬虫或API接口)来提高获取有效链接的成功率。
3.2 代码仓库
笔者也尝试了通过代码仓库获取网盘链接,这里我们主要介绍公共代码仓库爬虫和自建代码仓库发现两种方式。
3.2.1 公共代码仓库爬虫
项目开发过程中,开发者可能会无意中将网盘分享链接硬编码到代码中,并将代码上传至公共代码仓库(如Github、Gitlab、Gitee等),导致这些链接长期暴露在互联网中。针对这一问题,可以通过调用公共代码仓库的官方restful API,结合网盘路径特征(如第二节中介绍的分享链接格式)进行内容检索,并利用正则表达式提取网盘分享链接。具体而言,可以针对Github的Code、Commits、Issues、Repositories等多个维度进行API检索。然而,由于不同公共代码仓库的检索机制存在差异,返回的结果数量也会有所不同。
经过测试发现,通过公共代码仓库获取的网盘分享链接数量远高于通过测绘引擎得到的数量。这一现象间接反映了开发者将硬编码的网盘链接上传至公共代码仓库的普遍性和严重性。
3.2.2 自建代码仓库发现
由于笔者所在团队从事云上风险发现已有多年积累,针对已存在泄露风险的自建源码仓库中我们也进行了测试(已得到监管机构相关授权),结论也是发现了大量网盘分享链接,且数量很多。
3.2.3 Google Hacking
Google Hacking是一种利用搜索引擎的高级搜索语法来识别Web应用程序安全漏洞、收集目标信息、发现泄露敏感数据的错误消息以及定位包含凭据或其他敏感文件的强大技术。笔者通过这一技术,成功从公网中发现了大量暴露的网盘分享链接。
以百度网盘为例,通过使用“site:https://pan.baidu.com/s/”的搜索语法,可以获取到以“https://pan.baidu.com/s/”为前缀的URL,从而定位暴露在公网上的百度网盘分享链接。随后,通过爬虫技术对这些链接进行批量收集和整理,能够显著提高信息收集的效率。
在获取到网盘分享链接后,下一步需要验证这些链接是否为公开可访问的网盘资源。笔者通过分析具体页面的响应内容,结合网页的Title以及请求响应中的特征信息(如状态码、页面结构等),对链接的有效性进行了筛选和验证。经过测试,成功获取了大量公开的网盘访问链接。
四.网盘内敏感信息发现
正常情况下,网盘分享链接被配置为公开可访问前提是所有者期望对方能去访问这些信息且是不包含敏感信息的,但经笔者测试发现,事实上仍然存在较多的敏感信息被泄露,如2024年11月,由绿盟科技创新研究院发现美国一所中小学使用的Google Drive存在访问配置错误,导致该校的审计财务报表、预算报表、支出报表、教师雇佣合同等敏感信息泄露[7]。
五.总结
鉴于以上分析内容,人为配置错误导致的网盘数据泄露事件是真实存在并时刻在发生,作为安全从业人员,建议相应的防护策略从两方面出发,一方面加强安全意识,非必要情况下尽量在分享链接时避免设置公开访问选项,且有效时长给予较短时间;另一方面使用云上风险监测服务,当发生网盘数据泄露告警时,及时进行权限配置更改避免敏感数据外泄。
Fusion是由绿盟科技创新研究院研发的一款面向数据泄露测绘的创新产品,集探测、识别、泄露数据侦察于一体,针对互联网中暴露的泛云组件进行测绘,识别组件关联的组织机构和组件风险的影响面,实现自动化的资产探测、风险发现、泄露数据分析、责任主体识别、数据泄露侦察全生命周期流程。
Fusion的云上风险事件发现组件具有如下主要特色能力:
资产扫描探测:通过多个分布式节点对目标网段/资产进行分布式扫描探测,同时获取外部平台相关资产进行融合,利用本地指纹知识库标记,实现目标区域云上资产探测与指纹标记;
资产风险发现:通过分布式任务管理机制对目标资产进行静态版本匹配和动态PoC验证的方式,实现快速获取目标资产的脆弱性暴露情况;
风险资产组织定位:利用网络资产信息定位其所属地区、行业以及责任主体,进而挖掘主体间存在的隐藏供应链关系及相关风险。
资产泄露数据分析:针对不同组件资产的泄露文件,结合大模型相关技术对泄露数据进行分析与挖掘,实现目标资产的敏感信息获取;
最后,对本文感兴趣的读者,欢迎关注我们的最新动态与研究成果。本文也难免有错误,如有发现欢迎批评指正。
六.参考文献
- [1] https://www.verizon.com/business/resources/reports/dbir/
- [2] https://puming.zone/post/2024-08-27-2024-verizon-dbir解读-数据泄露转向连接云的第三方软件供应链/
- [3] https://book.yunzhan365.com/tkgd/qdvx/mobile/index.html
- [4] https://book.yunzhan365.com/tkgd/cltc/mobile/index.html
- [5] https://book.yunzhan365.com/tkgd/sash/mobile/index.html
- [6] https://book.yunzhan365.com/tkgd/bxgy/mobile/index.html
- [7] https://book.yunzhan365.com/tkgd/xyih/mobile/index.html
- [8] https://mp.weixin.qq.com/s/N5f9hqg3swg1CFhXTZMtLQ
- [9] https://mp.weixin.qq.com/s?__biz=MzI2NDEzMzY1Mg==&mid=2652578906&idx=2&sn=a564ba108338a5aeb8e937edcbf3cc4c
- [10] https://www.163.com/dy/article/INH2423405128DFG.html
- [11] https://www.synology.com/zh-tw/dsm/packages/baiduapp
- [12] https://support.google.com/drive/answer/2494822?hl=zh-Hans&sjid=15617540479346960914-NA
- [13] https://eyun.baidu.com/content/115233/
「真诚赞赏,手留余香」
真诚赞赏,手留余香
