基于MPI堡垒主机防火墙的可疑IP预警方法研究

2020-05-28 09:35宋大华李喆刘碧纯
关键词:并行计算防火墙

宋大华 李喆 刘碧纯

摘 要:提出基于MPI堡垒主机防火墙的可疑IP预警系统.系统防火墙规则集合划分为子集形式,各个子集相互独立,动态调整规则库,运行并行任务,实现安全报警机制和并行实现检测过程;能够快速、准确的对可疑IP进行跟踪和预警,采用针对网络地址转换的内部IP地址监控,更加有效地填补防火墙对内防范的不足.实验结果显示,并行防御策略具有较大的优势,能够实现优化防火墙整体防御性能.

关键词:MPI;防火墙;堡垒主机;并行计算

[中图分类号]TP393 [文献标志码]A

Research on the Warning Method of Suspicious IP with

MPI and Bastion Host Firewall

SONG  Dahua1,LI  Zhe2,LIU  Bichun2

(1.Center of Educational Technology and Information,Mudanjiang Medical University,Mudanjiang 157011,China;2.College of Computer Science and Techology,Harbin University of Scienceand Technology,Harbin 150080,China)

Abstract:The system of a warning method for suspicious IP with MPI and bastion host firewall is presented.The firewall rule set of this system is divided into the form of subsets.Each subset is independent of each other.It dynamically adjusts the rule database,runs parallel tasks to realize the security alarm mechanism,and parallelly implements the checking process.It can track and warn suspicious IP quickly and accurately.It monitors the IP address of internal network with NAT.The method can more effectively fill the firewall inadequacy of inner prevention.The experimental results show that the parallel defense strategy has a great advantage and can optimize the overall defense performance of firewall.

Key words:Message Passing Interface;firewall;bastion host;parallel computing

隨着多核处理器的普及,计算机各领域并行化趋势越来越明显.堡垒主机防火墙是防火墙中的一种,在守护进程中启动MPI主进程,通过动态链接库导入防火墙规则,接收预警信息,跟踪可疑IP,调整防火墙防御策略,监测网络攻击和异常事件,发送预警信息.堡垒主机是计算机网络中能够有效抵御攻击的计算机主机和服务器等设备,作为外部网络访问内部网络的一个有效的监控点,承担着整个网络的安全防御与预警功能.有效配置和利用防火墙软件和堡垒主机,可以达到有效抵御攻击、安全预警、保护网络安全等作用.在堡垒主机防火墙防御攻击过程中,堡垒主机往往承担着诱导、吸引黑客等非法入侵者注意力的作用,从而保护真正目的主机和服务器.因此,对堡垒主机的维护和管理非常必要.本文主要叙述并行算法的设计和主要数据结构,介绍可疑IP地址跟踪的主要方法,利用MPI消息传递实现并行程序设计,实现动态调整规则库,实时监测网络.

1 并行算法设计

堡垒主机防火墙利用MPI实现并行预警.并行算法使用的主要数据结构和函数过程定义如下:

(1)IP地址数据结构StructIP.IP地址,IP地址版本(IPv4或者IPv6),在数据包Packet中处于源地址SourceIP或者目的地址DestinationIP,对应的物理地址Mac.

(2)防火墙规则Rule数据结构.防火墙规则的编号RuleID,指定的地址(包括源地址SourceIP或者目的地址DestinationIP),端口Socket,协议Protocol,网络接口NIC,服务规则ServiceType.

(3)IP地址队列QueueIP.IP地址数据结构StructIP指针结点,防火墙规则编号列表RuleList,匹配规则频数AlertFrequence,下一个结点指针NextPoint.

(4)跟踪的IP队列QueueIPTrack.IP地址,对应的物理地址Mac,匹配的防火墙规则的编号列表RuleList,下一个结点指针NextPoint.

(5)防火墙规则集合SetRules.数学形式SetRules={SubSet_1,SubSet_2,…,SubSet_i,…,SubSet_n}.SubSet_i是防火墙规则的第i个子集,每个子集不能为空,至少包含一条防火墙规则,每个子集或者几个子集可以被分配到并行系统中的某个处理机进行处理,实现并行计算.

(6)并行模型函数ParallelModel.主要完成在防守进程中实现并行过程的调度过程,函数定义:

