恶意软件隐藏在加密流量中变得越来越普遍,这使得检测变得困难。Sophos 提到,已检测到大约46% 的恶意软件通过 TLS 通过 Internet 与远程系统通信。网络犯罪分子正在利用这一点来逃避检测并继续进行恶意活动。网络安全成为安全管理员面临的挑战,因为他们不知道恶意软件是否已经进入网络。入侵检测系统 (IDS)通常用于监控网络是否存在任何可疑活动,但无法分析加密流量。JA3 和 JA3S 是 TLS 指纹识别方法,可用于安全监控以检测和防止恶意活动。它们已成为当今许多工具,例如 Suricata 和 Splunk)中流行的妥协指标 (IoC)。
什么是 TLS 指纹识别?
TLS指纹识别是一种从TLS ClientHello消息中提取字段以生成识别特定客户端的指纹的技术。
TLS 握手
对于 JA3 和 JA3S,TLS 握手中最重要的部分是 ClientHello 和 ServerHello 消息。ClientHello 是发送到服务器以初始化与服务器通信的第一条消息。
ServerHello 消息是服务器对客户端消息的响应。JA3 和 JA3S 指纹(MD5 哈希值)是根据 ClientHello 和 ServerHello 消息中的特定属性生成的。JA3 指纹有效,因为
TLS 协商以明文形式传输,这就是为什么我们能够获得指纹生成所需的属性。
JA3指纹
JA3 由三位 Salesforce 成员(John Althouse、Jeff Atkinson 和 Josh Atkins)开发,是一种用于根据 ClientHello 数据包生成 SSL 指纹以识别建立加密连接的客户端的技术。JA3 指纹从一开始就说明客户端应用程序是否恶意。
JA3 指纹生成
从 ClientHello 消息中生成 JA3 指纹必不可少的属性是 SSL 版本、密码、扩展、椭圆曲线和椭圆曲线点格式。密码,扩展名和椭圆曲线有助于识别客户端。提取每个值后,将使用逗号将它们连接起来以分隔每个字段。长字符串从十进制值转换为 MD5 哈希值,以创建一个简单的 32 个字符指纹,即 JA3 指纹。
字段顺序如下:
SSLVersion、密码、扩展、EllipticCurves、EllipticCurvePointFormats
每个应用程序使用不同的程序包和编程方法来生成ClientHello消息,该消息解释了为什么ClientHello消息对于给定应用程序而言是相同的。
JA3 限制
有可能两个客户端应用程序具有相同的 JA3 指纹,并且对于检测和识别通信是合法的还是恶意的没有用。这就是为什么最好将 JA3 和 JA3S 一起使用的原因。
JA3S
JA3S 用于 SSL/TLS 通信的服务器端,指纹是使用 ServerHello 数据包中的属性生成的。JA3S 指纹生成比 JA3 指纹需要更少的属性。它只需要 SSL 版本、密码和 SSLExtension。
字段顺序如下:
SSLVersion、密码、SSLExtension
JA3 + JA3S 一对
John Althouse 在 Twitter 对话中提到,JA3S 不能单独使用,必须与 JA3 结合使用才能更有效地进行检测或列入黑名单。
当成对使用时,它还可以减少误报的数量。此外,如果我们只使用 JA3 指纹,我们很可能会看到稳定的流量,其中大部分是合法的。
JA3和JA3S如何用于安全监控?
JA3 指纹可用于检测恶意规避技术。
域前置
域前置会伪装客户端通信的实际目的地,并将其重新路由到恶意站点。从防火墙的角度来看,HTTPS 请求实际上是在访问一个应该被阻止的恶意站点时,它似乎是转到一个合法的网站。在建立SSL连接之前,可以使用JA3和JA3S指纹来确定应用程序的类型。
数据泄露
攻击者使用数据泄露来未经许可将敏感信息从组织传输到其服务器或系统。尽管信息已加密,但仍然可以确定客户端是否正在与命令和控制服务器进行通信。JA3指纹可用于识别它是哪种类型的应用程序(即浏览器,恶意软件等),这对于早期发现可能的攻击者可能是一个优势。
入侵检测系统(IDS)
在组织中实施 IDS 时,监视和检测可能发生的任何可疑活动可能会有所帮助。在网络中安装 IDS 以防止可能的停机时间很重要。
上述就是关于SSL通信安全监控中的JA3和JA3S的全部内容,想了解更多关于信息安全的信息,请继续关注中培教育。