泛在网络环境下隐蔽通道关键技术研究综述

2022-04-29 05:16李凤华李超洋郭超李子孚房梁郭云川
通信学报 2022年4期
关键词:稳健性度量流量

李凤华,李超洋,郭超,李子孚,房梁,郭云川

(1.中国科学院信息工程研究所,北京 100093;2.中国科学院大学网络空间安全学院,北京 100049;3.北京电子科技学院电子与通信工程系,北京 100070)

0 引言

隐蔽通道是指恶意通信双方通过修改共享资源的数值、特性或状态等属性,编码和传输隐蔽信息的通道,以此绕开系统安全策略[1-2]。随着网络环境日益复杂及隐蔽通信技术的不断发展,各种隐蔽通道频繁出现,包括面向物理层(CVE-ID:CVE-2019-13270)、数据链路层(CVE-ID:CVE-2019-13271)、操作系统(CVE-ID:CVE-2020-0550)和网络层(CVE-ID:CVE-2019-13264)等的隐蔽通道。特别地,亚马逊云计算服务研究人员Pawel 发现了一种名为Snoop 的新型隐蔽通道攻击,该隐蔽通道可窃取Intel 处理器内部缓存中的数据。

随着互联网及隐蔽通信技术的发展,隐蔽通道对泛在网络(如物联网、云计算和卫星互联网络等)产生了更严重的安全威胁。如在云环境中,由于其共享计算资源,具有较高权限的程序可通过隐蔽通道将数据泄露给具有较低权限的程序,从而打破逻辑隔离,这会给云安全带来巨大的挑战。攻击者可以通过路由器(CVE-ID:CVE-2019-13268)等基础网络设备中的隐蔽通道,窃取互联设备中的隐蔽信息,给物联网等网络环境带来巨大的安全威胁。

隐蔽通道的潜在威胁引起了研究者的广泛关注,多年以来,相关研究者通过对隐蔽通道的不断深入研究,使该领域有了实质性的研究进展。隐蔽通道研究可大致分为3 个阶段。

1) 早期隐蔽通道的研究主要是利用操作系统中的共享资源,如硬件随机数生成器[3]、处理器缓存[4]、分支预测器[5]和I/O 设备[6]等,构建时间或存储隐蔽通道[1],即操作系统隐蔽通道。例如在Sun Solaris系统中,Solaris 内核允许2 个非特权本地用户处理程序建立一个隐蔽通道来绕过系统安全策略(CVE-ID:CVE-2008-3875)。

2) 随着互联网的不断发展,研究重点逐渐转移到了网络隐蔽通道,网络隐蔽通道主要有存储隐蔽通道(CSC,covert storage channel)、时间隐蔽通道(CTC,covert timing channel)、混合隐蔽通道(CHC,covert hybrid channel)、行为隐蔽通道(CBC,covert behavior channel)4 种[1]。典型的网络隐蔽通道多数是基于TCP/IP 协议栈来构建的[7],这些隐蔽通道往往通过使用网络协议[8]或数据包[9-10]的协议字段[11]和时间特征[12-15],进行隐蔽通信。

3) 近年来,物联网、云环境、移动通信网络、区块链等各种新型网络不断兴起,逐渐形成了泛在、复杂的网络环境,这使隐蔽通道有了更多的可乘之机。泛在网络环境下的隐蔽通道利用不同场景下共享资源的不同特性(如通过物联网协议[16-17]、云中的内存重复删除[18-19]、移动通信网络中的语音流数据[20]、Air-gap 系统中的磁信号[21]等)构建隐蔽通道,以达到提高隐蔽通道容量或者增强稳健性等目的,给日益复杂的网络环境带来了更大的安全挑战。

面对各种隐蔽通道产生的威胁,研究者提出了一系列消除或限制技术,以降低隐蔽通道的攻击风险,但是,随着隐蔽通信技术的不断发展,想要完全消除隐蔽通道非常困难。常见的隐蔽通道限制方案主要体现在2 个方面。

1) 通过对通信环境施加限制策略,以破坏隐蔽通信,如对存储隐蔽通道添加噪声、对时间隐蔽通道和混合隐蔽通道增加时延和噪声、对Air-gap 系统中的隐蔽通道还可以对隐蔽通信双方实施隔离[1]等。

2) 根据隐蔽通道的规律或特征,设计检测方法,以识别隐蔽通道,主要包括基于统计、基于机器学习、基于信息论、基于信息流分析等技术的检测方法。

通过干扰通信环境的隐蔽通道限制策略虽然可以降低隐蔽通信的风险,但是也会影响正常的通信质量。近年来,为限制隐蔽通道,研究者主要集中于隐蔽通道检测方法的研究。

在泛在网络环境下,用于构建隐蔽通道的共享资源和通信环境变得更加复杂多样。在不同网络环境下利用各种共享资源构建的隐蔽通道存在泛在性、差异性,难以用统一的框架或方法对其进行有效度量及准确检测。由于网络环境的特殊性,隐蔽通道构建研究也面对诸多困难,如由于区块链自有的加密属性和去中心化等特点,使区块链成为天然的隐蔽通信场景,但是由于其具有可追溯和抗篡改等特性,节点间交易信息会被区块链中的所有节点感知,这对构建具备抗检测性强的隐蔽通道带来了巨大的挑战;在云环境中,可以利用多种共享资源构建隐蔽通道,如CPU、缓存或共享内存等,利用共享内存等资源构建的隐蔽通道虽然会有较大的隐蔽容量,但是往往易被检测;Air-gap 系统中的隐蔽通道多是利用电磁信号、功率等物理介质作为共享资源,此种隐蔽通道往往容量很小。

近年来,研究者针对泛在网络环境下隐蔽通道的度量、构建和检测问题,进行了深入研究,但是缺乏对此类隐蔽通道研究的综述分析。与已有的隐蔽通道研究综述相比,本文在分析已有研究成果的基础上,总结了隐蔽通道的常用度量指标及度量方法,重点对物联网、云环境、移动通信网络、Air-gap系统、区块链和车载自组网(VANET,vehicular ad-hoc network)等网络环境下的隐蔽通道构建技术进行了多维对比分析,系统分析了泛在网络环境下隐蔽通道的检测技术,并展望了未来的研究方向。

1 隐蔽通道度量

隐蔽通道度量是构建和检测隐蔽通道的基础,典型的隐蔽通道度量指标包括容量、稳健性、抗检测性、规律性和形状。容量指单位时间内隐蔽通道能够无差错传输的最大信息;稳健性指隐蔽通道存在干扰(如噪声和丢包等)时,准确传输数据的能力;抗检测性(也称隐蔽性)指隐蔽通道保持隐蔽通信且不被识别的能力;规律性和形状分别指时间隐蔽通道中包间时延(IPD,inter-packet delay)分布的规律和形状。

各度量指标存在如下影响与关联。容量、稳健性和抗检测性主要用于评估隐蔽通道的构建方法。一般情况下,当隐蔽通道的容量很大时,会表现出较强的稳健性;当稳健性差时也会降低隐蔽通道的容量。容量与抗检测性通常存在相互抑制的关系,容量增大会导致抗检测性降低;反之,若要提高抗检测性往往要降低容量。规律性和形状主要用于隐蔽通道的检测,规律性和形状的度量也能在一定程度上反映抗检测性,如对于时间隐蔽通道,当IPD 分布的规律性或形状很明显时,会降低抗检测性。

1.1 隐蔽通道容量度量

在隐蔽通道容量的度量方面,面对复杂多样的信道环境,隐蔽通道容量度量可以分为:经典信道中的隐蔽通道容量度量[22-24]、量子信道中的隐蔽通道容量度量[25-27]、离散无记忆信道中的隐蔽通道容量度量[28-29]、噪声信道中的隐蔽通道容量度量[30-31]和其他信道中的隐蔽通道容量度量[32]。在经典信道中隐蔽通道容量的度量方面,多数研究者基于香农信息论对其进行度量[22-23,33],如Epishkina 等[22]利用互信息度量隐蔽通道的容量。El-Atawy 等[23]将基于数据包排序的隐蔽通道容量定义为每个数据包内编码隐藏信息的比特数,即

其中,k表示每个码字所包含的排序数据包个数;PL表示码字的概率分布;H(PL)表示PL的熵,代表每个码字的平均信息;β表示一个数据包所包含的比特数。

Zhang 等[24]将基于编码语音数据流的隐蔽通道容量定义为单位时间内隐蔽信息的大小,即

其中,NC表示隐藏消息的位置数,lb表示每个位置隐蔽信息的长度,TC表示语音静默周期。当lb不同时,NC也不同,因为并不是所有的静默期都可以延迟和扩展。

在量子信道和离散无记忆信道中的隐蔽通道容量度量方面,经典无记忆信道和量子有损噪声玻色子信道(具有量子强噪声)的隐蔽通信的基本极限是平方根定律[25-27],即在n个信道中可以可靠地传输高达bit 的隐蔽信息。Bloch 等[28]研究表明,在离散无记忆信道中,如果发送方和接收方共享个密钥位,则可以在n个信道上实现容量达bit 的可靠隐蔽通信。对于复合离散无记忆信道中的隐蔽通道,Ahmadipour 等[29]考虑2 个覆盖率度量。在第一个度量中,使用具有固定分布的每个状态的通道输出边缘的K-L 散度(KLD,Kullback-Leibler divergence)来度量覆盖度,根据不同分布,建立对应的最大容量。在第二个度量中,通过使用2 种状态的通道输出边缘的总变化距离来度量覆盖率,给出了最优传输隐蔽率的上下界。

在噪声环境下隐蔽通道的容量度量方面,在加性白高斯噪声(AWGN,additive white Gaussian noise)的隐蔽通道中,发送方可以可靠地将bit 信息发送给n个预期接收方,该过程有极低的被检测概率,接收方通过单独的AWGN 信道接收发送方的隐蔽信息[30]。离散无记忆信道和加性高斯白噪声信道的最大隐蔽编码速率随着消息块长度的减小而减慢,Bendary 等[31]研究表明,多输入多输出(MIMO,multiple-input multiple-output)AWGN 信道的隐蔽容量在一定条件下收敛到MIMO AWGN 信道的容量。

此外,对于非相干快速瑞利衰落无线信道(NCFRFWC,non-coherent fast Rayleigh-fading wireless channel),Tahmasbi 等[32]研究表明,隐蔽容量是由有限个质点(包括一个质点)组成的振幅约束输入分布来实现的,并给出了数值边界。Ta 等[34]研究表明,信道衰落是隐蔽信号传输的关键,噪声不确定性越大,信道不确定性对检测误差平均概率和隐蔽容量的影响越显著。

1.2 隐蔽通道稳健性度量

稳健性已被广泛应用于隐蔽通道的度量。度量隐蔽通道稳健性的相对统一的指标是误码率[24,35]。

Zhang 等[24]利用误码率来评估长期演进语音承载(VoLTE,voice over long-term evolution)中隐蔽通道的稳健性,定义为

其中,Rl表示VoLTE 流量的丢包率,NspRl表示在静默期结束时丢失的数据包数。

Zhang 等[36]基于误码率讨论了隐蔽通道的稳健性,稳健增益γ(γ∈R+)定义为

其中,表示不编码的直接调制的误码率,Pe表示在相同的网络条件下用特定的编码方案进行编码和调制后的误码率,N表示静默期的数目,Rl表示丢包率,ej表示第j次丢包导致的错误隐藏信息比特数,L(ni)表示第i个静默周期中静默插入描述符(SID,silence insertion descriptor)数据包数目的码长。当γ→∞时,可以认为隐蔽通道是完全稳健的。

1.3 隐蔽通道抗检测性度量

在隐蔽通道抗检测性度量方面,研究者主要利用基于多项式时间统计检验的度量方法,即对于隐蔽流量的数据流样本n和合法流量的数据流样本n′,若存在一个任意小的函数f(δ),使不等式成立,则隐蔽通道相对于安全参数δ是多项式不可检测的[37],其中,T表示多项式时间统计检验。基于多项式时间统计检验的抗检测性度量方法包括K-L 散度[37-38]和K-S 检验(KST,Kolmogorov-Smirnov test)等[37-39]。

Archibald 等[38]使用K-L 散度(又称相对熵)和K-S检验来度量隐蔽通道的抗检测性。K-S检验和K-L散度都是用来比较合法流量和隐蔽流量的IPD 分布差异的方法。K-L 散度具有非对称性,定义为

其中,P和G分别表示隐蔽流量和合法流量的IPD分布。

Wang 等[39]利用K-S 检验度量隐蔽通道的抗检测性,定义为

其中,F(x)和G(x)分别表示隐蔽通信和合法通信的IPD 分布。K-S 检验是一种稳健的非参数检验方法,对尺度变化不敏感而对分布函数的位置和形状参数敏感,该方法是比较两样本差异的常用方法。

此外,李彦峰等[40]使用熵率(ER,entropy rate)度量区块链隐蔽通道的抗检测性,定义为

其中,CCE 是修正条件熵(CCE,corrected conditional entropy)。熵率是对无穷序列不确定性的度量,熵率越小越能表现出序列规律。在实际中,可采用有限采样的方式,利用CCE 计算熵率[40]。

K-L 散度、K-S 检验和熵率均可用于度量隐蔽通道的抗检测性。其中,K-L 散度和K-S 检验都是基于合法流量IPD 分布和隐蔽流量IPD 分布的差异来评估隐蔽通道的抗检测能力。但是两者也有区别:与K-S 检验相比,K-L 散度对样本的尺度变化更敏感。基于熵率的抗检测性度量依赖于大量正常通信的样本来确定检测对象的检测阈值[40],与K-L散度和K-S 检验相比,熵率更适用于通信样本量较大的情况。

1.4 隐蔽通道规律性度量

规律性的度量是指采用统计特征对网络流量变化的规律性进行度量。通过度量网络流量的规律性,统计合法流量和隐蔽流量的差异,以区分出合法流量和隐蔽流量。

Cabuk 等[13]通过统计网络数据流的网络数据包间隔时间的标准差的变化,来度量隐蔽数据流的规律性。具体地,将流量分成固定大小的非重叠窗口,统计每对窗口间的标准差变化,定义为

其中,σi表示第i个时间窗口内网络数据包间隔时间的标准差,StdDev 表示标准差函数(计算标准差)。Chow 等[41]利用K-L 散度来度量隐蔽通道的不规律性。Cabuk 等[42]将分组数据流划分为非重叠窗口,并计算每个窗口的IPD 的标准差,通过计算流量中窗口的标准差的差异来度量规律性。

1.5 隐蔽通道形状度量

形状度量是将隐蔽IPD 分布与合法IPD 分布中的已知指纹进行比较,度量2 个分布之间的形状差异。常用的形状度量方法是基于计算描述合法流量和隐蔽流量的密度函数进行度量的,如基于K-S 检验的形状度量[37]和基于韦尔奇t检验(WTT,Welch’s t-test)的形状度量[43]。

K-S 检验通过取所有流量数据x的绝对差的上确界来区分隐蔽IPD 分布F(x)和合法IPD 分布G(x)[37]。因为K-S 检验对2 种分布的形状参数敏感,所以也被用于隐蔽通道形状的度量。

Archibald 等[43]提出了一种基于韦尔奇t 检验的形状度量方法,即

其中,xi、si和Ni(i=1,2)分别是2 种分布的样本均值、标准差和样本大小。为了生成p值(表示假设被接受或拒绝的概率)度量,从合法的网络流量中创建一个综合样本,并从观察到的网络流量中提取一个相对较小的样本。使用这些样本,在p值上创建阈值,p值低于阈值的样本被归类为隐蔽流量。

K-S 检验和韦尔奇t 检验的相同之处在于两者都是基于隐蔽IPD 分布和合法IPD 分布之间的差异来度量隐蔽流量的形状,区别在于基于K-S 检验的形状度量方法直接根据合法IPD 分布与隐蔽IPD 分布的差值上界来区分合法流量与隐蔽流量,而基于韦尔奇t 检验的形状度量方法基于合法IPD 的先验分布先建立p值假设,再基于阈值对隐蔽流量进行归类,该方法可基于更多的合法IPD 样本建立先验分布以创建更完整的流量指纹。当样本大小不均衡时,基于韦尔奇t 检验的形状度量效果优于基于K-S检验的形状度量效果。

2 隐蔽通道构建

2.1 物联网隐蔽通道构建

物联网中的大多数设备都不具备由经验引发的抵御入侵和破坏攻击的能力;相反,它们表现出相当程度的脆弱性。物联网脆弱的安全表现为隐蔽通道的构建提供了可能。

在物联网隐蔽通道的构建方面,Velinov 等[17]将消息队列遥测传输(MQTT,message queuing telemetry transport)协议应用于物联网中,描述了7 个直接和6 个间接的隐蔽通道,并使用网络信息隐藏技术对它们进行评估和分类。信息隐藏技术被广泛用于构建物联网隐蔽通道[44],如Mileva 等[45]提出了一种利用约束应用协议(COAP,constrained application protocol)构建的物联网隐蔽通道。COAP是一种用于约束设备和网络的专用Web 传输协议,通过将秘密数据隐藏在COAP 的协议数据单元(PDU,protocol data unit)中实现隐蔽通信。Tan 等[46]提出了一种物联网时间隐蔽通道的系统模型(如图1 所示),并分析了基于分组间时延的时间隐蔽通道在4G/5G 网络中的应用。Ho 等[47]将序贯概率比检验(SPRT,sequential probability ratio test)应用于物联网中的隐蔽通道,能够在隐蔽通道中实现快速的编码和解码。物联网应用程序通过连接各种其他未连接的服务来授权用户。这些应用程序由外部信息源触发,以在外部信息接收器上执行操作。流行的物联网应用平台,包括 IFTTT、Zapier 和Microsoft Flow 都容易受到恶意Applet 制造商的攻击,包括过滤私人照片、泄露用户位置和窃听用户输入语音控制助理的消息等隐蔽通道攻击[48]。

图1 物联网时间隐蔽通道系统模型

2.2 移动通信网络隐蔽通道构建

在移动通信网络中,为了保护用户隐私,许多智能手机系统采用了一种基于许可的机制,用户可以在安装手机应用程序之前评估来自该应用程序的隐私信息请求的风险。然而,基于许可的机制很容易受到应用程序的合谋攻击,因为2 个独立的应用程序可以建立一个隐蔽通道,并使用它来泄露机密信息。Qi 等[49]在安卓智能手机上构建了基于用户行为的隐蔽通道,如图2 所示,该隐蔽通道不易被检测。

图2 基于用户行为的智能手机隐蔽通道

Aloraini 等[20]提出了一种智能手机网络隐蔽通道,通过接收的蜂窝语音流来研究智能手机中的应用程序泄露信息的能力。Zhang 等[24]通过延迟或延长语音流量的静音周期来调节隐蔽信息,使用灰度编码对隐藏消息进行编码,能够实现良好的隐蔽性和稳健性。Zhang 等[36]提出了一种适应移动网络环境的双向VoLTE 隐蔽通道,它包括发送方到接收方的时间隐蔽通道,以及一个反向存储隐蔽通道。其中,时间隐蔽通道通过在静默期内主动丢弃分组来调制隐蔽消息,反向存储隐蔽通道将秘密消息作为反馈信息隐藏到实时传输控制协议(RTCP,real-time transport control protocol)的反馈控制信息字段中。该方案不仅可以保持语音质量,也能同时保持隐蔽通道的抗检测性和稳健性。Tan 等[50]提出了一种基于视频流的时间隐蔽通道,通过故意丢弃视频数据包来调制隐蔽消息,基于二维映射矩阵将隐蔽消息块映射为丢包序列号,接收方检索丢失数据包的序列号,并将其翻译成隐藏的信息。Novak等[51]设计了一种移动设备信息泄露软件,通过声音或光线等媒介构建隐蔽通道,能够绕过系统的特权升级和信息泄露的防御机制。Schulz 等[52]在智能手机中构建了一个隐蔽通道,该隐蔽通道先对Wi-Fi帧进行预过滤,然后在2 个设备之间秘密交换隐蔽信息。

Android 等移动操作系统通过限制设备内应用程序之间的通信来提供数据保护机制。然而,恶意应用仍然可以通过各种方式克服这些限制,如利用系统中的软件漏洞或使用隐蔽通道进行数据传输。在Android 系统中,电池和电话等资源可以用于隐蔽通信,恶意应用程序利用这些资源可以实现高容量的隐蔽数据传输[53-54]。

基于物理行为的隐蔽通道可以通过改变应用程序的内部状态或用户的行为来实现信息泄露。Wu等[55]使用全球定位系统(GPS,global positioning system)欺骗技术设计了一种基于物理行为的智能移动设备隐蔽通道,该设计充分考虑了非握手、离线传输和低怀疑等特性,具有良好的隐蔽性。

2.3 云环境下隐蔽通道构建

云环境下的隐藏通道规避了云中多方之间的隔离机制。在不同虚拟机上的非特权用户程序可以通过隐蔽通道传输隐蔽信息。

Clementine 等[4]通过共享处理器的最后一级缓存在不同内核上的虚拟机之间建立了更快速的隐蔽通道C5,C5 能够通过同一处理器的任一内核传输硬件上的信息。内存重复数据删除技术已被广泛应用于各种虚拟化管理程序。虽然这种技术提高了内存效率,但它对系统安全性有影响。内存重复删除通常使用写时复制技术的一种变体来实现,与写入非共享页面相比,写入共享页面会导致更长的访问时延[18]。基于此特性,Rong 等[19]设计了一种高效、可靠的基于内存重复数据删除的云隐蔽通道(CCCMD,cloud covert channel based on memory deduplication)协议,建立了一个名为WindTalker的隐蔽通道模型,在低误码率的情况下,WindTalker具有更好的性能,并能实现在噪声环境下的合理自适应传输速度。

Maurice 等[56]基于无线传输协议建立了一个稳健的高容量隐蔽通道,该隐蔽通道能够实现错误纠正,并可以在2 个虚拟机之间建立安全外壳(SSH,secure shell)连接。Sullivan 等[57]提出了一种基于处理器内存顺序缓冲(MOB,memory order buffer)的微体系结构时间隐蔽通道。Wu 等[58-59]利用内存总线作为隐蔽通道传输介质,在云环境中实现了高带宽和可靠的隐蔽数据传输。Lipinski 等[60]提出了一种名为CloudSteg 的隐写方法,该方法基于驻留在同一物理机器上的2 个云实例之间的硬盘争用,创建一个隐蔽通道。跨虚拟机攻击使恶意租户能够利用各种形式的隐蔽通道窃取受害者的敏感信息,如图3 所示。Tahir 等[61]提出了一个跨虚拟网络的时间隐蔽通道,它依赖于数据中心网络的底层共享网络资源在逻辑隔离的虚拟网络之间传输数据,该隐蔽通道有很大的隐蔽容量。

图3 跨虚拟机隐蔽通道示例

随着云现场可编程门阵列(FPGA,field programmable gate array)的广泛应用,云计算基础设施中的FPGA 可以通过转换通道发生信息泄露。云FPGA 利用用户之间FPGA 资源的临时共享,使一个用户产生的热量可以被后来使用同一FPGA 的另一个用户观察到,其通过简单的开关键控(OOK,on-off keying)可以实现隐蔽的数据传输,并且并行使用多个FPGA 板可以显著提高数据吞吐量[62]。

2.4 Air-gap 系统隐蔽通道构建

系统的物理实现(如电磁铁)产生的电磁信号、功率、声音和温度等也可以作为信息传输的介质,利用这些通信介质,攻击者可以设计间谍软件向外部传输敏感数据,给系统带来安全威胁。

在Air-gap系统隐蔽通道的构建方面,Guri等[21]通过调节CPU 内核上的工作负载来控制计算机发出的磁场,利用磁信号编码并传输隐蔽信息。对于多核计算平台,即使是基于专用核的强大隔离技术也可以被热通道绕过,即使在系统具有很强的时间和空间分块能力的情况下,处理器的内核温度也可以作为一个隐蔽通道[63]。Guri 等[64]通过使用计算机的热发射和内置的热传感器来创建一个隐蔽通道以弥合相邻受损计算机之间的气隙。该方法支持双向通信,并且它不需要额外的专用外围硬件。Krishnamurthy 等[65]利用网络物理系统(CPS,cyber physical system)中控制器的动态特性和闭环特性,将模拟信号作为隐蔽通道发送到远程接收器,在程序逻辑控制器(PLC,programmable logic controller)的驱动下,实现了2 个反馈回路。

2.5 其他网络隐蔽通道构建

区块链作为一种新型的分散式公共网络,它的开放性和强大的抗篡改能力使其成为构建隐蔽通道的天然平台。

为在区块链上实现隐蔽通信,李彦峰等[40]构建了一种区块链网络隐蔽通道模型,并研究了其抗干扰、抗篡改等特性。Partala 等[66]提出了区块链隐蔽通道(BLOCCE,blockchain covert channel),该方案将区块链使用的加密哈希函数建模为一个随机预言机,并制定一个简化的理想区块链,使用提交给区块链的支付为每个块嵌入一个比特的隐蔽信息,以实现可靠的隐蔽通道。Tian 等[67]提出了DLchain,该方案使用动态标签代替固定标签,并设计了一种基于实际事务数据统计分布的动态标签生成算法,以保证动态标签的隐蔽性。DLchain具有不可检测性、抗跟踪性和稳健性强等特点。Gao等[68]利用窃密技术设计了一种区块链隐蔽数据传输方案,在开放网络条件下,该隐蔽传输机制具有很强的隐蔽性和兼容性,可以实际应用于许多流行的区块链系统。

车载自组网使高速车辆能够相互通信,也为隐蔽通道提供了新的通信介质。Taheri 等[69]在VANET中开发了一种混合(时间和存储)隐蔽通道,通过改变服务和控制包的时间模式来传输隐蔽消息,同时设计了一种用于隐蔽数据嵌入的编码算法,该编码算法具有较高的嵌入容量。

综合上述通信环境下隐蔽通道的构建方法特点,可将其划分成基于信息编解码、基于时间模式调节、基于协议扩展填充、基于恶意软件行为、基于流媒体调制、基于系统资源共享和基于物理介质调节七大类方法,如表1 所示。表1 中,在物联网环境下,主流的隐蔽通道构建方法包括基于信息编解码和基于协议扩展填充的方法;在移动通信网络中,主流的隐蔽通道构建方法包括基于流媒体调制和基于信息编解码的方法;在云环境下,主流的隐蔽通道构建方法为基于系统资源共享的方法;在Air-gap 系统中,主流的隐蔽通道构建方法为基于物理介质调节的方法;在车载自组网中,主流的隐蔽通道构建方法包括基于信息编解码和基于时间模式调节的方法。表2 展示了隐蔽通道构建方法的细粒度对比分析结果,主要从隐蔽通道的共享资源、容量、稳健性、抗检测性和优缺点6 个方面进行比较,通过对现有研究的综合分析,将稳健性和抗检测性都分为弱、较弱、较强和强4 个等级。稳健性等级主要是基于文献中给出的误码率来划分的,具体地,误码率小于5%定为强,5%~10%定为较强,10%~20%定为较弱,其余定为弱,对于部分文献的构建方法,也会考虑隐蔽通道在噪声环境下的丢包率(抗噪性)变化,对稳健性综合定级。抗检测性主要是基于文献中给出的检测精度结果来划分的,具体地,检测精度小于50%定为强,50%~65%定为较强,65%~80%定为较弱,其余为定为弱,对于部分文献的检测方法,也会结合检测开销对抗检测性综合定级。

表1 各类隐蔽通道构建方法特点

表2 隐蔽通道构建方法细粒度对比分析

3 隐蔽通道的检测方法

3.1 基于统计的检测方法

基于统计的检测方法通常利用统计学的特征规律来分析合法数据流和隐蔽数据流的分布差异或异常,从而检测出非法数据流。

