利用 Cloudflare Tunnel 需要很少的技能,并且可能会危害整个网络。
Cloudflare Tunnel 是一种功能强大的隧道解决方案,为组织提供了一种安全地使外部用户可以访问内部应用程序和服务的方法,同时受益于 Cloudflare 网络实施的防御和身份验证策略。与大多数旨在使基础设施管理更容易、更安全的工具一样,它们也可能被攻击者滥用。
GuidePoint Security 的研究人员报告称,他们的团队今年调查了多起攻击者使用 Cloudflare 隧道来维持对受害者网络的访问的事件。虽然这些攻击并不十分复杂,但他们相信更多的威胁参与者将会采用该工具,因为它具有强大的功能和易用性。
“关键点是,cloudflared [Cloudflare Tunnel 守护进程] 可以连接到 Cloudflare 边缘服务器,通过 HTTPS (HTTP2/QUIC) 创建出站连接,其中隧道的控制器可以通过 Cloudflare 控制台配置更改来访问服务或专用网络,” GuidePoint 高级威胁情报顾问 Nic Finn 在一份报告中表示。“这些更改通过 Cloudflare 的零信任仪表板进行管理,并用于允许外部源直接访问重要服务,包括 SSH、RDP、SMB 等。”
使用 Cloudflare Tunnel 为攻击者带来的好处
首先,安装 Cloudflare Tunnel 非常简单。版本可用于 Windows、macOS 和各种 Linux 发行版,以及 Intel 和 ARM CPU 架构。所需要做的就是下载一个名为 Cloudflared 的可执行文件并运行它。此 Cloudflare Tunnel 守护程序是开源的,由值得信赖的公司开发,因此安全应用程序可能会将其列入白名单。
对于攻击者来说第二个重要的好处是隧道的所有配置都可以从他们的 Cloudflare 仪表板进行。为本地守护进程提供这些配置所需的只是为其提供由仪表板生成的令牌。这也意味着攻击者可以随时轻松远程更新隧道配置。
例如,假设攻击者想要通过 SSH 或远程桌面协议 (RDP) 连接到受感染的计算机或通过 SMB 访问文件,但该计算机仅针对内部网络启用了这些服务。攻击者可能无法将这些服务暴露给网络防火墙中的入站连接,即使他们这样做,让系统突然从互联网上的主机接收 SSH 或 RDP 连接可能会触发网络监控产品中的安全警报。
通过使用 Cloudflare Tunnel,攻击者只需在 Cloudflare 仪表板上的隧道配置中指定他们想要访问本地计算机上的特定服务,守护程序将为他们设置桥接,让他们看起来就像是“从本地计算机本身重新连接它。
对于攻击者来说,明显的好处是,从网络监控的角度来看,流量将通过加密连接通过隧道传输到 Cloudflare 边缘服务器。Cloudflare 的 IP 地址通常是可信的,因此此类连接不一定会显得可疑。此外,连接将显示为出站 — 计算机连接到 Cloudflare。
Cloudflare Tunnel 可能会暴露整个网络
情况变得更糟。Cloudflare Tunnel 允许用户通过隧道路由整个网络 IP 范围,因此攻击者可以将其部署在一台计算机上,然后使用它访问本地网络上的任何服务,即使它们运行在不同的计算机上,本质上充当 VPN。事实上,攻击者可以在自己的计算机上部署 Cloudflare WARP(Cloudflare 的类似 VPN 的解决方案),然后使用隧道,就好像他们与受感染的系统位于同一网络上一样。
一个缺点是攻击者需要一个 Cloudflare 帐户,一旦发现滥用行为,该帐户可以很容易地被暂停。不过,Finn 指出,Cloudflare 通过名为Try Cloudflare 的功能为仅限于单个隧道的部署提供了无帐户选项。这将为 trycloudflare.com 子域上的隧道创建一个唯一的子域。虽然它通常只允许代理 HTTP 服务,但攻击者可以使用 socat 等其他工具首先将 RDP 等任何 TCP 服务的数据流转换为 HTTP。
检测和防御受损的 Cloudflare Tunnel
“尝试在受害计算机上从 Cloudflared 捕获可采取行动的威胁情报可能很困难,”Finn 说。“首先,Cloudflared 默认情况下不会在隧道服务器上存储日志。如果从命令行执行 Cloudflared,日志输出将发送到 stdout,这意味着防御者可能能够实时查看活动,但前提是他们有权在命令提示符或终端上下文中访问该进程。如果威胁参与者在受害者计算机上将 Cloudflared 作为服务运行,就会出现问题。
Finn 说:“对于 SOC 和 CTI 团队成员可以访问 Cloudflared 输出的环境,应进行审查以确定攻击者的 Cloudflare Tunnel 配置中是否配置了任何域。”
检测 Cloudflare Tunnel 使用情况的一种方法是监控多个主机的 DNS 查询,包括 update.argotunnel.com、protocol-v2.argotunnel.com 和 *.v2.argotunnel.com。隧道守护进程将尝试连接到这些查询返回的 IP 地址,这些地址通常是不同区域中距受害者最近的 Cloudflare 边缘服务器。
与这些 IP 地址的后续连接将使用端口 7844 上的 QUIC 协议进行,因此监控此端口的出站连接可能表明网络上使用了 Cloudflare Tunnel。当然,如果 Cloudflare Tunnel 已以授权方式在网络上使用,则需要设置额外的过滤器,例如排除 Cloudflare 已知并授权运行的特定 IP 地址。
其他检测方法可能包括在计算机上本地监视包含参数“tunnel run -token”和相关变体的命令行或进程执行日志。Cloudflared 二进制版本的文件哈希也可以添加到本地 EDR。
芬恩说:“许多威胁行为者利用这个工具进行持久性和渗透只是时间问题。” “防御者需要先于这一威胁,并清楚地了解该工具的运作方式。此外,还需要制定策略来防止在没有手动批准流程的情况下执行此工具。团队需要做出类似的考虑,为所有可能被网络内威胁行为者滥用的靠地工具制定政策。”