ParallelModel(ProNum){ //函数ParallelModel开始

Pro_1:MPI_Creat(),

Pro_2:Master(Data,Send,Recv,Task,coreID),

Pro_3:Slave(Data,Send,Recv,Task,coreID),

Pro_4:MPI_Finish()

} //函数ParallelModel结束

ProNum是ParallelModel执行参数,代表函数的入口地址或者函数指针.

MPI_Creat()是MPI环境建立的过程,包括MPI初始化和设定每个处理器核心的编号、初始化通信的函数等.Master(Data,Send,Recv,Task,coreID)是主进程Master实现的过程,Data是交换的数据,Send和Recv是MPI进行数据传递时使用的MPI标准函数MPI_Send()和MPI_Recv().Task是函数入口地址或者函数指针,对应需要处理的事物、过程或者指令.coreID代表与Master进行通讯的处理器核心编号,MPI系统中Master处理器核心编号一般初始化为0.

Slave(Data,Send,Recv,Task,coreID)是从进程Slave实现的过程,Data是从进程中交换的数据,Send和Recv是MPI进行数据传递时使用的MPI函数,Task对应从进程Slave需要处理的事物、过程或者指令,coreID代表与Slave进行通讯的处理器编号.MPI_Finish()是MPI结束并行计算模式的过程,如果是Slave处理器,Slave将不再接收MPI的消息和任务Task,如果是Master处理器,本次并行计算过程结束,释放所使用的资源.

(7)Task的函數列表.主要包括:

Task(Task_ID){

Task_1:执行MPI的主进程Master对从进程Slave的检测,

Task_2:执行MPI的从进程Slave对主进程Master的响应,

Task_3:执行MPI发送数据任务,

Task_4:执行MPI接收数据任务,

Task_5:执行系统过程,

Task_6:执行指令,

Task_i:预留用户执行指令和过程,

}

Task_1和Task_2主要实现在堡垒主机遭到破坏和意外中断服务之后,进行系统恢复,在系统启动时,进行系统自检.Task_5主要执行系统过程,系统可以通过函数地址获取需要执行的代码,更加方便并行任务的切换和执行.Task_6代表执行指令.Task_i是系统给用户预留的执行指令和过程,以满足用户扩展功能的需求.

建立守护进程ParallelMain,主要包括:

ParallelMain(){

Creat(DaemonPro);

Begin(MPI_Master);

Initialize(Rule);

Creat(QueueIP);

Creat(QueueIPTrack);

}

Creat(DaemonPro)完成守护进程的建立:在操作系统中建立父进程FatherPro,在父进程中利用fork()创建子进程DaemonPro,强制结束父进程FatherPro,将其退出系统;在子进程DaemonPro中创建新会话setsid(),DaemonPro继承当前会话组的管理员,结束父进程FatherPro会话的控制,结束父进程FatherPro原进程组的控制,结束父进程FatherPro受控制终端的控制,改变当前目录为程序数据区,为建立动态链接库实现防火墙规则导入进行准备,重新设定文件权限掩码umask(0);打开监听端口,监听当前网络.

Begin(MPI_Master)完成MPI环境初始化,并测试并行系统的处理器核心数量,启动MPI主进程.Initialize(Rule)完成初始化防火墙规则Rule;进行防火墙规则的编号,初始化指定的地址、端口、协议、NIC、ServiceType的配置,建立防火墙规则集合SetRules;函数Creat(QueueIP)完成初始化IP地址队列QueueIP;函数Creat(QueueIPTrack)完成初始化跟踪的IP队列QueueIPTrack.

MPI主进程是实现堡垒主机防火墙并行预警的主要模块.并行算法设计过程:

MPI_Master(){

If(I am Master){

ParallelModel(Pro_1);

ParallelModel(Pro_2);

Loop(Task,RegisterIP);

Loop(TrackIP);

If(Command or Task)

MasterExecute();

ParallelModel(Pro_4);

}

Else if(I am Slave){

ParallelModel(Pro_3);

Loop(AlertTask);

If(Command or Task)

SlaveExecute();

}

Else{

Listen(Network);

}

}

在Master中执行的过程主要有:ParallelModel(Pro_1)是建立MPI环境,初始化MPI标准库等.执行ParallelModel(Pro_2),主进程Master对每一个Slave执行测试,利用Send发送给从进程coreID测试数据Data,执行系统过程Task_1.分配防火墙规则集合SetRules的子集给从进程,执行系统过程Task_3,利用发送Send传输数据Data,Data封装防火墙规则集合的子集.循环查询,接收预警信息.当接收预警信息成功时,执行TrackIP.如果跟踪的IP队列不为空,扫描队列执行调整防火墙防御策略.

Loop(Task,RegisterIP)是在Master中执行Task指定的过程和RegisterIP的过程.RegisterIP是执行IP登记的过程,如果在Slave中的安全预警模型AlertTask预警,即Adapt(RuleID_1,RuleID_2, …,RuleID_n)匹配了防火墙中的规则,那么,登记IP地址IPAddress和对应的物理地址Mac信息.如果在当前的IP地址队列QueueIP中没有该IPAddress信息,新建IP地址数据结构StructIP结点NewPoint,初始化新结点的IP地址为IPAddress,初始化新结点的IP地址版本.在防火墙规则数据结构Rule中提取指定的地址,初始化新结点的IPAddress对应的物理地址.当IPAddress是外网地址时,对应的物理地址设置为全0,在IP地址队列QueueIP的队尾添加结点NewQIP,新结点NewQIP的IP地址数据结构StructIP结点指针指向NewPoint,添加Adapt(RuleID_1,RuleID_2,…,RuleID_n)中匹配的规则在防火墙规则编号列表RuleList中.新結点NewQIP的匹配规则频数AlertFrequence为原数值加上Adapt(RuleID_1,RuleID_2,…,RuleID_n)匹配的规则总数.

如果在当前的IP地址队列QueueIP中存在IPAddress地址信息,若IPAddress是内部网络地址,那么,把不同的物理地址添加在IP地址数据结构StructIP结点的物理地址中,这样的设计使得利用NAT(Network Address Translation,网络地址转换)的防火墙能够有效防御来自内部网络的攻击行为.

Loop(TrackIP)执行对可疑IP地址的跟踪:对IP地址队列QueueIP进行扫描,当检测队列结点的匹配规则频数AlertFrequence达到给定的警戒值时,提取该结点信息,插入跟踪的IP队列QueueIPTrack中,并初始化IP地址和匹配的防火墙规则编号列表RuleList,初始化对应的物理地址,如果该IP地址对应多个物理地址时,复制结点其他信息,分别把对应的多个物理地址结点插入跟踪的IP队列中,外部IP地址的物理地址都是0,因此,对于内部的IP地址,使用物理地址进行监控.

ParallelModel(Pro_4)是主程序结束MPI过程,释放系统资源.

Slave从进程中执行的具体过程:ParallelModel(Pro_3),从进程Slave完成响应测试,利用Recv接收来自Master的测试数据Data,执行系统过程Task_2.从进程Slave执行系统过程Task_4,利用Recv接收来自Master的防火墙规则集合SetRules的子集.Loop(AlertTask)是循环执行安全预警模型AlertTask,安全预警模包括登记可疑IP地址和对应的物理地址,以及与防火墙的规则匹配Adapt(RuleID_1,RuleID_2,…,RuleID_n)的规则.如果Slave接收到重置Slave,那么,Slave结束当前任务Task,重新接收来自Master的防火墙规则集合SetRules的子集,循环执行系统过程AlertTask,并执行系统过程和指令.

Listen(Network)代表监听来自网络的连接服务等事件,实现防火墙的服务.

2 可疑IP地址跟踪

基于MPI堡垒主机防火墙的预警方法,使得堡垒主机和防火墙结合更加紧密,实现更加安全、快速的安全预警机制,有效抵御黑客等非法入侵者的攻击,达到网络安全的目的.

由于很多网络内部使用了NAT(Network Address Translation,网络地址转换),这为防火墙防御内部网络的攻击带来很大麻烦.1994年,提出的网络地址转换主要是为了解决IP地址的枯竭.使用对外的网络地址转换的网络,其防火墙对内部网络的防御存在弱点,当黑客等非法用户窃取内部网络用户的账号后,利用内部网络主机的“肉鸡”进行网络攻击,会使防火墙失效.

本算法实现了IP地址跟踪:首先建立守护进程,启动MPI主进程,导入防火墙规则Rule到动态链接库中,动态链接库进行修改后不需要重新编译调用的主函数,因此,修改防火墙规则不会影响防火墙的运行.建立防火墙规则集合SetRules和划分子集,初始化QueueIP队列和QueueIPTrack队列.