Cabuk 等[13]采用数据流变化的统计特征规律作为隐蔽通道的检测指标,量化了网络数据包间隔时间的标准差的变化。Archibald 等[43]提出了一种基于韦尔奇t 检验的形状检测方法,该方法具有相对较低的计算成本,而且韦尔奇t 检验在检测基于时延的时间隐蔽通道方面优于修正条件熵检验。Nafea等[70]提出了一种包含连续数据监控、阈值等元素的新框架和一种基于统计测度的隐蔽数据泄露检测模型,特别是针对非线性混沌数据,该模型能够更有效地提供具有容差/阈值的结果。Rezaei 等[71]提出了一种基于网络流量IPD 分布的时间隐蔽通道实时检测方法,并利用3 种不同的非参数统计测试,为合法和隐蔽网络流量IPD 生成不同的统计测试分数,该方法能够可靠地检测出实时网络流量中的隐蔽通道。

基于统计的检测方法主要是通过统计学分析隐蔽通道的形状或规律指标,以检测出隐蔽通道。表3 展示了部分基于统计的检测效果,分别从隐蔽通道类型、准确率、是否能盲检、形状指标和规律指标5 个方面对检测方法进行对比分析。表3 中,Jitterbug 是一种典型的基于时延的时间隐蔽通道,以被动的方式提供可靠的隐蔽通信。TR-CTC-HTTP 和TR-CTC-SSH 分别是基于时间重放的时间隐蔽通道(TR-CTC,time replay covert timing channel)中的HTTP 和SSH 流量,MB-CTC-HTTP 和MB-CTC-SSH 分别是基于模型的时间隐蔽通道(MB-CTC,model-based covert timing channel)中的HTTP流量和SSH 流量。

表3 基于统计的检测效果

3.2 基于机器学习的检测方法

目前,机器学习方法被广泛应用于隐蔽通道的检测研究中,主要通过发现网络流量的规律或异常来检测隐蔽通道。通过提取正常流量和隐蔽流量的特征,对网络流量进行分类识别,从而实现隐蔽通道的检测。基于机器学习的时间隐蔽通道检测的复杂性取决于流量样本的可用性,以及攻击者改变隐蔽通道参数的可能性[72]。

Mohammed 等[73]基于随机森林算法对物联网设备在不同操作模式下的功率分布数据进行分类,以检测隐蔽通道和功率耗尽攻击。该算法有良好的检测结果,分类准确率为95.5%。Vzquez 等[74]从统计的角度挖掘了包含时间隐蔽通道的数据流的形状,使用监督和非监督的机器学习算法,揭示了构建检测方法的推荐特征。Shrestha 等[75]提出了一种基于支持向量机(SVM,support vector machine)的隐蔽通道检测框架,该框架将从网络流量中提取的指纹分为显性和隐性,有较强的盲检能力和稳健性,即使是在隐藏消息大小减小的情况下,也有良好的检测效果。Wang 等[76]提出了一种基于机器学习的域名生成算法(DGA,domain generation algorithm)和域名系统(DNS,domain name system)隐蔽通道检测系统,其利用改进的TF-IDF(term frequency-inverse document frequency)、特异度评分等算法检测恶意域名,有良好的检测效果。Darwish 等[77]提出了一种基于层次结构的时间隐蔽通道检测模型。该模型的检测过程包括:在到达时间流的连续层次上进行统计分析,创建合法通道和隐蔽通道的数据集实例,构建5 层神经网络分类模型对隐蔽通道进行识别。与基于支持向量机的检测模型相比,该深度神经网络模型获得了更好的精度水平,模型训练时间明显缩短。Han 等[78]提出了一种基于K 近邻(KNN,k-nearest neighbor)的时间隐蔽通道检测方法。该方法使用与时间间隔和有效载荷长度相关的一系列统计数据作为特征来训练模型,检测精度为0.96。Alam 等[79]通过提取流量特征来构建签名,并通过统计测试分数来分析数据的分布差异,然后将上下文添加到签名中,最后构建支持向量机模型,对云中的隐蔽流量进行分类。该方法的检测成本低且准确率较高。

基于机器学习的检测方法,主要通过机器学习算法分析流量数据的特征以检测出隐蔽通道,该类检测方法的评估指标与传统机器学习算法类似,包括召回率、精确率、准确率和F1 指标,表4展示了部分基于机器学习的检测效果。表4 中所有检测方法均是针对时间隐蔽通道进行检测的方法,其中,决策树[74]的检测结果是该类方法的最佳测试结果,支持向量机[75]的结果是ON-OFF 隐蔽通道(2 000 个样本)的最佳检测结果(根据混淆矩阵计算得出)。

表4 基于机器学习的检测效果

3.3 基于信息论的检测方法

基于信息论的检测方法通常是比较合法流量和隐蔽流量之间的熵的差异。当将熵作为检测指标时,主要利用熵来衡量IPD 分布的随机性。隐蔽流量往往比合法的显性流量有更高的熵水平[70]。

针对利用TCP/IP 网络数据包中的6 位TCP 标志头部传输秘密消息的存储隐蔽通道,Chow 等[41]提出了一种基于K-L 散度的检测方法,使用K-L 散度来描述隐蔽流量与合法流量之间的不规则性,同时使用了不同的数据处理方法:一种方法是将一对IP 地址的所有数据包总结为一个流,另一种方法是使用在这样一个流上的滑动窗口来生成多帧数据包。在检测过程中,计算每个唯一IP 对的网络流量的TCP 标志频率分布,K-L 散度可以揭示不同频率分布与这种正态分布的差异,利用这种差异可以区分出合法流量和隐蔽流量。

