urlscan.io 网站被发现泄露了大量用户的敏感 URL,通过自动化工具可以挖掘出文档分享、密码重置以及团队邀请等敏感链接。使用这种配置错误的安全编排、自动化和响应(SOAR)工具的用户,其帐户通过手动触发的密码重置被劫持的风险很高。
Github数据泄露
今年2月,GitHub向受影响的客户发送了一封电子邮件,通知他们数据泄露。具体来说,通过Github Pages为私人存储库启用托管的用户的存储库名称以及他们的用户名被泄露。
开发商似乎没有公开承认这一漏洞,我只是通过黑客新闻(Hacker News)的一篇新闻才知道的。
GitHub从一名GitHuc员工的内部发现中得知,GitHubPages网站从GitHub上的私人存储库发布,并被发送到urlscan.io用于元数据分析,作为自动化过程的一部分。
GitHub对此的回应是“修复自动发送GitHub Pages网站进行元数据分析的流程,以便只有公开的GitHub Pages网站被发送进行分析”,并要求第三方删除数据。
urlscan.io是什么?
urlscan.io是一项免费的网站扫描和分析服务。当一个 URL 被提交到 urlscan.io 时,一个自动化的过程会像普通用户一样浏览到这个 URL 并记录这个页面导航创建的活动。这包括联系的域和 IP、从这些域请求的资源(JavaScript、CSS 等),以及有关页面本身的其他信息。
urlscan.io将自己描述为“网络沙箱”,你可以提交URL,然后通过各种方式对其进行分析和扫描,主要用于检测钓鱼网站等恶意网站。除了分析通过网站提交的URL外,urlscan.io还扫描来自公共数据源的url,并提供一个API将检查集成到其他产品中,这就导致GitHub对私人存储库URL的系统性数据泄漏。
大量的数据扫描
在撰写本文时,登陆页面列出了过去24小时内执行的12万次公开扫描,7万次未公开扫描和43万次私人扫描。它还包括一个“最近扫描”视图,这是典型的安全扫描网站。然而,更令人惊讶的是使用广泛的ElasticSearch Query String语法搜索所有历史数据(作为未经身份验证的用户)的选项。GitHub的通知邮件中也提到了这一点:
urlscan.io在大约30秒内执行分析,或使用将在搜索结果中返回分析的查询进行专门搜索。
对于每个扫描结果,该服务都会提供大量信息:
提交的URL(包含所有GET参数);
重定向时的有效URL;
抓取/扫描URL时执行的任何HTTP请求;
与之通信的IP和域的信息;
扫描时截取的页面截图;
网站的完整HTML响应;
在urlscan上捕获的OAuth2重定向流和其他加载的资源。提交的URL还包含一个UUID, web应用程序可能不希望这个UUID公开。
大量的集成
urlscan.io的文档页面列出了26个商业安全解决方案,这些解决方案由Palo Alto、Splunk、Rapid7、FireEye和ArcSight等供应商通过其API集成了服务。GitHub直接在内部使用这个API作为其SaaS产品的一部分,但它没有出现在这个列表中,可能还有更多的企业客户。
urlscan集成在多种商业安全工具中
如果这些 tools/API 用户不小心执行了公共URL扫描,这可能导致系统数据泄漏。由于这些先进的安全工具大多安装在大公司和政府机构,泄露的信息可能特别敏感。
除了商业产品之外,集成页面还列出了22个开源项目,其中一些是信息收集工具,其他是简单的库实现,以便更容易地查询API。
哪些敏感数据可以被泄露?
由于此API的集成类型(例如,通过一个安全工具扫描每个传入的电子邮件并对所有链接执行urlscan),以及数据库中的数据量,匿名用户可以搜索和检索各种敏感数据。
urlscan.io dorks
请在下面找到一组可点击的“urlscan.io dorks”和编辑过的示例结果,请注意,在将我们的发现报告给urlscan.io后,他们为下面的许多dorks添加了删除规则。
密码重置链接
Instagram密码重置确认页面,请求用户输入两次新密码
帐户创建链接
Zendesk上NBC新闻账户的初始密码设置页面
API密钥
包含有效VirusTotal API密钥的链接
Telegram Bot
Telegram API URL包含一个长的秘密标识符,可用于在机器人上调用不同的API方法。
DocuSign签名请求
DocuSign签名请求通常包含带有敏感信息的合同文件
共享的Google Drive文档
Dropbox文件传输
Sharepoint invite
由于SharePoint工作区与组织相关联,子域已经给出了邀请的目的。
Discord invite
搜索查询返回了超过7000个不同社区的Discord邀请代码。
Government Zoom invite
比Discord邀请更敏感的可能是Zoom邀请,尤其是法庭听证会。
WebEx会议记录
PayPal invoice
PayPal托管的发票显然包含有效发票所需的所有(个人)信息,任何知道其ID的人都可以检索到。
Paypal money claim request
Paypal money claim request“仅”预先填写目标的电子邮件地址(连同金额和收件人),泄露的信息比发票少一点。
包裹跟踪链接
还可以找到各种邮政服务的包裹跟踪链接。有趣的是,DHL似乎意识到了跟踪代码泄露的风险,在显示收件人的地址之前,会询问收件人的邮政编码。注意:由于在德国只有8000个邮政编码,而且从包裹跟踪可以知道总体区域,因此代码可能是可猜测的。
亚马逊礼品配送链接
亚马逊礼品配送链接会泄露送礼者的姓名和礼物
退订链接
HIBP取消订阅链接,允许取消域的违规通知,该域本身没有显示在页面上
在PayPal退订页面上,用户的电子邮件地址完全显示出来。一些其他服务至少部分编辑了退订页面上的电子邮件地址。
有趣的是,当我在2月份进行首次搜索时,我可以找到很多苹果域名的有趣URL:
一个允许设置新密码的Apple开发者ID激活页面
一个允许设置密码的Apple ID最终页面,看起来像是Gamestop账户
家庭共享邀请,允许使用他人购买的订阅,甚至可以访问家庭的照片和设备的位置
仅限企业的在线活动邀请
当然,iCloud也可以创建公共共享链接,这些链接是通过urlscan.io泄露的。
对于iCloud日历邀请,苹果似乎也创建了一个包含所有信息的链接。
同时,这些信息似乎已从数据库中隐藏或删除:
搜索apple.com及其子域名现在只返回两个结果
然而,当持续监控上述结果页面时,有时会发现一些新的附加条目,这些条目在大约10分钟内再次消失。
我们后来发现,苹果同时要求从扫描结果中排除他们的域名,这是通过定期删除所有符合特定规则的扫描结果来实现的。
总体而言,urlscan.io服务包含各种类型的敏感信息,黑客、垃圾邮件发送者或攻击者可以利用这些信息接管账户、窃取身份或进行可信的网络钓鱼活动。
数据来自哪里?
我们可以从扫描结果的详细信息中看到扫描是否通过API提交,但我们无法找到哪个应用程序或集成提交了扫描请求。
为此,我们有两个选择:
联系受影响的用户。向泄露电子邮件地址的用户发送邮件,告知他们泄露信息,并询问可能是罪魁祸首的任何安全工具。
联系urlscan.io。发送可疑的自动提交列表,并要求urlscan调查是否有任何集成意外地将扫描选项设置为公开。
我们决定两者都做,并开始联系用户,同时收集扫描结果列表发送到urlscan.io。
联系用户
我们向API启动扫描中电子邮件地址泄露的个人发送了23封邮件(15封来自退订链接,5封来自PayPal发票,2封来自密码重置链接,1封来自Pay Pal索赔)。
发送的示例邮件带有指向相应urlscan结果页面的链接,底部有一个测试链接。
通知邮件的末尾是带有唯一UUID的“诱饵链接”,用于测试是否有任何URL会自动提交到urlscan.io。如果是这种情况,唯一的令牌将允许我们将扫描请求关联回邮件收件人。
在我们发送的23个测试链接中,9个(约40%)是通过API提交给urlscan.io的(大多数是在相应邮件发送后立即发送的):
通知邮件中包含的“私人”测试链接的公开结果(请注意,某些URL被多次扫描)
如果不计算PayPal发票(实际上可能是作为欺诈活动的一部分创建的),成功率为50%。第二天,我们又向泄露的hubspot退订阅链接的电子邮件地址发送了24封邮件,其中12封(又是50%)触发了公共扫描。
这些“pingback”向我们展示了几件事:
我们假设存在配置错误的安全工具,将通过邮件接收的任何链接作为公共扫描提交到urlscan.io似乎是正确的。
使用这些配置错误的安全工具的用户极有可能丢失所有在线帐户。
看起来严重程度较低的urlscan.io发现(例如来自退订链接的电子邮件地址)可能产生关键影响。
对于我们发现多个电子邮件地址或系统泄漏的组织,我们还尝试直接联系IT/安全部门。
当没有答案或正确的报告联系时,我们也尝试通过Twitter联系
不幸的是,我们既没有收到任何发送给受影响个人的数据泄露通知邮件的答复,也没有收到任何来自似乎存在系统性问题的组织的反馈。
除了一个例外,在给一个人发送了一个DocuSign链接到他们的工作合同后,他们的雇主联系了我们,开始了调查,并授予了一笔漏洞赏金。他们发现泄漏的源头是“他们的安全编排、自动化和响应操作手册与urlscan.io集成的错误配置,该操作手册正在积极开发中”。
联系urlscan.io
由于受影响用户的反馈不多,我们也向urlscan.io解释了这种情况。
如果集成开发人员遵循urlscan.io的文档,识别扫描请求的源软件应该很容易,即为库/集成使用自定义HTTP用户代理字符串,包括适用的软件版本。
因此,我们询问他们是否有可能生成一份用户代理的列表,这些用户代理触发了与我们联系的人相关的扫描,以及我们自己的诱饵链接的扫描,他们是否愿意与我们分享这份列表。
一般来说,urlscan.io团队反应非常积极,愿意与我们一起调查和合作,以改善目前的状况。
查看用户代理列表发现,许多API集成都没有遵循上述建议,超过一半的扫描都是由通用的“python requests/2.X.Y”用户代理启动的。
可以通过用户代理轻松识别的两种解决方案是:
PaloAlto的XSOAR ;
Swimlane;
对用于启动“python-requests”用户代理扫描的API项的进一步调查显示,其中许多项也是为PaloAlto的XSOAR生成的。其他生成的目的是:
IBM Resilient(现为“IBM Security QRadar SOAR”);
Splunk Phantom(现为“Splunk-SOAR”);
DimensionData的SOAR;
那么,这些数据究竟是如何出现在那里的呢?
SOAR平台允许组织自定义编写,将不同的数据源与安全工具和服务连接起来。为了简化开发,这些平台提供了与多个第三方服务的集成,例如通过this XSOAR urlscan.io pack安装了这个包后,playbook可以从传入的电子邮件中提取URL,并使用带有例如超时和扫描可见性的可选参数命令!url url=https://example.com using="urlscan.io"。
这种扫描的可见性取决于:
1.作为命令一部分提交的参数,
2.集成范围的配置;
3.关联urlscan.io 的可见性设置帐户/团队。
因此,扫描可能被错误地提交到公共域名:
1.出现编程错误或urlscan.io配置错误的情况下集成或帐户可见性设置,如泄露员工工作合同的公司所发生的情况;
2.如果集成本身有一个不尊重用户选择的可见性的漏洞,如发生在PaloAlto XSOAR urlscan.io pack 的情况。
参数[…]已配置为默认值public,此参数将覆盖与可见性相关的所有其他设置。因此,对于所有没有显式为这个新引入的参数提供值的命令调用,所有扫描都是以可见性public执行的。
响应
根据我们的发现,urlscan.io联系了他们认为提交了大量公共扫描的客户,并开始审查流行的第三方集成,如用于SOAR工具的集成,以确保他们在可见性方面尊重用户的意图。
此外,他们实施了以下更改:
添加了此处显示的傻瓜式删除规则,以定期删除与搜索模式匹配的扫描结果;
突出显示UI中的默认可见性设置;
添加了一个选项以设置团队范围内的最大可见性;
urlscan.io还发布了一篇名为“扫描可见性最佳实践”的博客文章,解释了扫描可见性设置,鼓励用户经常检查他们的提交,并详细介绍了urlscan为防止此类泄露所做的努力。
如果敏感数据仍然泄漏,他们提供以下选项:
受影响的用户可以通过“报告”设置报告带有敏感数据的扫描结果,该设置将立即禁用它们;
希望将其域名或特定URL模式排除在扫描之外(或删除相应的现有结果)的公司可以联系urlscan.io;
发现系统泄漏的安全研究人员也被要求联系urlscan.io;
账户接管
被动搜索历史urlscan.io数据已经发现了大量敏感信息,将其与“主动探测”相结合可以大大增加泄漏的风险。
正如我们前面所看到的,大约50%的用户在urlscan.io中泄露了退订链接,任何收到的电子邮件中的任何链接都将立即作为公共扫描提交给urlscan。
我们可以通过抓取urlscan.io来找到那些配置错误的客户端获取电子邮件地址(例如,在退订页面中或甚至只是在URL本身中),通过邮件向他们发送“诱饵链接”,然后检查urlscan.io链接。
通过在各种网络服务(如社交媒体网站、其他电子邮件提供商或银行)主动触发受影响电子邮件地址的密码重置,然后检查urlscan数据库中相应域的最近扫描结果,我们可以利用这种行为接管这些用户的帐户。搜索其他数据泄漏,例如使用HaveIBeenPropown查找这些电子邮件地址,也可能提供用户注册的服务的提示。
对于公司电子邮件地址、自定义登录门户和流行的企业SaaS,在上查找现有帐户并触发密码重置可能特别有趣。
而且,即使某个特定服务还没有帐户,只要创建一个带有公司电子邮件地址的新帐户,就可以访问存储在该服务上的公司内部数据。
下图说明了执行帐户接管攻击的所有必要步骤:
将被动搜索与主动探测错误配置的客户端和触发密码重置相结合,可以大大增加任何单个urlscan.io的泄漏影响。
安全建议
作为web服务的所有者,你可以确保你的密码重置和类似的链接尽快失效,并且不会通过可能公开的链接将不必要的信息泄露给未经身份验证的用户。在退订页面,编辑用户的电子邮件地址,并在显示PII之前要求额外的身份验证/信息(就像许多包裹跟踪网站在显示完整地址之前要求邮政编码)。在实现API身份验证时,不要通过GET参数接受API密钥,而是要求使用单独的HTTP标头。
此外,你还可以搜索urlscan.io以及其他服务自己的任何数据泄漏,关于你自己的web服务或组织,请求删除/排除,例如禁用和逆转任何泄漏的API密钥的用户。
urlscan.io集成服务的用户/安全团队应该检查他们的命令、集成和帐户可见性设置,保持他们的集成最新,定期检查他们提交的扫描并检查urlscan.io博客文章获取更多信息。
总结
urlscan.io通常有助于保护用户,不过它还存储了用户的敏感信息,其中一些信息是公开的,可以被攻击者搜索。
垃圾邮件发送者可以利用这些信息收集电子邮件地址和其他个人信息。它可能被攻击者用来接管账户并进行可信的网络钓鱼活动。安全研究人员也可以使用它来发现隐藏的管理门户,获得立足点或发现潜在攻击目标。
urlscan.io 网站被发现泄露了大量用户的敏感 URL,通过自动化工具可以挖掘出文档分享、密码重置以及团队邀请等敏感链接。
与GoogleDorking或通过公共S3桶搜索类似,urlscan.io挖掘揭示了许多本不公开的信息。不同的是,可以通过谷歌找到的信息或公共S3桶中的信息实际上已经公开了,而提交给urlscan的URL。用于公共扫描的io可能包含身份验证令牌,并来自由安全解决方案提交给个人的私人电子邮件。在这种情况下,引入额外的安全工具实际上会降低系统的安全性。
这些文档确实警告了提交的URL中的个人身份信息,但只建议将这些扫描标记为未列出:
1.请小心从URL中删除PII或将这些扫描作为“未列出”提交,例如,当URL中有电子
的扫描至少“在urlscan Pro平台上,经过审查的安全研究人员和安全公司
邮件地址时。
2.这些未列出
PII
仍然可以看到”。此外,此警告没有解决返回页面而不是URL本身的风险。
3.定价和API配额也非常支持使用公共扫描,该服务无法有效地主动防止PII泄露,例如,简单搜索page.url:@gmail.com可返回最多10000个结果。
本文翻译自:https://positive.security/blog/urlscan-data-leaks如若转载,请注明原文地址