本文解释了Cato如何通过持续重新评估DNS、TLS和超文本传输协议检查阶段的真实主机名来自动阻止域名前置。 这确保了伪装的指挥与控制 (CnC) 流量能够立即被检测并阻止。
域名前置是威胁行为者用来将恶意流量伪装成合法通信的一种技术。 它利用了HTTPS和内容分发网络 (CDN) 处理域名的方式。 在标准的HTTPS连接过程中,两个域标识符在不同阶段可见:
- 服务器名指示 (SNI):在TLS握手期间以明文发送,指示客户端打算连接的目标主机名
- 主机头:稍后在加密的HTTP请求中发送,指定实际访问的域名
使用域名前置,攻击者故意使这两个字段不匹配,例如,在SNI中使用良性域名(例如 example.com)而在主机头中使用恶意域名(例如 malicious-cnc.com)。 这使得指挥与控制 (CnC) 流量看似定位到合法服务,通常隐藏在主要云或CDN提供商后面。
与其他需要特殊规则或更新来处理域名前置的解决方案不同,Cato的架构本质上检测并阻止域名前置尝试。 它通过持续重新评估流量的真实身份来做到这一点,因为更多信息变得可用(更多信息请参见理解Cato SPACE架构的数据包流 ,解释该动态重新评估过程)。
Cato使用一个称为统一主机名的概念,这是一个动态更新的标识符,代表流量的真实目的地。 这个标识符在每个检查阶段被优化:
- 在DNS解析阶段,Cato识别与目的地IP相关联的域名 (DNAME)
- 在TLS握手期间,Cato观察服务器名指示 (SNI),显示客户端试图访问的主机名
- 经过TLS检查,当加密流量被解密后,Cato可以看到HTTP主机头,揭示实际访问的域名
Cato在每个阶段重新评估统一主机名。 如果主机头域与原始SNI冲突或不同,Cato会将其视为新情报,并在防火墙 (FW) 和入侵防护系统 (IPS) 引擎间触发重新评估。
这意味着两个产品都能在新的主机名上下文下有效地重新应用。 如果新揭示的主机是恶意的(即,被防火墙配置为阻止或包含在阻止的IPS签名中),Cato会立即阻止它,即使原始SNI和目的IP看似良性。
这种分层检测确保试图隐藏在可信域名后面的CnC通道在真实目的地暴露时立即被阻止。
要验证Cato对域名前置保护的有效性,您可以自行重现检测过程:
- 创建防火墙规则:确保您已配置防火墙规则以阻止匿名器(或者创建一个如果尚未存在)。
-
发送测试请求:运行以下curl命令:
curl -v https://example.com -H '主机:expressvpn.com'命令被防火墙阻止
-
验证阻止:在CMA中,在防火墙规则命中下查看事件页面以确认阻止。 在事件属性中,目标IP字段是examplee.com的IP地址,而域名字段更新为最后出现在HTTP主机头中的域:expressvpn.com。
可选:您还可以在Wireshark中捕获流量(如果以明文而不是HTTPS发送)以可视化主机头并确认阻止事件。
应用配置后,可以通过运行以下命令验证行为:curl -v https://chatgpt.com -H '主机:echo.free.beeceptor.com'
这些步骤为您提供了一种透明的方式来观察Cato如何通过其后检查重评估过程中和消除域名前置尝试。
0 条评论
文章评论已关闭。