在防火墙主进程中,对每一个Slave进行测试,分配防火墙规则子集给从进程.与此同时,从进程Slave完成响应测试,接收防火墙规则子集.从进程循环执行系统过程AlertTask.假设Slave检测到来自内网的IP地址192.168.1.100的物理地址是00-18-EE-AE-3C-70的主机,尝试匿名连接FTP端口21,这一行為与防火墙规则Rule_1匹配成功.AlertTask启动预警:Slave封装IP地址192.168.1.100,物理地址00-18-EE-AE-3C-70,以及Adapt(Rule_1)立即进行发送预警信息给主进程.

与此同时,在Master主进程中Loop(Task,RegisterIP)接收到Slave发来的预警信息,Master主进程启动登记IP过程,发送给从进程coreID_rip执行RegisterIP登记该IP地址信息在IP地址队列QueueIP中,初始化StructIP和RuleList添加规则,匹配规则频数AlertFrequence的值增加1,新结点插入队尾.在Master主进程执行Loop(TrackIP),对IP地址队列QueueIP进行扫描,没有发现可疑IP.

假设另外一个从进程Slave_other检测到来自内网的IP地址192.168.1.100的物理地址是00-18-EE-AE-3C-70的主机,尝试匿名连接服务器W端口123,这一行为与防火墙规则Rule_10匹配成功,于是从进程Slave_other向Master主进程发送预警信息.与此同时,在Master主进程成功接收到从进程Slave_other发来的预警信息,Master主进程发送给从进程coreID_rip执行RegisterIP登记该IP地址信息在IP地址队列中,由于在IP地址队列中已经存在该IP地址,在队列结点的RuleList添加Rule_10,匹配规则频数AlertFrequence的值增加1,AlertFrequence没有超过警戒值.在Master主进程执行系统过程TrackIP,没有发现可疑IP.

Slave再次检测到来自内网的该IP地址的主机,尝试匿名连接FTP端口2121,这一行为与防火墙规则Rule_1再次匹配成功,于是从进程Slave向Master主进程发送预警信息.与此同时,在Master主进程再次成功接收到从进程Slave发来的预警信息,Master主进程执行RegisterIP登记该IP地址信息在IP地址队列中,由于在QueueIP中已经存在该IP地址,匹配规则频数AlertFrequence的值增加1,AlertFrequence的值达到警戒值.

在Master主进程执行系统过程TrackIP,对IP地址队列QueueIP进行扫描,当检测队列结点的匹配规则频数AlertFrequence达到警戒值时,提取该结点信息,插入跟踪的IP队列QueueIPTrack中,并初始化插入结点的IP地址和匹配的防火墙规则编号列表RuleList,以及对应物理地址00-18-EE-AE-3C-70,结点插入跟踪的IP队列中.当Master主进程扫描跟踪的IP队列QueueIPTrack不为空,执行调整防火墙防御策略过程.本算法的优点:避免了多进程服务的临界区访问问题,由于Slave执行防火墙规则集的子集检测,避免了防火墙主机的瓶颈问题,使得检测更加迅速,反馈更加及时,增加防护的报警速度.

由于NAT所使用的IP地址在防火墙中不易处理,因此,在本算法中使用物理地址标记内部网络,当内网使用DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)协议,该物理地址的主机更换新的IP地址,但是,其物理地址是不改变的,本系统也可以实现对内部可疑IP地址进行有效监控,从而有效避免内部网络主机的非法行为和黑客等非法用户利用内部主机进行攻击的行为.

防火墙的主要防御重点是对外部网络的攻击进行识别.假设Slave检测到来自外网的IP地址63.182.1.47的主机,尝试匿名访问内网服务器F,并扫描端口65、端口82和端口83,这一行为与防火墙规则Rule_3,Rule_12和Rule_27匹配成功Adapt(Rule_3,Rule_12,Rule_27),于是从进程Slave向Master主进程发送预警信息.Master主进程成功接收到从进程Slave发来的预警信息后,Master主进程发送给从进程coreID_rip,执行RegisterIP登记该IP地址信息在IP地址队列QueueIP中.假设该IP已经在QueueIP中,结点添加匹配的规则Rule_3,Rule_12和Rule_27在RuleList中,匹配规则频数AlertFrequence的值增加3.

