执行本地端口扫描的网站:这是来自图书馆吗?它可以被阻止吗?

信息安全 Web应用程序 网络扫描仪
2021-08-18 06:04:02

我最近阅读了一位信息安全分析师的文章,他观察到 ebay.com 进行本地端口扫描。

我简直不敢相信自己的眼睛,但它很快就被我复制了(见下文我的观察)。

我浏览了几个网站,又发现了一个这样做的(花旗银行网站,我的观察见下文)

我进一步看到,至少跨 ebay.com 和 citibank.com 相同的端口,以相同的顺序被扫描。这意味着可能有一个跨两个站点正在使用的库正在执行此操作。(到目前为止,我还没有调试过这个问题。)

问题:

  1. 这个端口扫描“一件事”是否内置在某些标准指纹或安全库中?(如果有,是哪个?)
  2. 是否有可以阻止此类行为的 Firefox 插件?(或者可以将这种阻止添加到现有插件中)?

谢谢!

我看到的 ebay.com: ebay.com 端口扫描

我看到的花旗银行: 花旗银行端口扫描

我检查过的其他网站似乎没有这样做:

  • paypal.com:没有
  • ups.com:没有
  • fedex.com:没有
  • https://www.bankofamerica.com/:没有
  • twitter.com:没有
  • facebook.com:没有
  • 鸭鸭:没有
  • 授权网:没有
  • wellsfargo.com:没有
4个回答

阻止 WS 请求

在寻找禁用 websockets 的方法时,我发现了两个不再工作的原生 Firefox 解决方案,然后偶然发现https://github.com/jawz101/TrackersVsFirefox,其中提到可以使用 uBlock Origin 规则阻止 websockets:

*$websocket

您可以进一步将其限制为仅本地主机,但您必须提出一个匹配所有可能的本地主机引用的模式(例如,127.0.0.0 和 127.255.255.255 之间的所有 IP 地址也引用本地主机)。我不会尝试提出这样的模式,因为我担心可能会有一些我不知道的异国别名。

测试结果

无论如何,一旦您设置了过滤器,您可以通过访问https://www.websocket.org/echo.html并单击“连接”按钮进行尝试。要专门测试阻塞 localhost 连接,您可以运行一个虚拟服务器来侦听传入连接并尝试连接它。

例如,在 linux 上,您可以运行netcat -l 4444以侦听端口 4444 并通过指定wss://localhost:4444为 WS echo 页面上的位置来连接到它。

  • 如果没有 uBlock Origin 规则,您将在 netcat 输出中看到一些乱码,并且 WS echo 页面不会显示任何输出(因为 netcat 没有回复它,只是显示请求)。

  • 启用规则后,您不会在 netcat 中看到任何输出,但 WS echo 页面将显示错误“DISCONNECTED, ERROR: undefined”。

为了回答可能会阻止此流量的浏览器插件,我建议尝试 uMatrix。还有其他具有类似功能的插件(例如,NoScript),但我发现 uMatrix 更直观。uBlock Origin(或其衍生的 Nano Adblocker)可能会阻止流量,但这取决于脚本加载的位置。

uMatrix 可以阻止第三方(以及第一方)脚本(和其他元素)。如果脚本是从单独的网站加载的,那么 uMatrix 可能会完美运行。如果脚本是从源网站加载的,则有必要阻止第一方脚本,这通常会严重破坏网站功能。这些扩展可能会泄漏初始连接。一旦创建了阻止规则,浏览器扩展似乎确实可以可靠地工作。这种泄漏初始连接的行为可能是由于默认配置允许从第三方加载某些元素(例如,图像和 CSS)。

另一种选择,虽然不是您要求的,是操作系统级别的软件防火墙,例如适用于 macOS 的 Little Snitch。我发现 Little Snitch 比浏览器扩展更有效地阻止您描述(并且目睹)的那种行为。

此扫描可能来自ThreatMetrix(只是一个谣言,我所知道的尚未证实)。

现在有一个记录在案的概念证明,这个漏洞可以用来对付开发人员。

这件事是真实的。

但目前,缓解措施是未知的。

要阻止这种情况,您可以使用uBlock 动态过滤(启用高级用户设置以使用它并阅读文档):

* [::1] * block
* 10 * block
* 127 * block
* 172.16 * block
* 192.168 * block
* localhost * block

[::1] [::1] * allow
10 10 * allow
127 127 * allow
172.16 172.16 * allow
192.168 192.168 * allow
localhost localhost * allow

这将阻止从任何地方到您的计算机和本地网络的连接,但允许来自您的计算机和本地网络的此类连接。

作为替代方案,您可以使用 uMatrix 或防火墙。