田继鹏
(中原工学院 计算机学院, 河南 郑州 450007)
随着计算机应用技术和互联网技术的飞速发展,各种网络攻击事件层出不穷[1]。高级持续性威胁(Advanced Persistent Threat,APT)攻击是指高级的、持续性的渗透攻击,是针对特定机构和企业的多方位的综合攻击,具有非常强的隐蔽性和针对性。与传统网络攻击相比,APT攻击的过程和方式具有显著差异,是最具有威胁性的网络攻击类型之一[2],因此,APT攻击检测的难度更大。针对Google公司的“极光攻击”、针对RSA的“SECURID攻击”、针对伊朗核电站的“震网攻击”、东京“Coincheck新经币”窃取事件、台积电“WannaCry攻击”停摆事件等各类APT攻击案例,使传统的被动式攻击检测方法束手无策,迫切需要建立一种新的安全检测系统。APT攻击检测系统需要实现识别攻击行为,切断攻击路径,进而追踪攻击源头[3]。本文从APT攻击的特征入手,对攻击过程分阶段进行分析,并尝试构建一种多态检测系统,提高APT攻击的行为检测能力,减少攻击所带来的损失。
APT攻击具有极强的目的性,例如渗透内网获取敏感信息和内部管理权限、破坏工业内网的核心控制系统、植入恶意程序并进行监控等[4]。这种攻击行为具有非常强的隐蔽能力,通常利用零日(0Day)漏洞进行攻击渗透。APT攻击持续时间非常长,有案例显示曾有攻击者在攻击成功后,持续潜伏5~10年,且攻击是动态发展的。APT攻击的破坏性非常大,在一些技术手段高、资金充裕的APT攻击组织面前,许多国家级的企业、机构,甚至国防、军工等部门,都是被攻击对象,例如利用西门子的0Day漏洞控制伊朗核电站离心机控制系统的“震网攻击”事件[5],成功地拖延了伊朗制造核武器的进程。检测和防御APT攻击已经成为现代社会发展的一个重要环节。面对APT攻击,要有足够的认识,更要有必要的检测和防御能力[6]。根据对现有案例的分析,归纳出APT攻击的几个特征:
(1) 身份伪装渗透。APT攻击先获取目标信任的身份(ID),并利用该ID攻击目标使用的内部论坛或社交软件等,再利用获取的伪装身份对目标的组织内部发起攻击,逐步渗透内部高级目标,以获取更高级别的访问权限。
(2) 攻击行为隐蔽。APT攻击者在获取访问权限后,通过所控制的内网客户端,利用合法加密数据通道,将获取的重要数据信息窃取出来,进而欺骗内部安全防护系统的审计以及异常检测等。整个过程对被攻击者非常隐蔽。
(3) 持续性潜伏。APT攻击者的攻击行为是长期的、动态发展的。随着时间的增长,系统不断有新的漏洞暴露出来,但内部系统防御体系通常是强调静态对抗,随着攻击的持续,系统的失守是必然的。同时,这种持续性还体现在攻击者不断尝试各种攻击手段,通过长期控制被攻击目标的系统来获取更大的利益。因此持续性攻击潜伏符合攻击者控制和窃取重要数据信息的利益需求,APT攻击案例有潜伏10年的情况[7]。
(4) 广谱信息收集。APT攻击行为非常依赖被攻击目标的信息,例如组织架构、人际关系、常用软件、防御策略与安全检查产品、内部网络架构等。攻击者通过主动扫描、互联网搜索,甚至通过实地内部访问的途径收集被攻击目标的信息。
(5) 针对性。攻击者会利用收集到的各种信息,针对性地搭建攻击环境来寻找目标的安全漏洞,逐步测试针对该漏洞的木马能否欺骗并绕过攻击目标的安全防护系统。
(6) 未知性。APT攻击者依据所发现的系统安全漏洞,尤其是一些未知的0Day漏洞,编写一些既符合自己攻击目的,又能绕过被攻击目标现有安全体系的木马。这些0Day漏洞和针对性的木马,对被攻击目标的安全防护体系来说都毫不知情[8]。
APT攻击一般通过外网渗透内网,获取目标身份数据信息。收集被攻击目标的Web服务器信息,搜寻可开展攻击的弱点,以此突破外网的Web服务器或者其他对外开放的服务。利用被入侵的目标ID的服务器作桥梁,对内网的其他服务器或终端进行扫描,为下一步攻击做准备。利用密码暴力破解或者发送木马电子邮件等方法,获取管理员账号,入侵AD服务器或核心开发环境。通过植入恶意程序,例如木马、后门、Downloader等[9],利用被攻击者的私人ID发送电子邮件给攻击者,回传大量敏感数据信息。最后通过高管邮件ID向其他内部员工发送带有恶意程序的附件,进而入侵其他内网终端。APT攻击行为的阶段演变如图1所示。
图1 APT攻击行为的阶段演变示意图
本文通过对大量攻击样本的分析,将APT攻击过程划分为以下几个阶段:
第一阶段:情报收集。通过一些公开的数据源(LinkedIn、Facebook等)搜寻特定人员信息,利用搜索引擎配合爬网程序,在网上搜索需要的信息,并过滤筛选所需数据[10]。情报收集贯穿APT攻击的整个过程,攻击者对于所攻陷的每个ID都会收集所需信息,用以开展后续攻击。
第二阶段:突破攻击切入点。攻击者在确定好攻击目标ID后,通过电子邮件、即时通讯软件、网站挂马、App漏洞等途径突破目标ID防线[11]。
第三阶段:C&C通信。APT攻击者在控制一定数量内网终端后,会建立命令、控制及更新服务器(C&C Server),对安装在内网终端的恶意程序进行升级,从而绕过安全检测系统的查杀。同时搜寻具有价值的数据信息,提升攻击者权限,确保APT攻击者长期控制目标系统。在攻击完成后,进行入侵痕迹销毁、伪装攻击IP地址等工作,例如日志删除、Rootkit隐匿等[12]。
第四阶段:数据发掘和信息窃取。APT攻击者通常通过长期潜伏挖掘更多数据信息,搜寻有价值的数据进行加密打包,并通过预留后门将数据回传。同时,对获取的信息进行分析,以便获取更高访问权限,入侵高级管理者的终端系统,进而获取更有价值的数据信息。
APT攻击阶段的演变给防御工作带来极大挑战,APT攻击是全面的、持久的、多渠道的,安全防御需要改变策略,单一防御功能的安全策略已经不能满足需求。针对攻击阶段建立相应的防御策略,虽然可以应对常见的、单一的攻击行为,但无法实现全方位、实时的安全防护,需要进一步从攻击特征方面对防御体系进行分析和完善。
在目前复杂的网络环境下,如果有任何一个节点出现疏忽,就有可能被成功攻击。比如,Web服务器通常会成为APT攻击者的攻击发起点,因为Web服务器是公司或政府机关网络系统中最容易出现漏洞的地方;同时也因为它是网络邮件的集散中心[13],也成为APT攻击者收集信息的重点地方。攻击Web服务器最有效的攻击方法是通过Email进行挂马攻击,例如发送钓鱼邮件、通过恶意脚本扫描终端、针对程序漏洞植入恶意程序、构建僵尸网络等。
技术层面上,APT攻击的手法更新频繁并相互融合,且大多数攻击工具都是未知的。但APT攻击多数时候是极具针对性的,任何攻击行为都具有相同或类似的手法,例如RANCOR(APT组织名)攻击就是综合了APT28(APT组织名)攻击中的一些攻击手法。DDKONG和PLAINTEE(APT组织名)等家族新的攻击工具在2018年的攻击中又被发现。DDKONG的攻击工具是在Excel文件中嵌入宏来加载恶意程序,通过采集和分析嵌入宏的代码,此攻击方法与2017年的APT28攻击中“Sofacy”所使用的方法相同。PLAINTEE也利用了相似的方法,其主要通过CoCreateGuid( )的调用来创建一个唯一的GUID,作为被攻击者的标识ID,通过自定义的UDP协议进入配置端口,获取并解码数据包。通过数据的采样分析,“Sofacy”攻击具有一个0x66660002返回命令,包含一个相同的GUID,收到响应后,恶意程序会产生带有不同命令参数的几个新线程,目的是加载并运行从服务器上接收的新插件,插件与PLAINTEE具有相同的网络协议和DLL。因此,尝试从攻击行为特征入手,并对其攻击背景进行调查、分析、取证,从而发现APT攻击行为背后的产业链和APT攻击组织,可以达到更好的防御效果。
通过对APT攻击行为的阶段演变及技术手法的分析,本文尝试采用静态攻击检测和动态产业链分析相结合的检测方法。在APT攻击行为的分阶段检测过程中,针对攻击者加载的恶意程序代码的细节,例如功能、0Day漏洞、C&C服务器、被攻击ID、攻击频率等信息,尝试提取APT攻击的属性和特征,对获取的攻击信息进行分析,挖掘其产业链,最终构建一个多态的安全检测体系,包括技术层面的攻击检测方法和深入产业链的动态分析追踪。
整个检测防御体系划分为4个模块:发现预警、追根溯源、沙盒取证、主动防御。主要运用分布式部署和集中管理相结合的方法进行安全检测。前端主要部署在网络出口和主要链路,进行静态的安全检测和攻击预警,并实时存储数据。后台与中心系统服务器连接,专门针对0Day漏洞和未知恶意程序进行分析和检测,从前端部署设备的存储文件中提取数据样本,对已知的攻击进行动态分析并提取其攻击特征。部署在前端的预警模块能检测出已知的病毒或木马,对于未知木马或恶意文件,将检测其是否存在Shellcode指令或相关代码,之后进行动态检测,形成安全检测分析文件,并生成其特征文件,加入攻击特征库当中。利用所形成的特征库对相应攻击行为进行预警、拦截,可达到理想的防御效果。
多态攻击检测体系如图2所示。
图2 多态攻击检测体系
静态的技术层面的攻击检测如下:第一步,从获取的攻击样本中提取攻击特征与功能特征,并对样本进行逆向分析。第二步,模拟攻击环境,测试APT攻击程序,获取并记录APT攻击行为,审计网络应用程序带宽占用情况,进行APT攻击溯源,并对其产业链追踪。第三步,提取EXE文件、ShellCode、PE文件等,然后在虚拟环境下运行和分析异常结构,提取数据特征,并实时扫描系统内存与CPU中资源异常调用等。第四步,检测关键位置的代码注入和各类API钩子,检测任意已知的攻击代码片段,检测Rootkit、Key logger、Anti-AV等恶意程序,检测邮件、域、IP、URL等众多可疑字串等。
动态产业链的分析,通过建立相应信息防护规章制度来进行。APT组织经常使用鱼叉式网络钓鱼的方式进行网络攻击。因此,检测电子邮件附件是否被注入恶意代码,用来判断是否有人在尝试入侵。通过安全邮件网关对邮件进行检查,并在此过程中提取可疑文件的数据特征。监控网络流量,设置安全管控措施,分析异常流量数据特征。设置具有针对性的攻击检测方法,在发现入侵行为时,立即切断可疑通讯,发布安全预警提示。另外,将系统管理员的访问权限与关键系统的数据访问权限分开,能有效预防黑客通过内网端点上的键盘测录程序收集高级权限的账号信息;同时将关键、敏感、机密的数据加密,以加大信息获取的难度。
为了验证本文提出的多态检测方法的效果,建立一个仿真实验环境进行测试。用VMware构建100台虚拟攻击机,网络拓扑如图3所示。实验时,采集在正常网络状态下未受攻击时的数据,并对该数据进行筛选分析,得到正常网络状态下的链接分布参数和流量阀值。实验中设定不同的攻击次数并对检测结果进行比较,根据APT攻击阶段和攻击方式的不同,采用DDos攻击、端口扫描等常见的攻击方式进行实验。DDos攻击模拟了SYN-Flood、Smurf和UDP DNS Query Flood攻击方法;端口扫描模拟了Nmap对主机开放的端口和协议进行扫描。
利用异常的流量监测技术对异常行为进行检测,对于发现隐藏的木马和入侵行为是行之有效的策略。在实验中,异常行为的判定模型是需要动态调整的,规则太复杂会影响用户的正常工作,难以执行,太简单则会造成攻击检测的疏漏。因此,根据网络运行状态的历史数据建立相应的特征库,以此为基础进行异常行为分析,则更加高效。
面对同类攻击时,具体攻击检测的技术和方法不同,有效攻击识别率也有所不同。实验中,模拟4种常见攻击行为,分别采集并统计常规检测方法下的报警次数和命中率,如表1所示。常规攻击检测方法在面对单一攻击方式或攻击源基数较小时,攻击报警命中率相对较高。基于流量异常的检测方法具有较好的预警效果,而基于信息熵的检测方法,对于Smurf攻击具有较高命中率,但面对端口扫描攻击,即使攻击基数降低,命中率依然较低。
图3 网络拓扑图
本文提出多态检测方法,采集和提取模拟实验环境下的数据样本特征,并将获取的各种攻击特征联合常规攻击检测方法进行攻击预警实验,分别采集并统计报警次数和命中率,如表2所示。通过分析比对,发现加入攻击行为特征后,4种常见攻击的报警次数大大提高。UDP DNS Query Flood攻击报警命中率提高至100%,尤其是面对端口扫描攻击时,加入攻击特征后,即便攻击基数从200次提高到500次,但命中率依然提高至92%,预警效果显著。攻击行为特征的加入,使攻击检测预警效率明显提高,对APT攻击检测起到了促进作用。
表1 常规攻击检测结果
表2 加入攻击特征后的检测结果
面对APT攻击行为不断增长的事实,本文提出从多角度、多方位,综合利用各种方法和技术手段,进行必要的安全检测,以确保信息的安全。通过模拟实验,构建一个分阶段的、多态的APT攻击检测体系是行之有效的方法。但现实网络中APT攻击环境更加复杂,攻击组织的技术能力显然是机器模拟所不能达到的。随着网络终端接入方式的日益多样化,数据的防御变得更加复杂。下一步,将在攻击行为检测的基础上,进一步完善APT攻击防御体系,从而应对网络数据信息安全所面对的新挑战。