基于Fuzzing 测试的网络安全监测系统设计
2022-02-27刘家豪付志博
刘家豪,杨 航,付志博
(1.南方电网数字电网研究院有限公司,广东广州 510663;2.中国南方电网有限责任公司,广东广州 510000)
网络安全监测系统是维护用户网络环境、保证用户信息安全的重要工具之一,通过结合网络运行系统监测网络用户的操作行为,抵御网络入侵者的攻击,并诊断其入侵方式和入侵地点,发动相应的解决措施,并提醒相关工作人员进行操作。传统的网络安全监测系统通常采用访问控制机制作为保证系统安全的手段,具有一定的严密性,但灵活性较差、效率较低,对于入侵式的网络攻击行为抵御能力较差,因此,如何提升网络安全监测系统的实际应用效果是当前讨论的热门话题[1-2]。
Fuzzing 是一种挖掘软件或者检测漏洞的模糊测试,通过构造大量的畸形、非预期测试用例自动发送到目标系统,检测系统是否存在运行故障或安全攻击,并根据目标系统的返回信息明确故障类型或攻击类型。因此,该文以Fuzzing 技术为基础,设计了一种基于Fuzzing 测试的网络安全监测系统,详细介绍了监测器、数据采集器和报警器等系统硬件的结构和功能,明确了系统整体的工作流程和系统的监测算法,最后设计了对比实验,与传统的网络安全监测系统进行对比,再次证明了该文设计系统的安全性和高效率性,更能满足用户对网络安全的需求,维护网络安全秩序的同时促进了网络安全治理体系的进一步发展。
1 系统硬件设计
基于Fuzzing 测试的网络安全监测算法实际上是一种自动迭新的算法,在整个算法的运行过程中,不断生成Fuzzing 测试用例,监视目标范围内是否存在攻击行为[3]。
基于Fuzzing 测试的网络安全监测系统的硬件主要包括监测器、数据处理器和报警器,分别实现系统的用户网络行为监测功能、海量数据处理功能以及危险报警功能,3 种硬件设备的具体结构如图1所示。
图1 系统硬件结构
1.1 监测器
监测器利用网络的共享特性,通过网卡从互联网上抓取数据包,从中获取可能的入侵信息或敏感信息。监测器相当于系统的信息采集器,其监测部件采用多种方法融合的方式收集该主机内的应用信息,包括分析网络数据、主机参数、监视用户的网络行为以及检查主机的通信等功能,所采集的都是基于网络形式的数据[4-5]。监测器结构如图2 所示。
图2 监测器结构
监测器结构包含内核级的包过滤器,当监测器抓取数据包后,通过包过滤器去除无意义数据,并将留下的数据包保存在数据缓冲区中,此外,监测器还拥有包驱动程序的接口,具有较好的兼容性,方便监测器与计算机技术相融和,提升监测抓取数据包和发送原始数据的能力,并为其他操作系统和驱动程序的安装提供编程接口,便于技术人员对其进行升级和改造,使监测器具有丰富的应用功能,发挥更大的监测价值。
1.2 数据处理器
系统硬件区域的数据处理器用来处理监测器监测到的网络内部交互数据,通过线程函数计算网络缓冲区内通信数据包中的数据帧格式,判断网络数据的安全情况。数据处理器的工作流程为:将缓冲区指针指向采集到的网络数据区内,并将线程函数的offset 设置为0,开始数据处理,在函数循环过程中,如果offset 的值不大于采集的数据帧长度,那么依次将offset 的值加1,一直运算到offset 的值大于采集的数据帧长度,查看offset 的值是否超过32,若超过32,代表此条网络通信数据存在异常,立即终止此条网络通信,触发报警器并请求诊断。数据处理器在分析异常网络时,先判断网络数据帧的格式,根据数据帧格式再判定网络异常故障类型[6-7]。数据处理器如图3 所示。
图3 数据处理器
该文采用DHDK 数据处理器,此数据处理器具有高性能的数据识别能力,能避免出现网络数据丢失的情况。数据处理器的处理速度为667.6 MHz,处理器的带宽能力为170 万,内部设有6 个VGA 接口。为了延长网络安全监测系统的工作周期,处理器的电池为24 V-12 A 规模。DHDK 数据处理器具有8+256 GB 超大内存存储空间,避免监测系统数据冗余降低系统的监测效率[8-9]。
1.3 报警器
当数据处理器将数据处理后,一旦发现网络内部存在危险异常的通信数据,立即将网络通信语句的ip 地址、产生时间等其他参数一同打包发送给计算机管理平台,报警器发出报警信号,通知该网络区域的网络正常交互。报警器的工作原理是网络安全监测系统接收到异常网络数据反馈包,反馈包远程发送额定频率,驱动报警器响应。报警器主要由高灵敏度的传感零件、信号接收器件以及显示器等组成[10-11]。
2 系统软件设计
在硬件设备的基础上,引入Fuzzing 测试和其他算法,提升系统整体的分析计算能力和数据处理能力,基于Fuzzing测试的网络安全监测工作流程如图4所示。
图4 网络安全监测系统软件流程
当基于Fuzzing 测试的网络安全监测系统开始工作时,首先初始化系统参数,链接局域网,沿着局域网链接其他相关网络,监测器开始监测该网络范围内的用户行为、系统参数及其他用户信息,自动获取用户的运行数据,并对采集数据进行过滤处理,将可能存在异常的数据存储在缓冲区。数据处理器对缓存数据进行分析、计算,判断用户行为是否存在异常,若存在攻击行为,将根据数据类型和数据来源确定网络攻击类型和攻击地址,报警器发出危险警报,当危险行为停止时,系统将继续进行监视[12-14]。
其具体算法如下所示:
1)选择Fuzzing 测试目标和输入
在对目标算法进行选择时,可以通过考察目标算法已经计算出来的攻击行为,或者收集网站已经收集好的网络攻击行为作为基础识别。然后,根据具体的数据,选择多个算法共享的数据库,兼容性较高,便于采用多种算法进行筛选,并采用Fuzzing 模糊测试的输入用例。
2)生成Fuzzing 测试用例
确定了输入向量以后,开始生成测试用例,由于目标的应用算法不同,测试用例的生成方式和数量也不相同,生成用例数量的计算方式如式(1)所示:
其中,n表示生成用例的数量;f表示生成用例的相对概率;N表示生成用例的种类数量;e表示数量计算常数。
3)执行测试用例
测试用例的执行和生成测试同时进行,执行过程主要是启动目标算法,发送测试用例到目标监测主机,并采用自动化方式完成执行测试用例。
4)监测异常
监测异常是基于Fuzzing 测试的网络安全监测算法的重要一步,其监测公式如式(2)所示:
式中,H表示检测结果值,当H大于1 时,表示该行为异常,反之则表示无异常情况;g表示所用执行测试用例的数量;j表示目标行为的稳定性程度;c表示该行为在数据库中出现的概率。
除此之外,算法的监测必须实时进行,一旦发生监测中断,Fuzzing 测试会向目标主机发送大量不受控制的测试用例进行无意义的测试,导致主机负荷运行从而崩溃,若不及时调整,算法将会持续进行[15-16]。
5)确定可利用性
算法的可利用性主要通过人工采用其他测试方式进行检测,目的在于保证算法的准确性,且由于不同检测算法的异常标准存在一定差别,对于某些异常数据,需要判断该异常数据是否被利用。
3 实验研究
为精准评估该文设计的基于Fuzzing 测试的网络安全监测系统的实际应用性能,设置相应的实验环境对其进行性能检验,将该文设计的基于Fuzzing测试的网络安全监测系统与传统的网络安全监测系统的工作效率和安全性进行对比实验。
针对网络安全监测系统工作环境的复杂性,对其实验环境进行不断筛选,由此获得较为准确的实验结果,具体的实验操作如下:
1)根据系统安装准则,在相同的两个主机上安装不同的安全监控系统,保证主机运行参数一致,确保系统的运行处于监控范围内,同时调控系统状态,使系统与目标主机有效工作。
2)模拟网络攻击,对两台主机进行相同次数、种类、时间、地点的网络攻击,并对模拟的网络攻击进行编号,确保实验参数的一致性。
3)统计两个系统有效识别攻击的数量和编号,记录系统运行的时间,并将结果数据录入相应数据库,进行多次实验,确保实验结果的可靠性。
为进一步提升两种安全监测系统的整体对比效果,需设计相应的实验参数进行对比,实验参数如表1 所示。
表1 实验参数
根据上述实验参数在相同的实验环境下进行对比实验,对比两种网络安全监测系统的工作效率和安全性,得到的实验结果如图5 所示。
图5 网络安全监测系统工作效率对比图
从图5 可以看出,在相同时间内,该文设计基于Fuzzing 测试的网络安全监测系统工作效率较高、安全性较好,而传统的网络安全监测系统的工作效率较低、安全性较差。监测结果负荷量如表2 所示。
表2 监测结果负荷量
综上所述,该文系统的监测能力优于传统监测系统。造成这种情况的原因在于,该文设计的系统以Fuzzing 技术为基础,采用多种核心算法,并配合监测器、数据处理器等硬件设备,提升对用户行为的监视能力,且能够对海量的用户数据进行精确处理,使其在相同的工作时间内,能够准确识别并处理更多的网络攻击,且对于相同数量的网络攻击用时更加短暂。而传统的网络安全监测系统,依靠灵活性较差的访问控制机制识别和处理网络攻击,其对用户网络数据的抓取能力较差,易漏过危险行为,且采用的分析技术不够成熟,不能对数据进行快速且准确的分析,导致整体的工作效率较低,安全性较差。
4 结束语
该文从硬件设计和软件设计两方面全面地设计了基于Fuzzing 测试的网络安全监测系统,根据工作效率、安全性两个重要指标,与传统的网络安全监测系统进行对比实验,通过对实验结果的分析,证明该文设计的基于Fuzzing 测试的网络安全监测系统具有较高的工作效率和安全性,能适应未来网络时代的发展,满足用户对网络的安全需求。但面对层出不穷的网络攻击,网络安全监测系统还需不断地更新和完善,才能确保网络环境不被破坏,进一步保证用户的信息安全。