全球互联网走向全面加密时代已经是大势所趋,越来越多的攻击者利用 SSL 加密通道完成恶意软件载荷和漏洞利用的投递和分发,以及受感染主机与命令和控制 (C&C) 服务器之间的通信;与此同时,在国内政府、军队、央企、军工集团等的隔离内网大量使用网络加密设备,使用加密方法保障基本通信安全,几乎所有的内网流量都成为加密流量,这使得传统网络流量安全设备对使用了加密方法的网络攻击与恶意代码流量无能为力,也让内网安全管理部门对流量的安全管控一筹莫展。特别是对于伺机攻入隔离内网的APT攻击组织而言,这种内网流量的强制加密对其攻击活动而言甚至成为一种“掩护”手段,因为内网安全管理部门无法通过流量关联与监控手段,寻找不同流量之间潜在的关联性,难以将来自APT攻击者的流量与正常用户流量区分开来,缺少在流量层面对外部攻击活动的有效定位、追踪和溯源能力。

一、加密流量带来安全监管难题

Gartner分析认为,2019年将有一半的恶意软件活动采用某种加密技术来掩盖恶意软件传送、命令和控制活动或数据泄露。Facebook、 Twitter 和 LinkedIn 等网站都在使用 SSL,这些网站在过去都曾遭受过“绑架劫持(Likejacking)”、恶意软件传播、数据泄露和垃圾邮件等威胁的侵害。80%的安全系统不能识别或防范 SSL 流量中的威胁,这使得加密的恶意软件成为当前业界最大的威胁。直到目前,处理此问题的常见方法是解密流量,并使用诸如新一代防火墙等设备查看流量。这种方法耗时较长,且需要在网络中添加额外的设备,此外在隔离内网中使用信道加密是安全保密体制的建设要求,安全管理部门与保密部门之间的协调工作一直以来都存有很大困难,解密流量在政策层面几乎不可能。

传统流量安全检测技术在处理加密流量时遇到了困难,一直没有比较好的检测方法。随着人工智能技术的发展,通过大量的测试验证,人工智能用于加密流量安全检测,将是一种非常好的辅助手段。利用专家经验知识对大量加密流量进行统计、分析,通过人工智能算法赋予机器以专家的智慧。这种方法现在已经有公司研究形成产品了,但效果并不好,用于演示技术路线还行,但实际使用过程太依赖专家经验和参数调优了,机器学习的准确度和召回率普遍不高。

二、流水印方法显露点点曙光

流水印技术是一种将网络流量分析与数字水印思想结合的主动网络流关联分析技术,通过在网络入口对进入网络的流量以某种模式进行轻微调整,即嵌入信息(水印),在网络出口观察离开网络的流量,看其中是否含有某种特定的水印,从而通过对水印的检测实现对流量的关联。这种方式能够大大降低流量关联的计算开销,由于用于关联流量的水印模式是人为生成的,和流量自身的模式是不相关的,该模式被主动地内嵌到目标流量中,不仅使得流水印相比流量分析具有更好的可扩展性,同时也能有效降低流量关联的误报率。

流水印技术已有研究主要用于匿名通信系统流量关联和跳板攻击流量检测,通过主动调整数据包速率、时序和载荷等方法,在网络流量中嵌入信息(即水印),以某种不可见方式传输,并能够在流量关联时识别出来。美国联邦调查局在2013年破获暗网交易网站“丝绸之路”时,据称就是使用了流水印技术来分析其匿名通信流量,通过被动和主动方式采集并预处理流量数据,提取特征生成指纹,从而建立所关注目标站点的指纹库;使用高效分类模型将未知暗网流量与指纹库中的数据进行匹配,分析可能的暗网通信目的端,最终溯源到“丝绸之路”网站的真实物理IP地址。

根据网络承载水印的方式,可以将已有流水印技术分为三种类型:基于流速率、基于数据包间隔、基于时隙分隔。

基于流速率特征的流水印,基本思想是选取整个流持续时间内的不同时间段进行水印嵌入,通过一定的方法轻微调整选定时间段内的网络流速率,用不同流速来表示水印的信息位‘0’和‘1’,最简单的方式就是在不同的时间段内通过暂停发送或继续发送实现信息位‘0’和‘1’的嵌入,从而达到在网络流中嵌入水印的目的;

基于数据包间隔的流水印,采用网络流内数据包之间的间隔时间(Inter-Packet Delay, IPD)作为水印载体,通过调整一个、多个 IPD 或者调整 IPD 均值大小,以达到嵌入水印的目的;

基于时隙分隔的流水印,网络通信过程中,嵌入的网络流水印容易受到网络延时扰动、数据包丢失、数据包重组(Repacketization)等因素影响,攻击者也可采用填充无关数据包或进行多流混合等方式破坏流中内嵌的水印信息。为了提高网络流水印技术应对网络通信噪声的稳定性,提出了基于流时隙分割的网络流水印方法。该类方法在整个流持续时间内随机选取一个时间段,并将其分割为若干相等的时间间隔,称为时隙,通过改变落在每个时隙内数据分组发送时刻进而调整时隙内的数据分组数量来嵌入水印。

基于流速率特征的方法只能用于对流速率较大、持续时间较长的目标流量进行跟踪,因为流速率较大才能确保水印位嵌入时调节流速率的幅度对流平均速率的影响较小,从而使得嵌入的水印信息具有隐蔽性,目标流持续时间满足一定长度才能保证将水印中的所有信息位都嵌入到目标流中。由于水印嵌入时将 1 位水印采用 DSSS 原理扩频成 m 位的嵌入信息,因此,在同等流长度下,该类方法所能嵌入的水印位数相对较少。

