CN114036042A - 一种模型测试方法、装置、计算机和可读存储介质 - Google Patents
一种模型测试方法、装置、计算机和可读存储介质 Download PDFInfo
- Publication number
- CN114036042A CN114036042A CN202111240994.0A CN202111240994A CN114036042A CN 114036042 A CN114036042 A CN 114036042A CN 202111240994 A CN202111240994 A CN 202111240994A CN 114036042 A CN114036042 A CN 114036042A
- Authority
- CN
- China
- Prior art keywords
- test
- alarm data
- data
- risk alarm
- brute force
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种模型测试方法、装置、计算机和可读存储介质,其中,该模型测试方法包括:根据暴力破解检测模型的配置项生成测试用例,编写测试脚本;执行测试脚本,对暴力破解检测模型进行测试;获取所述检测平台生成的风险告警数据,对风险告警数据进行断言判断,生成测试报告。本申请通过编写测试脚本对暴力破解检测模型进行自动化测试,不占用测试人员的工作时间,提升测试效率,同时具体通过测试脚本自动修改暴力破解检测模型的配置项,使测试用例可满足、不满足符合暴力破解检测模型告警要求,通过测试脚本依次执行上述测试用例,将产生的风险告警数据进行回放,与预设的风险告警数据进行断言判断,提高测试覆盖度及执行结果的准确性。
Description
技术领域
本申请涉及计算机领域,特别是涉及一种模型测试方法、装置、计算机和可读存储介质。
背景技术
暴力破解:或称为穷举法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。
暴力破解检测模型可根据流量中的ip、登录账号、密码、登录行为进行建模分析,并可以对这些检测项进行配置,提高暴力破解行为的检测准确度。
现有技术中的暴力破解检测模型的测试,主要是通过人为手动的方法,需要实时更改配置项,回放数据包,人工比对暴力破解检测结果是否正确,耗费较多时间,存在效率低下的问题;并且回归测试时,由于时间限制往往不允许精细化的测试覆盖,存在回归测试覆盖不全的问题。
发明内容
本申请实施例提供了一种模型测试方法、装置、计算机和可读存储介质,以至少解决相关技术中对暴力破解检测模型的测试过程中存在测试效率低下、回归测试覆盖不全的问题。
第一方面,本申请实施例提供了一种模型测试方法,包括:
根据所述暴力破解检测模型的配置项生成测试用例,编写测试脚本;
执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据;
若是,获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告。
在其中一些实施例中,所述根据所述暴力破解检测模型的配置项生成测试用例,编写测试脚本的步骤包括:
依次根据暴力破解检测模型的配置项生成若干个测试用例,编写可对所述配置项进行修改的测试脚本,使单个测试用例中的网络流量数据包可满足或不满足暴力破解行为特征。
在其中一些实施例中,所述执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据的步骤包括:
在Jenkins平台上配置定时任务,设定配置时间执行所述测试脚本;
所述测试脚本通过使用python库创建放包所在目录,通过使用远程文件拷贝命令拷贝所述网络流量数据包至所述检测平台的流量探针运行环境中,并回放所述网络流量数据包,等待风险告警数据的产生。
在其中一些实施例中,所述获取所述检测平台生成的风险告警数据,并对所述风险告警数据进行断言判断,生成测试报告的步骤包括:
从所述检测平台循环获取所述风险告警数据;
通过pytest单元测试框架的断言方法将所述风险告警数据与预设的风险告警数据进行匹配比对,生成执行结果;
当所述测试用例均执行完毕后,根据所述执行结果生成测试报告。
在其中一些实施例中,所述对所述风险告警数据通过pytest单元测试框架的断言方法,进行断言判断的步骤之前还包括:
若在预设时间内从所述检测平台获取风险告警数据失败,则根据所述暴力破解检测模型告警要求判断所述配置项是否正常。
在其中一些实施例中,所述获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告的步骤之前包括:
通过所述测试脚本调用虚拟机的快照接口,使所述检测平台恢复到初始状态;
通过所述测试脚本对所述配置项的配置数据进行初始化,并对所述风险告警数据的结果数据进行初始化。
在其中一些实施例中,所述通过所述测试脚本对所述配置项的配置数据进行初始化,并对所述风险告警数据的结果数据进行初始化的步骤包括:
将所述测试用例中与所述配置项对应的各种配置文件统一存储在excel文件当中,根据sheet来区分所述各种配置文件,执行所述测试脚本对所述配置数据进行初始化配置;
将所述风险告警数据统一存储在excel文件当中,根据sheet来区分各类风险告警数据。
第二方面,本申请实施例提供了一种模型测试装置,其特征在于,包括:
编写模块,所述编写模块用于根据检测平台的模型的配置项生成测试用例,编写测试脚本;
测试模块,所述测试模块用于执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据;
判断模块,所述判断模块用于对所述风险告警数据进行断言判断,生成测试报告。
在其中一些实施例中,所述编写模块包括:
编写单元:所述编写单元用于依次根据暴力破解检测模型的配置项生成若干个测试用例,编写可对所述配置项进行修改的测试脚本,使单个测试用例中的网络流量数据包可满足或不满足暴力破解行为特征。
在其中一些实施例中,所述测试模块包括:
定时单元:所述定时单元用于在Jenkins平台上配置定时任务,设定配置时间执行所述测试脚本;
回放单元,所述回放单元用于通过所述测试脚本使用python库创建放包所在目录,通过所述测试脚本使用远程文件拷贝命令拷贝数据包文件至所述检测平台,并回放所述数据包文件,等待风险告警数据产生。
在其中一些实施例中,所述判断模块包括:
获取单元,所述获取单元用于从所述检测平台循环获取所述风险告警数据;
断言单元,通过pytest单元测试框架的断言方法将所述风险告警数据与预设的风险告警数据进行匹配比对,生成执行结果;
处理单元,所述处理单元用于当所述测试用例均执行完毕后,根据所述执行结果生成测试报告。
在其中一些实施例中,所述测试模块还包括:
检测单元,所述检测单元用于若在预设时间内从所述检测平台获取风险告警数据失败,则根据所述暴力破解检测模型告警要求,判断所述配置项是否正常,并生成执行结果。
在其中一些实施例中,所述测试模块还包括:
初始化单元,所述初始化单元用于通过所述测试脚本调用虚拟机的快照接口,使所述检测平台恢复到初始状态;
通过所述测试脚本对所述配置项的配置数据进行初始化,并对所述风险告警数据的结果数据进行初始化。
在其中一些实施例中,所述初始化单元具体用于:
将所述测试用例中与所述配置项对应的各种配置文件统一存储在excel文件当中,根据sheet来区分所述各种配置文件,执行所述测试脚本对所述配置数据进行初始化配置;
将所述风险告警数据统一存储在excel文件当中,根据sheet来区分各类风险告警数据。
第三方面,本申请实施例提供了一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述第一方面所述的一种模型测试方法。
第四方面,本申请实施例提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如所述第一方面所述的一种模型测试方法。
相比于相关技术,本申请实施例提供的一种模型测试方法,通过编写测试脚本对暴力破解检测模型进行自动化测试,不占用测试人员的工作时间,提升测试效率,同时具体通过测试脚本修改暴力破解检测模型的配置项,使测试用例可满足、不满足符合暴力破解检测模型告警要求,通过测试脚本依次执行上述测试用例,依次对暴力破解检测模型的每个配置项测试,将产生的风险告警数据进行回放,与预设的风险告警数据进行断言判断,提高测试覆盖度及执行结果的准确性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请第一实施例中模型测试方法的流程图;
图2是本申请第二实施例中模型测试方法的流程图;
图3是本申请第三实施例中模型测试装置的结构框图;
图4是本申请第四实施例中计算机的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
暴力破解检测模型可对网络流量数据进行建模分析,匹配上模型的流量特征会产生风险告警信息。
暴力破解:或称为穷举法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。
现有技术中的暴力破解检测模型的测试,主要是通过人为手动的方法,需要实时更改配置项,回放数据包,人工比对暴力破解检测结果是否正确,耗费较多时间,存在效率低下的问题;并且回归测试时,由于时间限制往往不允许精细化的测试覆盖,存在回归测试覆盖不全的问题。
综上所述,本发明的第一实施例提供了一种模型测试方法。图1是根据本申请实施例的一种模型测试方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,根据所述暴力破解检测模型的配置项生成测试用例,编写测试脚本。方便理解地,暴力破解检测模型可根据网络流量中的ip、登录账号、密码、登录行为进行建模分析,并可以对这些检测项进行配置,提高暴力破解行为的检测准确度。在本步骤中,主要根据配置项或配置文件进行编写测试用例,上述配置项满足暴力破解行为的特征主要包括:
1、登录次数:成功次数、尝试次数、失败次数、累计次数;
2、聚合维度:源ip+目的ip+端口;
3、用户名检测机制,例如:每次都计算、用户名和密码有一个变化开始检测、用户名和密码都变化、密码为空不检测、用户名数量>=2开始检测。
在本发明的一个实施例中,所述配置文件为:
-'{"id":17,"ruleName":"rdp暴力破解模型默认策略 ","enable":1,"protocol":49,"cycle":60,"success":0,"try_":10,"failed":0,"count":0,"keyPoly":1,"userPoly":0,"username":0,"password":0,"attacklevel":2,"attackstatus":2,"rul eType":0}'
此外,检测平台会对上述登录行为的流量数据进行解析存储,当达到以上设定的阈值特征,即可判定为暴力破解行为。具体来说,在本步骤中,上述测试脚本依次可对上述单个配置项进行修改,使测试用的网络流量数据包满足、不满足暴力破解检测模型的告警要求,并回放数据包,看检测平台是否产生风险告警数据。
步骤S102,执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据。在本步骤中,通过测试脚本对配置项的参数进行修改,使所述测试用例生成的数据包满足、不满足暴力破解检测模型的告警要求,并通过将上述数据包拷贝至检测平台进行回放,模拟用户登录看是否产生风险告警数据,若在满足告警条件下,产生了告警数据,或者在不满足告警条件下,不产生风险告警数据,则说明该单个配置项的功能正常,反之则说明配置项功能异常,可以理解地,该测试脚本对该暴力破解检测模型的全部配置项执行完毕时,检测平台若未产生一条风险告警数据,则说明该暴力破解检测模型的配置项功能存在异常。
步骤S103,若是,获取所述检测平台生成的风险告警数据或风险数据,并对所述风险告警数据进行断言判断,生成测试报告。此外,若在预设的周期时间内无风险告警数据产生,则根据上述告警条件判断,配置项的功能是否正常,若获取成功,则对数据进行断言,即将上述风险告警数据与预存的正确风险告警数据进行比对,若数据比对一致则判断结果为正常,若比对不一致则判断结果有误。此外,在本步骤中,如上一步骤S102所述,该测试脚本需对每个单一配置项进行测试,在本步骤中,所述测试报告在所有测试用例均测试完成时产生。
在本发明的一个实施例中,风险数据如下:
{"error_code":200,"message":"success","data":{"eventype":1,"accesssubtype":0," alarmdesc":"RDP","flag":28,"dmac":345049604902,"pstate":0,"smac":34504961358 9,"basicMessage":{"sensorName":"127探测器(192.168.33.127)","name":"RDP 暴力破解【RDP暴力破解】","type":"横向威胁","postContent":"当前连接数:0<br/> 新连接数:69<br/>活动连接数:69<br/>短周期连接数:69<br/>连接平均发包数: 12<br/>数据包平均字节数:141","attackStatusName":"尝试 ","sensorip":"192.168.33.127"},"dip":"192.168.33.79","sessionid":210619140816000 2974,"source":0,"type":"暴力破解 ","apptypeid":49,"dport":"3389","reference":"","policyid":0,"appname":"RDP","payl oad":"异常连接数:69","aptfamily":28004,"processdesc":"","client":{"ip":"192.168.33.109:46592","mac ":"00:50:56:8f:45:15","placedesc":"北京经度:116.327805纬度:39.941715"},"rawdata":"","sip":"192.168.33.109","processuser":"","processtime": null,"effectrow":0,"hasAudit":0,"loginuser":"","relateinfo":0,"backresult":"","poid":2, "accessid":"2106191409160000024","filename":"","attackgradeid":2,"response":"","s ervice":{"ip":"192.168.33.79:3389","mac":"00:50:56:8f:23:26","agree":"RDP","place desc":"北京经度:116.327805纬度:39.941715"},"analysisSuggest":{"analysis":" 检测到暴力破解攻击行为,攻击者尝试对web,ssh,windows远程桌面等服务进行口令枚举爆破。","suggest":"短期可以通过防火墙等安全设备封锁恶意远程IP,使用漏洞扫描器自查应用服务漏洞并及时进行修补;长期建议在关键节点部署安防设备。 "},"domain":"","attackstatus":"2","reporthtml":"","replycode":0,"combined":1,"sport" :"46592","subeventname":"RDP暴力破解"}}
上述步骤S101至步骤S103,通过编写测试脚本对暴力破解检测模型进行自动化测试,不占用测试人员的工作时间,提升测试效率;根据配置文件和风险数据,能够在短时间内完成完整的测试过程,提高回归测试覆盖度,精准度。具体通过测试脚本修改暴力破解检测模型的配置项,使测试用例可满足、不满足符合暴力破解检测模型告警要求,通过测试脚本依次执行上述测试用例,依次对暴力破解检测模型的每个配置项测试,将产生的风险告警数据进行回放,与预设的风险告警数据进行断言判断,提高测试覆盖度及执行结果的准确性。
具体来说,检测平台通过构建用户登录行为模型,判断是否符合暴力破解特征;通过使用工具触发模型配置,抓取流量数据包;通过切换用户名或者密码来达到暴力破解目的;通过tcpreplay工具按照理论吞吐率进行数据包回放;判断流量数据包是否符合暴力破解模型配置,若是,则产生暴力破解告警;修改模型配置,直至回放流量数据包不产生告警;该模型测试方法可以实现暴力破解行为检测的自动化测试,保证测试效率以及测试结果的准确性,其中,上述tcpreplay工具用于重放保存在pcap文件中的网络流量,它支持按照捕获pcap 文件时数据包的速度、或者在硬件承受的范围内指定速度去重放网络流量。
本申请的第二实施例还提供了一种模型测试方法。图2是根据本申请实施例的另一种模型测试方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,依次根据暴力破解检测模型的配置项生成若干个测试用例,编写可对所述配置项进行修改的测试脚本,使单个测试用例中的网络流量数据包可满足或不满足暴力破解行为特征。在本步骤中,依次根据每个配置项的参数分别编写若干个测试用例,提高测试脚本的覆盖度的同时,通过测试脚本自动对配置项进行修改,使测试用例的网络流量数据包可满足、不满足暴力破解检测模型告警要求,防止因配置项功能异常,从而对测试的结果产生影响,影响测试的精准度。
步骤S202,在Jenkins平台上配置定时任务,设定配置时间执行所述测试脚本。在本步骤中,通过在Jenkins平台上配置定时任务,并通过配置git仓库地址,拉取测试脚本代码,执行测试用例,相比于现有技术中需要通过人为手动去测试且需要进行多次测试,测试效率较低的问题,本申请可以通过自动化的平台去执行,不占用测试人员的工作时间,提升测试效率。此外,便于理解地,上述Jenkins是一种可扩展的持续集成引擎,能够实现定时执行测试脚本的效果,即上述配置时间可为空闲时间或者多线程执行时间,使进行测试时无需占用测试人员的工作时间。
步骤S203,通过所述测试脚本调用虚拟机的快照接口,使所述检测平台恢复到初始状态。具体来说,在本步骤中,通过测试脚本调用恢复VMware快照接口,使所述检测平台恢复到初始状态,运行流量探针,开启暴力破解检测功能,便于后续断言判断,便于理解地,VMware,Inc.(Virtual Machine ware)是“虚拟PC”软件公司,用于提供服务器、桌面虚拟化解决方案。
步骤S204,将所述测试用例中与所述配置项对应的各种配置文件统一存储在excel文件当中,根据sheet来区分所述各种配置文件,执行所述测试脚本对所述配置数据进行初始化配置;
将所述风险告警数据统一存储在excel文件当中,根据sheet来区分各类风险告警数据。在本步骤中,将测试用例中与所述配置项对应的各种配置文件统一存储在execl文件中,根据sheet区分各种配置文件,并通过测试脚本对配置项的配置数据进行初始化,在所述测试用例执行过程中,将用到的配置文件初始化,便于测试用例的执行及回放对应的数据包。
通过将风险告警数据统一存储在execl文件中,并根据sheet来区分各类风险告警数据,用于断言判断上述暴力破解检测检测功能是否生效,所述配置项是否功能正常。
步骤S205,通过所述测试脚本使用python库创建放包所在目录,通过所述测试脚本使用远程文件拷贝命令拷贝数据包文件至所述检测平台,并回放所述数据包文件,等待风险告警数据产生。在本步骤中,通过测试脚本使用python 库创建放包所在目录,测试脚本使用远程文件拷贝命令拷贝数据包文件到检测平台的流量探针运行环境中,测试脚本修改完一个配置项,即执行下一测试用例前,会自动回放一次该类型数据包,等待风险告警数据的产生,无需人工进行调整,提高测试效率。具体来说,在本实施例中,该执行系统为Linux系统,测试脚本使用python库创建放包所在目录,测试脚本在Linux系统下采用scp命令拷贝数据包文件至所述检测平台,并回放所述数据包文件,等待风险告警数据产生。
便于理解地,上述scp命令是secure copy的缩写,scp命令是Linux系统下基于ssh登陆而进行安全的远程文件拷贝命令,用于Linux系统之间复制文件和目录。
在本实施例的一些应用场景中,由于scp命令是加密的,rcp命令是不加密的,scp命令是rcp命令的加强版,由于windows系统本身不支持ssh协议,所以,要想上述的scp命令成功执行,必须在windows客户端安装ssh for windows 的客户端软件,例如安装在Windows系统中自带的openssh,或另外安装可使 windows系统支持ssh协议的winsshd客户端软件,此外,在本申请的其他实施例中,当执行系统为Windows系统时,测试脚本在Windows系统下,通过安装 ssh for windows的客户端软件等方法以支持ssh协议,从而执行scp命令,拷贝数据包文件至所述检测平台,并回放所述数据包文件,等待风险告警数据产生。
步骤S206,从所述检测平台循环获取所述风险告警数据。在本步骤中,具体通过检测平台的风险告警数据获取接口循环获取风险告警数据,当获取次数超出限制时,则判断风险生成失败。需要说明地,在本步骤中,从检测平台循环获取风险告警数据,若在预设的周期时间内无风险告警数据产生,则根据上述告警条件判断,配置项的功能是否正常,若获取成功,则对数据进行断言,即将上述风险告警数据与预存的正确风险告警数据进行比对,若数据比对一致则判断结果为正常,若比对不一致则判断结果有误。
步骤S207,通过pytest单元测试框架的断言方法对所述风险告警数据,进行断言判断,并与预设的风险告警数据进行匹配。可以理解地,在本实施例中,通过pytest单元测试框架进行测试,在本申请的其他实施例中,还可使用其他的测试框架进行测试如unittest、junit等。此外,在本步骤中,上述测试脚本的配置文件采用yaml格式文件将模型配置项的数据统一存储;当测试用例执行的时候,读取配置项,调用配置接口,配置其中一种,然后回放与该配置项相对应的网络流量数据包,等待产生风险告警数据;当该测试用例执行完成,配置下一项,再次回放与其对应的网络流量数据包,等待产生风险告警数据,依次执行,直至配置项遍历完成,对所有配置项测试完成。
步骤S208,若在预设时间内从所述检测平台获取风险告警数据失败,则根据所述暴力破解检测模型告警要求判断所述配置项是否正常。具体来说,在本步骤中,由于测试用例存在满足、不满足告警要求的测试配置参数,在测试时,检测平台会存在无风险告警数据产生的情况,在本步骤中,当预设时间内未获取到风险告警数据时,可根据测试用例的配置参数及暴力破解检测模型的告警要求,判断配置项的功能是否正常。
步骤S209,当若干个所述测试用例均执行完毕后,根据执行结果生成测试报告。便于理解地,当所有测试用例均执行完毕后,才会根据执行结果汇总生成测试报告,当测试完单个测试用例,还存在未测试的测试用例时,转至步骤 S203,将检测平台重启、配置项数据及风险告警数据等进行初始化,并将上个测试用例的测试数据进行存储。此外,可以理解地,由于测试脚本会根据暴力破解检测模型的每个配置项功能分别设置生成相应的满足、不满足的测试用例,而对当对整个暴力破解检测模型测试完毕,未产生一条风险告警数据,则说明该暴力破解检测模型的检测功能存在异常。
综上,在本实施例中,通过编写测试脚本对暴力破解检测模型进行自动化测试,不占用测试人员的工作时间,提升测试效率,同时具体通过测试脚本自动修改暴力破解检测模型的配置项,使测试用例可满足、不满足符合暴力破解检测模型告警要求,通过测试脚本依次执行上述测试用例,将产生的风险告警数据进行回放,与预设的风险告警数据进行断言判断,提高测试覆盖度及执行结果的准确性。
本申请的第三实施例还提供了一种模型测试装置,该装置用于实现所述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的模型测试装置的结构框图,如图3所示,该装置包括:编写模块10、测试模块20及判断模块30;
编写模块10,所述编写模块10用于根据检测平台的模型的配置项生成测试用例,编写测试脚本;
测试模块20,所述测试模块20用于执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据;
判断模块30,所述判断模块30用于若生成所述风险告警数据,获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告。
具体来说,在其中一些实施例中,所述编写模块10包括:
编写单元:所述编写单元用于依次根据暴力破解检测模型的配置项生成若干个测试用例,编写可对所述配置项进行修改的测试脚本,使单个测试用例中的网络流量数据包可满足或不满足暴力破解行为特征。
在其中一些实施例中,所述测试模块20包括:
定时单元:所述定时单元用于在Jenkins平台上配置定时任务,设定配置时间执行所述测试脚本;
回放单元,所述回放单元用于所述测试脚本通过使用python库创建放包所在目录,通过使用远程文件拷贝命令拷贝所述网络流量数据包至所述检测平台的流量探针运行环境中,并回放所述网络流量数据包,等待风险告警数据的产生。
在其中一些实施例中,所述判断模块30包括:
获取单元,所述获取单元用于从所述检测平台循环获取所述风险告警数据;
断言单元,所述断言单元用于通过pytest单元测试框架的断言方法将所述风险告警数据与预设的风险告警数据进行匹配比对,生成执行结果;
处理单元,所述处理单元用于当所述测试用例均执行完毕后,根据所述执行结果生成测试报告。
在其中一些实施例中,所述测试模块20还包括:
检测单元,所述检测单元用于若在预设时间内从所述检测平台获取风险告警数据失败,则根据所述暴力破解检测模型告警要求,判断所述配置项是否正常,并生成执行结果。
在其中一些实施例中,所述测试模块20还包括:
初始化单元,所述初始化单元用于通过所述测试脚本调用虚拟机的快照接口,使所述检测平台恢复到初始状态;
通过所述测试脚本对所述配置项的配置数据进行初始化,并对所述风险告警数据的结果数据进行初始化。
在其中一些实施例中,所述初始化单元具体用于:
将所述测试用例中与所述配置项对应的各种配置文件统一存储在excel文件当中,根据sheet来区分所述各种配置文件,执行所述测试脚本对所述配置数据进行初始化配置;
将所述风险告警数据统一存储在excel文件当中,根据sheet来区分各类风险告警数据。
可以理解地,在本实施例中,通过编写模块10编写测试脚本对暴力破解检测模型进行自动化测试,不占用测试人员的工作时间,提升测试效率,同时具体通过测试脚本自动修改暴力破解检测模型的配置项,使测试用例可满足、不满足符合暴力破解检测模型告警要求,通过测试模块20执行测试脚本依次执行上述测试用例,将产生的风险告警数据进行回放,与预设的风险告警数据进行断言判断,提高测试覆盖度及执行结果的准确性,通过判断模块30对测试结果进行汇总生成测试报告。
需要说明的是,所述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,所述各个模块可以位于同一处理器中;或者所述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本申请的第四实施例提供了一种计算机,可以理解地,本实施例中的模型测试装置中提及的原理与本申请第二实施例中的模型测试方法相对应,未见描述的相关原理详见可对应参照第二实施例,在此不多赘述。
该计算机可以包括处理器81以及存储有计算机程序命令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或命令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM 可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器82所执行的可能的计算机程序命令。
处理器81通过读取并执行存储器82中存储的计算机程序命令,以实现上述实施例中的任意一种模型测试方法。
在其中一些实施例中,计算机还可包括通信接口83和总线80。其中,如图 4所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将计算机的部件彼此耦接在一起。总线80 包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的模型测试方法,本申请的第五实施例提供了一种可读存储介质。该可读存储介质上存储有计算机程序命令;该计算机程序命令被处理器执行时实现上述实施例中的任意一种模型测试方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对所述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种模型测试方法,用于对暴力破解检测模型进行测试,其特征在于,包括:
根据所述暴力破解检测模型的配置项生成测试用例,编写测试脚本;
执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据;
若是,获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告。
2.根据权利要求1所述的模型测试方法,其特征在于,所述根据所述暴力破解检测模型的配置项生成测试用例,编写测试脚本的步骤包括:
依次根据暴力破解检测模型的配置项生成若干个测试用例,编写可对所述配置项进行修改的测试脚本,使单个测试用例中的网络流量数据包可满足或不满足暴力破解行为特征。
3.根据权利要求1所述的模型测试方法,其特征在于,所述执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据的步骤包括:
在Jenkins平台上配置定时任务,设定配置时间执行所述测试脚本;
所述测试脚本通过使用python库创建放包所在目录,通过使用远程文件拷贝命令拷贝所述网络流量数据包至所述检测平台的流量探针运行环境中,并回放所述网络流量数据包,等待风险告警数据的产生。
4.根据权利要求1所述的模型测试方法,其特征在于,所述获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告的步骤包括:
从所述检测平台循环获取所述风险告警数据;
通过pytest单元测试框架的断言方法将所述风险告警数据与预设的风险告警数据进行匹配比对,生成执行结果;
当所述测试用例均执行完毕后,根据所述执行结果生成测试报告。
5.根据权利要求4所述的模型测试方法,其特征在于,所述通过pytest单元测试框架的断言方法将所述风险告警数据与预设的风险告警数据进行匹配比对,生成执行结果的步骤之前还包括:
若在预设时间内从所述检测平台获取风险告警数据失败,则根据所述暴力破解检测模型的告警要求,判断所述配置项是否正常,并生成执行结果。
6.根据权利要求4所述的模型测试方法,其特征在于,所述获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告的步骤之前包括:
通过所述测试脚本调用虚拟机的快照接口,使所述检测平台恢复到初始状态;
通过所述测试脚本对所述配置项的配置数据进行初始化,并对所述风险告警数据的结果数据进行初始化。
7.根据权利要求6所述的模型测试方法,其特征在于,所述通过所述测试脚本对所述配置项的配置数据进行初始化,并对所述风险告警数据的结果数据进行初始化的步骤包括:
将所述测试用例中与所述配置项对应的各种配置文件统一存储在excel文件当中,根据sheet来区分所述各种配置文件,执行所述测试脚本对所述配置数据进行初始化配置;
将所述风险告警数据统一存储在excel文件当中,根据sheet来区分各类风险告警数据。
8.一种模型测试装置,其特征在于,包括:
编写模块,所述编写模块用于根据暴力破解检测模型的配置项生成测试用例,编写测试脚本;
测试模块,所述测试模块用于执行所述测试脚本,对所述暴力破解检测模型进行测试,并通过检测平台获取测试结果,以判断在预设时间内所述检测平台是否能生成风险告警数据;
判断模块,所述判断模块用于获取所述检测平台生成的风险告警数据,对所述风险告警数据进行断言判断,生成测试报告。
9.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的模型测试方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的模型测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111240994.0A CN114036042A (zh) | 2021-10-25 | 2021-10-25 | 一种模型测试方法、装置、计算机和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111240994.0A CN114036042A (zh) | 2021-10-25 | 2021-10-25 | 一种模型测试方法、装置、计算机和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036042A true CN114036042A (zh) | 2022-02-11 |
Family
ID=80141865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111240994.0A Pending CN114036042A (zh) | 2021-10-25 | 2021-10-25 | 一种模型测试方法、装置、计算机和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036042A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086068A (zh) * | 2022-07-19 | 2022-09-20 | 电子科技大学 | 一种网络入侵检测方法和装置 |
-
2021
- 2021-10-25 CN CN202111240994.0A patent/CN114036042A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086068A (zh) * | 2022-07-19 | 2022-09-20 | 电子科技大学 | 一种网络入侵检测方法和装置 |
CN115086068B (zh) * | 2022-07-19 | 2022-11-08 | 电子科技大学 | 一种网络入侵检测方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Antunes et al. | Vulnerability discovery with attack injection | |
CN111857965A (zh) | 内网威胁检测方法、装置、设备和计算机设备 | |
US20210026947A1 (en) | Intrusion detection and prevention for unknown software vulnerabilities using live patching | |
CN108694320B (zh) | 一种多安全环境下敏感应用动态度量的方法及系统 | |
CN109683997B (zh) | 通过沙箱访问应用程序接口的方法、沙箱及沙箱设备 | |
KR101972825B1 (ko) | 하이브리드 분석 기술을 이용한 임베디드 기기 취약점 자동 분석 방법, 장치 및 그 방법을 실행하는 컴퓨터 프로그램 | |
US11055416B2 (en) | Detecting vulnerabilities in applications during execution | |
CN114036042A (zh) | 一种模型测试方法、装置、计算机和可读存储介质 | |
CN112162873B (zh) | 一种远程调用方法、电子装置和存储介质 | |
JP2006146600A (ja) | 動作監視サーバ、端末装置及び動作監視システム | |
CN111723374A (zh) | 一种漏洞扫描方法及装置 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 | |
CN114237665A (zh) | 补丁更新方法、装置、计算设备及存储介质 | |
CN112989343A (zh) | 一种检测超融合平台网络安全性的方法、电子设备及介质 | |
CN112468355B (zh) | 一种iot设备管理应用测试方法、装置、电子设备和存储介质 | |
US11714744B2 (en) | System and method for diagnosing a computing device in safe mode | |
CN116414722B (zh) | 模糊测试处理方法、装置、模糊测试系统及存储介质 | |
CN115688109B (zh) | 一种基于恶意代码检测报警系统的恶意代码检测方法 | |
US20240143766A1 (en) | Attestation of a device under test | |
CN117331754B (zh) | 异常问题还原方法、系统、电子设备和计算机存储介质 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
US20240159812A1 (en) | Method for monitoring in a distributed system | |
CN110354493B (zh) | 接入控制方法、装置、服务器及存储介质 | |
CN113220362A (zh) | 日志记录获取方法、装置、计算机设备和存储介质 | |
CN116524987A (zh) | Rpmb测试方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |