不解密数据竟也能识别TLS加密的恶意流量?

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

加密一直都是保护用户通讯隐私的重要特性,可如果恶意程序在传播过程中也加密的话,对这样的流量做拦截感觉就麻烦了很多。谈到加密,TLS(Transport Layer Security Protocol,传输层安全协议)就是当前使用非常广泛的协议:国外部分研究机构的数据显示,已有至多60%的网络流量采用TLS,当然也包括一些恶意程序(虽然大约只有10%)。

不解密数据竟也能识别TLS加密的恶意流量?

来自思科的一组研究人员最近研究出一种方法,不需要对这类流量进行解密,就能侦测到采用TLS连接的恶意程序,是不是感觉有点小神奇?

不解密数据竟也能识别TLS加密的恶意流量?

TLS协议

这是怎么做到的?

思科已经公开了这份研究报告,题为《辨认使用TLS的恶意程序(无需解密)》(英文其实表达得更为准确,名为”Deciphering Malware’s use of TLS”)。我们比较笼统地归结原理,其实是TLS协议本身引入了一系列复杂的数据参数特性——这些特性是可以进行观测检查的,这样自然就能针对通讯双方做出一些合理的推断。

这份报告中有提到:“通过这些特性,我们可以检测和理解恶意程序通讯方式,与此同时TLS本身的加密属性也能提供良性的隐私保护。”听起来似乎还是比较理想的新技术——在不需要对流量进行解密的情况下就达成流量安全与否的判断,的确具备很大意义。

为此,思科大约分析了18个恶意程序家族的数千个样本,并在企业网络中数百万加密数据流中,分析数万次恶意连接。整个过程中,网络设备的确不对用户数据做处理,仅是采用DPI(深度包检测技术)来识别clientHello和serverHello握手信息,还有识别连接的TLS版本。

“在这篇报告中,我们主要针对433端口的TLS加密数据流,尽可能公正地对比企业一般的TLS流量和恶意TLS流量。为了要确认数据流是否为TLS,我们需要用到DPI,以及基于TLS版本的定制signature,还有clientHello和serverHello的信息类型。”

“最终,我们在203个端口之上发现了229364个TLS流,其中443端口是目前恶意TLS流量使用最普遍的端口。尽管恶意程序端口使用情况多种多样,但这样的情况并不多见。”

不解密数据竟也能识别TLS加密的恶意流量?

不仅如此,据说他们还能就这些恶意流量,基于流量特性将之分类到不同的恶意程序家族中。“我们最后还要展示,在仅有这些网络数据的情况下,进行恶意程序家族归类。每个恶意程序家族都有其独特的标签,那么这个问题也就转化为不同类别的分类问题。”

“即便使用相同TLS参数,我们依然就够辨认和比较准确地进行分类,因为其流量模式相较其他流量的特性,还是存在区别的。我们甚至还能识别恶意程序更为细致的家族分类,当然仅通过网络数据就看不出来了。”

实际上,研究人员自己写了一款软件工具,从实时流量或者是抓取到的数据包文件中,将所有的数据输出为比较方便的JSON格式,提取出前面所说的数据特性。包括流量元数据(进出的字节,进出的包,网络端口号,持续时间)、包长度与到达间隔时间顺序(Sequence of Packet Lengths and Times)、字节分布(byte distribution)、TLS头信息。

其实我们谈了这么多,还是很抽象,整个过程还是有些小复杂的。有兴趣的同学可以点击这里下载思科提供的完整报告。

分析结果准确性还不错

思科自己认为,分析结果还是比较理想的,而且整个过程中还融合了其机器学习机制(他们自己称为机器学习classifiers,应该就是指对企业正常TLS流量与恶意流量进行分类的机制,甚至对恶意程序家族做分类),正好做这一机制的测试。据说,针对恶意程序家族归类,其准确性达到了90.3%。

“在针对单独、加密流量的识别中,我们在恶意程序家族归类的问题上,能够达到90.3%的准确率。在5分钟窗口全部加密流量分析中,我们的准确率为93.2%(make use of all encrypted flows within a 5-minute window)。”


作者:欧阳洋葱

来源:51CTO

相关文章
|
23天前
|
安全 网络安全 数据安全/隐私保护
SSL/TLS证书**是一种用于加密网络通信的数字证书
SSL/TLS证书**是一种用于加密网络通信的数字证书
70 6
|
27天前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
27天前
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
51 1
|
1月前
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
295 3
|
1月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
2月前
|
算法 安全 数据安全/隐私保护
加密和解密数据
【10月更文挑战第6天】加密和解密数据
67 2
|
2月前
|
安全 数据安全/隐私保护 开发者
保护敏感数据:使用Python加密数据的实用方法
保护敏感数据是一项基本的安全实践,Python通过上述库提供了强大的加密工具来实现这一目标。选择哪种方法取决于具体的应用场景和安全需求:对称加密(如AES)适合快速处理大量数据,而非对称加密(如RSA)更适合安全地交换密钥或进行身份验证。哈希函数则用于验证数据的完整性和一致性。通过合理使用这些技术,开发者可以大大增强其应用程序的安全性。
91 0
|
2月前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在 Uno Platform 中实现安全的数据存储需要选择合适的数据存储方式,并对存储的数据进行加密。通过加密数据,可以保护用户的敏感信息,防止数据泄露。同时,在读取和使用数据时,需要进行解密操作,确保数据的可用性。希望本文对你在 Uno Platform 中实现安全的数据存储有所帮助。
34 0
|
15天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
16天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
39 10