基于分布式欺骗技术的工业网络异常行为自动发现技术

一、引言

二、工业网络面临的新型威胁分析

三、基于欺骗技术的主动防御模型

四、分布式异常行为诱捕系统

五、系统的工作流程和效果评估

六、总结

一、引言

随着经济的发展、社会的进步、科技和信息化水平的提高以及全球资源和环境问题的日益突出,依靠现代信息、通信、控制技术构建坚强智能电网,推动全球能源互联网建设,形成以电为中心、以清洁能源为主导、能源全球配置的新格局已成为电力工业发展的选择。然而,智能电网将现金的信息技术、通信技术、自动控制技术和电网基础设施有机融合,虽然大幅度提高了电能的使用效率,然而也使得电网面临了病毒、木马、黑客攻击等网络安全的全新挑战。

恶意软件是尝试破坏计算机、工业控制系统,搜集敏感信息的计算机软件,它对传统计算机网络尤其是工业网络造成了很大威胁。2010年发现的Stuxnet病毒式首个针对工业控制系统的蠕虫病毒,该病毒针对下位机的Siemens S7 200-300 PLC执行恶意代码注入,对于上位机Wincc监控系统通过Hook技术执行了自我隐藏;2012年和2013年被检测发现的Flame病毒和Duqu病毒则是为Stuxnet进行前期数据搜集,包括网络环境拓扑、目标PLC详细信息等情况。近些年,又陆续爆发了针对能源网络的Havex、BlackEnergy病毒。通过对这些事件的分析我们可以发现,由于攻击价值很大,针对工业控制网络(尤其是能源网络)的恶意攻击行为往往会结合使用公开漏洞和0day漏洞,这就给恶意行为的及时发现造成了很大的困难。然而,由于工业控制网络对于安全要求的等级极高,必须要及时发现各种网络威胁(包括未知威胁),所以我们设计了一种基于云平台的电力网络异常行为自动监测系统,可以实现无损监测、秒级预警、关联处置等核心价值。

二、工业网络面临的新型威胁分析

在智能电网环境中,安全防御难度增大的主要原因是:大多数定制设备都会利用远程甚至是互联网进行同步或分布式通信,例如向量测量装置(PUM)的C37.118协议、基于GPS的网络时钟协议、卫星、微波、无线电广播、王庄无线网络等。更为复杂的是,越来越多的设备通过集成远程服务器实现了对变电站或现场设备的远程访问,尽管从业务角度来讲这些改变是合理的,但是在网络安全层面,这些设备成为了网络攻击的中心。因此,尽管我们可以采用常规的攻击方法入侵智能电网,即扫描攻击目标、枚举、确定漏洞、渗透漏洞。但是,智能电网的供给面远大于传统电网,且其入站公积向量众多,此外,当在TCP/IP基础上运用应用层协议时,可以通过其他技术手段枚举、识别该应用层协议的脆弱性。

2.1 输配电设备的扫描

根据攻击目标的属性,在智能电网中对攻击目标的扫描步骤与标准的入侵步骤大同小异,黑客会使用针对SCADA和工控系统的扫描与枚举手段。例如,对于一台基于商业成品部件和标准Windows操作系统的T-SCADA服务器或网关,可以轻易通过Nmap识别,漏扫软件进行枚举,以及利用Metasploit框架下的相关工具进行渗透。

在工业网络中,网络扫描的流程基本相同,通过查看扫描结果的常用端口可以判断设备类型,例如C37.118使用4712和4713端口,Modbus TCP使用502端口,RPC使用530端口,Ethernet/IP使用2222或者44818端口,OPC UA使用4840或者4843端口,DNP3使用2000端口等。

2.2 设备详细信息的枚举

变电站自动化系统使用的协议也可以用于对攻击目标的枚举,该系统本质上是T-SCADA和D-SCADA基于上述协议的一种功能实现。Project Basecamp的研究人员使用这种方法对一个Ethernet/IP系统进行枚举,通过截获和分析CIP流量,可以从CIP中提取设备的详细信息,包括供应商和对象标识符。

所有的工业协议都会使用独有的功能代码,和一些特定设备的转悠代码,一旦获得供应商和设备ID,即可对特定涩北进行分析研究,甚至使用已有漏洞。这里需要注意的是,工控设备供应商在使用协议时,一般会选择私有化协议(如西门子的S7 COMM/S7 COMM-Plus,或者霍尼韦尔的CDA协议等),这只能增强协议的隐蔽性,但是面对攻击依然十分脆弱。

2.3 智能电网漏洞

基于上节讨论,一旦智能电网中的设备被枚举后,有很多攻击方法可以攻陷核心系统。一般会对输配电管理系统、变电站自动化系统、EMS系统等的SCADA和控制协议漏洞进行攻击。伴随着对智能电网系统的深入分析和研究,公开披露的漏洞数量逐年增长,往往还配有成套的渗透代码(一般称为EXP)。更为糟糕的是,这些系统使用的通信协议存在固有漏洞,这些漏洞并非糟糕的编码导致的程序Bug或无意识漏洞,而是在正常运行指令和控制协议的前提下依然存在的技术性缺陷。这也意味着该类漏洞无法轻易去除,因为他们并不存在于某一款产品或工业控制设备中。目前相关单位也开始组织漏洞修复工作,比如IEC致力于通过IEC62351标准保障变电站设施的安全。然而,就算通过修复确保了某款协议的安全性,但大量在运的老旧设备中运行的的旧协议仍将带来海量的安全隐患。

2.4 工业协议中的固有漏洞

2012年,从事控制系统网络安全咨询与研究的DigitalBond公司创立了Project BaseCamp计划,其通过对系统固有漏洞的渗透研究,发布了GE、Schneider、Koyo、Siemens、Wago、Rockwell等设备的多项漏洞。

