CN116070214B - 一种安全测试方法及电子设备 - Google Patents
一种安全测试方法及电子设备 Download PDFInfo
- Publication number
- CN116070214B CN116070214B CN202211051030.6A CN202211051030A CN116070214B CN 116070214 B CN116070214 B CN 116070214B CN 202211051030 A CN202211051030 A CN 202211051030A CN 116070214 B CN116070214 B CN 116070214B
- Authority
- CN
- China
- Prior art keywords
- test
- plug
- server
- case
- security
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000009781 safety test method Methods 0.000 title abstract description 6
- 238000012360 testing method Methods 0.000 claims abstract description 564
- 238000004458 analytical method Methods 0.000 claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 20
- 238000010998 test method Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 3
- 238000011076 safety test Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 21
- 238000002347 injection Methods 0.000 description 13
- 239000007924 injection Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 8
- 101001018259 Homo sapiens Microtubule-associated serine/threonine-protein kinase 1 Proteins 0.000 description 7
- 101000693728 Homo sapiens S-acyl fatty acid synthase thioesterase, medium chain Proteins 0.000 description 7
- 102100025541 S-acyl fatty acid synthase thioesterase, medium chain Human genes 0.000 description 7
- CSJLBAMHHLJAAS-UHFFFAOYSA-N diethylaminosulfur trifluoride Substances CCN(CC)S(F)(F)F CSJLBAMHHLJAAS-UHFFFAOYSA-N 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 239000000243 solution Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 238000012038 vulnerability analysis Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种安全测试方法及电子设备,涉及安全测试技术领域。该方法可在进行威胁建模分析后从包含大部分安全风险所对应的测试项中确定第一应用需要进行的测试项,可使测试范围更加全面;在确定测试项后可以自动获取用例和测试参数并进行测试,并自动输出安全测试报告,无需用户手动操作,测试效率高。该方法包括:接收绘制指令,生成威胁建模分析图,接收选择指令,从安全资产库提供的多个测试项中给多种图元选择第一测试项,根据第一测试项确定第一测试用例,获取第一插件及第一测试数据,基于第一测试数据及第一插件进行测试,得到第一告警结果,基于第一测试项、第一测试用例及第一告警结果,生成安全测试报告。
Description
技术领域
本申请涉及安全测试技术领域,尤其涉及一种安全测试方法及电子设备。
背景技术
随着移动互联网高速发展,各类应用已经渗入到了民众生活的方方面面。例如,在阅读、出行、学习、资讯、生活等领域,都有数量庞大的应用,为用户提供各种丰富多彩的服务。而这些应用的安全性则成为影响用户体验、保护用户隐私的重要因素。
目前,为了给用户提供良好的用户体验,在应用正式上线前,应用厂商会对应用进行安全测试。现有的安全测试流程不存在安全威胁分析,仅依靠测试人员的个人经验及通用的安全扫描工具来进行测试,不仅无法保证安全需求在测试过程中被全面覆盖,又可能因为测试人员经验不足或安全扫描工具功能不全而导致遗漏测试项,导致安全测试并不全面,容易存在漏洞。另外,在测试项过多时,需要分别输入测试数据至不同的安全工具,操作较为复杂,测试过程效率较低。
发明内容
本申请实施例提供一种安全测试方法及电子设备,用于解决安全测试不全面以及效率低的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种安全测试方法,方法包括:接收绘制指令,生成威胁建模分析图,威胁建模分析图用于指示第一应用的安全威胁风险,威胁建模分析图包括多种图元。其中,第一应用的安全威胁风险包括外部交互方、数据流、处理过程、数据存储以及信任边界这5个方面的安全风险。接收选择指令,从安全资产库提供的多个测试项中给多种图元选择第一测试项。该安全资产库中包括预先收集的绝大部分安全风险所对应的测试项,使得用户的选择更多,使测试范围更加全面。然后可以基于第一测试项从安全资产库中查询得到第一测试用例,第一测试用例包括用例类型,安全资产库还包括多个测试用例以及多个测试用例与多个测试项的对应关系,多个测试用例包括第一测试用例。若用例类型指示第一测试用例为自动化用例,基于第一测试用例从安全资产库中查询得到第一插件,安全资产库还包括多个测试用例与多个测试插件的关联关系,多个测试插件包括第一插件。也就是说,安全资产库中还包括对针对不同测试用例的安全测试插件,比常规的安全扫描工具更加全面。接着可以获取第一测试数据;基于第一测试数据及第一插件进行测试,得到第一告警结果;基于第一测试项、第一测试用例及第一告警结果,生成安全测试报告。即可以自动进行测试以及输出安全测试报告,无需用户手动操作,测试效率高。
在一种可能的实施方式中,获取第一测试数据包括:解析第一插件的配置文件得到任务参数,任务参数为运行第一插件所需的参数;向客户端发送任务参数,以使客户端显示包括输入该任务参数的输入框,在用户通过该输入框输入第一测试数据后,向电子设备(如服务器)发送该第一测试数据,电子设备接收客户端发送的第一测试数据。也即,可以仅获取测试过程中所需的参数,无需用户自己查询,既能避免用户遗漏,又能提升测试效率。特别地,在第一插件为多个时,可以批量获取多个第一插件的测试数据,无需用户针对每个插件手动输入,节约了输入测试数据的时间,提升了测试效率。
在一种可能的实施方式中,第一测试用例为第一类型(例如,DAST)的测试用例,第一测试数据包括运行第一插件所需的参数,基于第一测试数据及第一插件进行测试,得到第一告警结果包括:将第一测试数据写入第一插件的配置文件;运行写入第一测试数据后的第一插件,得到第一告警结果。
在一种可能的实施方式中,运行写入第一测试数据后的第一插件,得到第一告警结果包括:基于写入第一测试数据后的配置文件生成第一插件的插件包;向执行机发送第一插件的插件包;与执行机建立远程连接并向执行机发送运行指令;接收执行机发送的第一告警结果。
在一种可能的实施方式中,若第一测试用例为第二类型(例如,SAST)的测试用例,第一测试数据包括第一应用的代码地址,基于第一测试数据及第一插件进行测试,得到第一告警结果包括:根据第一测试数据获取第一应用的业务代码;利用第一插件,基于第一测试用例携带的扫描规则扫描第一应用的业务代码,得到第一告警结果。
在一种可能的实施方式中,方法还包括:确定第一告警结果的告警状态,告警状态用于指示第一告警结果是否需要被申报;基于第一测试项、第一测试用例及第一告警结果,生成安全测试报告包括:基于第一测试项、第一测试用例、第一告警结果及第一告警结果的告警状态,生成安全测试报告。
在一种可能的实施方式中,确定第一告警结果的告警状态包括:判断历史告警结果中是否包括与第一告警结果匹配的第二告警结果;若历史告警结果中包括与第一告警结果匹配的第二告警结果,根据第二告警结果的告警状态确定第一告警结果的告警状态,其中,第一告警结果的告警状态与第二告警结果的告警状态一致。
在一种可能的实施方式中,第二告警结果为利用第二插件基于第二测试数据运行得到的告警结果;若第一测试用例为第一类型的测试用例、第二告警结果与第一告警结果相同、第二插件与第一插件相同且第一测试数据与第二测试数据相同,第一告警结果与第二告警结果匹配。
在一种可能的实施方式中,第二告警结果为利用第二插件基于第二测试数据运行得到的告警结果;若第一测试用例为第二类型的测试用例、第二告警结果与第一告警结果相同、第二插件与第一插件相同、第一测试数据与第二测试数据相同且第一测试数据指示的业务代码与第二测试数据指示的业务代码相同,第一告警结果与第二告警结果匹配。
第二方面,本申请还提供了一种安全测试方法,应用于测试***,测试***包括客户端和服务器,方法包括:客户端显示第一界面,第一界面包括安全资产库提供的多个测试项,安全资产库还包括多个测试用例以及多个测试用例与多个测试项的对应关系;响应于用户在第一界面上的绘制操作,客户端向服务器发送绘制指令;服务器接收绘制指令,生成威胁建模分析图,威胁建模分析图用于指示第一应用的安全威胁风险,威胁建模分析图包括多种图元;服务器向客户端发送威胁建模分析图;客户端接收威胁建模分析图,在第一界面上显示威胁建模分析图;响应于用户的选择操作,客户端向服务器发送选择指令;服务器接收选择指令,从多个测试项中给多种图元选择第一测试项;服务器基于第一测试项从安全资产库中查询得到第一测试用例,第一测试用例包括用例类型,安全资产库还包括多个测试用例以及多个测试用例与多个测试项的对应关系,多个测试用例包括第一测试用例;若用例类型指示第一测试用例为自动化用例,服务器基于第一测试用例从安全资产库中查询得到第一插件,安全资产库还包括多个测试用例与多个测试插件的关联关系,多个测试插件包括第一插件;服务器获取第一测试数据;服务器基于第一测试数据及第一插件进行测试,得到第一告警结果;服务器基于第一测试项、第一测试用例及第一告警结果,生成安全测试报告。
在一种可能的实现方式中,服务器获取第一测试数据包括:服务器解析第一插件的配置文件得到任务参数,任务参数为运行第一插件所需的参数;服务器向客户端发送任务参数;客户端接收任务参数,显示第二界面,第二界面包括输入框,输入框用于提示用户输入任务参数;响应于用户在输入框中的输入操作,客户端向服务器发送第一测试数据;服务器接收第一测试数据。
第三方面,本申请还提供了一种电子设备,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得电子设备实现第一方面中任一项的安全测试方法或第二方面中任一项服务器所执行的方法。其中,该电子设备可以为服务器,也可以个人电脑等终端设备。
第四方面,本申请还提供了一种计算机可读存储介质,包括计算机指令;当计算机指令在服务器上运行时,使得服务器执行如第一方面、第二方面中任一项的安全测试方法;当计算机指令在客户端上运行时,使得客户端执行如第二方面中任一项的安全测试方法。
第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
第六方面,本申请提供一种芯片***,该芯片***包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片***可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方法所述的安全测试方法,第三方面所述的电子设备,第四方面所述的计算机可读存储介质,第五方面所述的计算机程序产品及第六方面所述的芯片***所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为现有技术提供的安全测试流程示意图;
图2为本申请实施例提供的一种测试***的结构示意图;
图3为本申请实施例提供的另一种测试***的结构示意图;
图4为本申请实施例提供的一种构建安全资产库的流程示意图;
图5为本申请实施例提供的一种确定测试用例类型的流程示意图;
图6为本申请实施例提供的一种安全测试流程示意图;
图7为本申请实施例提供的一种威胁建模分析图;
图8为本申请实施例提供的一种界面图;
图9为本申请实施例提供的另一种安全测试流程示意图;
图10为本申请实施例提供的又一种安全测试流程示意图;
图11为本申请实施例提供的再一种安全测试流程示意图;
图12为本申请实施例提供的芯片***的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
测试项,为待测应用中潜在的安全风险项。
测试用例(Test Case),是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
为了给用户提供良好的用户体验,在应用正式上线前,应用厂商会对应用进行安全测试。如图1所示,目前的安全测试流程主要包括两种:自动化测试和手动测试。其中,自动化测试是指利用安全工具扫描待测应用,在安全工具得到扫描结果后,由测试人员对扫描结果进行漏洞分析,并手动生成安全测试报告。其中,常用的安全工具包括Appscan、Awvs、Nessus、DbSacn、Xray、Sqlmap等。手动测试可包括测试人员对代码进行检视或者对待测应用进行黑盒测试,并对测试结果进行漏洞分析,手动生成安全测试报告。黑盒测试过程中,测试人员把待测应用的程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对待测应用的程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
在上述测试流程存在以下问题:
一、未对待测应用从业务层面进行威胁建模分析,存在遗漏测试项的风险。
二、缺少针对特定业务特性的安全测试标准和方法,测试过程中依赖于测试人员的个人经验。
三、安全工具有限,基于安全工具进行的测试也有限。
四、在测试项过多时,需要分别输入测试数据至不同的安全工具,操作较为复杂,测试过程效率较低。
五、在安全测试完成后,需要测试人员手动汇总各类安全工具的扫描结果,以及手动输出安全测试报告,比较繁琐,影响测试效率。
可见,现有技术提供的测试流程存在安全测试并不全面,以及测试效率较低的问题。
本申请实施例提供一种安全测试方法,可供测试人员对第一应用进行威胁分析建模,以及在安全资产库中给第一应用选择多个第一测试项,该安全资产库中包括多个测试项,该多个测试项与不同应用在不同场景下可能存在的安全隐患对应。这样可使第一应用进行的测试尽可能全面,降低遗漏测试项的风险。
基于本申请实施例提供的安全测试方法,还在确定多个第一测试项后获取每个第一测试项的测试数据,以及基于每个测试项的测试数据及对应的插件分别进行测试得到告警结果,多个测试可以并行进行,达到提升测试效率的效果。
基于本申请实施例提供的安全测试方法,还可以基于用户选择的第一测试项、该第一测试项对应的测试用例以及告警结果自动生成安全测试报告,无需用户手动整理输出,提升测试效率。
图2为本申请提供的一种测试***的场景示意图,测试***可以包括客户端110、服务器120等设备,各设备之间可通过网络实现通信,以实现第一测试数据或其他数据等信息的传输。该网络可以是因特网、蜂窝网络,或其他网络等。该网络可以包括一个或多个网络设备,如网络设备可以是路由器或交换机等。
示例性的,本申请实施例中的客户端110可以是手机、平板电脑、台式机(桌面型电脑)、手持计算机、笔记本电脑(膝上型电脑)、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等设备,本申请实施例对客户端110的具体形态不作特殊限制。
在测试过程中,服务器120可以是支持安全测试功能的应用服务器,例如该应用服务器可以是提供威胁分析建模服务、安全测试服务,以在测试过程中为用户提供测试项以及输出安全测试报告。
另外,服务器120也可以是指数据中心,该数据中心可以包括一个或多个具有测试功能的物理设备,如服务器、手机、平板电脑或其他设备等。例如,测试过程中所采用的服务器120是指部署有多个服务器的数据中心,也可称为服务器集群,该服务器集群可以具有机架,机架可通过有线连接为该多个服务器建立通信,如通用串行总线(universal serialbus,USB)或快捷***组件互连(peripheral component interconnect express,PCIe)高速总线等。
示例性的,图2所示出的服务器120可以通过图3所示出的服务器220实现,客户端110也可以通过图3所示出的客户端210实现,图3为本申请提供的另一种测试***的结构示意图,该测试***包括服务器220、客户端210和加速装置215。服务器220是一个常见的计算机设备。用户可通过客户端210向服务器220输入数据。客户端210是一种终端设备,包括但不限于个人电脑、服务器、手机、平板电脑或智能车等。
服务器220可以包括输入输出(input/output,I/O)接口214、处理器211、存储器212。I/O接口214用于与位于服务器220外部的设备通信。例如,客户端210通过I/O接口214向服务器220输入数据,或者服务器220通过I/O接口214向客户端210发送安全测试报告。
处理器211是服务器220的运算核心和控制核心,它可以是中央处理器(centralprocessing unit,CPU),也可以是其他特定的集成电路。处理器211还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。实际应用中,服务器220也可以包括多个处理器。处理器211中可以包括一个或多个处理器核(core)。在处理器211中安装有操作***和其他软件程序,从而处理器211能够实现对存储器212及各种PCIe设备的访问。
处理器211通过双倍速率(double data rate,DDR)总线或者其他类型的总线和存储器212相连。存储器212是服务器220的主存(main memory)。存储器212通常用来存放操作***中各种正在运行的软件、从客户端210接收的输入数据以及将来发送给客户端210的安全测试报告等。为了提高处理器211的访问速度,存储器212需要具备访问速度快的优点。在传统的计算机设备中,通常采用动态随机存取存储器(dynamic random access memory,DRAM)作为存储器212。除了DRAM之外,存储器212还可以是其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。另外,存储器212也可以是只读存储器(read only memory,ROM)。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasableprogrammable read only memory,EPROM)等。本实施例不对存储器212的数量和类型进行限定。
为了对数据进行持久化存储,如图3所示,测试***中设置有数据存储***213(或称数据库、安全资产库等),数据存储***213可位于服务器220的外部(如图3所示),与服务器220分别部署在不同的物理设备上,通过网络与服务器220交换数据。可选的,数据存储***213也可以位于服务器220的内部,与服务器220部署在相同的物理设备上,如数据存储***213通过PCIe总线216与处理器211交换数据。此时,数据存储***213表现为硬盘等存储介质。
示例性的,该数据存储***213可用于存储安全规范、安全测试指导、测试用例表、安全测试插件以及安全扫描规则等。其中,安全规范包括各大厂商、企业进行对于安全测试的指导与规范文件;安全测试指导为按照一定格式整理后的安全规范。该测试用例表包括测试用例、测试项以及测试用例与测试项的对应关系,可为服务器220提供查询测试项对应的测试用例的服务。安全测试插件包括进行安全测试所需要的插件。该安全扫描规则包括进行代码扫描的规则。另外,数据存储***213还存储有测试用例与安全测试插件或安全扫描规则的对应关系,可为服务器220提供根据测试用例查询对应的安全测试插件或安全扫描规则的服务。
可选的,如图2所示,该数据处理***还可以包括加速装置215,用于执行测试任务。处理器211将数据处理任务以及输入数据发送给加速装置215,加速装置215根据输入数据完成所述数据处理任务之后将处理结果发送给处理器211。如图3所示,加速装置215可以直接插在服务器220的主板上的卡槽中,通过PCIe总线216与处理器211交换数据。需注意的是,图1中的PCIe总线216也可以替换成计算快速互联(compute express link,CXL)、通用串行总线(universal serial bus,USB)协议或其他协议的总线加速装置215进行数据传输。
另外,上述的加速装置215也可以不是直接插在服务器220的主板上的卡槽中,而是位于加速设备中的。如该加速设备是一个独立于服务器220的设备。此时,服务器220可以通过网线等有线网络与加速装置215进行连接,也可以通过无线热点或者蓝牙(bluetooth)等无线网络与加速装置215进行连接。如加速装置215用于处理AI任务,例如训练和推理,加速装置可以由一个或多个芯片来实现。如该芯片包括CPU、图形处理器(graphicsprocessing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、张量处理单元(tensor processing unit,TPU)、FPGA、ASIC中的任意一种。其中,GPU又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。NPU在电路层模拟人类神经元和突触,并且用深度学习指令集直接处理大规模的神经元和突触,一条指令完成一组神经元的处理。ASIC适合于某一单一用途的集成电路产品。
上述的数据处理任务可以是对第一应用进行安全风险测试、数据库更新、或者基于数据库的数据导出、数据匹配、数据查询或数据搜索中的各种任务。
为了实现本申请提供的安全测试方法,在图3所示出的测试***的基础上,本申请先提供一种构建安全资产库的实现方式。该构建安全资产库的方法可应用于图3所示的测试***。示例性的,该安全测试方法可由图3所示的服务器220执行。如图4所示,图4为本申请提供的一种构建安全资产库的方法的流程示意图,该构建安全资产库的方法包括以下步骤:
S410,服务器220获取安全规范以及安全测试指导。
其中,安全规范包括各大厂商、企业进行对于安全测试的指导与规范文件,即安全规范可以有多个。具体的,可以包括需要进行哪些测试、测试的具体步骤、测试环境以及测试过程的理论依据等。
考虑到不同厂家的安全规范的格式不同,不便于服务器220识别,可以由测试人员对各厂家的安全规范按照约定格式整理得到安全测试指导后,将安全测试指导一同上传给服务器220。该安全测试指导可包括目录以及正文。该目录可以为多级目录,其中第一级目录用于指示包括哪些测试项。示例性的,第一级目录可包括:1测试项:Mybatis框架SQL注入,2测试项:Hibernate框架SQL注入等。第二级目录进一步对第一级目录进行分类,其中分类可包括:基础知识、测试子项、问题定级、典型问题以及解决方案等。其中,测试子项中记录了对该测试项进行测试的具体测试步骤。需要说明的是,上述目录仅为示例,安全测试指导可包括比上述示例更多的测试项,每个测试项所包括的分类可以更多或更少,在此不做具体限制。
可见,通过安全测试指导,服务器可以确定该安全测试指导中包括哪些测试项,以及对应的测试步骤。
服务器220接收到安全测试指导后,可为每个安全测试指导分配文件ID,便于后续查询。
S420,服务器220关联安全规范与安全测试指导。
也即,服务器220可以给安全规范及其对应的安全测试指导建立关联关系,使测试人员可以使用该安全测试指导时,可以通过该关联关系找到对应的安全规范,方便溯源。
S430,服务器220解析安全测试指导,生成安全测试指导表。
该安全测试指导表记录每个目录项以及目录项之间的归属关系。在本申请实施例中,服务器220可以记录每个目录项在目录中的章节坐标,并以每个目录项的章节坐标来表示目录项之间的归属关系。示例性的,该安全测试指导表可以如表1所示:
表1
如表1所示,1测试项:Mybatis框架SQL注入下包括1.1基础知识、1.2测试子项、1.3问题定级、1.4典型问题以及1.5解决方案。1.1基础知识下包括1.1.1SQL注入介绍、1.1.2SQLMybatis框架、1.1.3SQL注入类型、1.1.34QL注入危害,1.2测试子项下包括1.2.1Mybatis框架SQL注入测试。
可选的,该安全测试指导表还可记录每个测试项的来源信息,该来源信息用于指示该测试项出自哪个安全测试指导。示例性的,该来源信息可以包括目录项所属的安全测试指导的文件ID。例如,在“Web应用安全测试之SQL注入”这一安全测试指导中记录了“测试项:Mybatis框架SQL注入”的相关内容,可以确定该“测试项:Mybatis框架SQL注入”的来源信息为“Web应用安全测试之SQL注入”这一安全测试指导的文件ID。
可选的,该服务器220还可以可视化该安全测试指导表。其中,可视化安全测试指导表可以理解为基于该安全测试指导表绘制界面(例如,第一界面)以及创建界面接口,便于用户方便、直观地查询该安全测试指导表。
可选的,在服务器220解析安全测试指导前,可以校验安全测试指导的目录是否为预设格式;若安全测试指导的目录格式为预设的格式则校验成功,服务器220继续解析安全测试指导;若安全测试指导的目录格式不为预设的格式,服务器220可直接生成解析失败的信息。
S440,服务器220基于安全测试指导表,生成测试用例。
服务器220可以给安全测试指导表中的每个测试项均生成测试用例。具体的,服务器220可以获取该测试项对应的安全测试指导。然后,基于安全测试指导中该测试项下的测试子项生成测试用例。其中,测试用例可包括:测试步骤、安全规范、安全测试指导、测试项、测试子项、用例分类、用例大类、结果分类、用例作者、用例指导书的URL、推荐解决方案、用例上下线状态、用例审核状态、用例创建时间、用例修改时间以及是否删除等。在生成测试用例时,服务器220还可以给每个测试用例分配用户ID,以便于查询、记录。
可选的,服务器220还可以基于所有测试用例生成测试用例表。该测试用例表可记录每个测试用例的用例ID、该测试用例对应的测试项、测试子项以及安全测试指导。示例性的,该测试用例表可以如表2所示:
表2
根据表2可知,用例ID为390的测试用例可以进行Mybatis框架SQL注入测试,其安全测试指导为“Web应用安全测试之SQL注入”。
可选的,该服务器220还可以可视化该测试用例表。其中,可视化测试用例表可以理解为基于该测试用例表绘制界面以及创建界面接口,便于用户方便、直观地查询测试用例。
S450,服务器220关联自动化用例与对应的安全测试插件或对应的安全扫描规则。
也即,服务器220可以建立自动化用例与其对应的安全测试插件的关联关系,或建立自动化用例与其对应的安全扫描规则的关联关系。
具体的,在生成测试用例后,测试人员可以记录每个测试用例的用例类型以及关联的安全测试插件或者安全扫描规范。如图5所示,测试人员判断每个测试用例为自动化用例或非自动化用例。具体的,测试人员可以通过每个测试用例中携带的测试步骤判断其是否能够自动化。其中,自动化用例是指可以利用设备进行自动化测试的用例,非自动化用例指需要依靠测试人员手动测试的用例。确定测试用例的为自动化用例或非自动化用例后,测试人员可以在该测试用例中写入对应的用例类型。
对于自动化用例,测试人员还可以分析该用例的自动化类型。其中,自动化类型包括静态应用程序安全测试(static application security testing,SAST)和动态应用程序安全测试(dynamic application security testing,DAST)。DAST是指需要在应用动态运行过程中进行的测试,SAST是指无需运行应用,直接对应用的代码进行扫描的测试。若该测试用例为DAST类型(也可以称为第一类型),则服务器220可以关联该测试用例和对应的安全测试插件,对应的安全测试插件可以为现有插件中能够自动执行该测试用例中的测试步骤的插件,或者为测试人员基于该测试步骤构造的安全测试插件。若该测试用例为SAST类型(也可以称为第二类型),则服务器220可以关联该测试用例和对应的安全扫描规则,对应的安全扫描规则可以为测试人员按照该测试用例中的测试步骤构造的扫描规则。此外,服务器220还可在测试用例中写入进行该测试所需的安全测试插件的名称或安全扫描规则的名称,以及记录每个测试用例与安全测试插件或安全扫描规则的对应关系,以便于服务器220根据测试用例查找对应的安全测试插件或者安全扫描规则。
S460,服务器220将安全规范、安全测试指导、测试用例、安全测试插件以及安全扫描规则存入数据库。
需要说明的是,服务器220还可以根据测试人员的业务需求对数据库(安全资产库)所包括的安全规范、安全测试指导、测试用例、安全测试插件以及安全扫描规则进行更新或增加,以不断完善安全资产库。
如此,数据库(也可以称为安全资产库)中包括安全规范、安全测试指导、测试用例、安全测试插件以及安全扫描规则,服务器220可以从该安全资产库中提取测试项以供用户在测试过程中选择,基于测试项查找测试用例,基于测试用例查询对应的安全测试插件或安全扫描规则等。
为了实现本申请提供的安全测试方法,在图3所示出的测试***的基础上,本申请提供一种安全测试方法的实现方式。该安全测试方法可应用于图3所示的测试***。示例性的,该安全测试方法可由图3所示的服务器220执行。如图6所示,图6为本申请提供的一种安全测试方法的流程示意图,该安全测试方法包括以下步骤:
S610,服务器220接收绘制指令,构建威胁建模分析图。
其中,威胁建模分析图用于反映第一应用的安全威胁风险。该威胁建模分析图包括多种图元,图元的类型可包括外部交互方、数据流、处理过程、数据存储以及信任边界,每个图元可表示一种安全威胁风险。外部交互方指能驱动***业务,但不受***控制的人或物的元素,通常表示目标***的输入/输出。数据流用于指示数据在***中的移动方向。处理过程为一个过程执行一个任务时的逻辑表示。数据存储表示数据库、文件、注册表、内存等。信任边界指可信元素与不可信元素之间的边界。
示例性的,第一应用可为购物APP,且第一应用需要从荣*商城获取产品信息、订单信息以及下单等,在支付过程中荣*商城需调用银行服务器的接口,以完成支付操作。基于此,用户可绘制该第一应用的威胁建模分析图。如图7所示,第一应用的威胁建模分析图可包括7个图元,分别为:2个外部交互方(分别为荣*商城、银行服务器),1个处理过程(即第一应用),2个数据流(分别为荣*商城与第一应用的数据流、荣*商城与银行服务器的数据流),以及2个信任边界(分别为荣*商城与第一应用之间的边界、荣*商城与银行服务器之间的边界)。也即,第一应用在这个7个方面存在安全威胁风险。
该绘制指令可以为客户端210接收到用户的绘制操作后生成的。示例性的,客户端210可以显示界面810。如图8所示,该界面810包括第一区域811、第二区域812以及第三区域813。第一区域811也可以称为图元选择区域,用于提供多种图元供用户选择。第二区域812用于供用户绘制威胁建模分析图。该第二区域812也可以称为数据流图绘制区、威胁建模区等等,在此不做具体限制。第三区域813包括多个测试项供用户选择,该多个测试项可以是安全资产库提供的,例如包括“未公开帐号/接口”、“内容遗漏”下的所有子目录、“命令描述与实际不一致”下的所有子目录等。
其中,绘制操作包括用户将第一区域811中的图元拖拽至第二区域812,双击图元(以修改图元的名称)以及按照第一应用的数据流向对各图元进行连接的操作。客户端210检测到用户在第二区域812中的绘制操作,可以向服务器220发送该绘制指令。服务器220构建威胁建模分析图后,还可将该威胁建模分析图发送给客户端210,以供客户端210在第二区域812显示。
S620,服务器220接收选择指令,从多个测试项中确定第一测试项。
该选择指令可以包括第一测试项的ID。如此,服务器220可以基于该ID从多个测试项中确定第一测试项。
其中,选择指令可以是客户端210接收到用户的选择操作后生成的。示例性的,如图8所示,第一界面810的第三区域813包括多个测试项。响应于用户从多个测试项中选择第一测试项的操作,客户端210可向服务器220发送选择指令,该选择指令中携带有第一测试项的ID。其中,在检测到用户的选择操作后,用户所选择的测试项处于被选中状态。
需要说明的是,用户可以右键威胁建模分析图的每个图元,给每个图元都选择一个或多个测试项。如此,该选择指令中可以携带有一个或多个测试项的ID。对应的,服务器220确定的第一测试项也可以为多个。
可以理解地,多个测试项包含了安全测试过程中的绝大部分安全风险项,通过该多个测试项可以给用户提供更全面的测试思路,以使得第一应用的测试更加全面。
S630,服务器220确定第一测试用例。
具体的,安全资产库中存储有多个测试项与多个测试用例的对应关系,服务器220可以基于第一测试项及该对应关系确定第一测试用例。
第一测试用例中携带有用例类型。该用例类型用于指示第一测试用例为自动化用例或非自动化用例。
S640,服务器220判断第一测试用例是否为自动化用例。
若服务器220判断第一测试用例为自动化用例,服务器220可执行S650;若服务器220判断第一测试用例为非自动化用例,则提醒测试人员对第一测试项进行手动测试。
S650,服务器220基于第一测试用例从安全资产库中查询得到第一插件。
安全资产库还包括多个测试用例与多个测试插件的关联关系,多个测试插件包括第一插件。如此,服务器220可以基于该第一测试用例和关联关系,确定第一插件。
需要说明的是,若第一测试用例为DAST类型的测试用例,则该第一测试用例中还包括第一插件的插件名称,该第一插件即为可以自动执行第一测试用例中携带的测试步骤的插件。若第一测试用例为SAST类型的测试用例,则该第一插件为代码扫描插件,可用于扫描业务代码。
S660,服务器220获取第一测试数据。
该第一测试数据为对第一应用进行第一测试(第一测试项对应的测试)过程中所需使用的参数。
可选的,该第一测试数据可以为用户通过客户端210输入的。如图9所示,服务器220获取第一测试数据的流程可以包括:
S661,服务器220解析第一插件的配置文件得到任务参数。
具体的,第一插件的配置文件可以指第一插件的default.json文件,default.json文件中记录了运行第一插件所需的任务参数。示例性的,第一插件的default.json文件可以包括:
{
"host":"主机IP|xxx|",
"type":"插件类型|xxx|",
"user":"用户名|xxx|",
"password":"密码|xxx|"
"port":"端口|xxx|",
"filepath":"路径|xxx|"
}
也即,第一插件的default.json文件中包括host(主机)、type(插件类型)、user(用户名)、password(密码)、port(端口)以及filepath(路径)这6种类型的参数。
S662,服务器220向客户端210发送任务参数。
服务器220解析得到任务参数后,可向客户端210发送该任务参数。客户端210接收到任务参数后,可显示第二界面910。如图9所示,该第二界面910中包括每个任务参数的名称以及对应的输入框,分别供用户输入主机、插件类型、用户名、密码、端口以及路径。响应于用户在每个输入框中的输入操作,客户端210向服务器220发送第一测试数据。例如,该第一测试数据包括主机、插件类型、用户名、密码、端口以及路径这6项参数的具体数值。
S663,服务器220接收客户端210发送的第一测试数据。
需要说明的是,当存在多个第一测试用例时,服务器220可以解析每个第一插件的任务参数,并提醒用户统一输入所有测试任务的任务参数,无需分别给插件输入参数,可有效提升测试效率。
S670,服务器220基于第一测试数据及第一插件进行测试,得到第一告警结果。
对于不同类型的测试用例,服务器220进行测试的过程不相同。下面,结合图10详细说明服务器220进行测试的过程,该过程可以包括步骤S671~S675或S676~S677。
其中,当第一测试用例为DAST类型(也可以称为第一类型)时,服务器220可以执行S671~S675。
S671,服务器220将第一测试数据写入第一插件的配置文件。
其中,将第一测试数据写入第一插件,可以理解为将第一测试数据复写至第一插件的default.json文件。示例性的,写入第一测试数据后的default.json文件可以包括:
{
"host":"主机IP|10.20.02.20|",
"type":"插件类型|OS|",
"user":"用户名|root|",
"password":"密码|1359qwe|"
"port":"端口|22|",
"filepath":"路径|/home/1.sql|"
}
其中,主机IP为10.20.02.20,插件类型为OS,用户名为root,密码为1359qwe,端口为22,路径为home/1.sql。
S672,服务器220基于写入第一测试数据后的配置文件生成第一插件的插件包。
也即,服务器220可以将第一插件的可执行文件和该写入第一测试数据后的配置文件(即default.json文件)重新打包,生成第一插件的插件包。
S673,服务器220向执行机发送第一插件的插件包。
第一插件的插件包包括第一插件的可执行文件,以及写入第一测试数据后的配置文件。
其中,执行机接收到第一插件的插件包后,可以执行插件包中的可执行脚本/可执行程序,以完成测试任务。
S674,服务器220与执行机建立远程连接并向执行机发送运行指令。
其中,该运行指令用于指示执行机运行写入第一测试数据后的第一插件。
在一种实施例中,服务器220可以通过paramiko与执行机建立远程连接。在与执行机建立远程连接后,服务器220可向执行机发送运行指令。执行机接收到运行指令后,可以对第一插件的插件包进行解压,然后执行该插件包中的可执行文件,以完成测试任务。测试完成后,执行机可生成第一告警结果,并向服务器220发送第一告警结果。该第一告警结果用于反映第一应用存在的漏洞。
可选的,执行机可按照约定的告警格式生成告警结果。其中,告警格式可以为:
S675,服务器220接收执行机发送的第一告警结果。
当第一测试用例为SAST类型(也可以称为第二类型)时,服务器220可以执行S676~S677。
S676,服务器220根据第一测试数据获取业务代码。
具体的,考虑到代码的内容较多,该第一测试数据可以为第一应用的业务代码的URL地址。如此,服务器220可以基于该URL地址查询到第一应用的业务代码,并进行下载。
可选的,该第一测试数据也可以为第一应用的业务代码。又或者,第一测试数据可以为包括第一应用的业务代码的文件。
S677,服务器220利用第一插件,基于第一测试用例携带的扫描规则扫描业务代码,得到第一告警结果。
其中,该扫描规则为按照该第一测试用例携带的测试步骤构造的扫描规则。如此,服务器220按照第一测试用例携带的测试步骤来扫描第一应用的业务代码,即为按照测试步骤中描述的过程扫描第一应用的业务代码,以确定第一应用的业务代码中是否存在漏洞。
需要说明的是,服务器220同样可以按照约定的告警格式生成该第一告警结果。
S680,服务器220基于第一测试项、第一测试用例及第一告警结果,生成安全测试报告。
也即,服务器220可以在测试完成后,自动生成安全测试报告,无需用户手动处理,既节省了用户操作,又提高了测试效率。
需要说明的是,若第一测试用例中包括手工执行用例,测试人员可以基于该手工执行用例进行测试,并得到告警结果。服务器220还可以将手工执行用例的告警结果及告警状态写入该安全测试报告中。
可选的,服务器220在生成安全测试报告前,还可以分析第一测试用例及第一告警结果,生成安全测试结论。该安全测试结论指示本次安全测试是否通过、安全风险的高、低情况等。另外,服务器220可以调用docxtpl库自动输出安全测试报告。
可选的,服务器220在生成安全测试报告前,还可以确认第一告警结果的告警状态。告警状态用于指示第一告警结果中指示的漏洞是否为误报。
在确定第一告警结果的告警状态后,服务器220还可以基于第一测试项、第一测试用例、第一告警结果及第一告警结果的告警状态,生成安全测试报告。如此,安全测试报告的内容更加完整且具有参考性。
如图11所示,针对服务器220确定第一告警结果的告警状态的过程,可以包括以下步骤S710和S720。
S710,服务器220判断历史告警结果中是否包括与第一告警结果匹配的第二告警结果。
其中,若历史告警结果中包括与第一告警结果匹配的第二告警结果,则服务器220执行S720;若历史告警结果中不包括与第一告警结果匹配的第二告警结果,可以由测试人员分析该第一告警结果后,手动标记第一告警结果的告警状态。
历史告警结果包括服务器220在进行当前测试前,进行所有或部分测试得到的告警结果。该第二告警结果为服务器220利用第二插件基于第二测试数据运行得到的告警结果。若第一测试用例为DAST类型,则当第二告警结果与第一告警结果相同、第二插件与第一插件相同且第一测试数据与第二测试数据相同时,可以确定第一告警结果与第二告警结果匹配。
若第一测试用例为SAST类型,则当第二告警结果与第一告警结果相同、第二插件与第一插件相同、第一测试数据与第二测试数据相同且第一测试数据指示的业务代码与第二测试数据指示的业务代码相同时,可以确定第一告警结果与第二告警结果匹配。
S720,服务器220根据第二告警结果的告警状态确定第一告警结果的告警状态。
其中,第一告警结果的告警状态与第二告警结果的告警状态一致。也即,第一告警结果可以继承第二告警结果的告警状态。
如此,可以减少用户手动标记告警结果的次数,提高测试效率。
本申请实施例还提供一种芯片***,如图12所示,该芯片***包括至少一个处理器1201和至少一个接口电路1202。处理器1201和接口电路1202可通过线路互联。例如,接口电路1202可用于从其它装置(例如,服务器的存储器)接收信号。又例如,接口电路1202可用于向其它装置(例如处理器1201)发送信号。
例如,接口电路1202可读取电子设备中存储器中存储的指令,并将该指令发送给处理器1201。当所述指令被处理器1201执行时,可使得电子设备(如图2中的服务器120等)执行上述实施例中的各个步骤。
当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备(如图2中的服务器120等)上运行时,使得电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种安全测试方法,其特征在于,所述方法包括:
接收绘制指令,生成威胁建模分析图,所述威胁建模分析图用于指示第一应用的安全威胁风险,所述威胁建模分析图包括多种图元,所述图元的类型包括外部交互、数据流、处理过程、数据存储以及信任边界,每种类型的图元用于表征一种安全威胁风险;
接收选择指令,从安全资产库提供的多个测试项中给多种图元选择第一测试项;
基于所述第一测试项从所述安全资产库中查询得到第一测试用例,所述第一测试用例包括用例类型,所述安全资产库还包括多个测试用例以及所述多个测试用例与所述多个测试项的对应关系,所述多个测试用例包括所述第一测试用例;
若所述用例类型指示所述第一测试用例为自动化用例,基于所述第一测试用例从所述安全资产库中查询得到第一插件,所述安全资产库还包括所述多个测试用例与多个测试插件的关联关系,所述多个测试插件包括所述第一插件;
获取第一测试数据;
基于所述第一测试数据及所述第一插件进行测试,得到第一告警结果;
基于所述第一测试项、所述第一测试用例及所述第一告警结果,生成安全测试报告。
2.根据权利要求1所述的方法,其特征在于,所述获取第一测试数据包括:
解析所述第一插件的配置文件得到任务参数,所述任务参数为运行所述第一插件所需的参数;
向客户端发送所述任务参数;
接收所述客户端发送的第一测试数据。
3.根据权利要求2所述的方法,其特征在于,所述第一测试用例为第一类型的测试用例,所述第一测试数据包括运行所述第一插件所需的参数,所述基于所述第一测试数据及所述第一插件进行测试,得到第一告警结果包括:
将所述第一测试数据写入所述第一插件的配置文件;
运行写入所述第一测试数据后的第一插件,得到所述第一告警结果。
4.根据权利要求3所述的方法,其特征在于,所述运行写入所述第一测试数据后的第一插件,得到第一告警结果包括:
基于写入所述第一测试数据后的配置文件生成第一插件的插件包;
向执行机发送所述第一插件的插件包;
与所述执行机建立远程连接并向所述执行机发送运行指令;
接收所述执行机发送的所述第一告警结果。
5.根据权利要求2所述的方法,其特征在于,若所述第一测试用例为第二类型的测试用例,所述第一测试数据包括所述第一应用的代码地址,所述基于所述第一测试数据及所述第一插件进行测试,得到第一告警结果包括:
根据所述第一测试数据获取所述第一应用的业务代码;
利用所述第一插件,基于所述第一测试用例携带的扫描规则扫描所述第一应用的业务代码,得到所述第一告警结果。
6.根据权利要求1-5中任意一项所述的方法,其特征在于,所述方法还包括:
确定所述第一告警结果的告警状态,所述告警状态用于指示所述第一告警结果是否需要被申报;
基于所述第一测试项、所述第一测试用例及所述第一告警结果,生成安全测试报告包括:
基于所述第一测试项、所述第一测试用例、所述第一告警结果及所述第一告警结果的告警状态,生成所述安全测试报告。
7.根据权利要求6所述的方法,其特征在于,所述确定所述第一告警结果的告警状态包括:
判断历史告警结果中是否包括与所述第一告警结果匹配的第二告警结果;
若所述历史告警结果中包括与所述第一告警结果匹配的第二告警结果,根据所述第二告警结果的告警状态确定所述第一告警结果的告警状态,其中,所述第一告警结果的告警状态与所述第二告警结果的告警状态一致。
8.根据权利要求7所述的方法,其特征在于,所述第二告警结果为利用第二插件基于第二测试数据运行得到的告警结果;
若所述第一测试用例为第一类型的测试用例、所述第二告警结果与所述第一告警结果相同、所述第二插件与所述第一插件相同且所述第一测试数据与所述第二测试数据相同,所述第一告警结果与所述第二告警结果匹配。
9.根据权利要求7所述的方法,其特征在于,所述第二告警结果为利用第二插件基于第二测试数据运行得到的告警结果;
若所述第一测试用例为第二类型的测试用例、所述第二告警结果与所述第一告警结果相同、所述第二插件与所述第一插件相同、所述第一测试数据与所述第二测试数据相同且所述第一测试数据指示的业务代码与所述第二测试数据指示的业务代码相同,所述第一告警结果与所述第二告警结果匹配。
10.一种安全测试方法,其特征在于,应用于测试***,所述测试***包括客户端和服务器,所述方法包括:
所述客户端显示第一界面,所述第一界面包括安全资产库提供的多个测试项,所述安全资产库还包括多个测试用例以及所述多个测试用例与所述多个测试项的对应关系;
响应于用户在所述第一界面上的绘制操作,所述客户端向所述服务器发送绘制指令;
所述服务器接收所述绘制指令,生成威胁建模分析图,所述威胁建模分析图用于指示第一应用的安全威胁风险,所述威胁建模分析图包括多种图元,所述图元的类型包括外部交互、数据流、处理过程、数据存储以及信任边界,每种类型的图元用于表征一种安全威胁风险;
所述服务器向所述客户端发送所述威胁建模分析图;
所述客户端接收所述威胁建模分析图,在所述第一界面上显示所述威胁建模分析图;
响应于用户的选择操作,所述客户端向所述服务器发送选择指令;
所述服务器接收所述选择指令,从所述多个测试项中给所述多种图元选择第一测试项;
所述服务器基于所述第一测试项从所述安全资产库中查询得到第一测试用例,所述第一测试用例包括用例类型,所述安全资产库还包括多个测试用例以及所述多个测试用例与所述多个测试项的对应关系,所述多个测试用例包括所述第一测试用例;
若所述用例类型指示所述第一测试用例为自动化用例,所述服务器基于所述第一测试用例从所述安全资产库中查询得到第一插件,所述安全资产库还包括所述多个测试用例与多个测试插件的关联关系,所述多个测试插件包括所述第一插件;
所述服务器获取第一测试数据;
所述服务器基于所述第一测试数据及所述第一插件进行测试,得到第一告警结果;
所述服务器基于所述第一测试项、所述第一测试用例及所述第一告警结果,生成安全测试报告。
11.根据权利要求10所述的方法,其特征在于,所述服务器获取第一测试数据包括:
所述服务器解析所述第一插件的配置文件得到任务参数,所述任务参数为运行所述第一插件所需的参数;
所述服务器向所述客户端发送所述任务参数;
所述客户端接收所述任务参数,显示第二界面,所述第二界面包括输入框,所述输入框用于提示用户输入所述任务参数;
响应于用户在所述输入框中的输入操作,所述客户端向所述服务器发送第一测试数据;
所述服务器接收所述第一测试数据。
12.一种电子设备,其特征在于,包括处理器,所述处理器和存储器耦合,所述存储器存储有程序指令,当所述存储器存储的程序指令被所述处理器执行时使得所述电子设备实现权利要求1-9中任一项所述的方法或权利要求10-11中任一项服务器所执行的方法。
13.一种计算机可读存储介质,其特征在于,包括计算机指令;
当所述计算机指令在服务器上运行时,使得所述服务器执行如权利要求1-11中任一项所述的方法;
或者,当所述计算机指令在客户端上运行时,使得所述客户端执行如权利要求10-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211051030.6A CN116070214B (zh) | 2022-08-30 | 2022-08-30 | 一种安全测试方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211051030.6A CN116070214B (zh) | 2022-08-30 | 2022-08-30 | 一种安全测试方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116070214A CN116070214A (zh) | 2023-05-05 |
CN116070214B true CN116070214B (zh) | 2024-04-02 |
Family
ID=86175754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211051030.6A Active CN116070214B (zh) | 2022-08-30 | 2022-08-30 | 一种安全测试方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116070214B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872230A (zh) * | 2019-01-23 | 2019-06-11 | 平安科技(深圳)有限公司 | 金融数据分析***的测试方法、装置、介质、电子设备 |
CN112231213A (zh) * | 2020-10-16 | 2021-01-15 | 广州助蜂网络科技有限公司 | Web自动化测试方法、***、存储介质及终端设备 |
CN113804451A (zh) * | 2020-06-11 | 2021-12-17 | 上海汽车集团股份有限公司 | 一种汽车智能驾驶自动化仿真测试方法及装置 |
CN114281680A (zh) * | 2021-12-03 | 2022-04-05 | 苏州浪潮智能科技有限公司 | 一种web自动化测试方法及*** |
CN114661594A (zh) * | 2022-03-16 | 2022-06-24 | 上海掌门科技有限公司 | 一种用于自动化测试的方法、设备、介质及程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2015DE01395A (zh) * | 2015-05-18 | 2015-06-26 | Hcl Technologies Ltd |
-
2022
- 2022-08-30 CN CN202211051030.6A patent/CN116070214B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872230A (zh) * | 2019-01-23 | 2019-06-11 | 平安科技(深圳)有限公司 | 金融数据分析***的测试方法、装置、介质、电子设备 |
CN113804451A (zh) * | 2020-06-11 | 2021-12-17 | 上海汽车集团股份有限公司 | 一种汽车智能驾驶自动化仿真测试方法及装置 |
CN112231213A (zh) * | 2020-10-16 | 2021-01-15 | 广州助蜂网络科技有限公司 | Web自动化测试方法、***、存储介质及终端设备 |
CN114281680A (zh) * | 2021-12-03 | 2022-04-05 | 苏州浪潮智能科技有限公司 | 一种web自动化测试方法及*** |
CN114661594A (zh) * | 2022-03-16 | 2022-06-24 | 上海掌门科技有限公司 | 一种用于自动化测试的方法、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN116070214A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210382949A1 (en) | Systems and methods for web content inspection | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US11218510B2 (en) | Advanced cybersecurity threat mitigation using software supply chain analysis | |
CN109376078B (zh) | 移动应用的测试方法、终端设备及介质 | |
CN107918733A (zh) | 检测网页的恶意元素的***和方法 | |
CN109977690A (zh) | 一种数据处理方法、装置和介质 | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理*** | |
CN111343154A (zh) | 漏洞检测方法、装置、终端设备以及存储介质 | |
CN111414402A (zh) | 一种日志威胁分析规则生成方法及装置 | |
US10693897B2 (en) | Behavioral and account fingerprinting | |
CN111586005A (zh) | 扫描器扫描行为识别方法及装置 | |
WO2020192179A1 (zh) | 一种基于iOS应用的安全检测方法、装置及*** | |
CN109522683A (zh) | 软件溯源方法、***、计算机设备及存储介质 | |
CN116070214B (zh) | 一种安全测试方法及电子设备 | |
CN112015715A (zh) | 工业互联网数据管理服务测试方法及*** | |
CN114282221B (zh) | 注入类漏洞检测方法、***、终端及存储介质 | |
KR102541888B1 (ko) | 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
US20220237289A1 (en) | Automated malware classification with human-readable explanations | |
CN114969175A (zh) | 保险平台与外部***的对接方法及相关设备 | |
CN114003916A (zh) | Web角色纵向越权漏洞的测试方法、***、终端及存储介质 | |
CN113420302A (zh) | 主机漏洞检测方法及装置 | |
CN114301713A (zh) | 风险访问检测模型的训练方法、风险访问检测方法及装置 | |
CN113949578A (zh) | 基于流量的越权漏洞自动检测方法、装置及计算机设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |