在计算机安全中,侧信道(side-channel)攻击是一种收集计算机软硬件在运行时所释放出的额外信号来进行信息推测和密文破译的攻击模式,这些额外信号包括电磁辐射、声发射、功率波动、热输出变化等,是设备运行计算时带有规律的能量轨迹。

最早的侧信道(side-channel)攻击

根据NSA解密文件显示,早在1943年,一名贝尔电话工程师就发现每当有人在电传打字机上打字时,会导致附近的示波器的读数波动,接着NSA进一步发现任何接近电传打字机的人,只要能读到它的电磁辐射,就有可能通过示波的能量轨迹破译出它的打字击键信息,这个秘密直到1980年代才被公开。

思科的ETA (Encrypted Traffic Analytics)技术

2016年,思科的工程师David McGrew专门针对TLS加密流量研发了一种增强的NetFlow日志(ETA)。

传统 NetFlow中存在的5 个基本日志:单向流的持续时间、客户端发送的数据包数量、服务器发送的数据包数量、客户端发送的字节数、服务器发送的字节数。

增强的ETA日志包括新的IDP、SPLT和BD这三个日志,IDP日志是采集TCP会话握手后的第一个报文包及有效荷载,一般包含TLS Client Hello或会话第一次明文HTTP请求等,可以提取报文元数据做TLS指纹和其他明文网络特征。而后两种SPLT和BD日志是一种网络流量侧信道信号记录。

Sequence of Packet Lengths and Times (数据包有效负载长度序列和到达时间): 双向流采样前50个数据包的有效负载长度,以及这些采样数据包的序列到达时间(间隔时间)。

Byte distribution(字节分布):某一特定字节值在报文的加密载荷中出现的概率,这可以推测出加密荷载中包含的明文字节,以分辨某种网络协议或推测明文字节特征。

这两种特征工程数据是对流量通信时所产生的额外信号进行侧信道分析,其中的SPLT特征最为重要,SPLT的特征是Packet lengths和Arrival times,较容易被误解为数据包报文长度/时间间隔,而正确的理解如下:

  • X轴代表序列时间

  • Y轴代表数据包有效负载长度

  • 有效负载的X轴宽度是数据报文的到达时间

  • X轴上方代表上行流量,X轴下方是下行流量

这基本上是实现了一个TLS加密会话记录的频域(frequency domain)和时域(time domain) 示波器,下图是Google搜索和木马病毒的SPLT通信示波,通过流量分析的推测,可以看到左右两个图中的每个标签行为实际上对应了明显的信号规律。

Suricata的侧信道状态机规则

2018年,Positive安全公司在SuriCon上为Suricata的流量检测研发了一种侧信道状态机规则,可以用侧信道规律检测木马病毒的加密流量。

首先,Positive的侧信道规则使用的还是Suricata原生能力,针对Suricata约定的Flow(双向的TCP连接)中的dsize(报文有效荷载大小)和stream_size(上、下行流大小),这相当于靠stream大小范围以切蛋糕的方式实现了Sequence of Packet Lengths数据。

然后,Positive使用了Flowbits来标记多个报文在一个Flow里上、下行流中的匹配状态,利用状态机标记从而实现了多序列的上下文报文匹配规则。

Positive巧妙的利用了状态机为suricata实现了侧信道流量检测能力,可以检测一次完整TCP Flow上下行中的报文大小规律,当然这也只能对有明显侧信道特征的木马病毒通信进行异常告警。

商业公司的测信号流量检测能力

在黑客的攻击活动中,主机终端可以销毁黑客的证据,而网络数据包不会说谎,有价值的上下文信息往往隐藏在网络流量中,挖掘出这些信息,可以用于分析黑客攻击行为的TTP、意图、成功与否和危害程度。

续上篇,简单补充介绍一下Corelight公司如何进行侧信道流量检测,实现这种信息挖掘及检测能力。

2019年,著名开源流量检测分析框架Zeek的商业赞助公司Corelight发布了加密流量检测功能,其中包含SSH推理功能,该推理功能是使用侧信道信号分析SSH加密流量,原理和上文介绍的思科SPLT特征类似,是通过分析SSH加密流量数据包的长度、顺序和方向来推测相应的行为。

Corelight在先期的研究中已经发现SSH的网络流量对应相关行为有特别的侧信道信号示波。

比如,SSH服务被持续暴力破解的示波结构。

比如,SSH成功身份验证并将少量数据传输到服务器的示波结构。

更进一步Corelight在SSH连接的整个生命周期中对其三个子协议的状态机进行了建模和跟踪,一旦SSH连接子协议开始,就从数据包序列结构中去推断客户端的使用模式和具体操作。比如:

  • 文件传输会非常快地达到最大数据包限制(MTU),并且通常会持续整个连接。

  • 击键表现出回声模式,其中客户端将击键传输到服务器,服务器会将击键回显给客户端。

  • ......

最终这个能力在Corelight的产品中,通过侧信道信号分析SSH加密流量,就可以发现完整攻击行为中SSH密码爆破成功、命令击键等精准动作。

感悟小结

遥测一般是大规模分析,所以只能采集少量数据,而思科的ETA通过IDP采样和侧信道信号以较少的代价补齐了原NetFlow日志的不足,这种大规模安全能力的规划确实让人惊叹。目前这套流量遥测体系已经经过了8年时间的锤炼,中间到底发生了多少故事,收集分析了多少网络流量的元数据特征和侧信号信号,通过了多少机器学习、深度学习的磨练,可以想象一下思科目前的网路流量遥测能力到底达到了什么程度。

Positive的技巧很让人惊艳,但是由于suricata的定位是流量的实时检测,对于性能有要求也没法实现更多的跨流检测,它只适合情报驱动的已掌握特征的特定恶意流量,如果想实现更复杂的检测还是需要全流量数据进行离线分析。

侧信道并不只单纯是一种攻击,也可以是一种安全防御技术。攻防往往是一体双生,只有打破边界才可能有创新...可以看到这么多年来,网络流量的安全检测在加密通信面前仍处于非常弱势的状态,侧信道流量检测技术一定程度上为流量安全指了一条明路,但这仍然是一种剑走偏锋的技术,需要大量数据作为支撑,会存在很多的不确定性,最终需要大量的工程研发和运营才能落地。

声明:本文来自赛博攻防悟道,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。