在Basecamp发布的示例中,有一个示例利用Ethernet/IP协议的漏洞成功控制了Rockwell Automation ControlLogix系统。值得注意的是,该攻击利用的并非ControlLogix本身的漏洞,而是底层协议的安全缺陷。Basecamp的研究人员通过各种逆向工程手段确定了Ethernet/IP的函数与对象标识符,并以此发布了多种攻击手段:

• 非授权停止:通过向设备发出CIP指令可以有效切断CIP服务并使设备停转,该攻击导致设备进入“重大可恢复错误”状态。

• CPU崩溃:使用异常的CIP请求,该请求无法被CIP协议栈处理,进而导致CPU崩溃,设备进入“重大可恢复错误”状态;

• 清楚设备启动代码:使用CIP函数远程擦除Ethernet/IP设备启动代码;

• 重启设备:CIP系统重启函数滥用,将重启目标设备;

• 设备崩溃:利用设备的CIP栈漏洞,使目标设备崩溃;

• 瞬时更新:CIP支持想可移动设备写入数据,包括寄存器和继电器中的值,以及文件中的数据。如果滥用该项功能,可以向目标设备中写入新的固件,以实现攻击目的。

2.5 利用漏洞进行攻击

当漏洞通过相关平台(如CVE、NVD等)公开发布后,即可利用其进行针对性渗透。尽管漏洞在发布时不包括渗透实例,但漏洞的发布给予了黑客研究攻击方法所需的充足信息。在SCADAHacker.com上通过seven-Technologies的交互式SCADA徒刑系统(IGSS,Interactive Graphical SCADA System)平台展示了该过程。2011年初,Luigi Auriemma发布该漏洞时附带了安全的测试代码(尤其是用于测试的渗透代码),改代码通过运行IGSS_8b.dat发出一个数据包,从而使得控制台服务器打开计算器。尽管在实验中运行的代码是无害的,但黑客可以用一段可以代码替换calculator.exe程序。

在SCADAHacker的案例中,作为Metasploit框架平台的一部分,Meterpreter工具可以用于创建并下载负载到IGSS服务器,Metasploit可以用于实现以下功能:

• 安装回调恶意软件,确定持久性,甚至重新引导系统;

• 擦除服务器证书,将所有密码替换为随机数据,对其进行破解或向下传递,进而破解深层次身份认证机制;

• 提权,获取更高级的控制权限。由于许多SCADA系统都在以Root或管理员权限运行,所以完全提权智能通过攻陷SCADA系统实现。

三、基于欺骗技术的主动防御模型

主动防御是国家安全和防御领域使用的术语,起源于国防部,由于近些年来APT网络攻击行为有规模化发展的趋势,开始将主动防御概念逐渐应用于网络安全领域。其与被动防御相对应,包含了一系列积极的网络安全防御措施。这些措施分为2大类:1. 以欺骗技术为基础的情报获取及攻防对抗技术;2. 开源威胁情报获取技术。该类技术也被美国土安全部(DHS)统一命名为Cyber Resilience技术。

3.1 新型APT攻击缓解方案

随着工业互联网的不断兴起,承载着重要资产的工业控制终端开始批量连接TCP/IP网络甚至互联网,黑客对于该类技术的APT攻击研究成为了近段时间来的流行趋势。由于工业控制网络设备陈旧,更新、补丁不够及时,而瞄准该网络的黑客往往具备0day级别的武器能力,使得针对工业环境的APT攻击更加难以防范。

电力网络是一个庞大而复杂的网络,要保证抵御所有APT攻击是难度非常大的任务,因此更务实的做法是接收APT风险始终存在的事实,然后快速追踪、识别并予以纠正,也就是采取APT攻击的缓解方案。因此,面对正在进行的APT攻击,有必要构建积极的“弹性网络”,从而阻止攻击并减少影响。该类“弹性网络”包含“主动技术”和“联动技术”。“主动技术”主要是利用欺骗技术还原、构建之前的攻击,分析出攻击的必要信息和特征,为之后的应急响应提供支撑;“联动技术”则是一系列调用应急响应流程的机制,两种技术相辅相成共同构建起“网络弹性”(Cyber Resilience)。

3.2 网络弹性工程(Cyber Resiliency)

“网络弹性”实际上是网络的快速响应机制,能够动态的适应网络态势,度过网络安全风险危机,即使在收到影响被迫降级的模式下也能完成自己的任务。在面对APT攻击的情形下,这无疑是实现信息系统安全目标的最好手段。下面是网络弹性工程的示意图:

网络弹性工程示意图

在网络弹性工程中,不同的对象支持不同的目标,不同的实践支持不同的对象,不同的利益相关者会更关心不同的目标。这样可以针对不同形式的威胁采取不同措施去应对,形成一个自定义的网络防御体系,有助于根据当前收到的APT具体的威胁信息作出判断,并实施有针对性的应急措施。同时,可弹性变化的网络结构也使得类似APT攻击实施者对目标系统情况难以准确掌握,阻滞攻击进度,为应急响应赢得时间。

3.3 主动防御模型

主动防御技术作为一种新的网络对抗技术,采用了完全不同于传统被动防御的思想和技术,是由多种能够实现网络安全主动防御功能的技术所组成的一个技术体系,并且通过合理运用这些技术,相互协调、相互补充,最终实现完备的网络安全保障。主动防御实在保证和增强基本网络安全的基础之上实施的,是以传统网络安全保护胃前提的,除了包含传统防护技术和检测技术外,还包括新型对抗技术,其优势主要体现在:1. 可以通过欺骗技术来迷惑敌人,干扰、阻滞黑客攻击行为;2. 具备未知威胁检测、发现能力;3. 具有事件驱动的应急响应流程。具体模型如下图所示:

网络安全主动防御模型

该模型基于硬件资源层、平台调度层、主动防御层以及业务管理层4层模型设计,可以保证应用该模型的网络可以:1. 风险监测节点弹性可扩展;2. 业务逻辑可定制;3. 风险监测数据可实时上报;4. 应急响应流程可自动化推动。

