冯学伟 况晓辉 孙晓霞
在一个典型的指挥控制(Command and control,C2)系统中,负责采集数据的各个传感器,将侦测到的电磁波、红外、热能等数据信号,传送给控制中心,再由控制中心对接收到的数据进行融合处理,从中识别出导弹等关键目标,并对目标的速度、大小等属性进行判别追踪,进而辅助指挥员做出决策.
与传统作战域的指挥控制相比,网络空间指挥控制(Cyber command and control,CC2)的观测环境发生显著变化,随之而来的识别目标也发生了变化.在网络空间中,Cyber攻击是首要识别的目标对象,其属性包括了源头、目标、频率、类型、可能的后果等.Cyber态势感知通过分析局部、琐碎的分布式输入信息流,识别出网络空间中当前正在发生的攻击行为及其属性,为管理员提供直接的高层态势知识,是CC2的重要基础之一.Cyber态势感知的输入包括了传感器数据,如入侵检测系统(Intrusion Detection System,IDS)的告警、系统日志消息、流量数据等,还可能包括一些辅助知识,如专家经验等.它的输出则是对Cyber威胁的估计,包括威胁的来源、威胁针对的目标、威胁类型、威胁可能造成的后果以及威胁未来的发展变化等.
Cyber态势感知是网络空间指控领域的研究热点之一.在Endsley提出的态势感知概念[1]的基础上,Bass于1999年提出了Cyber态势感知(Cyber situation awareness)的概念,并基于JDL(Joint directorate oflaboratories)的数据融合模型给出了Cyber态势感知4层过程模型[2−3].这一模型在随后的Cyber态势感知研究中,逐渐成为一个事实标准.在Bass给出的Cyber态势感知模型中,数据源自下而上经历了数据、信息、知识3个层次的逻辑抽象,随着抽象层次的不断提高,数据的数量不断减少,但质量却在不断提升,Cyber攻击逐渐被完整、准确地分析识别出,形成了认知域的安全态势.与态势感知相关的关键技术包括了告警关联分析技术、态势评估技术、安全可视化技术、信息融合技术等.
当前,在Cyber态势感知研究中,对Cyber攻击场景的感知与推理这一难题亟待解决[4].Cyber攻击场景是攻击者为实现自己的特定意图,在对攻击目标实施渗透攻击时,所采取的具有因果关系的攻击序列集合.Cyber攻击场景完整呈现了一次攻击活动的全貌,它在给出逻辑化攻击步骤的同时,也反映出了攻击者的攻击意图,因此对Cyber攻击场景的准确感知与推理,是掌握网络空间安全态势的关键,同时也是指挥员实现对Cyber域的指挥与控制、尽早将损失降到最低的重要基础.针对这一重要需求,本文在分析了现有相关研究之后,提出了一种基于概率转移的Cyber攻击场景感知推理技术,对态势感知中的核心内容即态势觉察与理解进行了阐述分析,并通过实验验证了技术方法的有效性.
网络空间中,攻击者对目标设施的渗透破坏过程往往是渐进的,为实现最终目的,通常要执行多个攻击步骤,因此,一次攻击活动的每一步之间,往往都存在着因果关系.攻击场景的本质就是要反映出这种因果关系,或者说攻击场景是多个攻击步骤间因果关系的一种表现形式.
当前,攻击场景的感知推理技术研究,主要集中在基于规则的告警关联分析方面,基于规则的告警关联分析,其核心是通过专家定义的方式或数据挖掘的方式,生成一系列代表攻击场景的规则知识,然后再依据这些规则知识,对传感器生成的告警进行逻辑关联,识别当前网络空间中可能发生的攻击场景.Benjamin和Herve提出了一种基于时序模式识别的攻击场景识别技术[5],将告警按照预定义的时序模型进行关联.Steven等[6]提出了一种基于专家系统的攻击场景推理识别技术,其主要思想是将攻击场景描述为一系列的规则模块,每个规则模块代表着一个攻击场景,告警上报之后与规则模块进行匹配.在基于规则的攻击场景感知推理研究方面,具有里程碑意义的无疑是Ning所领导的TIAA项目[7−8],项目的基本思想是,为每种攻击类型attack-typei都定义一个关联三元组知识其中Pre-i表示对应攻击成功发生所需要的前提条件集合,Post-i表示攻击发生后可能产生的结果集合.A、B两个告警(A发生在B之前)能够关联,当且仅当A的结果集合中的元素能够完全或部分匹配B的前提条件集合中的元素.通过这种条件匹配的方式,将传感器产生的告警事件关联组合,形成攻击场景图.
其他的一些攻击场景推理技术研究还包括,美国乔治亚州理工大学的Qin和Lee[9]提出的基于贝叶斯网络概率推论的关联和基于Granger causality test(GCT)统计时序分析的关联,Nurbol[10]提出的基于隐马尔科夫模型的告警滤除关联等,Feng等在文献[11]中提出的基于状态机的攻击场景建模与识别,以及文献[12−13]中提出的面向原子谓词的攻击场景自动识别算法等.
虽然专家系统、贝叶斯网络等理论工具已经被用于攻击场景的建模推理,但是现有相关研究的主要缺陷在于都或多或少地需要人工辅助,需要人工来预定义一些辅助知识.人工辅助的方式主要存在两个问题:一是不能识别、发现未知类型的攻击模式或场景;二是会给管理员带来相当大的工作量.如何通过数据挖掘方法自动推理识别攻击场景是网络空间态势感知的难点和重点.
针对现有研究工作的不足,本文提出了基于概率转移的Cyber攻击场景感知推理框架,如图1所示.框架的工作流程如下:首先网络空间中分布式部署的安全传感器如IDS、防火墙等,经攻击活动触发后,产生原始告警流,即整个攻击场景感知推理的数据源;然后基于滑动窗口,按照告警所属的攻击场景对原始告警流进行聚类,形成各个类簇,这些类簇是后续推理算法的直接输入;接着分析这些类簇,依据告警之间的时序临近关系和概率转移,挖掘推理出每个类簇中所隐藏的攻击类型间的一步转移概率矩阵,挖掘生成的一步转移概率矩阵就代表着对应的攻击场景;最后,将各个概率转移矩阵转换成图形化的马尔科夫链的形式,实现网络空间安全态势的准确、自动感知.
在整个挖掘过程中,基于滑动窗口的告警聚类算法和基于概率转移的攻击场景推理算法是框架的核心模块,前者负责依据告警间的相关关系对告警进行聚类,后者负责挖掘推理各个类簇中隐藏的攻击场景.
由于在同一时刻,网络空间中可能同时发生着多种攻击活动,因此直接从这些海量的告警中推理攻击场景,可能会导致不同的场景交叉在一起,推理效率不高且容易引起场景混乱.为此,我们提出了一种基于滑动窗口的告警聚类方法,在推理攻击场景之前,预设了一个告警聚类的步骤,依据告警之间的相似性,将可能同属于一个攻击场景的告警聚类在一起,形成各个类簇,然后针对各个类簇并行分析,推理生成各个攻击场景.
参考IDMEF给出的入侵检测消息格式[14],我们首先将各传感器产生的多源数据经标准化处理后形成的告警事件定义为一个8元组.
告警事件是一个形如ai=(timestamp,pluginID,pluginSID,srcIP,srcPort,desIP,desPort,priority)的8元组,其中,timestamp为传感器检测到恶意特征的时间,pluginID为生成该告警事件的源传感器,pluginSID为告警事件在对应传感器中的分类信息srcIP和srcPort分别是源IP地址和源端口,desIP和desPort分别是目的IP地址和目的端口,priority为告警事件的优先级.
pluginID和pluginSID一起作为键值决定了告警的攻击类型,因此本文后续部分我们统一用type变量表示告警的类型属性.图2是我们给出的基于滑动窗口的告警聚类方法.首先预设一个窗口宽度wide,如图2中的wide(windowi)=3;然后将窗口中的告警两两匹配,匹配的参数可以是地址(包括源地址和目的地址)、攻击类型、以及时间等;能够成功匹配的两个告警属于同一类簇,打上同一类标签,如果两个中的一个告警已经有类标签,那么给另一个告警打上相同标签,如果两个告警都已经有类标签,且标签各不相同,那么不做任何处理;接着向后滑动窗口,重复上述处理过程.
图2 基于滑动窗口的告警聚类
在上述告警聚类的同时,将具有同一类标签的告警,按照时序排序,形成各个并行的类簇,每一个类簇可能蕴藏着攻击场景,后续的工作就是对这些类簇进行并行分析,推理生成各个攻击场景.
聚类生成的各个类簇里面隐藏着攻击者的攻击场景,为准确识别攻击场景,我们提出了基于概率转移的攻击场景推理方法.
如图3所示,假设告警序列a0∼an+1是聚类后生成的一个类簇,里面所有的告警已经按时序排好序,其中a0最早发生,an+1最后发生.在推理类簇中隐藏的攻击场景时,我们主要依据了不同攻击类型间的一步转移概率,具体的推理分析过程可描述如下:
图3 攻击类型间的概率转移
1)首先初始化生成一个一步转移概率矩阵,矩阵的行和列代表着类簇中所有会出现的攻击类型,如图4所示.矩阵中行和列的顺序编号和告警出现的时序一致,即越早出现的攻击类型,行和列编号越小,越靠前.将矩阵元素的初始值设为0.
2)从a0开始,两两统计相邻告警间的转移频率,如告警ai和ai+1相邻,则计数器transfer(ai.type,ai+1,type)++,如图3所示.
3)统计完成后,更新概率矩阵.依据各个计数器的值,重新设置矩阵对应的元素值.
4)将一步转移概率矩阵归一化,即每一行的元素除以该行的和,实现转移频率到转移概率的转换,如图4所示.
图4 不同攻击类型间的一步转移概率矩阵
各个告警类簇经上述4个步骤处理完成后,就得到了各自对应的一步转移概率矩阵,这些矩阵代表着当前网络空间中正在发生的不同攻击场景,对它们进行形式化描述,以马尔科夫链的形式呈现给指挥员,为指挥员准确感知网络空间的安全态势、进行决策提供支撑依据.
为了验证本文提出的Cyber攻击场景感知推理技术的有效性,我们在信息系统安全技术重点实验室中,对其进行了评估测试.我们在实验环境下,重现了僵尸网络Zeus的攻击过程,Zeus是在2007年被发现的,最初被攻击者用于进行金融犯罪,窃取用户的账户和信用信息[15].
在Zeus的渗透过程中,有3个关键的主机:一个是目标主机,存在着一个CVE-2010-0188安全漏洞(这个漏洞存在于Adobe Reader 9.3.1之前的版本中);一个攻击源主机,预先安装了一些渗透测试工具,包括Nmap、Metasploit等;一个服务器,在僵尸网络中扮演着指挥控制(CC)的角色.整个实验网络中,部署的传感器主要是激活了ET(Emerging threat)规则的Snort入侵检测系统.
Zeus的整个渗透过程可以分为5个步骤:
步骤1.攻击者扫描探测,发现目标主机上运行着一个有漏洞的应用程序,这一阶段的主要攻击特征为 “Bleeding-Edge Scan NMAP–sS”;
步骤2.攻击者利用Metasploit进行溢出攻击,攻击成功后将一个恶意的PDF文件拷贝到目标主机,这一阶段的攻击特征为“Shellcode x86 inc ecx NOOP” 和 “Specific-threats Adobe Reader malformed TIFF remote code execution attempt”;
步骤3.目标主机被感染,开始连接CC服务器,尝试下载相关的二进制文件和配置文件,特别是在这一步,一个HTTP GET请求和POST请求发送到CC服务器,来获得配置文件,这一阶段的攻击特征为“ET TROJAN PRG/Zeus InfoStealer Trojan Config Download” 和 “BLACKLIST URI request for known malicious URI-gate.php?guid=”;
步骤4.目标主机从CC服务器接收指令,开始感染其他主机,Zeus在这一阶段最明显的特征就是“WEB-MISC text/html content-type without HTML-possible malware C&C”,还有其他一些特征,包括“POLICY download of executable content”,“ET POLICY exe download without User Agent” 等;
步骤5.受感染的主机开始参与到各项非法活动中,例如浏览恶意网站、发动洪泛DDos攻击、发送垃圾邮件等,这一阶段的攻击特征依非法活动的不同而不同,例如浏览恶意网站的特征可能会是“ET MALWARE 404 Response with an EXE Attached-Likely Malware Drop”.
我们在实验环境下实施完上述步骤后,Snort会生成一个日志文件.依据我们提出的处理方法对文件进行分析,感知推理其中隐藏的攻击场景.首先,基于滑动窗口,将Snort产生的告警流聚类成6个类簇,其中包含告警数量最多的类簇A4是Zeus触发生成的告警集,其余类簇都是一些背景流量产生的噪声集;然后,对类簇A4进行分析处理,推理其中隐藏的Zeus的攻击场景,最终生成的Zeus的一步转移概率矩阵如图5所示,总共包含了16种攻击类型(见表1),其中矩阵的每一行和每一列都是依据告警出现的次序编号的,这些告警类型大部分都是由Snort的ET规则检测出的.图6是矩阵的马尔科夫链形式,它代表了最终要呈现给指挥员的僵尸网络Zeus的攻击场景,可以看出推理获得的场景与实际的渗透过程一致,除了包括5个关键的攻击步骤外,还有其他一些攻击者的尝试步骤.
相比于已有的工具方法[7−8],本文中的攻击场景感知推理方法在给出场景的同时,还给出了不同攻击类型之间的转移概率,这对攻击路径、攻击意图预测等研究有很大的帮助,具有很高的适用性.同时,本文方法是面向原始告警流的,不需要任何人工辅助,自动地识别推理场景知识,而现有方法,如TIAA等对场景的识别推理依赖于原子知识的预定义,如果定义不准确、不完整,会直接影响到最终的识别结果.
本文针对当前Cyber攻击场景感知与推理这一重要问题,针对现有相关研究的不足,提出了一种基于概率转移的Cyber攻击场景感知推理技术,建立了Cyber攻击场景的感知推理框架,并对框架中的两个关键技术方法进行了论述,即基于滑动窗口的告警聚类方法和基于概率转移的场景推理方法;最后,我们基于一个多步攻击实例,对文中提出的技术方法进行了实验分析,对比验证了技术方法的可行性和先进性.由于Cyber攻击场景的感知与推理依赖于各个传感器的数据输入,因此未来我们将重点研究传感器的漏报率和误报率对攻击场景感知推理的影响.
图5 僵尸网络Zeus的一步转移概率矩阵
图6 僵尸网络Zeus攻击场景的马尔科夫链形式
表1 16种攻击的编号及类型