【翻译】JA4T-TCP 指纹识别
字数 1955 2025-08-22 12:23:25

JA4T-TCP 指纹识别技术详解

1. JA4+ 网络指纹识别工具概述

JA4T/S/Scan 是 JA4+ 网络指纹识别工具系列的最新成员,用于对客户端和服务器操作系统、设备、特定应用程序、托管特征进行指纹识别,并能识别连接是否通过隧道、VPN 或代理。

主要组件:

  • JA4T:基于客户端TCP SYN数据包的指纹识别
  • JA4TS:基于服务器SYN-ACK响应的指纹识别
  • JA4TScan:主动TCP服务器指纹识别工具

2. TCP基础知识回顾

TCP三次握手

  1. 客户端发送带有SYN标志的TCP数据包(包含首选TCP通信设置)
  2. 服务器响应SYN-ACK数据包(包含其首选TCP通信设置)
  3. 客户端发送ACK,紧接着发送应用程序请求(HTTPS、SSH等)

TCP SYN数据包关键字段

  • 窗口大小:需要ACK之前传输的最大数据量(2字节)
  • TCP选项:非必需但现代操作系统都使用
    • 选项列表总长度必须能被4整除(使用NOP选项填充)
    • 常见选项类型:窗口比例、最大段大小(MSS)、时间戳等

重要TCP选项详解

  • 窗口比例:窗口大小的乘数,允许实际窗口大小远大于65535
  • 最大段大小(MSS):源将接受的每个数据包的最大数据有效负载大小
    • 常见值1460(基于1500的以太网MTU)
    • 1380的MSS表明网络路径存在开销(如隧道或VPN)

3. JA4T: TCP指纹识别技术

设计特点

  • 专为记录每个会话设计
  • 突出显示不寻常的网络条件
  • 可作为分析、故障排除、威胁狩猎和流量整形的支点
  • 人类和机器可读,可共享
  • 能识别操作系统/设备、中间代理、VPN、负载均衡器、隧道等

指纹识别依据

  • 不同操作系统的窗口大小、选项和窗口比例组合不同
    • Windows不使用TCP选项8(时间戳),Unix系统使用
    • iOS以TCP选项0(列表结束)结束,并添加额外选项0而非NOP
  • MSS变化可识别设备网络条件和运营商
    • 不同移动运营商设置不同的MSS
  • VPN连接会改变MSS和窗口大小
  • 代理连接会显示代理的TCP指纹而非客户端指纹

4. JA4TS: TCP服务器响应指纹

  • 基于服务器SYN-ACK响应
  • 服务器响应可能因客户端TCP SYN选项不同而变化
  • 要获得服务器本身的准确指纹需使用JA4TScan

5. JA4TScan: 主动TCP服务器指纹识别

工作原理

  1. 发送包含所有常见TCP选项的单个SYN数据包
  2. 不响应服务器的SYN-ACK
  3. 侦听重传,记录重传次数和延迟
  4. 将重传信息添加到指纹末尾

独特优势

  • 重传次数和延迟模式对每个操作系统唯一
    • 物联网设备:快速多次重传
    • 其他设备:指数退避重传(1秒、2秒、4秒等)
  • 仅需单个SYN数据包即可构建强大TCP指纹

6. 实际应用:使用JA4T阻止互联网扫描器

与GreyNoise结合

  • GreyNoise数据显示前5个JA4T指纹占所有互联网扫描流量的60%
  • 这些指纹对扫描应用程序唯一,可用于启发式阻止恶意流量

实施方法

  • 在WAF、防火墙或负载均衡器中集成JA4T检测
  • F5 BIG-IP提供示例iRule实现
  • 在SYN数据包阶段阻止,防止扫描器探测端口状态

案例分析

  • 指纹示例:29200_2-4-8-1-3
    • 选项列表2-4-8-1-3:基于Unix的操作系统
    • MSS 1424:36字节额外网络开销(可能是未加密隧道或代理)
    • GreyNoise观察到数百个腾讯IP范围源,主要监听SSH(22)和Pi节点矿机端口(31401)

7. 攻击者行为分析

扫描目标

  • 主要目标:SSH及其替代端口
  • 次要目标:网络服务器识别

指纹特征

  • HTTP指纹(JA4H):部分尝试伪装浏览器(接受语言"zhcn")
  • TLS指纹(JA4):
    • 主要扫描仪支持TLS 1.3和69个密码
    • 其他扫描仪支持TLS 1.2和1.1
    • 异常指纹:TLS 1.1带ALPN扩展(历史不符)

8. 实施资源

  • JA4+ GitHub仓库:https://github.com/FoxIO-LLC/ja4
  • JA4TScan独立工具:https://github.com/FoxIO-LLC/ja4tscan
  • F5 iRules示例:https://github.com/f5devcentral/f5-ja4
  • 许可信息:https://github.com/FoxIO-LLC/ja4/tree/main#licensing

9. 结论