基于数据包间隔的流水印以调整单个或多个 IPD 的方式在目标流中嵌入水印信息,由于 IPD 极易受到数据包丢失、乱序、重传和时间扰动等多种网络事件的影响,使得该类型水印方式稳定性较差。与前者相比,基于时隙分割的流水印技术将流划分成时隙,进行水印嵌入时对时隙内的所有数据包施加延时操作,使得这种水印方法能够平滑多种扰动的影响。

目前,网络流水印技术主要被应用于进行跳板攻击检测与匿名通信关联,其应用具有一定的局限性,且嵌入的水印通常是固定不变的,使得现有网络流水印技术存在两个不足:一是只能判断流中是否被嵌入水印,而不能确定嵌入该水印的网络流来自哪个信息源,使得现有水印方法不能用于同时关联多个流量,严重限制了其应用领域;二是在多条流中嵌入不变的水印信息,使得嵌入的水印信息具有相同的攻击面,难以抵御多流攻击(MultiFlow Attacks),该种攻击通过观察多个嵌入水印的流量,对它们进行对齐操作从而使其中嵌入的水印呈现出来。

三、改进流水印技术进行加密流量监管

基于网络流水印思路,改进扩展原有基于时隙的水印(Interval-Based Watermarking,IBW)方法,使用基于时隙的流指纹(Interval-Based Fingerprinting, IBF)机制,依托 IBF 机制构建加密流量检测平台。IBF 开辟了一条不可见的隐秘通信信道,通过施加延时操作轻微调整所选定时隙中的数据包分布,在网络流量中嵌入指纹信息。在 IBF 中,指纹基于流自身属性生成,因此可以在不同流中嵌入不同的指纹信息,而且每一条流中嵌入的指纹都是唯一的且与流紧密相关,克服了已有水印技术不能同时关联多条流量且容易遭受多流攻击的不足。如果嵌入的指纹唯一且对网络扰动具有稳定性,嵌入指纹的流就能被唯一的识别出来,据此可对网络流进行有效的跟踪、监控和控制。

与传统的水印技术和加密技术类似,流指纹技术需要在嵌入器和提取器之间共享会话密钥 K。密钥共享可以通过公钥加密 (PKC) 协议或是秘密握手机制来实现。我们猜测,目前在政府、军队、央企、军工等内部网络中大量使用的网络加密设备,应该是基于 IPSEC 协议(通常应该是传输模式,使用 VPN 时使用隧道模式)的IP加密机,无需考虑链路层协议透明模式接入,不影响原有物理网络结构,通常部署在网络的出口处,并将 IP 加密机置于密钥管理中心设置的统一安全策略(包括密钥管理体系)的管理下,使各 IP 密码机之间对 IP 包进行加密处理,协调一致地通信,从而在 IP 层上构建起网络安全传输信道,为网络的连接安全和传输安全提供有效的保障。

流指纹模块部署到网络两侧的路由器上,IP加密机位于路由器之前或之后,并无影响。流指纹功能包含两种主要功能组件:嵌入器和提取器。嵌入器负责将生成的指纹编码嵌入到给定的流中。给定一个嵌入指纹的流,提取器从该流中提取出指纹编码,将其与提取器自身生成的流指纹进行对比得到关联结果。

流指纹机制使得网络安全管理部门可以更加自如地通过流量管制手段,执行主动安全策略,实施基于流量指令的主动安全管理。为了更加清晰地说明流指纹技术如何支撑灵活的安全策略执行,接下来给出3种典型应用场景,在网络边缘接入路由器(或接入网关)上执行相应的流量管制策略:

透明访问控制。比如合法用户C1要访问服务器S1,当访问流量到达边缘路由器R1时,将流指纹透明嵌入访问流量中,经过网络传输到达边缘路由器R2时,经过流指纹解码比对后,验证其访问流量的合法性并正确转发到目标服务器S1。与之相反,非法用户C2没有在访问流量中嵌入流指纹,直接被路由器R2丢弃。对于可能存在中间人攻击的情况,比如合法用户C3的访问流量依次经过路由器R1-R3-R2发往服务器S1,当流量经过路由器R1时,流指纹透明嵌入流量中;然而当流量经过路由器R3时,该路由器被攻击者劫持,由攻击者转发的恶意流量中没有相应的流指纹;当恶意流量到达路由器R2时,由于流指纹验证无法通过而被直接丢弃。

攻击跳板检测。比如流经边缘路由器R5的所有入口流量中,某个流指纹被相同子网内的其他边缘路由器R7检测到,这意味着R5的入口流量被网络内某个失陷主机转发到R6上,可以认为这个流量是跳板流量,表明该子网可能被攻击组织控制用作跳板网络来中断攻击流量。

攻击重定向与溯源。比如网络3中的攻击者窃取了接入网络2的合法身份,却没有接入网络4的合法身份,为此攻击者希望利用网络2作为跳板网络来对服务器S2发起攻击行动,路由器R5验证通过了在网络2中合法的流指纹,但是路由器R6却没有嵌入在网络4中合法的流指纹,所以边缘路由器R7会阻断其访问服务器S2的流量,并将其流量重定向蜜罐网络中。为了溯源其攻击流量,边缘路由器R7在反向响应流量加入新的流指纹,如果该响应流量在反向路径(R7-R6-R5)中始终能够检测到流指纹,却在R4路由器上流指纹验证失败,就可以判断是路由器R4被攻击者远控。

本文作者:贺小川,奇安信集团资深技术专家,主要从事于安全大数据、信息攻防、漏洞挖掘等领域的研究工作,曾参与网络中间件、火控系统、军事信息系统、业务大数据等10余项安全领域科研课题和项目建设,多年致力于信息安全攻防一线工作。

声明:本文来自网络空间安全军民融合创新中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。