针对Jitterbug,Wang 等[80]提出了一种基于部分熵检验的检测方法。该方法采用无训练样本的固定箱策略来获得箱的分布特征,计算几组部分连续箱的一阶熵,并利用加权均值计算最终熵值,以区分Jitterbug 和合法流量。该方法有较好的检测效果,且受网络抖动的影响较小。针对IP 时间隐蔽通道(IPCTC,IP covert timing channel)、基于重传的时间隐蔽通道(TRCTC,time replay covert timing channel)和Jitterbug 隐蔽通道,Gianvecchio 等[81]和张宇飞等[82]分别提出了基于修正条件熵和基于差分信息熵的检测方法。其中,Gianvecchio 等[81]对HTTP 和SSH 中的上述时间隐蔽通道有良好的检测结果,张宇飞等[82]也能有效检测出上述3 种时间隐蔽通道。

针对利用分组数据汇聚协议(PDCP,packet data convergence protocol)和无线链路控制层(RLC,radio link control)的序列号(SN,sequence number)字段构建的存储隐蔽通道,Wang 等[83]提出了一种基于熵的CSC 检测方法。该方法对PDCP 和RLC层的SN 中的隐藏信息敏感,有很好的检测效果,并且可以实时在线和离线存储检测。Darwish 等[84]利用基于MapReduce 技术的层次熵算法检测大数据中的时间隐蔽通道,该方法的检测速度很快,随着时延的增加,检测精度和准确率也会明显提高。基于信息论的检测方法主要是基于熵理论对隐蔽通道进行识别。表5 展示了部分基于信息论的检测效果,分别从隐蔽通道类型、真阳率、假阳率和是否能盲检4 个方面对检测方法进行比较。表5 中,基于K-L 散度[41]、基于修正条件熵[81,83]和基于香农熵[83]的真阳率及假阳率均是文献中所给出的最优检测结果。

表5 基于信息论的检测效果

3.4 基于信息流分析的检测方法

在基于信息流分析的检测方面,早期研究主要通过分析系统的无干扰性来发现隐蔽通道。无干扰性是指当系统中低安全级数据的输出不对高安全级的信息产生干扰时,系统是安全的。在基于无干扰性分析系统安全性时,可以将隐蔽通道的概率特性[85]和时间特性[86]加入信息流安全属性当中,通过分析信息流安全属性来检测隐蔽通道。

针对Applet 对物联网应用平台发起的隐蔽通道攻击,Bastys 等[48]开发了一个用于物联网应用程序中信息流跟踪的框架。该框架对Applet 的反应性和计时行为进行建模,同时有效地捕捉到了由applet 输出引起的攻击者行为的差异。Song 等[87]提出了一种利用信息流图(IFG,information flow graph)的图结构检测存储隐藏通道的技术。IFG 可以为隐蔽通道检测提供系统的信息流。通过搜索IFG 的路径,可以得到操作序列,有助于分析者发现隐蔽通道。Wu 等[88]提出了一种基于有向信息流图的源代码分析方法。该方法将整个系统划分为若干独立的模块并分别进行分析。从源代码中找出所有共享变量及其调用函数,并将其建模为有向信息流图。当信息流分支在外部接口可见且可修改时,则存在一个潜在的隐蔽通道。该方案在Linux 内核源代码中识别了30 多个隐蔽通道。基于信息流分析的检测方法通过分析系统中的信息流,以识别潜在的隐蔽通道。表6 分别从隐蔽通道类型、是否能盲检和优缺点4个方面对基于信息流分析的检测方法进行定性分析。其中,伪通信路径会影响检测的效率和效果。

表6 基于信息流分析的检测方法分析

3.5 其他检测方法

针对利用共享硬件资源等技术构建的隐蔽通道,还没有形成统一的分析检测方法,通常是针对某一隐蔽通道的具体构建技术进行分析,建立检测机制。如云环境中基于缓存的隐蔽通道,因为其构建技术不同,不能用统一的方法进行检测。

针对传统网络隐蔽通道,Wendzel 等[89]提出了一种不受协议约束的消息排序通道检测方法。该方法基于一个修正的可压缩性分数,分析了消息排序通道的可检测性,结果表明,消息排序通道的检测依赖于所使用的协议数据单元的数量。

针对云环境中的隐蔽通道威胁,Liu 等[90]实现了一种名为观测器的实时隐蔽通道检测系统。与其他检测系统不同,该观测器不需要历史数据来构建模型,观察者能够以较低的时延和开销来检测隐蔽通道。Wang 等[91]提出了一种隐蔽通道自动检测方法,设计了一种从行为角度准确定位和分析恶意隐蔽通道的全局检测方法。与目前流行的针对单一隐蔽通道的统计检验方法相比,该方法能够实时识别和检测更多的隐蔽通道。Wu 等[92]提出了一种名为C2 检测器的隐蔽通道检测系统。C2 检测器包括位于管理程序中的捕获器和基于马尔可夫及贝叶斯检测实现的两阶段合成算法。Betz 等[93]提出了一个名为C3-Sched 的级联云调度器,该调度器的目的是通过阻止进程交替访问缓存线路来减少客户数据通过C3 缓存隐蔽通道泄露的威胁,在维护云的性能的同时最小化全局调度开销。Liu[94]提出了一种基于小波的时间隐蔽通道实时检测方法,该方法利用一个安全的虚拟机来模拟易受攻击的虚拟机,它的主要优点是不需要历史流量数据,并且具有较高的检测精度。

基于缓存的隐蔽通道攻击使用高度调优的共享缓存冲突将信息从木马传递给间谍进程。检测这样的攻击是非常具有挑战性的。为检测基于缓存的隐蔽通道攻击,Yan 等[95]提出了一种基于重放混淆的检测方法。该方法基于记录和确定性重放(RnR,record and deterministic replay)技术,在程序的执行被记录下来之后,使用不同的地址到缓存的映射来重新播放,再分析两次运行的缓存丢失率间的时间差。如果该差异是相当大的,并且表现出周期性的模式,则表示存在隐蔽通道攻击。

表7 展示了各类隐蔽通道检测方法的特点总结,表8 展示了典型隐蔽通道检测方法的细粒度对比分析。表8 中,基于机器学习的检测方法[74]的准确率是该类方法的最佳测试准确率;基于支持向量机的检测方法[75]的准确率是ON-OFF 隐蔽通道(2 000 个样本)的最佳检测准确率,和基于行为分析的检测方法[91]的准确率结果均是根据混淆矩阵计算得出的;基于重放混淆[95]的检测方法的准确率是根据最低误检率计算得出的。云环境下隐蔽通道主要基于CPU 负载、缓存和共享内存等共享资源实现,鉴于云环境下隐蔽通道共享资源相对统一,表9 单独展示了部分云环境下隐蔽通道检测方法的细粒度对比,主要从检测方法的检测通道类型、准确率、是否具有自动盲检功能(检测多隐通道)和优缺点5 个方面对隐蔽通道检测方法进行对比分析。

表7 各类隐蔽通道检测方法特点

表8 典型隐蔽通道检测方法细粒度对比分析

表9 云环境下隐蔽通道检测方法细粒度对比分析

4 未来发展趋势

隐蔽通道虽然已有多年的研究历史,但是,国内外关于隐蔽通道的研究还不够深入,尚有很多挑战和研究方向需要继续探讨,主要包括以下几个方面。

1) 隐蔽通道的度量方法

隐蔽通道的度量作为隐蔽通道研究的关键技术,是评估隐蔽通道性能的重要方法。隐蔽通道的度量指标也是隐蔽通道的构建与检测的重要参考。但是目前关于不同网络及信道环境下的隐蔽通道的度量尚未形成完全统一、合理有效的度量指标。

具体来讲,虽然隐蔽通道的容量和稳健性的度量方法已经相对统一,但是抗检测性、规律性和形状的度量方法尚未统一,主要是因为各类隐蔽通道的差异较大,不仅通信环境不同,隐蔽通道利用的共享资源也不尽相同,而且隐蔽通道的规律性和形状主要是时间隐蔽通道的度量指标,因此,如何用统一的方法对隐蔽通道的抗检测性、规律性和形状进行度量是该领域的一项重要挑战。

针对该挑战,可以从2 个方面开展更深入的研究:一方面可以将隐蔽通道根据通信环境和共享资源的共性进行分类,针对相同网络环境下共享资源构建的同类隐蔽通道建立统一的度量标准;另一方面可以依赖隐蔽通道的分析与检测技术,结合共享资源的具体特性,增强度量指标的适用性,如在度量抗检测性时,除了评估隐蔽通道的检测效果还可以结合检测开销。

2) 隐蔽通道的构建方法

在隐蔽通道的构建方面,构建一个高容量、稳健且抗检测性强的隐蔽通道一直是研究者的重要目标。现有的隐蔽通道构建技术研究尚难以同时实现多个高性能指标,往往是在各个指标之间进行权衡,比如虽然修改硬件共享资源可以提高隐蔽通道的容量,但是往往会降低抗检测性;若要提高抗检测性,通常要减小容量。因此,如何构建同时具备多个高性能指标的隐蔽通道也是该领域亟须解决的重要问题。

若要提高隐蔽通道性能,一方面,通信双方可以同时利用多种共享资源进行隐蔽通信或者发掘更多高质量的共享资源;另一方面,可以利用网络环境的特点构建高性能隐蔽通道,如利用区块链固有的加密属性,选择高效的信息隐藏或加密算法,提高隐蔽通道的抗检测性。

3) 隐蔽通道的检测方法

在隐蔽通道的检测方面,因为各种隐蔽通道的差异较大,尚未形成相对统一的检测方法,现有的检测技术多为针对某一具体隐蔽通道的特性进行检测。如何实现一个高检测精度、抗噪且具备盲检功能的检测方法仍然是一个艰巨的挑战。

若想克服该挑战,可以针对具有相同或相似的共享资源的隐蔽通道,通过分析该共享资源的特点,建立通用的检测框架。如针对利用网络协议、数据包字段等共享资源建立的时间或存储隐蔽通道,可以基于熵、统计和机器学习方法分析协议或数据包字段的特征检测潜在的隐蔽通道。

5 结束语

隐蔽通道的存在是计算机系统和网络空间面临的一个巨大的安全挑战。随着网络的泛在化及隐蔽通信技术的发展,隐蔽通道给多种网络环境均带来了巨大的安全风险,泛在网络环境下隐蔽通道的研究变得尤为重要。本文首先介绍了泛在网络环境下的隐蔽通道的容量、稳健性、抗检测性、规律性和形状5 个典型指标的度量方法;其次,系统分析了物联网、移动通信网络、云环境、Air-gap 系统、区块链和车载自组网中隐蔽通道的构建技术,并从共享资源、容量、稳健性、抗检测性、优点和缺点6 个方面对隐蔽通道构建技术进行了对比分析;再次,从基于统计、基于机器学习、基于信息论、基于信息流分析和其他检测方法5 个方面对泛在网络环境下隐蔽通道的检测技术进行归纳和多角度对比分析;最后,指出了现有技术的优缺点和存在的问题,针对隐蔽通道的构建和检测技术的不足,给出了具体建议,分析了隐蔽通道的未来研究方向。

猜你喜欢
稳健性度量流量
鲍文慧《度量空间之一》
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
寻找书业新流量
代数群上由模糊(拟)伪度量诱导的拓扑
突出知识本质 关注知识结构提升思维能力
会计稳健性的定义和计量
度 量
会计稳健性的文献综述
会计稳健性研究述评