四、分布式异常行为诱捕系统

基于分布式欺骗技术的入侵行为分析系统是未知威胁发现、提取入侵特征等的重要技术手段。通过构建分布式云蜜网和云沙箱来模拟具有漏洞的重要网络系统,通过提取被保护网络的结构特征、服务内容特征以及漏洞主机的分布特征等来提高仿真的真实程度,从而吸引并诱骗攻击者进入,通过基于Xen平台的快速系统调用机制来进行入侵特征的提取,记录其攻击轨迹,利用主动防御数据分析技术解析攻击轨迹,进一步了解攻击者意图、手段和方法等信息,提高电力网络的安全保障能力。基本结构如下图所示:

诱捕系统的动态部署技术主要包括以下几个子系统:

1) 云平台子系统:动态虚拟网络环境的构建是诱捕系统的支撑系统。为了能够准确地模拟任意规模的网络,在平台的构件上不收网络拓扑的影响,本系统采用虚拟化技术来模拟受保护网络系统,以实现对网络环境的动态构建和虚拟,保护了系统底层。

2) 云蜜网与云沙箱子系统:一方面,只有蜜网环境部署得与真实工作系统非常相似,攻击者才会主动访问蜜网,并留下攻击轨迹,通过分析入侵行为获知其动机。为进一步防御与强化诱骗系统提供知识支撑,因此需要采取一定的诱骗策略来诱骗入侵者,使入侵者放松警惕,才能实现对入侵行为的准确采集。在构建的蜜网环境中,攻击者、脆弱性、控制范围,各种应用系统以及漏洞的设计应当尽量分散,且应保持适当的耦合性;另一方面,为了能够辅助判断并深度剖析一些恶意代码(比如APT代码),我们需要弹性的构建一系列应用层或者系统层的沙箱环境,并应当设置各种反沙箱逃逸技术的检测方法。

3) 业务管理子系统:基于云平台B/S架构,构建云蜜网和云沙箱的业务管理系统,在云蜜网模块中可以对仿真的蜜罐类型、蜜罐部署数量、网络场景、实时数据展示、历史趋势分析、分析报告、蜜罐分组、用户分组等内容进行管理;在云沙箱模块中可以对沙箱类型、沙箱部署数量、沙箱运行日志、分析报告等内容进行管理。

4.1 虚拟化动态部署技术

4.11 虚拟机增量部署机制

增量部署机制采用了COW(Copy On Write)的思想,即写时复制的方法,常用语数据的增量备份和快照技术中。对于磁盘镜像文件的拷贝,只需要保存基本磁盘镜像文件,二基于这些基本镜像文件所做的修改仅需记录在增量镜像文件中。增量部署机制可缩短部署时间,提高部署效率。

虚拟化平台的快速部署需要从用户请求得到一些关键配置参数,这些关键配置参数之外的其他参数不需要用户进行配置,采用默认或者随机分配的方式。这些关键配置参数包括内存大小、虚拟机IP地址、服务器IP地址、硬盘大小、虚拟机操作系统类型,具体描述如下表所示:

操作系统类型

为保证蜜网和沙箱的真实性,系统需要支持主流操作系统类型,包括:Ubuntu、CentOS、Debian、Windows等。

内存大小

虚拟机运行于宿主服务器上,因此分配给每个虚拟机的内存一般不能过大。

硬盘大小

由于虚拟机采用了增量镜像机制,所以硬盘大小的配置无关紧要,但由于服务器硬盘容量有限,应当为每个虚拟机设置一个上限值。

虚拟机IP地址

虚拟机的IP地址决定了构造的蜜网和沙箱网络的拓扑结构,用户可以根据具体业务场景进行动态调整。

服务器IP地址

由于系统由众多负载服务器构成,因此需要配置虚拟机所在的服务器的IP。负载服务器只是承担虚拟机运行的任务,虚拟机的硬盘采用NFS统一聚集在一个服务器中,因此硬盘的管理更加方便。

Xen虚拟化平台支持增量镜像的格式为Qcow2,需要Raw格式的基础镜像。这两种格式的镜像各有优缺点。Qcow2格式的镜像有最小化存储的特点,新创建的增量镜像只有150kB左右,当然随着虚拟机的运行镜像会持续增大,但Qcow2格式的镜像存取速度较低。Raw格式的镜像不具备最小化存储的特点,但其存取速度较快。

所谓的增量,指增量镜像文件,它们是基于基本镜像文件而生成的,并针对不同需求进行添加和变更。目前主流的操作系统有Windows、Linux等,这些操作系统的磁盘镜像文件构成了基本镜像文件,在基本的操作系统镜像之上增加的一些应用和服务就是增量镜像文件。镜像文件的管理结构类似于机器学习中的决策树,由于镜像文件可以有多级增量,因此他们之间存在着多重继承关系,其管理结构如下图所示:

镜像文件的管理结构图

增量镜像文件一般都比较小,便于复制和传输。每个增量镜像文件都是基于父镜像文件延展而来的,对增量文件的任何修改都作用在增量文件上,不会影响其父镜像文件,多个增量文件可以贡献给一个原始的镜像文件。根据业务环境的需求不同,虚拟机需要安装不同的应用程序和软件,采用增量镜像文件机制就可快速解决这个问题,直接选择安装有某个应用软件的文件即可,方便快捷。增量部署机制是基于增量镜像文件的部署,他是底层虚拟机创建服务的重要组成部分,为虚拟化平台的增量实现提供了有力支撑。

4.12 虚拟机网络自动化配置

Xen平台有三种虚拟网络连接模式:网络桥接模式、路由连接模式、虚拟网络连接模式。网络桥接模式需要在宿主机上生成一个网桥Xenbr0,并且以宿主机网卡(eth0)为网络出口。这种模式可以让虚拟机和宿主机同时处于一个网段下,与运行于宿主机所在局域网内的其他宿主机没有任何差异,可视为同等机器。路由连接模式是实现虚拟机向物理机虚拟网卡的路由,当然每个虚拟机的虚拟网卡上需要设置固定的IP地址。虚拟网络连接模式同样会生成一个网桥Xenbr0,但是虚拟网卡没有和宿主机网卡直接桥接,宿主机向虚拟机提供DHCP服务,因此可以让虚拟机自动获取IP地址。Xen虚拟网络连接模式结构如下图所示:

Xen虚拟网络连接模式结构图

在这三种模式中,路由和虚拟网络连接模式不需要与物理网卡直接连接,将虚拟机内部与外部网络隔离开来,提高虚拟机的安全性,但虚拟机想要铜鼓哦网卡与外界通信,必须依靠网络服务,使得网络资源的使用效率有所降低;而网络桥接模式的网路访问方式更加开放,能够便捷地与外界进行交互,可根据不同需求构建多种网络结构,利于网路扩展。

4.13 虚拟机网络基础通信模型的设计

在传统的物理网络中,DHCP服务可以统一规划、管理整个网络,但在虚拟环境下,DHCP服务客户端有限的管理模式以及其复杂的交互模式已经不能满足虚拟机的管理需求,因此本课题需要设计出一种简便、快捷的通信模式,不仅在DHCP服务的基础上有所简化,还要能够保证安全性。基于以上考虑,本课题采用基本的客户端-服务端模式,但在客户端和服务端模式,但在客户端和服务端进行数据交互的工具是广播,全部通信共分为以下几个步骤:

1. 首先客户端通过广播方式发出网络配置请求,以寻找可用的服务端,在请求信息中,需要包含虚拟机创建时生成的唯一标识虚拟机的编号(ID)。若客户端在数据发送后的预定时间内没有收到来自服务端的信息,则采取超时重传机制,将信息进行重传操作,克服了由于网络拥塞等原因造成的网络中断,保证信息的有效性和通信的健壮性;

2. 服务端收到请求后,首先核对虚拟机ID,若不在服务范围内,则丢弃,如若不然,则对接收到的数据进行处理。服务端根据网络配置请求信息判断客户端请求服务的类型并生成可用的网络配置资源,发给客户端;

3. 客户端接收配置信息后,根据相应数据进行配置。为了验证配置信息的可用性和安全性,客户端会再次包装虚拟机ID、IP地址等信息返回给服务端。

4. 服务端解析客户端返回的配置结果,若配置成功,则发送确认结果数据,并更新网络资源使用情况信息,否则转至步骤2,重新寻找网络 配置资源。虚拟机网络配置基础通信模型如下图所示:

虚拟机网络配置基础通信模型通过客户端与服务端的“四次握手”方式,保证了信息网络中的正常传播及客户端与服务端的交互。该通信模型的优势在于采用服务端优先的方式,增强了服务端对虚拟机网络的可控性,有效提高虚拟机网络自动化配置的通信效率,为虚拟机网络通信的正常运行提供可靠的保障。

4.2 按需自动化定制的云蜜网技术

蜜网技术是经典的主动防御技术,是指主动对攻击行为、攻击者特征等进行采集获取的工具,通过引诱入侵者进入蜜网系统,实时动态监听和追踪,同时将所有行为信息记录在系统日志文件中或其他安全文件中,通过对相关数据的分析,进而掌握入侵的指纹特征、0day信息以及攻击者习惯等信息,为下一步的预警、响应等工作提供支撑。蜜网是一组高交互蜜罐的集合,这些蜜罐通过云技术可以弹性的部署于网络中,并实现分布式的任务和数据管理。

4.21 诱骗与仿真技术

诱骗与仿真技术,顾名思义,就是通过欺骗入侵者,将其引入事先设计的虚假资源环境,并详细记录跟踪入侵者的行为,同时通过离线分析入侵行为获知其动机,为进一步防御与强化系统提供知识支撑。用来引诱攻击者的系统可称为诱骗系统,它能够隐蔽地实现对目标攻击者信息的采集与分析,确定目标攻击者的身份并获知其攻击意图、目的及手段,进而对系统提出告警或响应,并为安全策略的调整提供依据。

只有蜜网环境部署得与真实工作系统非常相似,攻击者才会主动访问蜜网,并留下攻击痕迹,以利于防御者进行监视和控制。最初的蜜网系统只简单模拟服务来吸引攻击者,此方法简单易行、成本较低,但暴露出的问题也比较明显,攻击者很容易识破这种系统,带来的效益并不会高。因此,应充分考虑元系统漏洞分布、网络结构特征、服务程序特征以及系统的洗涤度文件特征等信息来构建平台,本课题采用的诱骗策略如下:

1. 拓扑仿真:蜜网的搭建,如果模式化,则很容易被攻击者发现。但是,入股欧威蜜网单独设计物理拓扑,优惠花费很大的精力。我们可以通过拓扑仿真的策略解决这个问题。也就是说,本文的蜜网可以完全按照某个真实的局域网的部署情况去仿真、镜像布局。这样,当入侵者入侵到我们的网络的时候,由于我们的网路偶遇真实的某个网络高度一致,至少入侵者不可能通过网络郭璞发现自己已经陷入蜜网中。

2. 提供服务:黑客攻击的时候,通常具有一定的针对性,他们通常针对某些服务进行攻击和搜索。所以,提供相应的服务可以更好的吸引攻击者的攻击,如S7、Modbus、Http、Ftp等服务,让我们的蜜罐发挥更大作用。对于低交互蜜罐,可以模拟各种网络协议等,高交互蜜罐更是可以伪装成邮件服务器,DNS服务器或者Web服务器。

3. 资源替换:在虚拟环境被攻击者入侵后,如果在该虚拟机中没有有价值的问价或者资源,入侵者很容易察觉出其所处的环境有问题,因此需要将被保护文件进行替换仿真处理,采用文件名或内容替换的方法,过来掉敏感词和关键词,保留一般级别的文件,替换原则可由用户确定,总体来说就是用虚假的信息替换真实的工作系统中的用户信息和文档,提高蜜网平台的伪装逼真程度。

4. 流量仿真:网络嗅探器或者网络监听器是攻击者经常利用的工具。攻击者总会很关心某台计算机流入或者刘处的网络数据。所以,我们可以模拟一些网络流量来吸引且麻痹攻击者。流量仿真可以采用多种策略,一种比较有效而方便的方法是采用同步模拟某台真实的计算机的流量方法。

蜜网伪装诱捕平台必须具有一定的混淆作用才能够发挥其作用,而本课题所设置的诱骗策略正式起到了非常重要的作用。

4.22 伪装诱捕技术

蜜网系统的部署结构,包括高、低交互两种蜜罐。高交互蜜罐能够提供完整的操作系统和网络服务,交互性较强,攻击者可获取入侵行为的更多信息,但从攻击者角度来看,攻击者可自由活动与高交互蜜罐中,获取目标信息。但值得注意的是,攻击者一旦攻陷了一个高交互蜜罐,对方将获取足够的权限和资源,高收益同时伴随着高风险,不仅如此,高交互蜜罐在部署和维护方面也有比较高的复杂性。然而,低交互蜜罐只提供有限操作系统仿真权限,即使被攻陷,攻击者也将一无所获。低交互蜜罐只模拟有限的服务,较容易部署和运维。因此,本课题融合使用该两种蜜罐类性,对不同类型与不同等级的应用服务,采用不同的交互模式,对不同类型与不同等级的应用服务,采用不同的交互模式(具体如下图所示)。即对于关键性服务采用高交互的蜜网方式,而对于交互性较少并且重要程度较低的应用服务则采用低交互的蜜网方式。将被保护服务按照服务的重要程度换分为不同的网络区域,然后再每个区域周伟不只多个易部署的低交互网络,在中心部分部署少数高交互蜜网。

蜜网伪装诱捕结构示意图

4.3 按需自动化定制的云沙箱技术

沙箱检测技术是一种通过模拟仿真进行动态检测的防护技术,在虚拟化环境加载、运行和侦测恶意程序的运行。沙箱系统和虚拟机系统原理比较类似,区别在于:虚拟机系统是通过对计算机硬件资源的创建、调度、管理,实现对计算机系统的虚拟化;而沙箱系统一般会通过底层Hook等技术对已有的计算机硬件资源进行映射,实现对局部计算机环境(如邮件系统、注册表、内存等)的虚拟化和监控。沙箱检测技术能够有效识别异常行为、未知攻击和未知恶意代码,对未知异常行为可快速提取特征,从而解决特征匹配检测模式滞后二引起的RTO(企业响应时间)过长二导致的风险累积问题。

4.31 沙箱实现机制分析

Windows操作系统环境下,系统和应用程序总是运行在内核态或者用户态,从实现机制角度可以把沙箱分为3种:纯用户态实现机制、纯内核态实现机制和混合类型实现机制。具体如下:

1) 纯用户态沙箱实现机制

该类型的沙箱一般运行在操作系统的用户层,需要的服务由操作系统提供,大部分由高级语言编写而成,沙箱的基本隔离功能由相关软件技术实现(应用层实现),具有良好的可移植性、稳定性和可扩展性。该类型技术优点是:部署方便、实现成本低。缺点是:1. 专用性强,往往只能仿真某一类应用软件环境,不具备通用性;2. 安全性差,过分依赖操作系统内核的安全机制;3. 性能较差,因为实现时需要在进程中加入检测代码,影响了程序运行的性能。

2) 纯内核沙箱实现机制

该类型沙箱一般完全基于操作系统内核,沙箱驻留内存中,借助硬件级别的保护机制来实现安全隔离。由于功能代码是现在内核层,因此可以减少用户层和内核层的切换次数,保证了用户相关程序的性能。与纯应用层沙箱相比,该类型沙箱具有更高的安全性,但缺点是:1. 实现难度大,开发人员要对操作系统内核有非常深入的理解;2. 在非开源操作系统上难以部署;3. 由于处于内核层,设计缺陷会导致操作系统安全问题。

3) 混合型沙箱实现机制

混合型沙箱就是结合了应用层与内核层实现机制的沙箱系统,不但能够提供高安全的隔离性能,同时利于降低开发难度和提高沙箱系统的稳定性。与纯用户态沙箱相比,混合型沙箱可以更好的利用计算机体系结构、硬件和操作系统提供的一些机制,可以提供更为底层、高效的保护,与纯内核态沙箱相比,能够实现丰富的系统功能。

4.32 基于沙箱逃逸的APT攻击技术

目前,基于APT的检测手段有很多,侧重点涵盖了APT攻击生命周期的各个阶段。沙箱技术也在下一代APT检测中扮演核心角色,利用沙箱对主机中运行加载类似PDF、Office、EXE、Dll、Zip、Flash、JavaScript、Html等对象的负载后的行为进行分析,并标记出可疑行为。网络空间攻防是一门博弈的艺术,新型的APT逐渐找到了方法,开始逃避沙箱检测机制。因此,新型APT的沙箱逃避技术是APT检测技术中的关键技术,十分值得研究。

通常的,沙箱系统被看作处理恶意代码样本和分析检测攻击案例的起始,越来越多的APT攻击案例表明,狡猾的黑客们正在研究沙箱系统或者常见的虚拟机的运行机制,编写特定的攻击代码。这些恶意代码通过寻找沙箱在系统内存、运行时加载的程序、文件系统和注册表中留下的典型特征来判断是否有沙箱正在运行,从而采取相应的手段逃避沙箱的检测,类似技术统称为“沙箱逃逸技术”。

1) 人机交互

通过判断入侵系统中有无鼠标点击和对话框弹出,判断自身是否处于沙箱的环境中。该类APT在入侵到目标系统后会一直处于潜伏状态,直到他们检测到目标系统中有鼠标移动、点击以及对话框的智能化反应等人机交互情况时,才会开始执行恶意代码。例如某新型APT会利用0X0E作为参数值,去调用安装在挂钩程序WH-MOUSE_LL中的SetWindowsHookExA()函数,从而实现对低级别的鼠标输入的监控。当鼠标被单击时,会通过关联指针fn调用UnhookWindowsHookEx()函数停止对鼠标的监控,然后调用sub_401170()函数执行恶意代码,如下图所示:

2) 特殊设定

越来越多的网络攻击者已经开始关注有关沙箱系统的配置,并利用这些配置参数运用一些手段针对性逃避检测。比如可以通过“睡眠时钟”、“事件触发器”、“执行路径”和“隐藏进程”等方法来绕过检测。比如“睡眠时钟”方法,该方法是针对沙箱会检测大量加载文件,因此对单一文件的检测时间是有限的检测特征,延时执行恶意行为从而避免沙箱的检测。研究发现恶意代码Trojan Nap可以延长睡眠时钟,等待沙箱检测完之后再执行恶意代码。代码利用超时变量参数0x0927C0(600秒,10分钟)调用SleepEx()使得在10分钟之后恶意代码才可以被执行。10分钟的时间大于大多数沙箱检测文件样本所需的时间,这样,恶意代码的行为就不会被沙箱发现。

3) 特殊环境

许多恶意代码都是在特定版本的应用或操作系统中利用特定漏洞执行的,而所有的杀向系统都有预先设定的配置环境,如果沙箱没有安装特定版本的应用,那么有些恶意的Flash文件和PDF文件就不会下载,这时沙箱就检测不到恶意代码。同时,这些恶意的Flash和PDF文件就是恶意代码通过编码手段嵌入到PDF和Flash文件中,进一步逃避沙箱检测,甚至有些恶意代码为了逃避沙箱还会做DLL加载检测,通过计算负载的Hash值来判断是否需要加载。

4.4 数据捕获机制

4.41  Intel VT-x技术

该技术是Intel对于x86架构的支持虚拟化的一套硬件扩展,在虚拟状态下,该技术新增了两种处理器工作模式:跟(Root)操作模式和非根(Non-root)操作模式,Xen运行在跟操作模式下,而GuestOS运行在非根模式下。虚拟机的大部分高权限需要运行于根操作模式,因此当虚拟机需要执行高权限指令时系统会切换到该模式下。Intel VT技术的引入不仅使CPU的运行模式发生了改变,而且使虚拟化系统的其他部分(内存虚拟化、I/O虚拟化等)也发生了巨大变化。

Root操作模式和Non-root操作模式的切换是通过VM Entry、VM Exit等新增的CPU指令来完成的。CPU首先执行VMXON指令启动,进入虚拟化状态。VM Entry指令会让系统从根模式切换到非根模式,相反VM Exit指令会让系统从非根模式切换到根模式。虚拟机中会引起模拟切换的操作有很多,包括内存缺页、中断、异常、控制寄存器的读写等。当这些操作发生时,系统会切换到根模式并调用VMM(Virtual Machine Monitor)来完成相应操作,当操作完成后会再次切换回费根模式并调用虚拟机继续进行其他操作。如果系统需要推出虚拟化状态,则使用VMXOFF指令。根模式与非根模式的切换过程如下图所示:

Intel VT的操作模式切换

由于虚拟化平台会频繁在虚拟机和VMM之间切换,因此为了在VMM层监听系统调用就必须让虚拟机在发生系统调用时产生模式切换操作。在切换到VMM之后,VMM就可以知道虚拟机发生了系统调用,从而进一步获取系统调用和产生调用的进程信息。本系统的负载服务器以开源虚拟机平台Xen4.3版本为基础,采用硬件虚拟化模式运行虚拟机,采用的正是Intel VT技术。

Int3软中断是能够引发虚拟化平台模式切换的因素之一。Int3软中断指令本质上应当归类为异常,它是留给调试工具使用的中断。调试工具运行后会替换Int3的向量,使得中断方式后执行自己的代码。在单步调试程序时,调试工具会将要执行代码的下一条指令改成Int3,这样执行完当前这样代码后就会执行调试工具的代码,而不会继续执行,从而实现单步调试。

4.42 快速系统调用机制

在传统操作系统中,系统内核运行在最高特权级,二应用程序运行在非特权级。而应用程序在运行过程中,不可避免地要执行一些特权操作,如文件操作、系统时间的获取等。显然,位于非特权级的应用程序不可能独立完成这些特权操作,需要系统内核的帮助。为此,操作系统为应用程序提供了一组“特殊”接口,这些由操作系统提供的“特殊”接口就是系统调用,使得应用程序可以获得操作系统内核提供的服务。在x86平台,系统调用通常是通过软中断指令来实现的。目前,新的Intel x86 CPU已经开始支持快速系统调用(Fast System Calls)。快速系统调用采用SYSENTER和SYSEXIT指令,而SYSENTER和SYSEXIT执行之前必须将需要的参数存入MSRS寄存器和通用寄存器中,下表为寄存器存放的内容:

寄存器

存放的内容

SYSENTER_CS_MSR

内核代码段基址

SYSENTER_EIP_MSR

转入内核态后第一条指令状态

SYSENTER_CS_MSR+8

内核堆栈基址

SYSENTER_ESP_MSR

堆栈指针

EAX

EDX-8

系统调用号

系统调用第一个参数地址

4.43 虚拟机自省技术

虚拟机自省技术是VMM层对于虚拟机进行监控的方法。VMM监控有安全性高、隐蔽性强等特点。由于本课题是基于虚拟平台环境下的,因此充分利用自行技术可以为监控蜜网和沙箱中各个节点提供良好的手段。

Ether是一个Xen平台的虚拟机监控方法。Ether根据x86架构的快中断机制,修改SYSENTER_EIP_MSR寄存器的值为一个不存在的地址。当发生系统调用时,系统会发生缺页从而会调用到VMM层中缺页的处理模块。Ether对于该模块进行修改,就可以捕捉到系统发生系统调用。

VMWatcher充分利用Xen平台接口,将被监控虚拟机的内存映射到Dom0空间。根据映射的内存可以利用操作系统内核的数据存放机制解读大量关于操作系统内部的内和信息,如正在运行的应用程序列表等。

LibVMI是一个虚拟机自省的工具库,它的主要功能室能够综合利用虚拟化平台的接口,提供读写正在运行的虚拟机内存的能力。同时可以监听特定寄存器、内存区域的读写操作。数据捕获模块利用LibVMI对虚拟机进行系统调用捕获,具体捕获流程如下图所示:

系统调用捕获流程

数据捕获模块在初始化之后,获取到了内核的入口地址。之后将该地址的指令获取并存储起来,以供将来恢复时使用。为了将INT3软终端注入到内核的入口地址,模块将入口库地之外内存改写为0xCC(Int3指令的汇编代码)。从这以后,虚拟机只要执行到了这个地址的指令就会发生软中断并切换到VMM层,然后监听模块会读取虚拟机EAX、CR3寄存器以获取系统调用号和发生系统调用的进程。

4.4 主动防御平台的体系结构

主动防御平台的目标是构建一个蜜网+沙箱网的综合业务平台,通过网络诱骗技术,伪装和仿真真实系统,诱使攻击者在蜜网平台上做出恶意行为,监视并跟踪其行为,达到对攻击者行为的准确分析和判定。根据各用户使用需求不同,为了达到对蜜网环境的“私人定制”,提供给用户方便的使用接口,并有效地利用资源和设备,本课题采用了虚拟机快速部署机制,可依据用户需要准确搭建蜜网系统部署结构。

为了提供灵活、可扩展的基于虚拟化的管理体系,主动防御平台采用4层体系结构,如下图所示:

主动防御平台体系结构

用户接口层:负责与用户进行交互,提供身份注册、登陆验证等基本操作,对于主动防御平台认证过的用户,则接受用户提出的虚拟机资源请求,如操作系统、内存、磁盘大小等相关虚拟机配置参数,并根据用户权限管理虚拟机资源。用户接口层是主动防御平台与底层资源交互的接口,本课题采用B/S模式。

核心服务层:负责整个平台的业务逻辑调度,行为捕获模块负责捕获蜜网和沙箱网中的虚拟机行为并记录,该模块是在VMM层进行的,因此安全性和隐蔽性都非常高;数据分析模块负责将行为捕获模块得到的数据进行预处理,并调用相关算法进行分析和判定;蜜网和沙箱网管理模块负责接收用户接口层的相关虚拟机部署参数,并对这些参数进行解析,传至基础服务层,同时管理迷惘中各个虚拟机的运行状态,用户根据个人需求可随时启动、关闭、销毁虚拟机。

基础服务层:负责整个平台的基础业务逻辑调度,虚拟机状态监控模块要不断监控底层虚拟机的运行状态,一旦发生任何异常行为,及时向核心服务层报告并记录恶意行为信息;蜜网和沙箱快速部署模块实现虚拟机的快速部署和虚拟机网络自动化配置等操作;资源动态调度模块负责所有增量镜像文件的管理和调度,当主动防御平台需要模拟大规模网络时,如果没有合理的资源调度引擎,则会出现拥塞等问题,影响系统性能。

物理资源层:包括计算、存储、网络等资源,以及平台所以来的虚拟机软件平台Xen,如存储资源用户保存虚拟机镜像模板等。

五、系统的工作流程和效果评估

5.1 主动防御平台安装部署

5.11 蜜网、沙箱快速部署工作流程

蜜网与沙箱的快速部署主要依靠虚拟机的快速部署、虚拟机网络自动化配置等操作模块,用户通过前端网页获得虚拟机参数,项数据库传输配置参数,并且发出快速配置命令,系统后台会根据数据库中的配置参数自动部署特定服务。具体部署工作流程如下图所示:

沙箱和蜜网快速部署工作流程

步骤1:用户以客户端或Web的形式访问主动防御平台;

步骤2:新用户注册、已有用户登录认证等,针对游客、普通用户、管理员等不同权限的用户提供不同的服务,系统将完整地记录用户的个人及服务信息,保证用户服务的安全性;

步骤3:用户登录服务平台后,提交用户需求给平台,并配置虚拟机的各种参数,如操作系统、内存、磁盘大小等,用户可以非常便捷的选择适合自己需要的服务请求;

步骤4:将用户所需的硬件资源相关参数发送至控制模块并进行存储;

步骤5:控制模块负责整个对硬件资源的调度和调整,其中包括存储资源和网络资源等;

步骤6:根据数据库中读取出的用户虚拟机参数配置信息,控制模块从镜像模板库中选择出适合该用户的虚拟机类型的模板;

步骤7:控制模块调用Libvirt API向负载服务器发送控制指令,虚拟机镜像模板文件在虚拟平台上进行实例化,完成虚拟机创建和网络的自动化配置;

步骤8:主动防御平台需要模拟大规模的网络节点,因此在虚拟机运行过程中,需要时刻关注各个虚拟机的运行状态及虚拟资源池的资源状况,在负载较多的情况下,可能会出现一些突发事件,这时就需要采用负载均衡技术等及时处理,保证不会造成用户的损失;

Libvirt是一套免费的支持Linux下主流虚拟化工具的C函数库,能够为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,在用户配置参数并且准备好增量镜像文件后,Libvirt将快速完成部署虚拟机工作。Libvirt在初始化后会远程连接到Xen平台上,根据用户配置信息配置虚拟机初始参数,同时配置相应的增量镜像。在完成所有配置后,向远程Xen平台发出创建命令。如果命令执行成功则程序结束,如果执行不成功则报错。

5.12 数据分析流程

主动防御平台的数据分析流程比较复杂,首先,是因为系统通过一个动态虚拟的网络环境观察、收集到的可疑行为,用户的身份信息不够明确,针对不同的身份系统将采取不同的处理方式;其次,是针对一些常见的攻击行为,系统通过特征库的判别方式就可以进行基本判定,而对于那些未知的攻击则需要通过相关算法、模型来交叉判定;最后需要结合行为判定结果修改安全策略规则知识库,将分析出的行为特征写入知识库,供下次实时的判定。主动防御平台数据分析流程如下图所示:

数据分析流程图

5.2 效果评估

电力网络异常行为自动发现平台(主动防御平台)是一项综合的信息采集、利用的技术,目标是推动电力行业网络安全保障能力建设。为了充分发挥该平台的作用,我们有必要根据应用场景对该平台进行应用效果评估。

5.21 为安全运维人员发现隐患提供技术支撑

通过部署电力网络异常行为自动发现系统,可以辅助运维人员更加快速、准确地发现针对性的恶意行为。如下图所示,安全运维人员可以依靠系统发现工业企业内部某IP承载的PLC设备,在2017年5月3日遭受了来自德国的某IP针对S7comm协议的攻击,运维人员可以首先基于这次恶意行为的危害等级进行风险评估,然后以这次捕获到的恶意代码、发生时间、针对协议、攻击地点、被攻击地点等信息为索引,展开一次应急响应,并针对发现的安全问题开展安全加固工作。

电力网络异常行为自动发现系统助力安全运维

5.22 为安全研究人员深度分析提供有效资源

由于电力网络中所应用的工业协议大部分为私有协议,而且PLC、DCS等工业控制设备也不是常规的x86体系结构,所以对于安全事件的深入技术研究需要捕获大量的恶意样本提供支撑,从而可以:

主动获取工控恶意行为代码(可能包括新型攻击代码)

深度恶意代码研究,抵抗更高级的攻击威胁 (APT)

扩展他们的调查,以确定攻击威胁的相关黑色产业链

对工控恶意行为进行溯源追踪,确认攻击源

推动针对工业控制系统的安全保障建设

利用本课题主动防御系统可以捕获一些恶意行为(可能包含未知行为),如下图所示:

电力网络异常行为分析

经过上下文数据综合分析,得到结论如下(已脱敏):位于香港的节点,于2016年4月13日捕获到一次来自伊朗(IP:*.221.*.*),明显区别于一般性探测的恶意攻击行为。攻击者在成功建立S7协议连接后,执行的S7功能为枚举设备的功能模块信息,之后利用枚举获得的参数再次建立S7协议连接,并执行了CPU功能中PLC停止运行的恶意操作。在成功执行了上述操作后,攻击者可能出于检验攻击效果的目的,分别在1小时和4小时后再次与该节点建立连接,枚举设备的功能模块信息。2016年6月14日伊朗的另外一个地址(IP:*.221.*.*),在使用不同参数枚举了设备的功能模块信息后,执行了三遍不同数据的上传操作,试图恶意修改设备的工作逻辑。

5.32 为管理人员研判安全趋势提供数据支撑

随着中央网信办关键基础设施处的建立、工信部《工业控制系统安全防护指南》、《工控系统安全事件应急响应管理工作指南》,以及公安部《工业控制系统等级保护》征求意见稿等政策法规的陆续颁布施行,工控安全保障体系日益完善。不过在具体落地实施过程当中,不论是各省市主管单位,还是重要行业信息安全责任部门,都没有一套技术平台,可以有效的对自身工业控制网络信息安全风险进行有效监测、评估。工控安全态势感知系统则可以有效的解决这个问题,它可以通过广泛部署于被监测单位DMZ区域的工业探针,对一个时间段以来的工业风险进行有效监测,从而可以辅助政府监管部门以及企业责任部门根据趋势指定安全保障策略,如下图所示:

电力网络异常行为趋势分析

5.24 为决策者推进安全保障建设提供技术平台

如何保障工业企业生产控制网络信息安全,已经成为政府监管部门以及企业的重要任务之一。《国务院关于深化制造业与互联网融合发展的指导意见》(国发[2016]28号)中明确要求:“实施工业控制系统安全保障能力提升工程,制定完善工业信息安全管理等政策法规,健全工业信息安全标准体系,建立工业控制系统安全风险信息采集汇总和分析通报机制,组织开展重点行业工业控制系统信息安全检查和风险评估。组织开展工业企业信息安全保障试点示范,支持系统仿真测试、评估验证等关键共性技术平台建设,推动访问控制、追踪溯源、商业信息及隐私保护等核心技术产品产业化。以提升工业信息安全监测、评估、验证和应急处置等能力为重点,依托现有科研机构,建设国家工业信息安全保障中心,为制造业与互联网融合发展提供安全支撑”。电力网络安全保障体系建设是一个复杂而且浩大的工程,目前各种基础的法律法规、标准指南、技术装备等都在积极快速的完善之中,总体来讲,电力网络安全保障体系结构与传统IT类似,应当建立纵深防御体系,主要体现在:事前、事中、事后三个阶段;以及上位机、下位机、工业网络以及物理环境4个主要方面,下图为本课题基于多年相关领域工作经验总结的电力网络安全保障体系框架:

电力网络安全保障框架

六、总结

电力网络已经成为电力行业生产、管理和发展的重要组成部分。随着国家电网公司“建设坚强的智能电网”、“三集五大”的提出,提高生产效率的同时也会引入网络安全风险。为了应对智能电网面临的网络安全威胁,本文通过广泛梳理分析目前我国电力网络面临的新威胁和隐患,提出了一种基于分布式欺骗技术的异常行为自动发现系统。该系统基于统一调度管理的云蜜网和云沙箱进行规模化探针部署,可以辅助电力网路运维人员及时发现未知异常行为并及时推动应急响应流程,与系统中原有的防火墙、IDS等被动防御措施一同构筑起主被动防御一体的安全保障体系。

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