JA4T/S/Scan作为JA4+网络指纹套件的最新成员,提供了强大的网络流量分析能力,可用于:

  • 客户端和服务器指纹识别
  • 网络条件分析
  • 威胁检测和阻止
  • 网络问题排查

通过集成到网络安全产品中,可以基于指纹而非IP地址列表有效阻止大量恶意流量(如60%的互联网扫描流量)。

JA4T-TCP 指纹识别技术详解 1. JA4+ 网络指纹识别工具概述 JA4T/S/Scan 是 JA4+ 网络指纹识别工具系列的最新成员,用于对客户端和服务器操作系统、设备、特定应用程序、托管特征进行指纹识别,并能识别连接是否通过隧道、VPN 或代理。 主要组件: JA4T :基于客户端TCP SYN数据包的指纹识别 JA4TS :基于服务器SYN-ACK响应的指纹识别 JA4TScan :主动TCP服务器指纹识别工具 2. TCP基础知识回顾 TCP三次握手 客户端发送带有SYN标志的TCP数据包(包含首选TCP通信设置) 服务器响应SYN-ACK数据包(包含其首选TCP通信设置) 客户端发送ACK,紧接着发送应用程序请求(HTTPS、SSH等) TCP SYN数据包关键字段 窗口大小 :需要ACK之前传输的最大数据量(2字节) TCP选项 :非必需但现代操作系统都使用 选项列表总长度必须能被4整除(使用NOP选项填充) 常见选项类型:窗口比例、最大段大小(MSS)、时间戳等 重要TCP选项详解 窗口比例 :窗口大小的乘数,允许实际窗口大小远大于65535 最大段大小(MSS) :源将接受的每个数据包的最大数据有效负载大小 常见值1460(基于1500的以太网MTU) 1380的MSS表明网络路径存在开销(如隧道或VPN) 3. JA4T: TCP指纹识别技术 设计特点 专为记录每个会话设计 突出显示不寻常的网络条件 可作为分析、故障排除、威胁狩猎和流量整形的支点 人类和机器可读,可共享 能识别操作系统/设备、中间代理、VPN、负载均衡器、隧道等 指纹识别依据 不同操作系统的窗口大小、选项和窗口比例组合不同 Windows不使用TCP选项8(时间戳),Unix系统使用 iOS以TCP选项0(列表结束)结束,并添加额外选项0而非NOP MSS变化可识别设备网络条件和运营商 不同移动运营商设置不同的MSS VPN连接会改变MSS和窗口大小 代理连接会显示代理的TCP指纹而非客户端指纹 4. JA4TS: TCP服务器响应指纹 基于服务器SYN-ACK响应 服务器响应可能因客户端TCP SYN选项不同而变化 要获得服务器本身的准确指纹需使用JA4TScan 5. JA4TScan: 主动TCP服务器指纹识别 工作原理 发送包含所有常见TCP选项的单个SYN数据包 不响应服务器的SYN-ACK 侦听重传,记录重传次数和延迟 将重传信息添加到指纹末尾 独特优势 重传次数和延迟模式对每个操作系统唯一 物联网设备:快速多次重传 其他设备:指数退避重传(1秒、2秒、4秒等) 仅需单个SYN数据包即可构建强大TCP指纹 6. 实际应用:使用JA4T阻止互联网扫描器 与GreyNoise结合 GreyNoise数据显示前5个JA4T指纹占所有互联网扫描流量的60% 这些指纹对扫描应用程序唯一,可用于启发式阻止恶意流量 实施方法 在WAF、防火墙或负载均衡器中集成JA4T检测 F5 BIG-IP提供示例iRule实现 在SYN数据包阶段阻止,防止扫描器探测端口状态 案例分析 指纹示例:29200_ 2-4-8-1-3 选项列表2-4-8-1-3:基于Unix的操作系统 MSS 1424:36字节额外网络开销(可能是未加密隧道或代理) GreyNoise观察到数百个腾讯IP范围源,主要监听SSH(22)和Pi节点矿机端口(31401) 7. 攻击者行为分析 扫描目标 主要目标:SSH及其替代端口 次要目标:网络服务器识别 指纹特征 HTTP指纹(JA4H):部分尝试伪装浏览器(接受语言"zhcn") TLS指纹(JA4): 主要扫描仪支持TLS 1.3和69个密码 其他扫描仪支持TLS 1.2和1.1 异常指纹:TLS 1.1带ALPN扩展(历史不符) 8. 实施资源 JA4+ GitHub仓库:https://github.com/FoxIO-LLC/ja4 JA4TScan独立工具:https://github.com/FoxIO-LLC/ja4tscan F5 iRules示例:https://github.com/f5devcentral/f5-ja4 许可信息:https://github.com/FoxIO-LLC/ja4/tree/main#licensing 9. 结论 JA4T/S/Scan作为JA4+网络指纹套件的最新成员,提供了强大的网络流量分析能力,可用于: 客户端和服务器指纹识别 网络条件分析 威胁检测和阻止 网络问题排查 通过集成到网络安全产品中,可以基于指纹而非IP地址列表有效阻止大量恶意流量(如60%的互联网扫描流量)。