在Master主进程执行系统过程TrackIP,对IP地址队列QueueIP进行扫描,当检测队列结点的IP地址63.182.1.47的匹配规则频数AlertFrequence大于等于警戒值时,提取该结点信息,插入跟踪的IP队列QueueIPTrack中,并初始化插入结点的IP地址和匹配的防火墙规则编号列表,因为该IP地址对应一个物理地址00-00-00-00-00-00是外部IP地址.当Master主进程检测跟踪的IP队列不为空,执行手动增加防火墙规则或者调整防火墙防御策略,增加对内网服务器F的安全保护.本算法使用从进程Slave作为堡垒主机应对外部的攻击,每一个堡垒主机的检测更加迅速,系统通过有效报警机制重点过滤IP地址和攻击行为的过程,能够为网络提供更加安全的整体防御性能.

3 算法性能分析

本算法的测试是在Linux Fedora v19,MPIch v1.3.3,防火墙规则集合SetRules包含172条规则,虚拟机Vmware v8.0.实验进行了3组测试,测试攻击总数40次,每组的测试重复进行10次,提取的它们的平均值,测试结果见表1.

从表1中可以看出,随着防火墙规则集合SetRules的划分的子集和Slave的数量增加,平均的预警时间逐渐减少.

本算法的主要特点:一是防火墙规则通过动态链接库导入,不影响防火墙的运行.防火墙规则集合划分为子集形式,各个子集相互独立,能够动态调整规则库,实时监测网络,运行并行任务,实现安全报警机制.二是并行实现检测过程,能够快速、准确的对可疑的IP进行跟踪和预警,防范黑客等非法用户的入侵和破坏;系统考虑了内部IP网络地址转换对防火墙的影响,特别是当黑客等非法用户攻陷内部计算机,把该机变为“肉鸡”后所进行的防火墙穿透,因此,本系统采用了针对网络地址转换所进行的内部IP地址监控,更加有效地填补了防火墙软件对内防范的不足.三是调整防火墙防御策略,优化了防火墙整体防御性能.通过对跟踪IP队列的分析,优化和调整防火墙防御策略,针对重点监控和多次攻击系统的IP地址进行有效预警,系统通过有效报警机制重点过滤IP地址和攻击行为的过程,能够为网络提供更加安全的整体防御性能.

4 结论

随着多核技术的普及,防火墙并行化成为防火墙技术发展的主要趋势.本文着重实现堡垒主机防火墙的并行化,把堡垒主机分散到多处理核心中进行分布式、并行化防御,增加对可疑IP和异常事件的预警,并利用MPI消息传递实现并行程序设计,实现了动态调整规则库,实时监测网络,提高了系统的安全的整体防御性能.

参考文献

[1]Jiahui Liu,Fangzhou Li and Guanglu Sun.A Parallel Algorithm of Multiple String Matching Based on Set-Partition in Multi-core Architecture[J].International Journal of Security and Its Applications,2016(10):267-278.

[2]庄健平.一种网络驱动接口及服务提供的防火墙[J].牡丹江师范学院学报:自然科学版,2009(2):5-7.

[3]邢军.基于IPv6的网络安全分析[J].牡丹江师范学院学报:自然科学版,2010(1):6-8.

编辑:琳莉

收稿日期:2019-09-15

基金项目:黑龙江省自然科学基金项目(F201304);黑龍江省省属高等学校基本科研业务费科研项目(2018-KYYWFMY-0093)

作者简介:宋大华(1973-),女,黑龙江木兰人. 副教授,学士,主要从事信息安全研究;李喆(1996-)男,黑龙江哈尔滨人.研究生,主要从事计算机应用研究;刘碧纯(1996-)男,黑龙江鸡西人.研究生,主要从事并行计算研究.

猜你喜欢
并行计算防火墙
简单高效 玩转Windows 10防火墙设置
基于自适应线程束的GPU并行粒子群优化算法
云计算中MapReduce分布式并行处理框架的研究与搭建
矩阵向量相乘的并行算法分析
并行硬件简介
基于GPU的超声场仿真成像平台
基于Matlab的遥感图像IHS小波融合算法的并行化设计
一张图看懂民间借贷“防火墙”
防火墙选购必读
新手设置Windows Vista自带防火墙