发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种规则自更新并且包括了特征识别的网络防护软件方法。
为解决上述技术问题,本发明采用了以下技术方案。
本发明提供了一种基于Linux内核的网络防护软件方法,包括以下步骤:
控制模块读取定义的规则后根据预先定义的规则向内核模块发送启动命令;具体包括:
控制模块接收到的规则选择的防护模式是简单过滤防护和/或特征识别防护则向内核模块发送简单过滤防护启动命令和/或特征识别防护启动命令;
若内核模块接收到简单过滤防护启动命令后监测数据包,如果属于允许规则,将放行通过;如果属于禁止规则,则将其阻断;
若内核模块接收到特征识别防护启动命令后,根据预先定义的规则捕获接收和发送的数据包,将数据包发送给用户空间层的监控模块;
在用户空间层设置特征库模块,所述特征库模块用于存放样本特征数据,为监控模块提供数据特征对比功能;
监控模块接收到数据包后与特征库模块中的特征对比,首先确定该数据包的应用类型,如果应用类型是属于禁止规则的,监控模块会向内核模块发送阻断通知来阻止该数据包的流向;然后检测数据包是否异常,如果异常则同样向内核模块发送阻断通知来阻止该数据包的流向且将异常数据包的IP加入禁止规则中并通知控制模块执行新规则;
内核模块接收到监控模块的阻断通知后决定是否允许和阻断该数据包的流向;
进一步地,监控模块检测到异常数据包后将异常数据包发送给控制模块,控制模块将异常数据包保存在存储模块中。
进一步地,监控模块记录监控日志并将监控日志发送给控制模块,控制模块将异常数据包保存存储模块中。
进一步地,控制模块读取定义的规则后将规则保存到存储模块。
进一步地,定义的规则包括配置信息和规则的条目。
进一步地,设置显示模块用于提供可视化的界面操作并展现攻防行为和流量信息。
在另一个方面,本发明提供一种基于linux内核的网络防护软件***,
包括:
控制模块,用于读取定义的规则后根据预先定义的规则向内核模块发送启动命令;具体包括:
控制模块接收到的规则选择的防护模式是简单过滤防护和/或特征识别防护则向内核模块发送简单过滤防护启动命令和/或特征识别防护启动命令;
内核模块,用于接收到简单过滤防护启动命令后监测数据包如果属于允许规则,将放行通过;如果属于禁止规则,则将其阻断;
所述内核模块,还用于接收到特征识别防护启动命令后,根据预先定义的规则捕获接收和发送的数据包,将数据包发送给用户空间层的监控模块;
所述内核模块,还用于接收到监控模块的阻断通知后决定是否允许和阻断该数据包的流向。
特征库模块,设置在用户空间层,所述特征库模块用于存放样本特征数据,为监控模块提供数据特征对比功能;
监控模块,用于接收到数据包后与特征库模块中的特征对比,首先确定该数据包的应用类型,如果应用类型是属于禁止规则的,监控模块会向内核模块发送阻断通知来阻止该数据包的流向;然后检测数据包是否异常,如果异常则同样向内核模块发送阻断通知来阻止该数据包的流向且将异常数据包的IP加入禁止规则中并通知控制模块执行新规则。
存储模块,所述存储模块是数据库与文件存储的集合,用于保存配置信息、规则条目、监控日志和异常数据包。
优选地,还包括:
显示模块,用于提供可视化的界面操作并展现攻防行为和流量信息。
进一步优选地,
监控模块,还用于检测到异常数据包后将异常数据包发送给控制模块,控制模块将异常数据包保存在存储模块中;
监控模块,还用于监控模块记录监控日志并将监控日志发送给控制模块。
本发明所达到的有益效果:本发明突破了Linux传统网络防护软件的功能单一问题,增加了规则自更新、特征识别功能,同时弥补了应用分析的不足,全面保证Linux***的网络安全。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
具体实施例,参见图1,提供了一种基于linux内核的网络防护软件***,包括:
控制模块,用于根据读取的定义的规则信息后根据预先定义的规则向内核模块发送启动命令;所述规则信息包括网络预选的防护模式,所述防护模式包括简单过滤防护和特征识别防护;具体包括:
控制模块接收到的规则选择的防护模式是简单过滤防护和/或特征识别防护则向内核模块发送简单过滤防护启动命令和/或特征识别防护启动命令;
内核模块,用于接收到简单过滤防护启动命令后监测数据包如果属于允许规则,将放行通过;如果属于禁止规则,则将其阻断;
所述内核模块,还用于接收到特征识别防护启动命令后,根据预先定义的规则捕获接收和发送的数据包,将数据包发送给用户空间层的监控模块;
所述内核模块,还用于接收到监控模块的阻断通知后决定是否允许和阻断该数据包的流向。
特征库模块,设置在用户空间层,所述特征库模块用于存放样本特征数据,为监控模块提供数据特征对比功能;
监控模块,用于接收到数据包后与特征库模块中的特征对比,首先确定该数据包的应用类型,如果应用类型是属于禁止规则的,监控模块会向内核模块发送阻断通知来阻止该数据包的流向;然后检测数据包是否异常,如果异常则同样向内核模块发送阻断通知来阻止该数据包的流向且将异常数据包的IP加入禁止规则中并通知控制模块执行新规则。
存储模块,所述存储模块是数据库与文件存储的集合,用于保存配置信息、规则条目、监控日志和异常数据包。
显示模块,用于提供可视化的界面操作并展现攻防行为和流量信息;通过显示模块的可视化的界面操作定义规则信息,所述规则信息可由控制模块读取。
进一步阐述如下:
图1的实施例采用软件技术实现、遵循模块化设计;如图1所示,有六部分组成:内核模块、监控模块、特征库模块、控制模块、显示模块、存储模块。
内核模块基于Linux内核netfilter框架实现,netfilter是Linux内核的网络过滤框架,操作***所有的网络数据包都会流向netfilter进行处理,如图1所示,总共包括5个工作流:PRE_ROUTING、POST_ROUTING、FORWARD、LOCAL_IN、LOCAL_OUT。每个工作流都注册有hook函数,当数据包经过工作流时会调用对应的hook函数,网络防护的核心函数注册在netfilter工作流中,以便可以对数据包进行筛选、捕获、过滤、阻断。
监控模块运行在用户空间层,负责对网络进行监控、分析、处理,它会按一定规则去接收内核层的网络数据包,并分析数据包的协议、内容、流量,通过对比特征库,确定数据包的应用类型、正常与否,及早发现潜在的安全风险并采取有效措施。
特征库运行在用户空间层,存放有大量的样本数据,为分析模块提供数据特征对比功能,是分析的基石。
控制模块运行在用户空间层,负责对其他模块进行管理和控制。例如定义规则。
显示模块采用BS架构,提供可视化的界面操作,并将攻防行为、流量等信息展现出来。
存储模块是数据库与文件存储的集合,用来保存配置信息、规则条目、监控日志、异常数据包。其中显示模块和存储模块是可选模块,为了更优化***功能,
传统包过滤规则一般包括了协议、IP地址、端口、动作,本技术方案在此基础上扩展了对应用分析的支持,包括应用类型、异常数据检测,灵活配置。
Linux内核架构参见图2,netfilter是linux核心中一个通用架构,它提供一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链中可以由一条或数条规则(rule)组成。可以这样理解,netfilter是表的容器,表是链的容器,链是规则的容器。
***缺省的表为“filter”,该表中包含了INPUT、FORWARD和OUTPUT 3个链。每一条链中可以有一条或数条规则,每一条规则都是这样定义的:“如果数据包头符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,***就会从第一条规则开始检查,看是否符合该规则所定义的条件,如果满足,***将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则;最后,如果数据包不符合该链中任何一条规则,***就会根据该链预先定义的策略(policy)来处理该数据包。
另一个实施例提供了一种基于linux内核的网络防护软件方法,包括,
本发明的防护方案设计成两种模式,简单过滤防护和特征识别防护。两种模式可以单独使用或者混合使用,模式的选择取决于具体定义的规则,因此定义规则时包括了定义了要采用的防护策略是简单过滤防护或者特征识别防护。
防护规则定义过程
1)通过显示模块的操作界面定义规则;
2)控制模块收到界显示模块的规则后保存到存储模块中,并向内核模块以及监控模块发送通知,按新定义的规则运行。
简单过滤防护和传统包过滤原理一致,内核模块检测数据包如果是属于允许规则的,将放行通过;如果是属于禁止规则的,会将其阻断。传统包过滤规则一般包括了协议、IP地址、端口、动作,本技术方案在此基础上扩展了对应用分析的支持,包括应用类型、异常数据检测,灵活配置。
特征识别防护是基于特征库模块中的特征库的深度检测技术来实现的,工作流程图如图3所示。
1)内核模块根据预先定义的规则捕获接收和发送的数据包,它将数据包发送给用户空间的监控模块,并等待分析结果;
2)监控模块收到数据包会立即与特征库对比,确定该数据包的应用类型以及是否异常;这里会有2次安全检测,先检测应用类型,如果应用类型是属于禁止规则的,那么监控模块会向内核模块发送阻断通知,阻止该数据包的流向;然后是检测数据包是否异常,如果是异常,那么同样进行阻断操作。只有通过了应用类型规则检测和异常数据检测才是正常的数据包,监控模块会向内核模块发送允许通知。
3)内核模块收到监控模块的通知后,决定是否允许或阻断该数据包的流向。
4)监控模块检测到异常数据包后会通知控制模块,控制模块会将异常数据包存储到存储模块中。
同时监控模块监控到异常数据包后会根据情况更新规则,例如某个IP向一台Linux机器发送异常数据包,监控模块检测到该情况后会立即阻断该数据包,并将该IP加入禁止规则中。
本发明利用Linux内核netfilter框架提升Linux***的全面网络防护能力,属于自己独创的构想应受到保护。本发明突破了Linux传统网络防护软件的功能单一问题,增加了规则自更新、特征识别功能,同时弥补了应用分析的不足,全面保证Linux***的网络安全。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。