一种基于sdn的反病毒系统的制作方法

文档序号:10538745阅读:880来源:国知局
一种基于sdn的反病毒系统的制作方法
【专利摘要】本发明涉及一种基于SDN的反病毒系统,包含以下几个部分:基础设施层、安全控制器、流表转发规则模块、日志生成器、接口抽象模块、南向接口、北向接口、用户APP。上述一种基于SDN的反病毒系统,其实施流程包含以下步骤:(1)动态注入代码识别与封装;(2)安全控制器策略初始化;(3)匹配算法模块进行检测;(4)虚拟机检测模块分析;(5)日志生成器模块生成日志数据;(6)接口抽象模块与应用层通信;(7)日志报告模块生成可视化表格给用户。采用本反病毒系统,通过对嵌入式设备所执行的动态注入进程的代码进行二级检测,可以在既保证效率的同时又能够准确检测出一些蠕虫病毒的攻击行为。
【专利说明】
一种基于SDN的反病毒系统
技术领域
[0001]本发明涉及一种基于SDN的反病毒系统,属于通信与网络安全领域。
【背景技术】
[0002] 软件定义网络(Sof tware Defined Network,SDN),是Emulex网络一种新型网络 创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与 数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。本发明 所述SDN使用0NF组织给出的定义,其基本理念为:将网络控制功能与转发功能分离,实现控 制可编程。基于以上理念,0NF将SDN划分为三个部分,即:应用层、控制层、基础设施层。其 中,应用层通过北向接口与控制层通信,控制层通过南向接口与基础设施层通信。
[0003] Hassidim A,Raz D等人已经指出,流检测与分析是软件定义网络架构下一种有效 的攻击检测手段。相比于TCP/IP网络基于数据包进行的检测,基于流的检测拥有更好的细 粒度和可控性。
[0004] 反病毒虚拟机的工作原理是对模拟执行一段代码的过程予以记录,交由检测系统 或用户判断后表明该段代码是否为恶意。其实现方法有两种,一种是人工对代码进行单步 或断点调试,观察执行过程中的异常变化;第二种是通过软件模拟一颗真实CPU,记录执行 过程后交由软件所支撑的一套检测系统进行判断后得出结论。本发明所述反病毒虚拟机采 用后一种技术。
[0005]目前在软件定义网络的视阈下对网络设备易遭受的攻击进行防范的成果不多,且 大多成果不是无法与基础设施层的网络设备进行直接的交互,就是将基础设施层与控制层 相混合,偏离了 SDN的设计初衷,也无法对网络设备及时采取进一步的防范措施。

【发明内容】

[0006] 本发明的目的在于提供一种基于SDN的反病毒系统,以便解决TCP\IP网络下无法 实现对网络设备进行反病毒防护的问题,同时也实现SDN网络下,用户APP与基础设施层的 网络安全设备的交互。本发明将匹配算法模块与反病毒虚拟机模块进行整合,改进了传统 的安全控制器,实现了对病毒行为的二级检测与反制。
[0007] 为了实现上述目的,本发明的技术方案如下。
[0008] 一种基于SDN的反病毒系统,包含以下几个部分:基础设施层、安全控制器、流表转 发规则模块、日志生成器、接口抽象模块、南向接口、北向接口、用户APP,其中:
[0009] 所述基础设施层包含网络设备以及可池化的网络安全设备,网络设备负责接受流 表转发规则模块的控制进行数据包的转发、可池化的网络安全设备包括但不限于入侵检测 系统、访问控制系统等传统安全设备;可池化之后将统一向上提供API接口供用户APP调用 并实施特定的行为;
[0010] 所述安全控制器包含匹配算法模块与反病毒虚拟机模块,网络设备将动态注入进 程的代码封装后输入安全控制器,首先由匹配算法模块进行检测,若发现异常,则要求流表 转发规则对网络设备下不予执行的命令,否则继续向上输入给反病毒虚拟机模块;反病毒 虚拟机模块予以测试后若发现异常,同样要求流表转发规则对网络设备下不予执行的命 令,否则要求网络设备予以执行;所述匹配算法模块通过算法返回值判断注入代码是否为 恶意。以蠕虫中较常利用的缓冲区溢出为例,匹配算法的检测思路为:正常注入进程的代码 应当只具有"读"与"执行"的属性,而恶意代码会额外具有"写"属性;除此之外,正常注入进 程的代码一般能找到其在可执行文件上的映射,而恶意代码则不会有这样的特性;事实上, 匹配算法模块可以对SQL注入等其他web攻击手段予以检测,从而形成检测队列。这也是该 系统具有一定的可拓展性的原因;所述反病毒虚拟机模块,通过软件模拟一个真实的CPU并 支撑一个检测系统;模拟CPU所虚拟的包括但不限于真实环境下CPU的物理端口、内存空间 以及寄存器等要素,其将作为输入数据的注入代码模拟执行后,将执行结果予以记录并实 时传递给检测系统,检测系统负责判断执行过程中是否存在代码的自我复制、异常调用系 统函数、异常跳转、异常中断等情形,如果有,认定为恶意代码;
[0011] 所述流表转发规则模块接受安全控制器的控制,若安全控制器认定注入进程的该 段代码为恶意,则命令基础设施层的网络设备不予执行,否则放行;
[0012] 所述日志生成器在安全控制器判断存在恶意注入的代码后,接受安全控制器的输 入数据,包括但不限于动态注入的代码段、注入时间、认定时间、认定模块代号、认定的恶意 类型、注入主机IP与MAC信息;接受数据后,日志生成器将数据以一定规范进行封装,输出给 接口抽象模块,并最终传输给用户APP;
[0013] 所述接口抽象模块,负责将日志生成器封装的数据进行解封装,并重新根据客户 端的操作系统类型进行二次封装,以传输给不同操作系统下的用户APP;
[0014] 所述南向接口根据OpenFlow协议,将动态注入网络设备的代码进行封装,传递给 安全控制器中的匹配算法模块;OpenFlow不是唯一选择,能根据需要修改;
[0015] 所述北向接口根据XML协议,将接口抽象模块的输出数据传递给用户APP的日志报 告模块;XML不是唯一选择,能根据情况修改;
[0016] 所述用户APP包含一个日志报告模块,负责将接口抽象模块的数据进行解释,并重 新组织为用户可读的数据;数据包括但不限于:是否发现动态注入的恶意代码,注入时间, 攻击类型,注入主机,具体代码;用户APP能通过一键防护对注入代码的主机进行访问控制; 所述一键防护,由用户APP调用可池化的基础实施层的网络安全设备API,如IDS,ACL,从而 及时防护可能正在遭受攻击的网络设备。
[0017] 上述一种基于SDN的反病毒系统,其实施流程包含以下步骤:
[0018] (1)动态注入代码识别与封装:基础设施层的网络设备首先需要对内部执行代码 与动态注入进程的代码进行识别,区分之后,根据OpenFlow规范予以封装,传输给控制层的 匹配算法模块进行判别;当基础设施层与控制层之间的通信较为繁忙,优先保障动态注入 代码的传输;为了避免这一步骤本身遭到攻击,一方面,对所有区分出来的动态注入代码进 行暂不执行操作,保存于设备的缓存中,除非明确收到经过流表转发规则模块加密后的命 令;
[0019] (2)安全控制器策略初始化:初始化之后的策略为:了={1,1,?4=[&1, &2]},其 含义为:当事件I发生的时候,将解封装后的代码送至模块Μ进行检验,如果符合模式P,则执 行动作al,否则执行动作a2。这里,事件I为:控制器接收到封装后的代码段。模块Μ为匹配算 法模块。模式P为算法返回值为True,动作al为触发流表转发规则Oderl,动作a2为更新安全 策略。
[0020] 所述更新策略为将安全策略T更新为Τ1 = {Γ,M',P' = [pl,p2......pn],A' =
[al,a3]},含义为:事件Γ已经发生,将解封装后的代码送至模块M'进行反病毒虚拟机检 验。事件Γ为安全策略已更新,模块Μ'即反病毒虚拟机检测模块。将模式Ρ定义为多种是为 了适应算法队列中所检测攻击类型的多样化。动作a3为触发流表转发规则0der2。
[0021] 所述流表转发规则Oderl为:命令基础设施层的网络设备不予执行缓存中的注入 代码段;所述流表转发规则0der2为:命令基础设施层的网络设备执行注入代码段。
[0022] (3)匹配算法模块进行检测:匹配算法模块对注入的代码段进行分析。该模块的核 心是一个算法队列,代码段经过每一个算法后都会返回一个值,记为V1、V2......Vn。将这 些值进行逻辑或操作,一旦发现逻辑结果为True就停止分析。根据步骤(2)所述,触发流表 转发规则Oderl。否则一直分析到算法队列的尾部,并执行动作a2。
[0023] 对算法队列中的每一个算法予以编号,因为不同的算法对应不同攻击类型的检 测,所以可以通过将算法返回值为True的编号告知日志系统以判断攻击类型。由于不同攻 击类型给网络设备造成的影响有大小,对算法在队列中的顺序进行安排,从而实现高危攻 击的最快响应。
[0024]步骤(3)中的算法队列包括但不限于缓冲区溢出检测算法、SQL注入检测算法、 CSRF攻击检测算法。根据不同的环境与需要可以进行拓展与修改。以缓冲区溢出检测算法 为例,可以将伪代码整理如下:
[0025]
[0026] (4)虚拟机检测模块分析:步骤(3)中所述算法队列返回值为False时进入步骤 (4),虚拟机系统通过一颗模拟CPU执行注入代码段后,若发现执行过程中存在代码的自我 复制、异常调用系统函数、异常跳转、异常中断等情形便可认为此段注入代码属于恶意,应 当不予执行。其结果为触发安全策略了2={1",1",产4' = [&4,&5]}。其中,事件1"为:虚拟 机检测模块即将把代码与一些其他数据封装后发送给日志生成器模块,所以,M"自然为日 志生成器模块。P"为日志生成器模块解析发送过来的数据后,反馈一个True值给虚拟机检 测模块,动作a4为要求流表转发模块命令网络设备不予执行注入的代码并让日志生成器模 块继续工作,动作a5为要求流表转发模块让网络设备执行这些代码并让日志生成器模块停 止对数据的进一步处理.
[0027] (5)日志生成器模块生成日志数据:步骤(4)执行了动作a4后进入步骤(5),日志生 成器模块根据步骤(4)的安全控制器输出的数据,整理后形成日志信息并加以封装,传输给 接口抽象层。
[0028] (6)接口抽象模块与应用层通信:步骤(5)中传递给接口抽象模块的数据根据XML 协议封装后传递给用户APP的日志报告模块。
[0029] (7)日志报告模块生成可视化表格给用户:日志报告木块根据解封装后的数据按 照一定规范予以组织,形成用户可读的表格给客户端;用户APP中设置一键防护功能,其工 作流程为:从日志表格中提取上报的恶意注入代码的主机的MAC地址,通过可池化的网络安 全设备所提供的API,将这些主机加入ACL的访问控制对象中,默认时间为永久。用户APP能 设置数据分析功能,方便用户的总结与设备优化。
[0030] 所述数据分析功能包括但不限于:将攻击在时间的密度进行统计、将攻击的类型 进行统计、智能分析动态注入代码可能是利用的设备上的哪一漏洞,形成简要分析报告后 提供给用户,供用户参考。
[0031 ]该发明的有益效果在于:采用本反病毒系统的装置,通过对嵌入式设备所执行的 动态注入进程的代码进行二级检测,可以在既保证效率的同时又能够准确检测出一些蠕虫 病毒的攻击行为。
【附图说明】
[0032] 图1是本发明系统的简化模块系统示意图。
【具体实施方式】
[0033] 下面结合附图对本发明的【具体实施方式】进行描述,以便更好的理解本发明。
[0034] 实施例
[0035] 图1是本发明实施例中的基于SDN的反病毒系统的简化示意图。该系统包括基础设 施层、安全控制器、流表转发规则模块、日志生成器、接□抽象模块、南向接□、北向接口、用 户APP,其中:
[0036] 所述基础设施层包含网络设备以及可池化的网络安全设备,网络设备负责接受流 表转发规则模块的控制进行数据包的转发、可池化的网络安全设备包括但不限于入侵检测 系统、访问控制系统等传统安全设备;可池化之后将统一向上提供API接口供用户APP调用 并实施特定的行为;
[0037] 所述安全控制器包含匹配算法模块与反病毒虚拟机模块,网络设备将动态注入进 程的代码封装后输入安全控制器,首先由匹配算法模块进行检测,若发现异常,则要求流表 转发规则对网络设备下不予执行的命令,否则继续向上输入给反病毒虚拟机模块;反病毒 虚拟机模块予以测试后若发现异常,同样要求流表转发规则对网络设备下不予执行的命 令,否则要求网络设备予以执行;所述匹配算法模块通过算法返回值判断注入代码是否为 恶意。以蠕虫中较常利用的缓冲区溢出为例,匹配算法的检测思路为:正常注入进程的代码 应当只具有"读"与"执行"的属性,而恶意代码会额外具有"写"属性;除此之外,正常注入进 程的代码一般能找到其在可执行文件上的映射,而恶意代码则不会有这样的特性;事实上, 匹配算法模块可以对SQL注入等其他web攻击手段予以检测,从而形成检测队列。这也是该 系统具有一定的可拓展性的原因;所述反病毒虚拟机模块,通过软件模拟一个真实的CPU并 支撑一个检测系统;模拟CPU所虚拟的包括但不限于真实环境下CPU的物理端口、内存空间 以及寄存器等要素,其将作为输入数据的注入代码模拟执行后,将执行结果予以记录并实 时传递给检测系统,检测系统负责判断执行过程中是否存在代码的自我复制、异常调用系 统函数、异常跳转、异常中断等情形,如果有,认定为恶意代码;
[0038] 所述流表转发规则模块接受安全控制器的控制,若安全控制器认定注入进程的该 段代码为恶意,则命令基础设施层的网络设备不予执行,否则放行;
[0039] 所述日志生成器在安全控制器判断存在恶意注入的代码后,接受安全控制器的输 入数据,包括但不限于动态注入的代码段、注入时间、认定时间、认定模块代号、认定的恶意 类型、注入主机IP与MAC信息;接受数据后,日志生成器将数据以一定规范进行封装,输出给 接口抽象模块,并最终传输给用户APP;
[0040] 所述接口抽象模块,负责将日志生成器封装的数据进行解封装,并重新根据客户 端的操作系统类型进行二次封装,以传输给不同操作系统下的用户APP;
[0041] 所述南向接口根据OpenFlow协议,将动态注入网络设备的代码进行封装,传递给 安全控制器中的匹配算法模块;OpenFlow不是唯一选择,能根据需要修改;
[0042]所述北向接口根据XML协议,将接口抽象模块的输出数据传递给用户APP的日志报 告模块;XML不是唯一选择,能根据情况修改;
[0043]所述用户APP包含一个日志报告模块,负责将接口抽象模块的数据进行解释,并重 新组织为用户可读的数据;数据包括但不限于:是否发现动态注入的恶意代码,注入时间, 攻击类型,注入主机,具体代码;用户APP能通过一键防护对注入代码的主机进行访问控制; 所述一键防护,由用户APP调用可池化的基础实施层的网络安全设备API,如IDS,ACL,从而 及时防护可能正在遭受攻击的网络设备。
[0044] 上述基础设施层包括网络设备与向上统一提供API的可池化网络安全设备,包括 但不限于路由器、交换机、防火墙。
[0045]所述南向与北向接口分别采用OpenFlow与XML进行层次之间的相互通信。其中北 向接口通信规范包括但不限于REST、RPC。
[0046] 所述驱动层包含一个转发抽象层,为采用不同南向接口协议的网络设备提供统一 的访问接口。以OpenFlow为例,驱动层实现的主要功能为:建立和监听连接、处理OpenFlow 事件、封装与解封装〇p enF 1 ow消息。
[0047] 所述内核层的主要职责是通过LLDP协议以及ARP协议发现所有的资源并进行管 理,同时完成一些数据的存储。为网络全局管理提供基础。
[0048] 所述服务层包括路由计算,以及图一所述的安全控制器模块、流表转发规则模块、 日志生成器模块。本发明主要考虑减轻客户端负担,因此在服务层集成了反病毒攻击所需 的一些必要功能性模块。
[0049] 所述接口层即图1所述接口抽象模块,通过标准接口为应用层的用户APP提供资源 与服务。
[0050] 所述系统环境主要包括系统配置、资源分配以及系统初始化。
[0051]所述用户APP基于OSGi框架开发,其中在图1所述的模块中包含图1所述的日志报 告模块,用于像用户提供服务。
[0052]所述编排系统包括用户组件、网络功能组件、租户信息、约束条件等要素。其中在 网络功能组件中包含ACL接口,用于当用户APP作出一键防护请求时,根据请求的具体信息, 为其提供访问控制服务。
[0053]上述一种基于SDN的反病毒系统,其实施流程包含以下步骤:
[0054] (1)动态注入代码识别与封装:基础设施层的网络设备首先需要对内部执行代码 与动态注入进程的代码进行识别,区分之后,根据OpenFlow规范予以封装,传输给控制层的 匹配算法模块进行判别;当基础设施层与控制层之间的通信较为繁忙,优先保障动态注入 代码的传输;为了避免这一步骤本身遭到攻击,一方面,对所有区分出来的动态注入代码进 行暂不执行操作,保存于设备的缓存中,除非明确收到经过流表转发规则模块加密后的命 令;
[0055] (2)安全控制器策略初始化:初始化之后的策略为:1={1^4=[&1,&2]},其含 义为:当事件I发生的时候,将解封装后的代码送至模块Μ进行检验,如果符合模式P,则执行 动作al,否则执行动作a2。这里,事件I为:控制器接收到封装后的代码段。模块Μ为匹配算法 模块。模式Ρ为算法返回值为True,动作al为触发流表转发规则Oderl,动作a2为更新安全策 略。
[0056] 所述更新策略为将安全策略T更新为Τ1 = {Γ,M',P' = [pl,p2......pn],A' =
[al,a3]},含义为:事件Γ已经发生,将解封装后的代码送至模块M'进行反病毒虚拟机检 验。事件Γ为安全策略已更新,模块Μ'即反病毒虚拟机检测模块。将模式Ρ定义为多种是为 了适应算法队列中所检测攻击类型的多样化。动作a3为触发流表转发规则0der2。
[0057] 所述流表转发规则Oderl为:命令基础设施层的网络设备不予执行缓存中的注入 代码段;所述流表转发规则0der2为:命令基础设施层的网络设备执行注入代码段。
[0058] (3)匹配算法模块进行检测:匹配算法模块对注入的代码段进行分析.该模块的核 心是一个算法队列,代码段经过每一个算法后都会返回一个值,记为V1、V2......Vn。将这 些值进行逻辑或操作,一旦发现逻辑结果为True就停止分析。根据步骤(2)所述,触发流表 转发规则Oderl.否则一直分析到算法队列的尾部,并执行动作a2。
[0059] 对算法队列中的每一个算法予以编号,因为不同的算法对应不同攻击类型的检 测,所以可以通过将算法返回值为True的编号告知日志系统以判断攻击类型。由于不同攻 击类型给网络设备造成的影响有大小,对算法在队列中的顺序进行安排,从而实现高危攻 击的最快响应。
[0060] 步骤(3)中的算法队列包括但不限于缓冲区溢出检测算法、SQL注入检测算法、 CSRF攻击检测算法。根据不同的环境与需要可以进行拓展与修改。以缓冲区溢出检测算法 为例,可以将伪代码整理如下:
[0061]
[0062] (4)虚拟机检测模块分析:步骤(3)中所述算法队列返回值为False时进入步骤 (4),虚拟机系统通过一颗模拟CPU执行注入代码段后,若发现执行过程中存在代码的自我 复制、异常调用系统函数、异常跳转、异常中断等情形便可认为此段注入代码属于恶意,应 当不予执行。其结果为触发安全策略12={1"1"少'4' = [&4,&5]}。其中,事件1"为:虚拟 机检测模块即将把代码与一些其他数据封装后发送给日志生成器模块,所以,M"自然为日 志生成器模块。P"为日志生成器模块解析发送过来的数据后,反馈一个True值给虚拟机检 测模块,动作a4为要求流表转发模块命令网络设备不予执行注入的代码并让日志生成器模 块继续工作,动作a5为要求流表转发模块让网络设备执行这些代码并让日志生成器模块停 止对数据的进一步处理。
[0063] (5)日志生成器模块生成日志数据:步骤(4)执行了动作a4后进入步骤(5),日志生 成器模块根据步骤(4)的安全控制器输出的数据,整理后形成日志信息并加以封装,传输给 接口抽象层。
[0064] (6)接口抽象模块与应用层通信:步骤(5)中传递给接口抽象模块的数据根据XML 协议封装后传递给用户APP的日志报告模块。
[0065] (7)日志报告模块生成可视化表格给用户:日志报告木块根据解封装后的数据按 照一定规范予以组织,形成用户可读的表格给客户端;用户APP中设置一键防护功能,其工 作流程为:从日志表格中提取上报的恶意注入代码的主机的MAC地址,通过可池化的网络安 全设备所提供的API,将这些主机加入ACL的访问控制对象中,默认时间为永久。用户APP能 设置数据分析功能,方便用户的总结与设备优化。
[0066] 所述数据分析功能包括但不限于:将攻击在时间的密度进行统计、将攻击的类型 进行统计、智能分析动态注入代码可能是利用的设备上的哪一漏洞,形成简要分析报告后 提供给用户,供用户参考。
[0067] 下面以Chameleon病毒攻击基础设施层的一个网络设备为例,给出本发明一种基 于SDN的反病毒系统工作流程,具体如下:
[0068] 第一步,基础设施层的网络设备接收到可信主机A动态注入的一段病毒代码。设备 指出该段代码为动态注入,以OpenFlow规范封装后,通过南向接口传递给安全控制器中的 匹配算法模块。
[0069] 第二步,匹配算法模块根据算法队列开始对该段注入代码进行检测。根据对 Chameleon病毒的公告,我们知道,其工作原理为通过缓冲区溢出夺取系统权限后自我复 制,最后以设备-客户端-设备的流程不断传播,以达到大范围传播的目的。由于这段注入的 代码不具备写属性,且有可执行文件作映射,所以第二步的算法队列返回False值。
[0070] 第二步所述的返回值使得该段代码被继续传递给虚拟机检测模块。在该模块,由 于能够明显发现代码所具有的自我复制、程序异常调用系统函数等情形,判断为恶意代码 并连同一些重要的其他数据传递给日志生成器模块。
[0071] 日志生成器模块返回一个True值给安全控制器,根据所触发的安全策略T2,安全 控制器让流表转发规则模块命令该网络设备拒绝执行此段代码。日志生成器模块继续处理 这些数据,将处理后的数据以数组的方式发送给接口抽象模块。接口抽象模块以XML协议将 数据封装给用户APP中的日志报告模块。用户APP将数据解封装,再以一定方式组织成表格, 供用户浏览。用户阅览完毕后通过一键防护功能,将恶意注入代码的主机加入访问控制对 象,除非用户要求,时间为永久。
[0072]本发明的用户使用场景1:SDN环境下的一台网络设备因为自身固件的安全隐患遭 受到蠕虫病毒的攻击,由于普通网络设备无法像PC-样对蠕虫等病毒做出防护措施,因此 可以使用该系统来对一些较为脆弱的网络设备进行保护。
[0073]本发明的用户使用场景2:SDN环境下的一台网络设备因为自身固件的安全隐患遭 受到SQL注入、CSRF等web漏洞的攻击。由于传统的网络设备对此类攻击的防御更多部署于 客户端的浏览器中,给用户造成不必要的系统开销,因此可以使用该系统,在服务器端实现 此类web漏洞攻击的防护。
[0074]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为 本发明的保护范围。
【主权项】
1. 一种基于SDN的反病毒系统,其特征在于:包含以下几个部分:基础设施层、安全控制 器、流表转发规则模块、日志生成器、接口抽象模块、南向接口、北向接口、用户APP,其中: 所述基础设施层包含网络设备以及可池化的网络安全设备,网络设备负责接受流表转 发规则模块的控制进行数据包的转发、可池化的网络安全设备包括但不限于入侵检测系 统、访问控制系统等传统安全设备;可池化之后将统一向上提供API接口供用户APP调用并 实施特定的行为; 所述安全控制器包含匹配算法模块与反病毒虚拟机模块,网络设备将动态注入进程的 代码封装后输入安全控制器,首先由匹配算法模块进行检测,若发现异常,则要求流表转发 规则对网络设备下不予执行的命令,否则继续向上输入给反病毒虚拟机模块;反病毒虚拟 机模块予以测试后若发现异常,同样要求流表转发规则对网络设备下不予执行的命令,否 则要求网络设备予以执行;所述匹配算法模块通过算法返回值判断注入代码是否为恶意; 以蠕虫中较常利用的缓冲区溢出为例,匹配算法的检测思路为:正常注入进程的代码应当 只具有"读"与"执行"的属性,而恶意代码会额外具有"写"属性;除此之外,正常注入进程的 代码一般能找到其在可执行文件上的映射,而恶意代码则不会有这样的特性;事实上,匹配 算法模块可以对SQL注入等其他web攻击手段予以检测,从而形成检测队列;这也是该系统 具有一定的可拓展性的原因;所述反病毒虚拟机模块,通过软件模拟一个真实的CHJ并支撑 一个检测系统;模拟CPU所虚拟的包括但不限于真实环境下CPU的物理端口、内存空间以及 寄存器等要素,其将作为输入数据的注入代码模拟执行后,将执行结果予以记录并实时传 递给检测系统,检测系统负责判断执行过程中是否存在代码的自我复制、异常调用系统函 数、异常跳转、异常中断等情形,如果有,认定为恶意代码; 所述流表转发规则模块接受安全控制器的控制,若安全控制器认定注入进程的该段代 码为恶意,则命令基础设施层的网络设备不予执行,否则放行; 所述日志生成器在安全控制器判断存在恶意注入的代码后,接受安全控制器的输入数 据,包括但不限于动态注入的代码段、注入时间、认定时间、认定模块代号、认定的恶意类 型、注入主机IP与MAC信息;接受数据后,日志生成器将数据以一定规范进行封装,输出给接 口抽象模块,并最终传输给用户APP; 所述接口抽象模块,负责将日志生成器封装的数据进行解封装,并重新根据客户端的 操作系统类型进行二次封装,以传输给不同操作系统下的用户APP; 所述南向接口根据OpenFlow协议,将动态注入网络设备的代码进行封装,传递给安全 控制器中的匹配算法模块;OpenFlow不是唯一选择,能根据需要修改; 所述北向接口根据XML协议,将接口抽象模块的输出数据传递给用户APP的日志报告模 ±夬;XML不是唯一选择,能根据情况修改; 所述用户APP包含一个日志报告模块,负责将接口抽象模块的数据进行解释,并重新组 织为用户可读的数据;数据包括但不限于:是否发现动态注入的恶意代码,注入时间,攻击 类型,注入主机,具体代码;用户APP能通过一键防护对注入代码的主机进行访问控制; 所述一键防护,由用户APP调用可池化的基础实施层的网络安全设备API,如IDS,ACL, 从而及时防护可能正在遭受攻击的网络设备。2. 根据权利要求1所述的基于SDN的反病毒系统,其特征在于:其实施流程包含以下步 骤: (1) 动态注入代码识别与封装:基础设施层的网络设备首先需要对内部执行代码与动 态注入进程的代码进行识别,区分之后,根据OpenFlow规范予以封装,传输给控制层的匹配 算法模块进行判别;当基础设施层与控制层之间的通信较为繁忙,优先保障动态注入代码 的传输;为了避免这一步骤本身遭到攻击,一方面,对所有区分出来的动态注入代码进行暂 不执行操作,保存于设备的缓存中,除非明确收到经过流表转发规则模块加密后的命令; (2) 安全控制器策略初始化:初始化之后的策略为:T={I,M,P,A=[al,a2]},其含义 为:当事件I发生的时候,将解封装后的代码送至模块M进行检验,如果符合模式P,则执行动 作al,否则执行动作a2;这里,事件I为:控制器接收到封装后的代码段;模块M为匹配算法模 块;模式P为算法返回值为True,动作al为触发流表转发规则Oderl,动作a2为更新安全策 略; 所述更新策略为将安全策略T更新为Tl = {Γ,M',P' = [pi,p2......pn],A' = [al, a3]},含义为:事件Γ已经发生,将解封装后的代码送至模块M'进行反病毒虚拟机检验;事 件Γ为安全策略已更新,模块M'即反病毒虚拟机检测模块;将模式P定义为多种是为了适应 算法队列中所检测攻击类型的多样化;动作a3为触发流表转发规则0der2; 所述流表转发规则Oderl为:命令基础设施层的网络设备不予执行缓存中的注入代码 段; 所述流表转发规则0der2为:命令基础设施层的网络设备执行注入代码段; (3) 匹配算法模块进行检测:匹配算法模块对注入的代码段进行分析;该模块的核心是 一个算法队列,代码段经过每一个算法后都会返回一个值,记为Vl、V2......Vn;将这些值 进行逻辑或操作,一旦发现逻辑结果为True就停止分析;根据步骤(2)所述,触发流表转发 规则Oderl;否则一直分析到算法队列的尾部,并执行动作a2; 对算法队列中的每一个算法予以编号,因为不同的算法对应不同攻击类型的检测,所 以可以通过将算法返回值为True的编号告知日志系统以判断攻击类型;由于不同攻击类型 给网络设备造成的影响有大小,对算法在队列中的顺序进行安排,从而实现高危攻击的最 快响应; 步骤(3)中的算法队列包括但不限于缓冲区溢出检测算法、SQL注入检测算法、CSRF攻 击检测算法;根据不同的环境与需要可以进行拓展与修改; (4) 虚拟机检测模块分析:步骤(3)中所述算法队列返回值为False时进入步骤(4),虚 拟机系统通过一颗模拟CPU执行注入代码段后,若发现执行过程中存在代码的自我复制、异 常调用系统函数、异常跳转、异常中断等情形便可认为此段注入代码属于恶意,应当不予执 行;其结果为触发安全策略12={1"1",?"4' = [&4,&5]};其中,事件1"为:虚拟机检测模 块即将把代码与一些其他数据封装后发送给日志生成器模块,所以,M"自然为日志生成器 模块;P"为日志生成器模块解析发送过来的数据后,反馈一个True值给虚拟机检测模块,动 作a4为要求流表转发模块命令网络设备不予执行注入的代码并让日志生成器模块继续工 作,动作 a5为要求流表转发模块让网络设备执行这些代码并让日志生成器模块停止对数据 的进一步处理; (5) 日志生成器模块生成日志数据:步骤(4)执行了动作a4后进入步骤(5),日志生成器 模块根据步骤(4)的安全控制器输出的数据,整理后形成日志信息并加以封装,传输给接口 抽象层; (6) 接口抽象模块与应用层通信:步骤(5)中传递给接口抽象模块的数据根据XML协议 封装后传递给用户APP的日志报告模块; (7) 日志报告模块生成可视化表格给用户:日志报告木块根据解封装后的数据按照一 定规范予以组织,形成用户可读的表格给客户端;用户APP中设置一键防护功能,其工作流 程为:从日志表格中提取上报的恶意注入代码的主机的MAC地址,通过可池化的网络安全设 备所提供的API,将这些主机加入ACL的访问控制对象中,默认时间为永久;用户APP能设置 数据分析功能,方便用户的总结与设备优化; 所述数据分析功能包括但不限于:将攻击在时间的密度进行统计、将攻击的类型进行 统计、智能分析动态注入代码可能是利用的设备上的哪一漏洞,形成简要分析报告后提供 给用户,供用户参考。
【文档编号】H04L29/06GK105897728SQ201610304914
【公开日】2016年8月24日
【申请日】2016年4月27日
【发明人】倪健寒, 韩啸
【申请人】江苏警官学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1