互联网上流传着一则关于eBay端口在没有任何许可甚至没有迹象的情况下扫描访问者的故事(没有深入研究浏览器的开发工具)-这绝对是真的。但是他们为什么要这么做,eBay在用它收集的数据做什么呢?我瞥了一眼代码找出了答案(改编自这个帖子),我确信我找到的只是整个故事的一小部分。
和许多人一样,这一传奇故事始于推特(Twitter)为了低俗的笑声而在一个品牌上扣篮。VPN提供商NordVPN分享了博客作者查理·贝尔默(Charlie Belmer)的网站NullSweep发布的一篇帖子,题为“为什么这个wbesite端口扫描我?”诺德还声称浏览器扩展(大概是他们的)可以防止“非法”端口扫描(它们不是非法的)。每天都有数以万计的人在世界各地的港口扫描互联网,既有合法的研究原因,也有支持恶意目的的人。从表面上看,这种说法是荒谬的,因为来自互联网的典型端口扫描直接瞄准了将网络连接到互联网的任何路由器、防火墙和网关(以及通过它们设置的服务器和PC机)-浏览器根本没有办法坐在中间,更不用说浏览器扩展了,它根本没有办法坐在中间挡住端口扫描器。
实际上,NullSweep实际上是在讨论一种不同类型的端口扫描,一种由目标在其浏览器中加载的网站直接发起的端口扫描。这是一种巧妙的技术,如果不是阴险的话,它允许潜在的端口扫描器直接进入内部网络,并在浏览器上下文中使用Javascript进行扫描。
顺便说一句,这是浏览器扩展可以屏蔽的东西,然而,端口扫描背后的公司使用技术来阻止他们的跟踪器的广泛屏蔽,正如我们稍后将看到的那样。
虽然现代浏览器允许Javascript向您当前访问的域名(如www.ebay.com)以外的其他域名发出请求,但它们会添加安全控件,以确保目标数据允许调用网站访问。例如,这可以防止恶意网站向您的银行网站请求帐户详细信息。但是,即使不知道远程站点的内容,也可以使用有关连接本身的详细信息(如连接所需的时间或超时)来推断给定主机和端口上是否存在网站。一小段Javascript代码就可以将其打包到一个包中,并允许任何站点扫描用户的内部网络,从而确定哪些IP地址和端口正在运行服务。此外,由于许多众所周知的服务通常在同一端口上可用(有一个注册页面,但它更多的是一条指导方针,而不是一条严格的规则),因此还可以根据端口是否打开来推断用户可能在其网络上运行某些程序。
正如NullSweep的文章中指出的,eBay只扫描用户的本地PC(IP地址为127.0.0.1),并寻找远程桌面软件常用的一小部分端口。有趣的是,查理试着安装了其中一个应用程序,却没有注意到eBay的运行方式有什么不同,那么他们在用它做什么呢?我决定加载这个网站并找出答案。
就在这个时候,我发现了“黑暗日记”播客主持人杰克·莱西德(Jack Rhysider)在Twitter上发布的一篇关于同一话题的帖子,他从理论上分析了eBay可能会这么做的一系列原因,这进一步激起了我的兴趣。在尝试本地加载eBay时,我发现即使在欺骗了Windows用户代理并禁用了所有扩展之后,我也无法在Linux中复制该行为。一定有一些支票隐藏在Javascript中,但到目前为止我还没有找到。在那之后,我加载了WindowsVM,安装了最新的Edge,启动了https://www.ebay.com,,最后我复制了端口扫描行为。然而,我在可靠地复制该行为时遇到了一些问题,经过反复试验,我发现https://signin.ebay.com/was触发端口扫描的可靠性要高得多。
在浏览器开发工具中,我能够跟踪启动到127.0.0.1的连接的代码,追溯到执行Blob URL的服务工作人员。Blob URL是链接到由Javascript生成的任意文件的特殊URL,但也可以在HTML元素href中使用,就像它是到静态图像或视频的链接一样。根据我的经验,这些通常被用作DRM模式的一个组件,以使从网页上抓取音乐或视频等内容变得不方便(但并非不可能)。我不知道这是否是这里的目的,但这肯定会给调试过程带来挫折,因为这意味着每个扫描源都来自一个随机生成的Blob URL,并且每次我加载页面时都是不同的。
最终,我追踪到了一个新的Blob(.)。构造函数,并有机会设置断点。正如您在下面的屏幕截图中看到的,代码被严重混淆。TD_L1、TD_1D等,所有这些都是为了使代码难以调试并找出实际发生的事情。此外,您在屏幕截图中看不到它,但是所有这些Javascript在每次页面加载时都会被重新混淆。名为TD_L1的变量下一次可能被命名为TD_9I,这使得在不小心刷新页面时很难回溯您的步骤,因为所有的变量名称都是乱七八糟的。
尽管存在混淆,但代码并没有什么真正的“魔力”-它执行的指令与消除混淆的代码执行的指令相同-因此,通过访问调试器和明智地放置断点,您可以在某个时间点停止代码并检查程序的整个状态。浏览器调试工具真是令人难以置信。
我的第一个任务是查看这个Blob的代码是如何生成的,因为搜索源代码中的单个位没有给出任何结果。上面的屏幕截图显示了对td_z5.join(";";)的调用,该调用将字符数组转换为单个字符串。现在,我不是反向工程或恶意软件猎人,甚至也不是业余的,但我以前看过打包的Javascript,这种技术似乎是保护代码不受反向工程影响的常用方法(通常没有很好的理由)。再说一次,所有这些都不是非法的,但当我知道公司会不遗余力地向客户隐瞒跟踪和扫描数据时,我仍然感到有点怀疑。
在进一步的代码中,您可以看到证据表明,是的,这是一个专用的端口扫描器,而不是eBay访问本地主机上的服务的其他(有争议的)合法理由(是的,您可以使用本地Web服务器做一些很酷的事情,但通常当出现问题时,您只会在新闻中看到它)。
所有这些Javascript都来自URL中的脚本文件,如下所示:
会话ID似乎是在每个页面加载时随机生成的,但是不要松一口气-我不太希望这意味着您的数据是匿名的。
在遍历代码时,我最终得出结论,扫描的结果与所有扫描结束后加载的一张奇怪的图像相关联。url、https://src.ebay-us.com/fp/clear.png,链接到与扫描脚本相同的域。这个域不用于加载任何其他脚本图像,因此它似乎是一个可遵循的线索。
对URL一无所知,“clear.png”让我觉得它可能是像素,通常是1x1的透明图像,用来触发有人查看该图像的信号,但在下面的开发工具屏幕截图中,你可以看到一些奇怪的东西。响应代码是“204No content”。指向此PNG的URL没有返回图像-它根本没有返回任何内容!
如果这个特定的扫描被用来检测欺诈,我本以为eBay会收到某种欺诈分数来回应这个请求,但看起来这些数据只是被扔到母船上供以后使用。或者他们可能是从这个俄罗斯黑客组织那里得到了启示,这个组织使用HTTP状态码作为控制协议本身(只是开玩笑)。
现在我们知道收集的数据正在做什么,我想知道到底是什么,被发送到远程服务器?完整的png url如下所示:
很多字母和数字,数据能被加密吗?是的,事实上,进一步的研究使我找到了一个传入了两个变量的Javascript函数:
在仔细检查了一下代码之后,我能够确定它使用了位移位和XOR将整个有效负载加密成16进制字母表(是的,XOR是一种很差的加密方法,但是明文与密钥进行XOR是加密的)。我将加密方法转换为Python,然后反转以构建解密器。遵循完整加密/解密实现的要点URL。该脚本还可以从Python3中的终端运行,以解密加密的clear.png URL并打印清除文本有效负载。
def deccrypt(encr,key):alpha=";0123456789abcdef";message=[]last=None for IDX,(char,keychar)in Enumererate(zip(ENCR,Cycle_Two(Key):如果IDX%2==0:last=char继续加密=alpha。索引(最后)<;<;4|alpha。索引(字符)消息。append(chr(crypt^order(Keychar)&;10))CONCAT=';';。Join(Message)Length,Sep,msg=CONCAT。分区(';&;';)if len(Length)==0:如果len(Msg)!=int(Length):提高值错误(";错误解码消息";)返回msg。
有了一个解密渗出的数据的工具,我开始检查有多少数据被发送到src.ebay-us.com域。易趣签到页面的一次加载总共有七张图片,而且所有图片都发送了不同的数据。
这些数据包括一些个人信息(欧盟读者可能想检查一下他们是否受到了影响,以及它是否符合GDPR的规定)。
这些数据会被发送到易趣域名,但似乎不会以其他方式使用
如果eBay没有用它来决定是否应该允许你在那里登录,它对这些数据做了什么?在这一点上,我熬夜了,而且相当疲惫,所以我完全错过了一个非常可疑的指标-数据被泄露的域名不是ebay.com的子域名-它是eBay-us.com。尽管如此,快速检查一下就会发现它属于易趣的某个人,所以至少它不是钓鱼恶意软件。推特用户“扶手椅IR”指出,Facebook也看到了类似的行为,并追踪到一家名为ThreatMetrix的公司,这是一家身份跟踪/反欺诈公司。查看src.ebay-us.com的DNS记录,肯定是ThreatMetrix公司拥有的域名h-ebay.online-metrix.net的CNAME。
搜索“online-metrix.net”域名显示,有些人和AdBlock扩展试图禁止此域,这可能是为什么ThreatMetrix设置了一个特定于客户的端点,并让他们的客户通过与ThreatMetrix无关的他们自己的端点清洗(这可能不是正确的术语LOL)域。
crt.sh关于这个域名的最早记录可以追溯到2013年,所以eBay可能已经扫描客户的电脑将近七年了,而没有太多的人注意到这一点。Online-metrix.net使用通配符证书,所以不幸的是,列举他们的客户并不那么容易,但还有进一步调查的空间。
新闻报道称,LexisNexis于2018年收购了ThreatMetrix,他们的新主页笼统地讲述了他们的数据将如何被用来打击欺诈。他们声称,他们“分析了来自全球3万多个网站的1.5亿多笔日交易量”,因此似乎有理由相信,他们收集的所有数据都会直接进入一个与所有客户共享的大型数据库。
LexID Digital结合了唯一标识符、置信度分数和平均曲线图,真正了解用户在所有渠道和接触点的独特数字身份。
设计隐私:我们独一无二地解决了通过使用标记化在维护数据隐私的同时提供身份动态风险评估的挑战。
僵尸和恶意软件威胁情报:针对恶意软件、远程访问特洛伊木马(RAT)、自动僵尸攻击、会话劫持和网络钓鱼账户的可行威胁检测,结合已知诈骗者和僵尸网络参与等全球威胁信息。
最后,他们有一个名为“真实位置”的声明,听起来有点像他们试图让使用VPN的人去匿名化。
真实位置和行为分析:检测位置伪装或IP欺骗、代理、VPN、ToR浏览器和行为模式的变化,如异常交易量。
这不仅仅是eBay扫描你的端口,据说还有一个由3万个网站组成的网络,所有这些网站都在为共同的目标工作,即收集开放的端口,收集IP地址,以及用户代理,试图跟踪整个网络上的用户。这并不是eBay内部的一些流氓团队想要绕过法律,你可以打赌,LexisNexis的律师在将这项服务扩展到他们的客户(至少在美国)时已经完全覆盖了他们的基础。