CN104023034B - 一种基于软件定义网络的安全防御系统及防御方法 - Google Patents
一种基于软件定义网络的安全防御系统及防御方法 Download PDFInfo
- Publication number
- CN104023034B CN104023034B CN201410287800.6A CN201410287800A CN104023034B CN 104023034 B CN104023034 B CN 104023034B CN 201410287800 A CN201410287800 A CN 201410287800A CN 104023034 B CN104023034 B CN 104023034B
- Authority
- CN
- China
- Prior art keywords
- network
- module
- virtual machine
- virtual
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种计算机安全技术领域,特别涉及一种基于软件定义网络的安全防御系统及防御方法,包括:网络控制模块、攻击分析模块、进程检测模块以及网络流量检测模块。网络控制模块拦截虚拟机之间的网络数据包并将获取的流量信息转发至攻击分析模块,攻击分析模块接收来自网络控制模块的虚拟机间的流量信息,并调用进程检测模块检测进程是否可疑,必要时调用网络流量检测模块对可疑流量进行更深层的检测。本发明针对当前虚拟机服务器中用于各虚拟机之间流量转发的虚拟交换机进行扩展,提出一个能够拦截、检测、重定向流量的纵深防御系统,能够达到预防并制止网络集群内虚拟机之间攻击行为的目的。
Description
技术领域
本发明涉及的是一种计算机安全领域的防御系统,具体是一种基于软件定义网络的安全防御系统及防御方法。
背景技术
现有很多着重于检测被感染虚拟机并保护云中其他虚拟机不受其攻击的技术,如防火墙和入侵检测系统(Intrusion Detection System,IDS)。在网络层,传统的网络防火墙和基于网络的入侵检测系统(Network-based Intrusion Detection System,NIDS)建立在“被监控网络内——防火墙外”模式下。此种模式不适用于被感染虚拟机和攻击目标处于同一云主机内部的情况,因为网络防火墙和NIDS搜集的必须是进出被监控网络的信息。在主机层,个人防火墙,HIDS,防病毒和防间谍软件系统等,运行在它们所保护的虚拟机内,使得这些工具很容易被窃取到系统特权的攻击者破坏。故这些传统网络安全技术并不能很好的解决本文所着重解决的问题:及时检测有害虚拟机,并在其试图与其他虚拟机进行连接时予以阻止,防止攻击的发生。
目前,部分研究在虚拟化技术的基础上,发展入侵检测技术来检测网络通讯过程中的恶意行为,保障虚拟机的安全。
Tal Garfinkel等人提出的Livewire系统是一个虚拟化环境下的入侵检测系统,它将系统放置在被监控虚拟机外。它构建出的入侵检测系统不仅保留了主机层技术具备的良好系统状态视图,也为IDS提供了强大的隔离性。然而,Livewire仅提供了对虚拟机硬件的访问控制,仍无法阻挡通过网络流量进行的攻击。
W.Yassin等人提出的一种基于云计算的框架,称作“基于云的入侵检测服务”(Cloud-based Intrusion Detection Service,CBIDS)。CBIDS能够克服传统入侵检测技术的不足,例如传统IDS一般部署在虚拟机内部,易受攻击;或是部署在被监控虚拟机的同一网络内,对其他虚拟机可见,也会增加风险。同时,该框架可以嗅探到网络内任意地方的网络流量,感兴趣的数据包会传递到CBIDS中进行深度检测,然后检测是否存在恶意行为并产生相应的警告。然而,CBIDS仅能检测网络流量并提出警告,却无法对攻击行为作出干预,本身不能阻止攻击发生。
Marcos Laureano等人提出的一种入侵检测方案,从被监控虚拟机外部监控,检测并阻塞来自虚拟机内运行服务的攻击。方案包括了入侵检测机制和响应机制,保证既能检测出攻击行为,也能阻止其发生。此方案中,检测的是主机内虚拟机与外界(主机以外)进行网络通讯过程中的流量,这些网络通讯行为由安装在主机内的防火墙软件进行管理。因此,响应机制中是通过该防火墙软件阻塞虚拟机的端口并断开其与外界的通讯,而不能对同主机内虚拟机与虚拟机间的通讯进行控制。
而Flavio Lombardi等人提出了另一个安全框架——KvmSec,它是内核为Linux的虚拟机的拓展,旨在增加被监控虚拟机的安全性。KvmSec具有以下几个特征:1.对虚拟机透明,从虚拟机很难访问KvmSec;2.能收集虚拟机信息并分析,然后做出相应反应;3.能提供虚拟机与主机之间的安全通信。该框架是部署在Linux的主机上的,而且目前仅支持Linux虚拟机。同时,它所能提供的安全通信是Qemu与虚拟机间,即主机与虚拟机间的安全通信,而不提供主机与主机之间、主机内虚拟机与虚拟机之间的安全通信。
虚拟机监控方面,如高性能轻量级虚拟机监控器Trochilidae可检测虚拟机运行状态,然而侧重点不在于对网络流量的监控上。VMI技术即虚拟机自省技术,是从虚拟机外部分析虚拟机内部状态的一种方法。基于VMI的虚拟机保护方案将安全保护工具和被监控虚拟机予以隔离,因此无需在被监控虚拟机中安装任何代理。这一特点使得该方案抵抗攻击的能力大大增强,不受虚拟机的影响。现有部分研究也采用了此种方法。VMwatcher是另一个利用了VMI技术的系统,可重建虚拟机内部的语义视图,从而检测虚拟机内隐藏的恶意软件。其缺点是,首先它仅能检测出恶意软件的存在,但无法做出反馈;再者,它不能检测使用直接内核对象操作(Direct Kernel Object Manipulation,DKOM)方式的rootkit。Antfarm是一个基于虚拟机监视器实现的在虚拟机外部的监控系统,它通过监控客户机操作系统与其内存管理结构之间的低层次交互来追踪虚拟机内进程的活动。Lycosid是一个基于虚拟机监视器的隐藏进程检测识别的工具。它利用了Antfarm来获取虚拟机内进程的可信视图,然后利用交叉视图方式,与用户级程序列出的进程进行比较,得出隐藏进程。然而由于利用了用户级程序的结果,可能由于此结果被篡改而导致误判。
发明内容
本发明主要是解决现有技术所存在的技术问题;提供了一种通过对虚拟机网络集群内虚拟机之间的可疑流量进行拦截分析,能够达到预防并制止网络集群内虚拟机之间攻击行为的目的的一种基于软件定义网络的安全防御系统及防御方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种基于软件定义网络的安全防御系统,包括若干台虚拟机、虚拟机交换机、虚拟机接口模块、以及一台openflow交换机;其特征在于,还包括设置在受保护虚拟机外部的:
一网络控制模块:某台虚拟机经过虚拟机交换机发起的网络连接请求数据包,会以openflow交换机为介质到达网络控制模块,网络控制模块记录下流量的信息,且虚拟机交换机中没有该网络连接请求相应的流表项;如果数据包的协议高于网络层,则查看目标物理地址是否在虚拟机交换机上有端口,如果有则广播该包,无则生成流表项并转发到目的地;如果数据包协议不高于网络层,则网络控制模块将发送网络连接请求的datapathid、源地址、源端口信息发送出;
一攻击分析模块:接受在数据包协议不高于网络层,由网络控制模块发送的网络连接请求数据包的datapathid、源地址、源端口;并调用进程检测模块和虚拟机接口模块获取发起请求的虚拟机的信息,并将判定结果返回给网络控制模块并由网络控制模块做出对策:
判定一:若判定为恶意流量,则生成流表项并丢包;若判定不是恶意流量则生成流表项并送往原目的地;
判定二:若无法判断是否恶意,则生成流表项并将数据包重定向到网络流量检测模块处;
一进程检测模块:进行进程检测并将进程检测结果发送给攻击分析模块,具体是:首先利用虚拟机接口模块寻找虚拟机内的活动进程链,在此之前,需要找到Windows加载的内核模块链表表头,然后遍历内核模块链表找出ntoskrnl.exe;找到操作系统内核文件ntoskrnl.exe以及其加载到内存中的基地址后,通过分析ntoskrnl.exe的PE文件,在其中的.edata节的导出地址表中得到PsInitialSystemProcess的相对虚拟地址;PsInitialSystemProcess是指向系统进程的EPROCESS结构的指针,其在内存中的虚拟地址VA由VA=RVA+BaseAddress得出;在Windows中,活动进程的EPROCESS结构会相互连接成一个双向循环链表,故得到PsInitialSystemProcess地址并寻找到system的EPROCESS后,即可确定活动进程链,从而分析隐藏进程以及检测网络状态,提供进程相关信息给攻击分析模块;
一网络流量检测模块:接收攻击分析模块发送的数据包,并进行深层检查,若判断为正常流量,则直接正常转发到原目的地并生成对应的流表项,若判定为恶意流量则生成流表项并丢包;本框架的工作在于对网络流量的捕获以及路由控制,而不在于改良现有的流量检测算法,因此本模块直接利用了开源工具snort,将snort运行在in-line模式下,实行数据包检测。
一种基于软件定义网络的安全防御方法,其特征在于,包括以下步骤:
步骤1,在主机外接网络控制模块,使攻击分析模块控制网络控制模块;
步骤2,某台虚拟机发起网络连接请求经过虚拟交换机时,若有相应的流表项则按照流表项转发,若虚拟交换机中没有相应的流表项,则虚拟交换机会将流量发送给网络控制模块;
步骤3,网络控制模块记录下流量的信息并转发给攻击分析模块,攻击分析模块调用进程检测模块来获取发起请求的虚拟机的信息,进程检测模块可以判断发起者虚拟机内所有进程的安全状态;网络控制模块基于开源网络控制器增加了一个自循环避免环节,防止广播包在网络流量检测模块和虚拟交换机之间循环;
步骤4,若攻击分析模块的决策断定发起网络请求的进程是可疑的,则攻击分析模块将会向网络控制模块发起命令,对于该进程或该进程所属的虚拟机所发出的所有流量,都将在网络控制模块的控制下被虚拟交换机送至网络流量检测模块进行判断;若判断结果为安全,则转向原目的地;若攻击分析模块的决策断定发起请求的进程为有害,则直接丢包;在此若只针对该进程发出的流量进行重定向,可以控制整个系统的开销;若针对该进程所属的虚拟机发出的所有流量都进行重定向,将会增大开销来保证系统的安全性。
在上述的一种基于软件定义网络的安全防御方法,网络流量检测模块包括两个被添加到被监控网络所属的虚拟交换机上的虚拟网卡,并设置成混杂模式用来嗅探网络流量;同时,配置网络流量检测模块其中一个虚拟网卡仅作为接收流量的入口,另一个网卡仅作为正常流量的出口;在这种状态下,广播流量易引起自循环,因为广播流量会发送到每个虚拟机中,当此流量进入到网络流量检测模块入口,网络流量检测模块会判断是否正常,若为正常,便让其通过出口又重回到虚拟交换机上重新进行广播;网络流量检测模块包括一个自循环避免步骤,具体操作如下:
如果数据包不是产生于虚拟交换机的端口,则认为该数据包不合法,丢弃;若数据包产生于虚拟交换机的端口且目标物理地址为空,则观察数据包的源地址和目标地址;如果源地址和目标地址同为网络流量监测模块,则认为该包为自循环包,遂丢弃;若不为自循环包,则执行广播操作;此处网络流量检测模块是使用的开源软件snort。
在上述的一种基于软件定义网络的安全防御方法,进程检测模块进行检测的具体方法是:首先利用虚拟机接口模块寻找虚拟机内的活动进程链;在此之前,需要找到Windows加载的内核模块链表表头,然后遍历内核模块链表找出ntoskrnl.exe;找到操作系统内核文件ntoskrnl.exe以及其加载到内存中的基地址后,通过分析ntoskrnl.exe的PE文件,在其中的.edata节的导出地址表中得到PsInitialSystemProcess的相对虚拟地址;PsInitialSystemProcess是指向系统进程的EPROCESS结构的指针,其在内存中的虚拟地址VA可由VA=RVA+BaseAddress计算得出;在Windows中,活动进程的EPROCESS结构会相互连接成一个双向循环链表,故得到PsInitialSystemProcess地址并寻找到system的EPROCESS后,即可确定活动进程链,从而分析隐藏进程以及检测网络状态,提供进程相关信息给给攻击分析模块;包括以下步骤
步骤4.1,当网络控制模块接收到来自虚拟交换机的流量时,会记录下该虚拟交换机的datapath ID以及发送数据包的虚拟机对应在虚拟交换机上的虚拟网卡号和具体发包的进程所使用的端口号;
步骤4.2,OPENFLOW交换机根据datapath ID,确定虚拟交换机所属的虚拟机集群;
步骤4.3,虚拟交换机根据数据包来源的ofport,确定该数据包来源于何虚拟机;
步骤4.4,为了了解具体发送数据包的进程,则调用进程检测模块和虚拟机接口模块,列出该虚拟机内的所有进程,以及进程所使用的网络端口;
步骤4.5,将步骤4.1记录的source port与步骤4.4中的所有进程的网络端口号一一比对,找到符合的进程号pid,再将虚拟机的ID和进程的pid返回给攻击分析器;
步骤4.6,攻击分析模块通过进程检测模块获取该虚拟机以及该进程的安全信息并进行分析,进而在先验知识帮助下做出决策;可疑进程列表和恶意进程列表是可以动态更新的,因为攻击分析模块每次得到进程检测模块的反馈后,若确认某进程可疑或恶意,便会更新这两个列表;
步骤4.7,若判定为恶意进程,则攻击分析模块会终止该进程与其他虚拟机的进程的通讯行为;若可疑则重定向它发出的流量到网络流量检测模块处检查;若正常,则按正常程序进行转发。
因此,本发明具有如下优点:1、利用了网络交换模型OpenFlow构建可编程网络,能够及时捕获可疑或恶意流量,反向定位发起流量的虚拟机和进程,利用隐藏进程检测和进程网络信息获取等安全技术确定流量的安全性,运用网络的可编程性对特定进程发起的流量进行控制,保证网络服务质量的同时,有效阻止了虚拟机网络集群中虚拟机间恶意行为的扩散,保护了系统安全;2、本系统涉及到两个方面的流量监控,一为进程级,一为虚拟机级。进程级别的流量监控相对于虚拟机级别的流量监控来说,可以减少对发送流量的虚拟机的干扰。而虚拟机级别的流量监控则会更广泛的监控整个虚拟机内的进程状况。
附图说明
附图1为本发明的系统架构图。
附图2为网络控制模块工作流程图。
附图3为攻击分析模块的工作流程图。
附图4为进程检测模块和虚拟机接口模块结构图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,本实施例包括:网络控制模块、攻击分析模块、进程检测模块以及网络流量检测模块,其中:网络控制模块拦截虚拟机之间的网络数据包并将获取的流量信息转发至攻击分析模块,攻击分析模块接收来自网络控制模块的虚拟机间的流量信息,并调用进程检测模块检测进程是否可疑,必要时(进程可疑时)调用网络流量检测模块对可疑流量进行更深层的检测。
网络控制模块基于开源流虚拟交换机(Open vSwitch,以下简称ovs),将数据转发功能和路由控制功能分离,增加了对虚拟机之间的数据包进行截获、修改和重定向的功能。网络控制模块基于开源网络控制器增加了一个自循环避免环节,防止广播包在网络流量检测模块和ovs之间循环。
攻击分析模块具有可编程性,攻击分析模块结合进程检测模块,实现调用虚拟机接口模块,检测隐藏进程以及分析进程的网络状态等功能。
网络流量检测模块(网络流量监测模块具体做法是开源软件snort的工作)被放在非特权域,这样做的好处是:1、部署动态化和自适应化:NIDS作为一个虚拟应用部署,重配置并动态迁移到任意网段中会变得相对容易,且无需复杂的网络配置过程。NIDS工作在in-line模式下,检测并过滤恶意流量,但无需将其配置成一个in-line的网关。2、减轻特权域PD的负载:由于特权域PD需要管理和配置内存和硬件资源的访问,如PD的负载过大,会严重影响VM访问内存和硬件资源,故应尽可能减轻PD的负载。NIDS的主要作用是对重定向到此处的流量进行深度数据包检测(Deep Packet Inspection,DPI),这一过程十分耗费资源,故不适合放在PD内。
另外,NIDS自身的安全也需要考虑在内。尽管NIDS处于UPD内,但是基于以下假设,仍然可以认为它是安全的:
1、假设每台云主机的管理器Hypervisor是受保护的,每个VM都能完全相互隔离。恶意的VM不能通过Hypervisor攻击NIDS。
2、尽管NIDS处于UPD中,能够从PD中被访问,但只有云管理员才能在其中维护软件的安装行为以及运行管理任务。假设云管理员是可信的,那么NIDS仅能由云管理员从PD安全的访问,未授权者无法访问。
NIDS对于网络内的其他VM是不可见的,仅有NC可以通过OVS和OFS的控制通道去控制和主导NIDS的行为。而控制通道是与OVS、OFS传输网络流量的数据通道相互分离的,故控制通道的安全性值得信任。
本实施例通过以下方式进行工作:
1、当一个网络连接请求被虚拟机网络集群中的一台虚拟机创建,该请求的流量会到达ovs并等候处理。由于这是个新的连接,故ovs内不存在相应的流表项。此时,ovs会将流量发送给网络控制模块,向网络控制模块询问处理方式。由于网络控制模块在主机外部,与该主机以网络交换机(OpenFlow Switches,OFS)相连接,故这一过程需要经过OFS。这里的网络控制模块是基于开源软件floodlight0.9改编的,具有可编程性,可以根据使用者的选择对流量的去向进行操控。
2、网络控制模块的工作流程如图2所示。当流量被成功发送到网络控制模块后,网络控制模块记录下流量的信息。如果数据包的协议高于网络层,则查看目标物理地址是否在ovs上有端口,如果有则广播该包,无则生成流表项并转发到目的地。如果数据包协议不高于网络层,则网络控制模块将发送流量的datapath id、源地址、源端口发送给攻击分析模块,由攻击分析模块调用进程检测模块和虚拟机模块获取发起请求的虚拟机的信息,并做出决策,若判定为恶意流量,则生成流表项并丢包。若无法判断是否恶意,则生成流表项并重定向到网络流量检测模块处进行深层检查。若判断为正常流量,则直接正常转发到原目的地并生成对应的流表项。
3、攻击分析模块的流程如图3所示。攻击分析模块收到来自网络控制模块的如何转发流量的请求,会定位引起警报的虚拟机和具体进程并检测其安全状态,从而判断对于流量请求的具体处理命令。攻击分析模块将命令传递给网络控制模块,由网络控制模块控制ovs具体执行流量处理操作,同时将该操作写进流表。这种处理方式可以在恶意虚拟机试图与其他虚拟机建立连接的时候及时阻断连接,保证其他虚拟机不会受到威胁。由于可疑流量需要被重定向到网络流量检测模块中进行深层数据包检测,网络流量检测模块的两个虚拟网卡会被添加到被监控网络所属的ovs上,并设置成混杂模式用来嗅探网络流量。同时,配置网络流量检测模块其中一个虚拟网卡仅作为接收流量的入口,另一个网卡仅作为正常流量的出口。在这种状态下,广播流量易引起自循环,因为广播流量会发送到每个虚拟机中,当此流量进入到网络流量检测模块入口,网络流量检测模块会判断是否正常,若为正常,便让其通过出口又重回到ovs上重新进行广播。因此,需要特别处理这种情况,避免引起自循环,耗费网络资源。自循环避免算法具体操作如下:如果数据包不是产生于ovs的端口,则认为该数据包不合法,丢弃。若数据包产生于ovs的端口且目标物理地址为空(为广播数据包),则观察数据包的源地址和目标地址。如果源地址和目标地址同为网络流量监测模块,则认为该包为自循环包,遂丢弃。若不为自循环包,则执行广播操作。此处网络流量检测模块是使用的开源软件snort。
4、进程检测模块和虚拟机接口模块结构如图4。在进程检测过程中,进程检测模块首先利用虚拟机接口模块寻找虚拟机内的活动进程链。在此之前,需要找到Windows加载的内核模块链表表头,然后遍历内核模块链表找出ntoskrnl.exe。找到操作系统内核文件ntoskrnl.exe以及其加载到内存中的基地址后,通过分析ntoskrnl.exe的PE文件,在其中的.edata节的导出地址表中得到PsInitialSystemProcess的相对虚拟地址。PsInitialSystemProcess是指向系统进程的EPROCESS结构的指针,其在内存中的虚拟地址VA可由VA=RVA+BaseAddress计算得出。在Windows中,活动进程的EPROCESS结构会相互连接成一个双向循环链表,故得到PsInitialSystemProcess地址并寻找到system的EPROCESS后,即可确定活动进程链,从而分析隐藏进程以及检测网络状态,提供进程相关信息给给攻击分析模块。
以下是进程监控的具体操作步骤:
1,当网络控制模块接收到来自ovs的流量时,会记录下该ovs的datapath ID以及发送数据包的虚拟机对应在ovs上的虚拟网卡号(ofport)和具体发包的进程所使用的端口号(source port)。
2,OFS根据datapath ID,确定ovs所属的虚拟机集群。
3,ovs根据数据包来源的ofport,确定该数据包来源于何虚拟机。
4,为了了解具体发送数据包的进程,则调用进程检测模块和虚拟机接口模块,列出该虚拟机内的所有进程(包括隐藏进程),以及进程所使用的网络端口。
5,将1)记录的source port与4)中的所有进程的网络端口号一一比对,找到符合的进程号pid,再将虚拟机的ID和进程的pid返回给攻击分析器。
6,攻击分析模块通过进程检测模块获取该虚拟机以及该进程的安全信息并进行分析,进而在先验知识(可疑进程列表、恶意进程列表)帮助下做出决策。可疑进程列表和恶意进程列表是可以动态更新的,因为攻击分析模块每次得到进程检测模块的反馈后,若确认某进程可疑或恶意,便会更新这两个列表。
7,若判定为恶意进程,则攻击分析模块会终止该进程与其他虚拟机的进程的通讯行为;若可疑则重定向它发出的流量到网络流量检测模块处检查;若正常,则按正常程序进行转发。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (4)
1.一种基于软件定义网络的安全防御系统,包括若干台虚拟机、虚拟交换机、虚拟机接口模块、以及一台openflow交换机;其特征在于,还包括设置在受保护虚拟机外部的:
一网络控制模块:某台虚拟机经过虚拟交换机发起的网络连接请求数据包,会以openflow交换机为介质到达网络控制模块,网络控制模块记录下流量的信息,且虚拟交换机中没有该网络连接请求相应的流表项;如果数据包的协议高于网络层,则查看目标物理地址是否在虚拟交换机上有端口,如果有则广播该包,无则生成流表项并转发到目的地;如果数据包协议不高于网络层,则网络控制模块将发送网络连接请求的datapath id、源地址、源端口信息发送出;
一攻击分析模块:接受在数据包协议不高于网络层时,由网络控制模块发送的网络连接请求数据包的datapath id、源地址、源端口;并调用进程检测模块和虚拟机接口模块获取发起请求的虚拟机的信息,并将判定结果返回给网络控制模块并由网络控制模块做出对策:
判定一:若判定为恶意流量,则生成流表项并丢包;若判定不是恶意流量则生成流表项并送往原目的地;
判定二:若无法判断是否恶意,则生成流表项并将数据包重定向到网络流量检测模块处;
一进程检测模块:进行进程检测并将进程检测结果发送给攻击分析模块,具体是:首先利用虚拟机接口模块寻找虚拟机内的活动进程链,在此之前,需要找到Windows加载的内核模块链表表头,然后遍历内核模块链表找出ntoskrnl.exe;找到操作系统内核文件ntoskrnl.exe以及其加载到内存中的基地址后,通过分析ntoskrnl.exe的PE文件,在其中的.edata节的导出地址表中得到PsInitialSystemProcess的相对虚拟地址;
PsInitialSystemProcess是指向系统进程的EPROCESS结构的指针,其在内存中的虚拟地址VA由VA=RVA+BaseAddress得出;在Windows中,活动进程的EPROCESS结构会相互连接成一个双向循环链表,故得到PsInitialSystemProcess地址并寻找到system的EPROCESS后,即可确定活动进程链,从而分析隐藏进程以及检测网络状态,提供进程相关信息给攻击分析模块;
一网络流量检测模块:接收攻击分析模块发送的数据包,并进行深层检查,若判断为正常流量,则直接正常转发到原目的地并生成对应的流表项,若判定为恶意流量则生成流表项并丢包;本框架的工作在于对网络流量的捕获以及路由控制,而不在于改良现有的流量检测算法,因此本模块直接利用了开源工具snort,将snort运行在in-line模式下,实行数据包检测。
2.一种基于软件定义网络的安全防御方法,其特征在于,包括以下步骤:
步骤1,在主机外接网络控制模块,使攻击分析模块控制网络控制模块;
步骤2,某台虚拟机发起网络连接请求经过虚拟交换机时,若有相应的流表项则按照流表项转发,若虚拟交换机中没有相应的流表项,则虚拟交换机会将流量发送给网络控制模块;
步骤3,网络控制模块记录下流量的信息并转发给攻击分析模块,攻击分析模块调用进程检测模块来获取发起请求的虚拟机的信息,进程检测模块可以判断发起者虚拟机内所有进程的安全状态;网络控制模块基于开源网络控制器增加了一个自循环避免环节,防止广播包在网络流量检测模块和虚拟交换机之间循环;
步骤4,若攻击分析模块的决策断定发起网络请求的进程是可疑的,则攻击分析模块将会向网络控制模块发起命令,对于该进程或该进程所属的虚拟机所发出的所有流量,都将在网络控制模块的控制下被虚拟交换机送至网络流量检测模块进行判断;若判断结果为安全,则转向原目的地;若攻击分析模块的决策断定发起请求的进程为有害,则直接丢包;在此若只针对该进程发出的流量进行重定向,可以控制整个系统的开销;若针对该进程所属的虚拟机发出的所有流量都进行重定向,将会增大开销来保证系统的安全性。
3.根据权利要求2所述的一种基于软件定义网络的安全防御方法,其特征在于,网络流量检测模块包括两个被添加到被监控网络所属的虚拟交换机上的虚拟网卡,并设置成混杂模式用来嗅探网络流量;同时,配置网络流量检测模块其中一个虚拟网卡仅作为接收流量的入口,另一个网卡仅作为正常流量的出口;在这种状态下,广播流量易引起自循环,因为广播流量会发送到每个虚拟机中,当此流量进入到网络流量检测模块入口,网络流量检测模块会判断是否正常,若为正常,便让其通过出口又重回到虚拟交换机上重新进行广播;网络流量检测模块包括一个自循环避免步骤,具体操作如下:
如果数据包不是产生于虚拟交换机的端口,则认为该数据包不合法,丢弃;若数据包产生于虚拟交换机的端口且目标物理地址为空,则观察数据包的源地址和目标地址;如果源地址和目标地址同为网络流量检测模块,则认为该包为自循环包,遂丢弃;若不为自循环包,则执行广播操作;此处网络流量检测模块是使用的开源软件snort。
4.根据权利要求2所述的一种基于软件定义网络的安全防御方法,其特征在于,进程检测模块进行检测的具体方法是:首先利用虚拟机接口模块寻找虚拟机内的活动进程链;在此之前,需要找到Windows加载的内核模块链表表头,然后遍历内核模块链表找出ntoskrnl.exe;找到操作系统内核文件ntoskrnl.exe以及其加载到内存中的基地址后,通过分析ntoskrnl.exe的PE文件,在其中的.edata节的导出地址表中得到PsInitialSystemProcess的相对虚拟地址;PsInitialSystemProcess是指向系统进程的EPROCESS结构的指针,其在内存中的虚拟地址VA可由VA=RVA+BaseAddress计算得出;在Windows中,活动进程的EPROCESS结构会相互连接成一个双向循环链表,故得到PsInitialSystemProcess地址并寻找到system的EPROCESS后,即可确定活动进程链,从而分析隐藏进程以及检测网络状态,提供进程相关信息给攻击分析模块;包括以下步骤
步骤4.1,当网络控制模块接收到来自虚拟交换机的流量时,会记录下该虚拟交换机的datapath id以及发送数据包的虚拟机对应在虚拟交换机上的虚拟网卡号ofport和具体发包的进程所使用的端口号source port;
步骤4.2,OPENFLOW交换机根据datapath id,确定虚拟交换机所属的虚拟机集群;
步骤4.3,虚拟交换机根据数据包来源的ofport,确定该数据包来源于何虚拟机;
步骤4.4,为了了解具体发送数据包的进程,则调用进程检测模块和虚拟机接口模块,列出该虚拟机内的所有进程,以及进程所使用的网络端口;
步骤4.5,将步骤4.1记录的source port与步骤4.4中的所有进程的网络端口号一一比对,找到符合的进程号pid,再将虚拟机的ID和进程的pid返回给攻击分析模块;
步骤4.6,攻击分析模块通过进程检测模块获取该虚拟机以及该进程的安全信息并进行分析,进而在先验知识帮助下做出决策;可疑进程列表和恶意进程列表是可以动态更新的,因为攻击分析模块每次得到进程检测模块的反馈后,若确认某进程可疑或恶意,便会更新这两个列表;
步骤4.7,若判定为恶意进程,则攻击分析模块会终止该进程与其他虚拟机的进程的通讯行为;若可疑则重定向它发出的流量到网络流量检测模块处检查;若正常,则按正常程序进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410287800.6A CN104023034B (zh) | 2014-06-25 | 2014-06-25 | 一种基于软件定义网络的安全防御系统及防御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410287800.6A CN104023034B (zh) | 2014-06-25 | 2014-06-25 | 一种基于软件定义网络的安全防御系统及防御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104023034A CN104023034A (zh) | 2014-09-03 |
CN104023034B true CN104023034B (zh) | 2017-05-10 |
Family
ID=51439604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410287800.6A Active CN104023034B (zh) | 2014-06-25 | 2014-06-25 | 一种基于软件定义网络的安全防御系统及防御方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104023034B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301812B (zh) * | 2014-09-19 | 2020-06-30 | 中国电力科学研究院信息通信研究所 | 一种光网络系统和网络功能虚拟化方法 |
CN105704087B (zh) * | 2014-11-25 | 2018-12-11 | 甘肃省科学技术情报研究所 | 一种基于虚拟化实现网络安全管理的装置及其管理方法 |
CN107888617A (zh) * | 2014-12-17 | 2018-04-06 | 蔡留凤 | 软件定义的网络架构的工作方法 |
CN108040057B (zh) * | 2014-12-17 | 2021-08-06 | 江西武大扬帆科技有限公司 | 适于保障网络安全、网络通信质量的sdn系统的工作方法 |
CN107888618A (zh) * | 2014-12-17 | 2018-04-06 | 蔡留凤 | 解决网络安全的DDoS威胁过滤SDN系统的工作方法 |
CN105871787A (zh) * | 2015-01-22 | 2016-08-17 | 中国移动通信集团公司 | 云虚拟网络中的入侵防御方法、装置、网络设备和系统 |
CN107211013A (zh) * | 2015-01-28 | 2017-09-26 | 诺基亚通信公司 | 软件定义联网控制器 |
CN104683333A (zh) * | 2015-02-10 | 2015-06-03 | 国都兴业信息审计系统技术(北京)有限公司 | 基于sdn的实现异常流量拦截的方法 |
CN104732145B (zh) * | 2015-03-31 | 2018-04-13 | 北京奇虎科技有限公司 | 一种虚拟机中的寄生进程检测方法和装置 |
CN104994094B (zh) * | 2015-07-01 | 2016-11-30 | 北京奇虎科技有限公司 | 基于虚拟交换机的虚拟化平台安全防护方法、装置和系统 |
EP3366020B1 (en) * | 2015-10-20 | 2021-02-24 | Hewlett-Packard Enterprise Development LP | Sdn controller assisted intrusion prevention systems |
CN105320884A (zh) * | 2015-11-02 | 2016-02-10 | 南京安贤信息科技有限公司 | 虚拟机的安全防护方法及系统 |
CN105516129A (zh) * | 2015-12-04 | 2016-04-20 | 重庆邮电大学 | 基于sdn技术实现僵尸网络控制信道阻断的方法和装置 |
CN105718303A (zh) * | 2016-01-20 | 2016-06-29 | 国家电网公司 | 虚拟机异常检测方法、装置及系统 |
CN105681313B (zh) * | 2016-01-29 | 2018-11-09 | 博雅网信(北京)科技有限公司 | 一种针对虚拟化环境的流量检测系统及方法 |
CN107608752B (zh) * | 2016-07-12 | 2020-10-16 | 中国科学院信息工程研究所 | 基于虚拟机自省的威胁情报响应与处置方法及系统 |
RU2634168C1 (ru) * | 2016-07-29 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Система и способ блокирования доступа к защищаемым приложениям |
CN106357622B (zh) * | 2016-08-29 | 2019-06-14 | 北京工业大学 | 基于软件定义网络的网络异常流量检测防御系统 |
CN106572103B (zh) * | 2016-10-28 | 2019-12-13 | 桂林电子科技大学 | 一种基于sdn网络架构的隐藏端口检测方法 |
CN106533942B (zh) * | 2016-11-30 | 2019-06-14 | 北京邮电大学 | 一种基于sdn的数据处理方法及装置 |
CN108270722B (zh) * | 2016-12-30 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种攻击行为检测方法和装置 |
CN106961387B (zh) * | 2017-03-30 | 2020-05-01 | 中国科学院信息工程研究所 | 一种基于转发路径自迁移的链路型DDoS防御方法及系统 |
CN107332850A (zh) * | 2017-07-06 | 2017-11-07 | 深圳互联先锋科技有限公司 | 网络安全防御的方法及装置 |
CN107483287B (zh) * | 2017-08-17 | 2021-07-20 | 郑州云海信息技术有限公司 | 一种自动监测网口数据包收发故障系统及方法 |
CN109510795A (zh) * | 2017-09-14 | 2019-03-22 | 蓝盾信息安全技术股份有限公司 | 一种基于网络隔离设备的智能ddos防御技术 |
CN108156079B (zh) * | 2017-12-29 | 2021-08-13 | 深信服科技股份有限公司 | 一种基于云服务平台的数据包转发系统及方法 |
CN108768960B (zh) * | 2018-05-10 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 病毒检测方法、装置、存储介质及计算机设备 |
CN108989147A (zh) * | 2018-07-16 | 2018-12-11 | 西安电子科技大学 | 基于fpga的sdn网络流量测量系统及方法 |
CN109409089B (zh) * | 2018-09-28 | 2021-11-23 | 西安电子科技大学 | 一种基于虚拟机自省的Windows加密型勒索软件检测方法 |
CN109450918B (zh) * | 2018-11-28 | 2021-05-04 | 南京理工大学 | 基于软件定义网络的IoT设备安全防护系统 |
CN112578694A (zh) * | 2019-09-27 | 2021-03-30 | 西门子股份公司 | 针对一个工业控制器的监测系统、方法、装置和计算机可读介质 |
CN113660252B (zh) * | 2021-08-12 | 2023-05-16 | 江苏亨通工控安全研究院有限公司 | 主动防御系统及方法 |
CN113992428B (zh) * | 2021-11-29 | 2024-02-09 | 天融信雄安网络安全技术有限公司 | 容器环境下的入侵防御方法及装置、电子设备、存储介质 |
CN117150453B (zh) * | 2023-11-01 | 2024-02-02 | 建信金融科技有限责任公司 | 网络应用检测方法、装置、设备、存储介质及程序产品 |
CN117729055A (zh) * | 2024-02-08 | 2024-03-19 | 中汽智联技术有限公司 | 一种基于Linux进程的网络流量统计的方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012130264A1 (en) * | 2011-03-29 | 2012-10-04 | Nec Europe Ltd. | User traffic accountability under congestion in flow-based multi-layer switches |
CN103051557A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 数据流处理方法及系统、控制器、交换设备 |
CN103152361A (zh) * | 2013-03-26 | 2013-06-12 | 华为技术有限公司 | 访问控制方法及设备、系统 |
CN103609070A (zh) * | 2012-10-29 | 2014-02-26 | 华为技术有限公司 | 网络流量检测方法、系统、设备及控制器 |
CN103684922A (zh) * | 2013-12-23 | 2014-03-26 | 蓝盾信息安全技术股份有限公司 | 基于sdn网络的出口信息保密检查检测平台系统及检测方法 |
-
2014
- 2014-06-25 CN CN201410287800.6A patent/CN104023034B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012130264A1 (en) * | 2011-03-29 | 2012-10-04 | Nec Europe Ltd. | User traffic accountability under congestion in flow-based multi-layer switches |
CN103609070A (zh) * | 2012-10-29 | 2014-02-26 | 华为技术有限公司 | 网络流量检测方法、系统、设备及控制器 |
CN103051557A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 数据流处理方法及系统、控制器、交换设备 |
CN103152361A (zh) * | 2013-03-26 | 2013-06-12 | 华为技术有限公司 | 访问控制方法及设备、系统 |
CN103684922A (zh) * | 2013-12-23 | 2014-03-26 | 蓝盾信息安全技术股份有限公司 | 基于sdn网络的出口信息保密检查检测平台系统及检测方法 |
Non-Patent Citations (3)
Title |
---|
A Traffic-Aware Controller Design for Next Generation Software Defined Networks;Zemre Arslan;《2013First International Black Sea Conference on Communications and Networking(BlackSeaCom)》;20130630;全文 * |
SDN架构及安全性研究;王淑玲;《电信科学》;20130320;全文 * |
VSA和SDS_两种SDN网络安全架构的研究;裘晓峰;《小型微型计算机系统》;20131031;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104023034A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104023034B (zh) | 一种基于软件定义网络的安全防御系统及防御方法 | |
US10311235B2 (en) | Systems and methods for malware evasion management | |
US10454950B1 (en) | Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks | |
KR101737726B1 (ko) | 네트워크 트래픽에서의 불일치들을 검출하기 위한 하드웨어 자원들의 사용에 의한 루트킷 검출 | |
US7549166B2 (en) | Defense mechanism for server farm | |
US20170149804A1 (en) | Methods and systems for malware host correlation | |
Yassin et al. | A cloud-based intrusion detection service framework | |
US10033745B2 (en) | Method and system for virtual security isolation | |
Sandhu et al. | A survey of intrusion detection & prevention techniques | |
US20150052520A1 (en) | Method and apparatus for virtual machine trust isolation in a cloud environment | |
CN107612924B (zh) | 基于无线网络入侵的攻击者定位方法及装置 | |
EP3289476A1 (en) | Computer network security system | |
US10142343B2 (en) | Unauthorized access detecting system and unauthorized access detecting method | |
CN107465702B (zh) | 基于无线网络入侵的预警方法及装置 | |
CN107579997A (zh) | 无线网络入侵检测系统 | |
CN107566401B (zh) | 虚拟化环境的防护方法及装置 | |
CN104866407A (zh) | 一种虚拟机环境下的监控系统及监控方法 | |
Achbarou et al. | Securing cloud computing from different attacks using intrusion detection systems | |
Win et al. | Detection of malware and kernel-level rootkits in cloud computing environments | |
KR101768079B1 (ko) | 침입탐지 오탐 개선을 위한 시스템 및 방법 | |
CN113411295A (zh) | 基于角色的访问控制态势感知防御方法及系统 | |
CN108345795A (zh) | 用于检测和分类恶意软件的系统和方法 | |
Chung et al. | Non-intrusive process-based monitoring system to mitigate and prevent VM vulnerability explorations | |
CN113660222A (zh) | 基于强制访问控制的态势感知防御方法及系统 | |
KR101767591B1 (ko) | 침입탐지 오탐 개선을 위한 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |