urlscan.io的SOAR威胁:泄露私人数据的安全工具
- 共享文档的敏感 URL、密码重置页面、团队邀请、付款发票等的敏感URL在urlscan.io上公开列出并可搜索。
- 部分数据已被其他安全工具以自动的方式泄露,它们意外地将扫描结果公开(就像今年早些时候GitHub一样)。
- 使用此类配置错误的安全编排、自动化和响应 (SOAR) 工具的用户,其帐户通过手动触发的密码重置被劫持的风险很高
- 我们绝不隶属于 urlscan.io,只是想告知公众其在攻击性安全方面的风险和潜力
我们的大多数读者可能都知道Google Dorks。有些人可能还搜索了公共 S3 存储桶中的数据,或者为 Pastebin 实施了爬取器。但是你熟悉urlscan.io 吗,你可以在那里找到什么样更私密的数据?
目录
- 简介:Github数据泄漏
- 什么是 urlscan.io?
- 大量数据
- 大量集成
- 可以挖掘哪些敏感数据?
- urlscan.io dork
- Apple 似乎消失了?
- 数据从何而来?
- 联系用户
- 联系 urlscan.io
- 数据究竟是如何到达那里的?
- 响应
- 多步骤帐户接管
- 建议
- 结论
- 时间轴
简介:Github数据泄漏
今年2月,GitHub向受影响的客户发送了一封电子邮件,通知他们数据泄露。具体来说,通过Github Pages托管私有存储库的用户的存储库名称(连同用户名)被泄露。
似乎没有公开承认这一泄露行为,我只是通过黑客新闻帖子才知道的,其中发布了完整的电子邮件。
那么,这是怎么发生的呢?
从邮件:
GitHub 从一名 GitHub 员工的内部发现中了解到,作为自动化流程的一部分,从 GitHub 上的私有存储库发布的 GitHub Pages 网站正在被发送到urlscan.io进行元数据分析。
GitHub 对此的回应是“修复自动发送GitHub Pages网站进行元数据分析的流程,以便只有公开的GitHub Pages网站被发送进行分析”以及要求第三方删除数据来应对此次泄露事件。
看到GitHub可能会犯错误,不小心公开列出他们的内部 urlscan.io 扫描,我认为该网站可能包含更多数据泄漏的可能性。
由于我以前没有听说过这个网站,所以我决定去看看。
什么是 urlscan.io?
urlscan.io将自己描述为“网络沙箱”,您可以在其中提交 URL,然后以各种方式对其进行分析和扫描,主要用于检测网络钓鱼站点等恶意网站。除了分析通过网站提交的 URL 外,urlscan.io 还会扫描来自公共数据源的 URL,并提供一个 API 以将检查集成到其他产品中。最后一个选项是导致 GitHub 系统性地泄露私有存储库 URL 数据的原因。
大量数据
在撰写本文时,登陆页面列出了过去 24 小时内执行的 124k 次公共扫描、76k 次未列出和 436k 次私人扫描。
它还包括此类安全扫描站点的典型“最近扫描”视图之一(例如,与https://www.ssllabs.com/ssltest/ 进行比较)。
然而,更令人惊讶的是,可以使用广泛的 ElasticSearch Query String 语法搜索所有历史数据(作为未经身份验证的用户)。GitHub的通知邮件中也提到了这一点:
要在urlscan.io 上查看私有存储库的名称,您需要在执行分析后大约 30 秒内查看urlscan.io的首页,或者使用查询进行特定搜索,将在搜索结果中返回分析内容。
对于每个扫描结果,该服务都会提供大量信息:
- 提交的URL(包含所有 GET 参数)
- 重定向时的有效URL
- 抓取/扫描 URL 时执行的所有 HTTP 请求
- 有关与之通信的 IP 和域的信息
- 扫描时拍摄的页面的屏幕截图
- 网站的完整 HTML 响应
大量集成
urlscan.io的文档页面列出了Palo Alto,Splunk,Rapid7,FireEye和ArcSight等供应商的26种商业安全解决方案,这些供应商通过其API集成了该服务。GitHub 直接在内部使用此 API 作为其 SaaS 产品的一部分,但此列表中没有,可能还有更多的企业客户。
如果这些工具/API 用户中的任何一个意外执行公共 URL 扫描,这可能会导致系统性数据泄露。由于这些高级安全工具大多安装在大型公司和政府组织中,因此泄露的信息可能特别敏感。
除了商业产品,集成页面还列出了 22 个开源项目,其中一些是信息收集工具,另一些是简单的库实现,以便更轻松地查询 API。
可以挖掘哪些敏感数据?
通过此 API 的集成类型(例如,通过扫描每封传入的电子邮件并在所有链接上执行 urlscan 的安全工具)以及数据库中的数据量,匿名用户可以搜索和检索各种各样的敏感数据。
urlscan.io dorks
请在下面找到可点击的“urlscan.io dorks”和(修订)示例结果的集合(请注意,在向 urlscan.io 报告我们的发现后,他们为以下许多 dorks 添加了删除规则,因此您可能需要自己对查询进行一些创新):
密码重置链接
Instagram密码重置确认页面,请求用户输入两次新密码
帐户创建链接
Zendesk(客户支持和销售SaaS)上NBC新闻帐户的初始密码设置页面
接口密钥
电报机器人
文档签名请求
共享的 Google 云端硬盘文档
Dropbox 文件传输
共享点邀请
由于SharePoint工作空间与组织绑定,子域已经给出了邀请的线索(在本例中是“Ontario政府”,如邀请文本中确认的那样)。
不和谐邀请
搜索查询返回了超过7k个不同社区的Discord邀请代码
政府 Zoom 邀请
比 Discord 邀请更敏感的可能是 Zoom 邀请,尤其是法庭听证会
WebEX 会议录制文件
PayPal发票
PayPal托管发票显然包含有效发票所需的所有(个人)信息,并且任何知道其ID的人都可以检索。但是,请不要将这些发票也用于垃圾邮件/诈骗。
PayPal金钱索赔请求
PayPal金钱索赔请求“仅”预填目标的电子邮件地址(以及金额和收件人),泄露的信息比发票少一点
包裹跟踪链接
还可以找到各种邮政服务的包裹跟踪链接。有趣的是,DHL似乎意识到了跟踪代码泄露的风险,并在显示收件人的地址之前询问收件人的邮政编码。注意:由于德国境内的地点仅存在 8k 邮政编码,并且从包裹跟踪中知道大致区域,因此代码可能是可以猜到的
亚马逊礼品配送链接
亚马逊礼品递送链接泄露了赠送者和赠送物品的姓名。
取消订阅链接
允许取消域的违规通知的 HIBP 未划线链接(好:域本身未显示在页面上)
在“PayPal取消订阅”页面上,将完整显示用户的电子邮件地址。其他一些服务至少部分编辑了取消订阅页面上的电子邮件地址。
Apple 似乎消失了?
有趣的是,当我在二月份进行初始搜索时,我可以找到很多有趣的 Apple 域名URL:
允许设置新密码的 Apple 开发者 ID 激活页面(似乎是与癌症中心相关的开发者)
一个Apple ID最终页面,允许设置密码,似乎是针对Gamestop帐户的
“家人共享”邀请,允许使用他人购买的订阅,甚至可能提供对家庭照片和设备位置的访问权限
企业专用在线活动的邀请
当然,iCloud还可以选择创建公共共享链接,这些链接是通过 urlscan.io 泄露的
对于iCloud日历邀请,Apple似乎还创建了一个包含所有信息的链接。
似乎在此期间,此信息已从数据库中隐藏或删除:
搜索 apple.com(及其子域)的任何扫描现在仅返回 2 个结果
但是,当持续监控上述结果页面时,有时会发现一些新的附加条目,这些条目会在大约 10 分钟内再次消失。
我们后来发现,苹果同时要求从扫描结果中排除他们的域名,这是通过定期删除所有符合特定规则的扫描结果来实现的。
总体而言,urlscan.io 服务包含大量各种敏感信息,黑客、垃圾邮件发送者或网络犯罪分子可以使用这些信息来接管帐户、执行身份盗用或运行可信的网络钓鱼活动。
数据从何而来?
我们可以从扫描结果的详细信息中看到扫描是否通过 API 提交,但我们无法找出哪个应用程序或集成提交了扫描请求。
为此,我们有两个选择:
- 联系受影响的用户。向电子邮件地址泄露的用户发送邮件,以通知他们泄漏并询问可能是罪魁祸首的任何安全工具。
- 联系 urlscan.io。发送可疑的自动提交列表,并要求 urlscan 调查是否有任何集成意外将扫描选项设置为公开。
我们决定同时做这两件事,并开始联系用户,同时还收集要发送给 urlscan.io 的扫描结果列表。
联系用户
我们向电子邮件地址在 API 启动的扫描中泄露的个人发送了 23 封邮件(15 封来自取消订阅链接,5 封来自PayPal发票,2 封来自密码重置链接,1 封来自PayPal索赔)。
发送的示例邮件带有指向相应urlscan结果页面的链接,底部有测试链接
在通知邮件的末尾是带有唯一UUID的“诱饵链接”,以测试是否有任何URL会自动提交给 urlscan.io。如果是这种情况,唯一令牌将允许我们将扫描请求关联回邮件收件人。
在我们发送的 23 个测试链接中,有 9 个(约40%)是通过 API 提交给 urlscan.io 的(其中大多数是在发送相应邮件后立即提交的):
通知邮件中包含的“私人”测试链接的公开结果(请注意,某些URL被多次扫描)
如果不计算PayPal发票(实际上可能是作为诈骗活动的一部分创建的),成功率为 18 分之 9(50%)。
第二天,我们又从泄露的 hubspot 退订链接中向电子邮件地址发送了另外 24 封邮件,其中 12 封(再次为 50%)触发了公共扫描。
这些“pingbacks”向我们展示了几件事:
- 我们假设存在配置错误的安全工具,这些工具将通过邮件收到的任何链接作为公共扫描提交到 urlscan.io 似乎是正确的
- 这些配置错误的安全工具的用户很有可能丢失所有在线帐户(通过下一节中解释的多步骤攻击)
- 看似严重程度较低的 urlscan.io 泄露(例如来自取消订阅链接的电子邮件地址)也可能会产生严重影响
对于发现多个电子邮件地址或系统性泄漏的组织,我们还尝试直接联系其 IT/安全部门。
当没有回应或正确的渠道联系时,我们也尝试通过Twitter联系
不幸的是,我们既没有收到任何发给受影响个人的数据泄露通知邮件的答复,也无法从似乎存在系统问题的组织那里获得任何反馈。
只有一个例外:在向一个人发送了工作合同的DocuSign链接后,他们的雇主与我们联系,开始调查并获得了漏洞赏金。他们发现泄漏的来源是“与 urlscan.io 集成的[他们的]安全编排,自动化和响应playbooks的错误配置, 该playbooks正在积极开发中”。
联系 urlscan.io
在受影响用户反馈不多的情况下,我们也向 urlscan.io 解释了情况。
如果集成开发人员遵循urlscan.io的文档(至少在下一节中),urlscan.io 团队应该很容易识别扫描请求的源软件:
集成:为您的库/集成使用自定义 HTTP 用户代理字符串,包括软件版本(如适用)。
因此,我们询问,他们是否有可能生成一个用户代理列表,这些用户代理触发了与我们联系的人相关的扫描,以及我们自己的诱饵链接的扫描,他们是否愿意与我们分享这份列表——他们同意了!
总的来说,urlscan.io 团队反应迅速,并提出进行调查并与我们合作以改善当前情况。
查看用户代理列表后发现,许多 API 集成并未遵循上述建议,超过一半的扫描是通过通用的“python-requests/2.X.Y”用户代理开始的。
可以通过用户代理轻松识别的两种解决方案是:
对用于使用“python-requests”用户代理启动扫描的API密钥的进一步调查显示,其中许多密钥也是为PaloAlto的XSOAR(或“Demisto”,其前身)生成的。其他的生成用于:
那么数据究竟是如何到达那里的呢?
安全编排、自动化和响应 (SOAR) 平台允许组织编写自己的playbooks,将不同的数据源与安全工具和服务连接起来。为了简化开发,这些平台提供了与多个第三方服务的集成,例如通过此XSOAR urlscan.io 包。安装此包后,playbook 可以从传入的电子邮件中提取 URL,并使用带有可选参数(例如超时和扫描可见性)的命令将它们提交给 urlscan。!url url=https://example.com using="urlscan.io"
然后,这种扫描的可见性取决于
- 作为命令的一部分提交的参数
- 集成范围的配置,以及
- 关联 urlscan.io 帐户/团队的可见性设置。
因此,扫描可能会被错误地提交为公开
- 如果 playbooks 中的编程错误或 urlscan.io 集成或帐户可见性设置配置错误,例如泄露员工工作合同的公司所发生的情况,或
- 如果集成本身存在一个不遵守用户选择的可见性的bug,就像PaloAlto XSOAR urlscan.io 包(今年5月1日修复)一样:
参数 [ ...] 已配置为默认值public,并且此参数将覆盖与可见性相关的所有其他设置。[...]因此,对于没有为这个新引入的参数明确提供值的所有命令调用,所有扫描都以可见性public执行。
响应
根据我们的调查结果,urlscan.io 联系了他们认为提交了大量公共扫描的客户,并开始审查流行的第三方集成,例如 SOAR 工具,以确保他们尊重用户在可见性方面的意图。
此外,他们还实施了以下更改:
- 为此处显示的 dork 添加了删除规则,以定期删除与搜索模式匹配的扫描结果
- 突出显示了 UI 中的默认可见性设置
- 添加了设置团队范围最大可见性的选项
urlscan.io 还发表了一篇题为“扫描可见性最佳实践”的博客文章,解释了扫描可见性设置,鼓励用户经常检查他们提交的内容,并详细介绍了urlscan为防止此类泄漏所做的努力。
如果敏感数据仍然泄露,它们提供以下选项:
- 受影响的用户可以通过“Report”按钮报告包含敏感数据的扫描结果,该按钮会立即禁用它们
- 希望将其域或特定 URL 模式从扫描中排除(或删除相应的现有结果)的公司可以联系 urlscan.io。这也是 Apple 搜索结果消失的原因。
- 发现系统性泄漏的安全研究人员也被要求联系 urlscan.io
多步骤帐户接管
虽然被动搜索历史 urlscan.io 数据已经发现了大量敏感信息,但将其与“主动探测”相结合可以大大增加任何小泄漏的影响。
正如我们之前看到的,对于大约 50% 的 urlscan.io 用户泄露了退订链接,任何传入电子邮件中的任何链接都将立即作为公共扫描提交到 urlscan。
我们可以通过抓取urlscan.io的电子邮件地址(例如,在退订页面,甚至只是在URL本身),通过邮件给他们发送一个“诱饵链接”,然后检查urlscan.io的链接来找到那些配置错误的客户端。
通过主动触发各种web服务(如社交媒体网站、其他电子邮件提供商或银行)中受影响的电子邮件地址的密码重置,然后检查urlscan数据库中相应域的最近扫描结果,我们可以利用这种行为接管这些用户的帐户。搜索其他数据泄漏,例如使用HaveIBeenPwned来搜索这些电子邮件地址,也可能会提示用户注册了哪些服务。
对于公司电子邮件地址,在自定义登录门户和流行的企业SaaS上查找现有帐户并触发重置密码可能特别有趣。
即使某个特定服务的账户还不存在,只要用公司电子邮件地址创建一个新账户,就可能获得对存储在该服务上的公司内部数据的访问权限。
下图说明了执行帐户接管攻击的所有必要步骤:
将被动搜索与主动探测配置错误的客户端以及触发密码重置相结合,可以大大增加任何单个 urlscan.io 泄漏的影响
建议
作为 Web 服务的所有者,您可以确保密码重置和类似链接快速过期,并且不会通过可能公开的链接向未经身份验证的用户泄露不必要的信息。在取消订阅页面上,编辑用户的电子邮件地址,并在显示 PII 之前要求其他身份验证/信息(就像现在的许多包裹跟踪网站在显示完整地址之前要求提供邮政编码一样)。实现 API 身份验证时,不要通过 GET 参数接受 API 密钥,而是需要使用单独的 HTTP 标头。
此外,您还可以自己搜索urlscan.io以及其他服务,以查找有关您自己的Web服务或组织的任何数据泄漏,请求删除/排除,例如禁用和更新用户的任何泄露的API密钥。
集成该服务的Urlscan用户/安全团队应该检查他们的命令、集成和帐户可见性设置,保持他们的集成是最新的,定期查看其提交的扫描并查看 urlscan.io博客文章以获取更多信息。
结论
我们已经表明,通常有助于保护用户的服务urlscan.io 也存储了这些用户的敏感信息,其中一些是公开可用的,可以被攻击者搜索。
垃圾邮件发送者可能会使用此信息来收集电子邮件地址和其他个人信息。网络犯罪分子可以使用它来接管帐户并运行可信的网络钓鱼活动。红队人员和安全研究人员也可以使用它来寻找隐藏的管理门户,获得第一个攻击点或找到潜在的目标。
与Google Dorking或通过公共S3存储桶进行搜索类似,“urlscan.io 挖掘”揭示了许多不打算公开的信息。不同之处在于,可以通过Google找到的信息或公共S3存储桶中的信息实际上已经是公开的,而提交给 urlscan.io 进行公共扫描的URL可能包含身份验证令牌,并且源自安全解决方案提交给个人的私人电子邮件。在这种情况下,引入额外的安全工具实际上会降低系统的安全性。
文档确实警告了提交的 URL 中的个人身份信息,但只是建议将这些扫描标记为未列出(而不是私有):
请注意从 URL 中删除 PII 或将这些扫描作为“未列出”提交,例如,当 URL 中有电子邮件地址时。
那些未列出的扫描至少“在urlscan Pro平台上,经过审查的安全研究人员和安全公司仍然可以看到”。此外,此警告并没有解决返回页面(而不是URL本身)中存在PII的风险。
定价和 API 配额也使用户非常倾向于使用公共扫描,并且该服务不能(有效地)主动防止 PII 泄漏(例如,简单搜索page.url:@gmail.com返回最多 10000 个结果)。
但是,urlscan.io 团队对我们的报告反应非常迅速,支持调查,发布了一篇博客文章来引导他们的用户,并实施了软件和流程更改以减少泄漏数量。
时间轴
2022-02-15
: Github通过电子邮件通知受影响的用户私有仓库名称泄漏
2022-02-16
: urlscan.io 服务的初步探索
2022-07-05
-2022-07-15
: 继续分析,抓取电子邮件地址,发送通知邮件:
2022-07-15
: 向 urlscan.io 报告调查结果并共享博客文章草稿
2022-07-15
-2022-07-20
: 与 urlscan.io 一起讨论和调查结果
2022-07-19
: urlscan.io 发布了新版本,改进了扫描可见性 UI 和团队范围的最大可见性设置
2022-07-27
: urlscan.io 发布的有关扫描可见性最佳实践的博客文章
2022-11-02
: 我们将发布此博客文章
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场,转载请注明出处:https://nosec.org/home/detail/5045.html
最新评论