CN116975870A - 系统安全的评估方法、装置、计算机设备、存储介质 - Google Patents

系统安全的评估方法、装置、计算机设备、存储介质 Download PDF

Info

Publication number
CN116975870A
CN116975870A CN202310627187.7A CN202310627187A CN116975870A CN 116975870 A CN116975870 A CN 116975870A CN 202310627187 A CN202310627187 A CN 202310627187A CN 116975870 A CN116975870 A CN 116975870A
Authority
CN
China
Prior art keywords
risk
vulnerability
security
application system
occurrence
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
Application number
CN202310627187.7A
Other languages
English (en)
Inventor
阮仪容
徐金玉
胡飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Bank Co Ltd
CIB Fintech Services Shanghai Co Ltd
Original Assignee
Industrial Bank Co Ltd
CIB Fintech Services Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial Bank Co Ltd, CIB Fintech Services Shanghai Co Ltd filed Critical Industrial Bank Co Ltd
Priority to CN202310627187.7A priority Critical patent/CN116975870A/zh
Publication of CN116975870A publication Critical patent/CN116975870A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种系统安全的评估方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取应用系统的风险需求,生成与风险需求对应的安全测试用例;将安全测试用例发送至应用系统执行,根据安全测试用例的执行结果确定出风险需求对应的风险出现概率;对应用系统进行漏洞扫描,记录风险需求在应用系统中的漏洞出现次数以及漏洞出现类型;根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果。采用本方法能够利用风险需求在应用系统中的风险出现概率、漏洞出现次数以及漏洞出现类型对应用系统的系统安全进行量化评估,从而提高安全评估结果的生成准确率。

Description

系统安全的评估方法、装置、计算机设备、存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种系统安全的评估方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
系统安全是指在系统生命周期内,通过应用系统安全工程和系统安全管理方法辨识系统中的安全隐患,并采取有效的控制措施使其危险性最小,从而使系统在规定的性能、时间和成本范围内达到最佳的安全程度。
系统安全是人们为解决复杂系统的安全性问题而开发、研究出来的安全理论、方法体系,是系统工程与安全工程结合的完美体现。系统安全的基本原则就是在一个新系统的构思阶段就必须考虑其安全性的问题,制定并执行安全工作规划(系统安全活动),属于事前分析和预先的防护,与传统的事后分析并积累事故经验的思路截然不同。系统安全活动贯穿于生命整个系统生命周期,直到系统报废为止。
然而,采用目前的系统安全基本原则进行系统安全评估时,由于安全风险数据无法量化,导致安全评估结果容易存在较大的误差。
发明内容
基于此,有必要针对上述技术问题,提供一种评估准确率高的系统安全的评估方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种系统安全的评估方法。所述方法包括:
获取应用系统的风险需求,生成与所述风险需求对应的安全测试用例;
将所述安全测试用例发送至所述应用系统执行,根据所述安全测试用例的执行结果确定出所述风险需求对应的风险出现概率;
对所述应用系统进行漏洞扫描,记录所述风险需求在所述应用系统中的漏洞出现次数以及漏洞出现类型;
根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果。
在其中一个实施例中,所述根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果,包括:
获取所述应用系统在多轮测试下的用例执行结果集以及漏洞扫描结果集;
根据所述风险需求在所述用例执行结果集中的需求出现次数以及风险出现概率,确定所述风险需求的风险暴露概率;
根据所述需求出现次数以及所述风险需求在所述漏洞扫描结果集中的漏洞出现次数,确定所述风险需求的漏洞预测次数;
根据所述漏洞扫描结果集中属于所述漏洞出现类型的漏洞数量以及所述漏洞扫描结果集中的漏洞总数量,确定所述应用系统的漏洞预估指标;
利用所述风险暴露概率、所述漏洞预测次数和所述漏洞预估指标,生成所述安全评估结果。
在其中一个实施例中,所述获取应用系统的风险需求,生成与所述风险需求对应的安全测试用例,包括:
获取所述应用系统的需求描述文本;
根据预设安全规则从所述需求描述文本中确定出所述风险需求;
获取与所述风险需求存在映射关系的安全知识数据,利用所述安全知识数据生成所述安全测试用例。
在其中一个实施例中,所述获取与所述风险需求存在映射关系的安全知识数据,利用所述安全知识数据生成所述安全测试用例,包括:
获取所述应用系统的项目调查问卷,从所述项目调查问卷中提取出项目功能需求;
利用所述项目功能需求和所述风险需求建立联合需求集合;
从安全知识库中读取与所述联合需求集合存在映射关系的安全设计文档以及测试用例;
利用所述安全设计文档和所述测试用例,生成所述安全测试用例。
在其中一个实施例中,所述方法还包括:
采用所述安全测试用例更新与所述联合需求集合存在映射关系的测试用例。
在其中一个实施例中,所述方法还包括:
当所述应用系统处于第二生命周期时,获取所述应用系统在第一生命周期的历史安全评估结果,所述第一生命周期的结束时间早于所述第二生命周期的开始时间;
所述根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果,包括:
利用所述历史安全评估结果以及所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统在所述第二生命周期的安全评估结果。
第二方面,本申请还提供了一种系统安全的评估装置。所述装置包括:
需求获取模块,用于获取应用系统的风险需求,生成与所述风险需求对应的安全测试用例;
用例执行模块,用于将所述安全测试用例发送至所述应用系统执行,根据所述安全测试用例的执行结果确定出所述风险需求对应的风险出现概率;
漏洞扫描模块,用于对所述应用系统进行漏洞扫描,记录所述风险需求在所述应用系统中的漏洞出现次数以及漏洞出现类型;
安全评估模块,用于根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项实施例所述的系统安全的评估方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项实施例所述的系统安全的评估方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项实施例所述的系统安全的评估方法。
上述系统安全的评估方法、装置、计算机设备、存储介质和计算机程序产品,通过获取应用系统的风险需求,生成与风险需求对应的安全测试用例;将安全测试用例发送至应用系统执行,根据安全测试用例的执行结果确定出风险需求对应的风险出现概率;对应用系统进行漏洞扫描,记录风险需求在应用系统中的漏洞出现次数以及漏洞出现类型;根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果,能够利用风险需求在应用系统中的风险出现概率、漏洞出现次数以及漏洞出现类型对应用系统的系统安全进行量化评估,从而提高安全评估结果的生成准确率。
附图说明
图1为一个实施例中系统安全的评估方法的应用环境图;
图2为一个实施例中系统安全的评估方法的流程示意图;
图3为一个实施例中安全评估结果生成步骤的流程示意图;
图4为一个实施例中安全测试用例生成步骤的流程示意图;
图5为另一个实施例中安全测试用例生成步骤的流程示意图;
图6为另一个实施例中系统安全的评估方法的流程示意图;
图7为一个实施例中系统安全的评估装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本申请实施例提供的系统安全的评估方法,可以应用于如图1所示的应用环境中。其中,服务器100中可以部署有应用系统102。数据存储系统104可以存储服务器100需要处理的数据。数据存储系统104可以集成在服务器100上,或者,也可以放在云上或其他网络服务器上。具体地,服务器100可以从数据存储系统104中获取应用系统102的风险需求,生成与风险需求对应的安全测试用例。将安全测试用例发送至应用系统102执行,并记录安全测试用例在应用系统102中的执行结果。根据安全测试用例的执行结果可以确定出风险需求在应用系统102中对应的风险出现概率。对应用系统102进行漏洞扫描,从应用系统102的漏洞扫描结果中确定出与风险需求相关的漏洞出现次数以及漏洞出现类型。根据风险需求在应用系统102中的风险出现概率、漏洞出现次数以及漏洞出现类型,可以生成应用系统102的安全评估结果。其中,服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种系统安全的评估方法,以该方法应用于图1中的服务器100为例进行说明,包括以下步骤:
步骤S202,获取应用系统的风险需求,生成与风险需求对应的安全测试用例。
其中,风险需求可以用于表征应用系统的业务需求、软件需求或迭代维护需求中可能存在风险的需求。
安全测试用例可以用于表征在软件测试中专门用来测试风险需求对应用系统安全性影响的测试用例。
具体地,服务器可以从数据存储系统中直接读取与应用系统相关的风险需求,或者也可以根据前端组件传入的需求安全性评估结果从应用系统的业务需求、软件需求或迭代维护需求中筛选出对应的风险需求。按照预设业务逻辑对应用系统的风险需求进行处理,可以生成与风险需求对应的安全测试用例。
步骤S204,将安全测试用例发送至应用系统执行,根据安全测试用例的执行结果确定出风险需求对应的风险出现概率。
其中,执行结果可以包括但不仅限于是否执行成功、执行效率或执行次数等多种结果数据中的任一种或多种。
具体地,服务器可以将安全测试用例发送至应用系统执行,记录安全测试用例在应用系统中的执行结果。根据安全测试用例的执行结果,可以确定出安全测试用例在应用系统中的执行失败总次数。利用执行失败总次数可以确定出风险需求对应的风险出现概率。
可选地,在另一些实施例中,当安全测试用例在应用系统中执行失败后,可以对应用系统进行初始化处理,从而重新载入安全测试用例进行下一次测试。直至安全测试用例在应用系统中执行成功时,结束对安全测试用例的执行操作。获取此时安全测试用例的总执行次数。参照以下公式对安全测试用例的总执行次数进行处理以确定风险需求对应的风险出现概率:
P(A1)=n-1/n
其中,P(A1)为风险需求A1对应的风险出现概率。n为安全测试用例的总执行次数。n-1为安全测试用例在应用系统中的执行失败总次数。也即,在安全测试用例执行n次的过程中,前n-1次的执行结果皆为执行失败,而第n次的执行结果才为执行成功。
步骤S206,对应用系统进行漏洞扫描,记录风险需求在应用系统中的漏洞出现次数以及漏洞出现类型。
其中,漏洞出现次数可以用于表征与风险需求关联的业务功能在应用系统的测试过程中出现漏洞的总次数。
漏洞出现类型可以用于表征与风险需求关联的业务功能在应用系统的测试过程中出现的漏洞所属的安全漏洞类型。
安全漏洞类型可以根据漏洞对应的常见业务功能进行定义。譬如,恶意脚本上传的相关漏洞一般存在于文件上传功能中,此时可以将恶意脚本上传的相关漏洞所属的安全漏洞类型定义为文件上传漏洞类型。而网址篡改的相关漏洞一般存在于前端页面跳转功能中,此时可以将网址篡改的相关漏洞所属的漏洞类型定义为网站程序上的漏洞类型(WorldWide Web漏洞类型,也即全球广域网漏洞类型,简称web漏洞类型)。
可选地,在另一些实施例中,服务器也可以赋予安全漏洞类型对应的安全场景或安全标签属性,以用于自动关联安全漏洞类型与风险需求。或者,服务器也可以根据漏洞的访问地址统一资源定位器(Uniform Resource Locator,简称url)来识别与漏洞对应的风险需求。
具体地,服务器可以采用安全工具链对应用系统的代码仓库或测试流量等数据进行漏洞扫描,从而得到应用系统在测试过程中检测出的漏洞数据。根据漏洞所属的安全漏洞类型,可以从漏洞数据中确定出与风险需求对应的漏洞出现次数以及漏洞出现类型。
可选地,在另一些实施例中,安全工具链可以是集成在持续集成/持续交付工作流(Continuous Integration/Continuous Delivery,简称CI/CD工作流)中的静态应用程序安全测试工具链(Static Application Security Testing,简称SAST)、动态应用程序安全测试工具链(Dynamic Application Security Testing,简称DAST)、交互式应用程序安全测试工具链(Interactive Application Security Testing,简称IAST)、软件组成成分分析工具链(Software Composition Analysis,简称SCA)等多种工具链中的任一种或多种。
步骤S208,根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果。
具体地,服务器可以将风险需求在应用系统中风险出现概率以及漏洞出现次数与预设阈值进行比较,确定与漏洞出现类型对应的漏洞危险等级,从而利用出现概率以及漏洞出现次数与预设阈值的比较结果以及漏洞出现类型对应的漏洞危险等级,生成应用系统的安全评估结果。
或者,服务器也可以利用风险需求在应用系统中的风险出现概率、漏洞出现次数以及漏洞出现类型,对风险需求的同类需求、同类功能或同类场景下出现安全漏洞的次数及安全测试用例执行失败的概率进行预测,从而生成应用系统的安全评估结果。
上述系统安全的评估方法,通过获取应用系统的风险需求生成与风险需求对应的安全测试用例;将安全测试用例发送至应用系统执行,根据安全测试用例的执行结果确定出风险需求对应的风险出现概率;对应用系统进行漏洞扫描,记录风险需求在应用系统中的漏洞出现次数以及漏洞出现类型;根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果,能够利用风险需求在应用系统中的风险出现概率、漏洞出现次数以及漏洞出现类型对应用系统的系统安全进行量化评估,从而提高安全评估结果的生成准确率。
在一个实施例中,如图3所示,步骤S208,根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果,包括:
步骤S302,获取应用系统在多轮测试下的用例执行结果集以及漏洞扫描结果集。
具体地,服务器可以采用多个预设测试用例对应用系统进行多轮迭代测试,并记录每轮测试下得到的用例执行结果,从而形成多轮测试下的用例执行结果集。在每轮测试结束后,可以对应用系统进行漏洞扫描以记录每轮测试下应用系统的漏洞扫描结果,从而形成多轮测试下的漏洞扫描结果集。
可选地,在另一些实施例中,当预设测试用例在服务器中的迭代测试次数达到预设阈值时,可以确定对应用系统的一轮测试结束。或者,当预设测试用例在服务器中执行成功时,可以确定对应用系统的一轮测试结束。
步骤S304,根据风险需求在用例执行结果集中的需求出现次数以及风险需求在用例执行结果集中的风险出现概率,确定风险需求的风险暴露概率。
具体地,服务器可以根据预设测试用例对应的待测试功能以及风险需求对应的风险功能,建立预设测试用例与风险需求的映射关系。从而利用映射关系可以从用例结果集中确定出与风险需求对应的需求出现次数,以及风险需求在每轮测试下的风险出现概率。对需求出现次数以及每轮测试下的风险出现概率进行运算处理,从而生成对风险需求进行预测得到的风险暴露概率。
可选地,服务器可以参照以下公式生成风险暴露概率:
H(Ai)=∑P(Ai)/N
其中,H(Ai)可以用于表征风险需求Ai的风险暴露概率。∑P(Ai)可以用于表征风险需求Ai在用例测试结果集中的每轮测试下的风险出现概率之和。N可以用于表征风险需求Ai在用例结果集中的需求出现次数。
步骤S306,根据需求出现次数以及风险需求在漏洞扫描结果集中的漏洞出现次数,确定风险需求的漏洞预测次数。
具体地,服务器可以利用漏洞与风险需求的映射关系,从多轮测试下的漏洞扫描结果集中确定出与风险需求的漏洞,从而获取风险需求在漏洞扫描结果集中的漏洞出现次数。对风险需求的需求出现次数以及风险需求在漏洞扫描结果集中的漏洞出现次数进行运算处理,从而生成对风险需求关联的漏洞进行预测得到的漏洞预测次数。
可选地,在另一些实施例中,服务器可以参照以下公式生成漏洞预测次数:
L(Ai)=∑D(Ai)/N
其中,L(Ai)可以用于表征风险需求Ai对应的漏洞预测次数。∑D(Ai)/可以用于表征风险需求Ai在漏洞扫描结果集中的每轮测试下的漏洞出现次数之和。N可以用于表征风险需求Ai在用例结果集中的需求出现次数。
步骤S308,根据漏洞扫描结果集中属于漏洞出现类型的漏洞数量以及漏洞扫描结果集中的漏洞总数量,确定应用系统的漏洞预估指标。
具体地,服务器可以利用与风险需求存在映射关系的漏洞出现类型,从漏洞扫描结果集中确定出属于同一漏洞出现类型下的漏洞数量。对漏洞扫描结果集中的漏洞数量进行统计得到漏洞总数量。对漏洞扫描结果集中属于漏洞出现类型的漏洞数量以及漏洞扫描结果集中的漏洞总数量进行运算处理,从而生成应用系统的漏洞预估指标。
可选地,在另一些实施例中,服务器可以参照以下公式生成漏洞预估指标:
V(S)=∑W(E)/M
其中,V(S)可以用于表征应用系统S的漏洞预估指标。∑W(E)可以用于表征漏洞结果集中属于风险需求在应用系统S中的漏洞出现类型E的漏洞数量之和。M可以用于表征漏洞结果集中的漏洞总数量。
步骤S310,利用风险暴露概率、漏洞预测次数和漏洞预估指标,生成安全评估结果。
具体地,服务器可以利用风险需求在应用系统中的风险暴露概率、漏洞预测次数和漏洞预估指标,构建应用系统的安全威胁建模模型。利用安全威胁建模模型可以估算得到相应的系统安全分数。譬如,在风险暴露概率大于80%的情况下,可以生成应用系统的安全分数为40分(100分制,得分越高系统安全性更强)。在漏洞预测次数高于预设次数阈值的情况下,可以生成应用系统的安全分数为20分。在漏洞预估指标高于预设阈值的情况下,可以生成应用系统的安全分数为30分。将系统安全分数作为应用系统的安全评估结果。
本实施例中,通过利用应用系统在多轮测试下的用例执行结果集以及漏洞扫描结果集预测得到应用系统中风险需求的风险暴露概率、漏洞预测次数以及漏洞预估指标,从而生成应用系统的安全评估结果,能够实现对应用系统中安全风险预测数据(风险暴露概率、漏洞预测次数以及漏洞预估指标)的量化评估,从而提高安全评估结果的生成准确率。
在一个实施例中,如图4所示,步骤S202,获取应用系统的风险需求,生成与风险需求对应的安全测试用例,包括:
步骤S402,获取应用系统的需求描述文本。
其中,需求描述文本可以用于定义应用系统的业务需求、软件需求或迭代维护需求。
具体地,服务器可以接收前端组件导入应用系统的业务需求数据,并同步创建对业务需求数据的异步分析任务。执行异步分析任务采用光学字符识别技术(OpticalCharacter Recognition,简称OCR)对业务需求数据进行自动化关键字检测,从而得到业务需求数据中的需求描述文本。
可选地,在另一些实施例中,业务需求数据可以包括但不仅限于应用系统的业务需求文档、软件需求文档、迭代维护需求文档、安全设计文档等文本数据中的任一种或多种。
步骤S404,根据预设安全规则从需求描述文本中确定出风险需求。
其中,预设安全规则可以包括正则表达式,比如身份证号码(18位数字)相关的正则表达式、手机号(11位数字)相关的正则表达式或开源组件信息(一般为字母和数字的组合:MySQL5.3.0)相关的正则表达式等。同时预设安全规则也支持配置模糊匹配字符,比如*可以模糊匹配任意字符。
具体地,服务器中可以预先配置有预设安全标签,预设安全标签可以用于表征所属数据类型,譬如证件号码类型、通讯号码类型、开源组件信息类型等。采用搜索与分析技术栈(Elasticsearch、Logstash和Kibana,简称ELK)基于预设安全标签对需求描述文本进行语义识别与分析,从而生成对需求描述文本的语义分析结果。当预设安全规则命中语义分析结果的安全标签时,从语义分析结果中提取出安全标签下的关键性风险需求描述原文,也即风险需求。
譬如,当服务器生成的语义分析结果中携带的安全标签为证件号码标签时,可以确定预设安全规则命中了该语义分析结果的安全标签,从而将证件号码标签下的关键性风险需求描述原文作为风险需求。
可选地,在另一些实施例中,服务器还可以利用命中预设安全规则的安全标签、被安全标签命中的安全规则内容、语义分析结果对应的关键性风险需求描述原文、可能产生的漏洞以及漏洞危害性,生成对风险需求的安全预警通知。并将安全预警通知发送至前端组件向用户展示。其中,安全预警通知可以用于评估是否将当前生成的风险需求纳入应用系统的系统安全评估中。当服务器接收到的评审结果为纳入应用系统需求时,可以保留该风险需求。
可选地,在另一些实施例中,当服务器得到风险需求后,可以将异步分析任务的状态自动更新为已完成。从而避免对同一需求描述文本的重复分析。
步骤S406,获取与风险需求存在映射关系的安全知识数据,利用安全知识数据生成安全测试用例。
其中,安全知识数据可以包括但不仅限于安全问卷数据、安全需求数据、安全设计文档、测试用例等数据。
具体地,服务器可以预先在风险需求的安全标签或所属的安全场景与安全知识数据的安全标签或所属的安全场景一致的情况下,建立风险需求与安全知识数据的映射关系。从而利用已建立的映射关系可以从数据库中的全量安全知识数据中确定出与风险需求存在映射关系的安全知识数据。利用安全知识数据定义安全测试流程、安全测试规则、安全测试功能,从而生成安全测试用例。
本实施例中,通过对应用系统的需求描述文本进行自动化关键字检测以及语义识别与分析处理,利用命中预设安全规则的安全标签从需求描述文本的语义识别结果中提取得到风险需求,从而生成风险需求的安全测试用例,能够提高风险需求的确定效率以及安全测试用例的生成效率。
在一个实施例中,服务器中还可以预先建立有安全知识库。
具体地,服务器可以获取与系统安全评估相关的安全问卷数据、安全需求数据、安全设计文档以及测试用例等数据。确定安全问卷数据、安全需求数据、安全设计文档以及测试用例所属的安全场景以及安全标签。对同一安全场景下的,或者携带同一安全标签的安全问卷数据、安全需求数据、安全设计文档以及测试用例建立映射,得到问卷—需求—设计—测试的映射关系。利用映射关系组建关系型数据库,从而可以形成存储有安全问卷数据、安全需求数据、安全设计文档、测试用例等安全知识数据以及安全知识数据之间的映射关系的安全知识库。
其中,安全问卷数据可以是从安全问卷中提取得到的。安全需求数据可以包括但不仅限于业务需求数据、软件需求数据、迭代更新需求数据等。安全设计文档可以用于安全测试规则等信息。测试用例可以用于描述安全测试流程、安全测试功能等信息。
可选地,在一些实施例中,由于在应用系统的开发过程中可能存在多个系统开发项目,并且每个系统开发项目的项目功能需求往往是不同的。因此,为避免遗漏对每个系统开发项目的功能安全性评估,在本申请所提供的实施例中,采用了收集项目调查问卷的方式来获取项目开发人员对系统开发项目的项目功能需求的描述数据。
如图5所示,步骤S406,获取与风险需求存在映射关系的安全知识数据,利用安全知识数据生成安全测试用例,包括:
步骤S502,获取应用系统的项目调查问卷,从项目调查问卷中提取出项目功能需求。
其中,项目功能需求可以包括但不仅限于业务功能需求、软件开发需求、迭代维护需求等。
具体地,服务器可以从前端组件中获取应用系统的项目调查问卷。对项目调查问卷进行关键字检测提取,从而得到项目功能字段。采用字符串匹配的方式可以从安全知识库中自动匹配得到对应的安全需求数据,也即与当前处理的系统开发项目对应的项目功能需求。
譬如,在一个示例中,安全知识库中存储的全量安全需求数据中可以包括:转账时人脸识别不能作为唯一的身份认证要素,必须输入转账密码。系统开发项目A的项目调查问卷中可以提取出转账功能需求,而系统开发项目B的项目调查问卷中不含有转账功能相关的需求。此时,服务器可以采用字符串匹配的方式,自动关联系统开发项目A与安全知识库中的安全需求数据:“转账时人脸识别不能作为唯一的身份认证要素,必须输入转账密码”。
步骤S504,利用项目功能需求和风险需求建立联合需求集合。
步骤S506,从安全知识库中读取与联合需求集合存在映射关系的安全设计文档以及测试用例。
步骤S508,利用安全设计文档和测试用例,生成安全测试用例。
具体地,服务器可以利用系统开发项目对应的项目功能需求和应用系统的风险需求,建立用于评估当前处理的系统开发项目的系统安全性的联合需求集合。遍历联合需求集合中的每个需求数据,以从安全知识库中读取与每个需求数据存在映射关系的安全设计文档以及测试用例。根据安全设计文档对测试用例对应的测试流程、测试功能或测试规则进行调整,从而生成与当前系统开发项目对应的安全测试用例。
本实施例中,通过项目调查问卷提取得到与系统开发项目相关的特定项目功能需求,从而建立项目功能需求与风险需求的联合需求集合,利用安全知识库中与联合需求集合存在映射关系的安全知识数据生成安全测试用例,能够提高安全测试用例的数据丰富度,从而减少遗漏风险功能需求的概率。
在一个实施例中,在步骤S508,利用安全设计文档和测试用例,生成安全测试用例之后,还可以:采用安全测试用例更新与联合需求集合存在映射关系的测试用例。
可选地,在另一些实施例中,服务器还可以采用项目调查问卷对安全知识库中存储的与项目功能需求存在映射关系的安全问卷数据进行更新。
本实施例中,通过采用安全测试用例更新与联合需求集合存在映射关系的测试用例,能够实现对安全知识库的数据迭代更新,从而丰富安全知识数据。
在一个实施例中,本申请提供的系统安全的评估方法还可以包括:当应用系统处于第二生命周期时,获取应用系统在第一生命周期的历史安全评估结果,利用历史安全评估结果以及风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统在第二生命周期的安全评估结果。
其中,第一生命周期的结束时间早于第二生命周期的开始时间。
具体地,当应用系统处于第二生命周期时,服务器还可以获取应用系统在第一生命周期下的历史安全评估结果。对应用系统的历史安全评估结果以及当前生命周期下的风险出现概率、漏洞出现次数以及漏洞出现类型进行运算处理,从而生成与当前生命周期匹配的安全评估结果。
本实施例中,通过在应用系统进入下一个生命周期时,基于上一生命周期的历史安全评估结果和当前生命周期内的风险出现概率、漏洞出现次数以及漏洞出现类型来预测当前生命周期下的安全评估结果,能够提高安全评估结果的准确率以及生成效率。
在一个实施例中,如图6所示,提供了一种系统安全的评估方法,包括:
步骤S602,获取应用系统的需求描述文本,根据预设安全规则从需求描述文本中确定出风险需求。
具体地,服务器可以导入应用系统的需求描述文本,创建对需求描述文本的异步分析任务。执行异步分析任务采用搜索与分析技术栈以及光学字符识别技术对需求描述文本进行自动化关键字提取以及语义识别与分析,从而确定出应用系统的风险需求。
步骤S604,从项目调查问卷中提取出项目功能需求,建立风险需求和项目功能需求的联合需求集合。
步骤S606,从安全知识库中读取与联合需求集合存在映射关系的安全设计文档以及测试用例,生成安全测试用例。
具体地,服务器可以获取对应用系统中当前处理的系统开发项目的项目调查问卷。利用字段匹配的方式,从安全知识库中自动关联得到与项目调查问卷匹配的项目功能需求。利用应用系统的风险需求与系统开发项目的项目功能需求建立联合需求集合。从安全知识库中读取与联合需求集合存在映射关系的安全设计文档以及测试用例。利用安全设计文档以及测试用例生成安全测试用例。
步骤S608,根据安全测试用例在应用系统中的执行结果,确定联合需求集合对应的风险出现概率。
步骤S610,对应用系统进行漏洞扫描,记录联合需求集合在应用系统中的漏洞出现次数以及漏洞出现类型。
具体地,服务器可以利用安全测试用例在应用系统中的总执行次数以及执行失败总次数,计算得到联合需求集合中的每个需求对应的风险出现概率。对应用系统进行漏洞扫描,利用漏洞所属的安全漏洞类型确定出与联合需求集合中的每个需求对应的漏洞出现次数以及漏洞出现类型。
步骤S612,根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果。
具体地,服务器可以获取应用系统在多轮测试下的用例执行结果集以及漏洞扫描结果集。对联合需求集合中的每个需求在用例执行结果集中的需求出现次数以及风险出现概率进行运算处理得到每个需求的风险暴露概率。将每个需求的风险暴露概率之和作为联合需求集合的风险暴露概率。
对联合需求集合中的每个需求在用例执行结果集中的需求出现次数,以及漏洞扫描结果集中与联合需求集合对应的漏洞出现次数进行运算处理得到每个需求的漏洞预测次数。将每个需求的漏洞预测次数之和作为联合需求集合对应的漏洞预测次数。
对漏洞扫描结果集中与联合需求集合对应的漏洞数量以及漏洞扫描结果集中的漏洞总数量进行运算处理,生成应用系统的漏洞预估指标。
利用联合需求集合对应的风险暴露概率、漏洞预测次数以及漏洞预估指标,可以生成应用系统的安全评估结果。
本实施例中,通过获取应用系统的风险需求生成与风险需求对应的安全测试用例;将安全测试用例发送至应用系统执行,根据安全测试用例的执行结果确定出风险需求对应的风险出现概率;对应用系统进行漏洞扫描,记录风险需求在应用系统中的漏洞出现次数以及漏洞出现类型;根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果,能够利用风险需求在应用系统中的风险出现概率、漏洞出现次数以及漏洞出现类型对应用系统的系统安全进行量化评估,从而提高安全评估结果的生成准确率。.
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其他的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的系统安全的评估方法的系统安全的评估装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个系统安全的评估装置实施例中的具体限定可以参见上文中对于系统安全的评估方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种系统安全的评估装置700,包括:需求获取模块702、用例执行模块704、漏洞扫描模块706和安全评估模块708,其中:
需求获取模块702,用于获取应用系统的风险需求,生成与风险需求对应的安全测试用例。
用例执行模块704,用于将安全测试用例发送至应用系统执行,根据安全测试用例的执行结果确定出风险需求对应的风险出现概率。
漏洞扫描模块706,用于对应用系统进行漏洞扫描,记录风险需求在应用系统中的漏洞出现次数以及漏洞出现类型。
安全评估模块708,用于根据风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统的安全评估结果。
在一个实施例中,安全评估模块708,包括:集合获取单元,用于获取应用系统在多轮测试下的用例执行结果集以及漏洞扫描结果集;概率预测单元,用于根据风险需求在用例执行结果集中的需求出现次数以及风险出现概率,确定风险需求的风险暴露概率;次数预测单元,用于根据需求出现次数以及风险需求在漏洞扫描结果集中的漏洞出现次数,确定风险需求的漏洞预测次数;指标预估单元,用于根据漏洞扫描结果集中属于漏洞出现类型的漏洞数量以及漏洞扫描结果集中的漏洞总数量,确定应用系统的漏洞预估指标;结果生成单元,用于利用风险暴露概率、漏洞预测次数和漏洞预估指标,生成安全评估结果。
在一个实施例中,需求获取模块702,包括:文本获取单元,用于获取应用系统的需求描述文本;需求确定单元,用于根据预设安全规则从需求描述文本中确定出风险需求;用例生成单元,用于获取与风险需求存在映射关系的安全知识数据,利用安全知识数据生成安全测试用例。
在一个实施例中,用例生成单元,包括:问卷调查子单元,用于获取应用系统的项目调查问卷,从项目调查问卷中提取出项目功能需求;需求联合子单元,用于利用项目功能需求和风险需求建立联合需求集合;映射读取子单元,用于从安全知识库中读取与联合需求集合存在映射关系的安全设计文档以及测试用例;用例生成子单元,用于利用安全设计文档和测试用例,生成安全测试用例。
在一个实施例中,用例生成单元,还用于采用安全测试用例更新与联合需求集合存在映射关系的测试用例。
在一个实施例中,安全评估模块708,还用于当应用系统处于第二生命周期时,获取应用系统在第一生命周期的历史安全评估结果,第一生命周期的结束时间早于第二生命周期的开始时间;利用历史安全评估结果以及风险出现概率、漏洞出现次数以及漏洞出现类型,生成应用系统在第二生命周期的安全评估结果。
上述系统安全的评估装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储安全知识数据、风险需求、安全测试用例、风险出现概率、漏洞出现次数或漏洞出现类型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种系统安全的评估方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可以存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其他介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以作出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种系统安全的评估方法,其特征在于,所述方法包括:
获取应用系统的风险需求,生成与所述风险需求对应的安全测试用例;
将所述安全测试用例发送至所述应用系统执行,根据所述安全测试用例的执行结果确定出所述风险需求对应的风险出现概率;
对所述应用系统进行漏洞扫描,记录所述风险需求在所述应用系统中的漏洞出现次数以及漏洞出现类型;
根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果,包括:
获取所述应用系统在多轮测试下的用例执行结果集以及漏洞扫描结果集;
根据所述风险需求在所述用例执行结果集中的需求出现次数以及风险出现概率,确定所述风险需求的风险暴露概率;
根据所述需求出现次数以及所述风险需求在所述漏洞扫描结果集中的漏洞出现次数,确定所述风险需求的漏洞预测次数;
根据所述漏洞扫描结果集中属于所述漏洞出现类型的漏洞数量以及所述漏洞扫描结果集中的漏洞总数量,确定所述应用系统的漏洞预估指标;
利用所述风险暴露概率、所述漏洞预测次数和所述漏洞预估指标,生成所述安全评估结果。
3.根据权利要求1所述的方法,其特征在于,所述获取应用系统的风险需求,生成与所述风险需求对应的安全测试用例,包括:
获取所述应用系统的需求描述文本;
根据预设安全规则从所述需求描述文本中确定出所述风险需求;
获取与所述风险需求存在映射关系的安全知识数据,利用所述安全知识数据生成所述安全测试用例。
4.根据权利要求3所述的方法,其特征在于,所述获取与所述风险需求存在映射关系的安全知识数据,利用所述安全知识数据生成所述安全测试用例,包括:
获取所述应用系统的项目调查问卷,从所述项目调查问卷中提取出项目功能需求;
利用所述项目功能需求和所述风险需求建立联合需求集合;
从安全知识库中读取与所述联合需求集合存在映射关系的安全设计文档以及测试用例;
利用所述安全设计文档和所述测试用例,生成所述安全测试用例。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
采用所述安全测试用例更新与所述联合需求集合存在映射关系的测试用例。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述应用系统处于第二生命周期时,获取所述应用系统在第一生命周期的历史安全评估结果,所述第一生命周期的结束时间早于所述第二生命周期的开始时间;
所述根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果,包括:
利用所述历史安全评估结果以及所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统在所述第二生命周期的安全评估结果。
7.一种系统安全的评估装置,其特征在于,所述装置包括:
需求获取模块,用于获取应用系统的风险需求,生成与所述风险需求对应的安全测试用例;
用例执行模块,用于将所述安全测试用例发送至所述应用系统执行,根据所述安全测试用例的执行结果确定出所述风险需求对应的风险出现概率;
漏洞扫描模块,用于对所述应用系统进行漏洞扫描,记录所述风险需求在所述应用系统中的漏洞出现次数以及漏洞出现类型;
安全评估模块,用于根据所述风险出现概率、所述漏洞出现次数以及所述漏洞出现类型,生成所述应用系统的安全评估结果。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202310627187.7A 2023-05-30 2023-05-30 系统安全的评估方法、装置、计算机设备、存储介质 Pending CN116975870A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310627187.7A CN116975870A (zh) 2023-05-30 2023-05-30 系统安全的评估方法、装置、计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310627187.7A CN116975870A (zh) 2023-05-30 2023-05-30 系统安全的评估方法、装置、计算机设备、存储介质

Publications (1)

Publication Number Publication Date
CN116975870A true CN116975870A (zh) 2023-10-31

Family

ID=88478550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310627187.7A Pending CN116975870A (zh) 2023-05-30 2023-05-30 系统安全的评估方法、装置、计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN116975870A (zh)

Similar Documents

Publication Publication Date Title
CN110489520B (zh) 基于知识图谱的事件处理方法、装置、设备和存储介质
AU2022204197B2 (en) Security weakness and infiltration detection and repair in obfuscated website content
CN111177714B (zh) 异常行为检测方法、装置、计算机设备和存储介质
CN109376237B (zh) 客户稳定性的预测方法、装置、计算机设备和存储介质
CN108334625B (zh) 用户信息的处理方法、装置、计算机设备和存储介质
CN114693192A (zh) 风控决策方法、装置、计算机设备和存储介质
CN114036059A (zh) 面向电网系统的自动化渗透测试系统、方法和计算机设备
CN112818162A (zh) 图像检索方法、装置、存储介质和电子设备
CN110532229B (zh) 证据文件检索方法、装置、计算机设备和存储介质
CN115687787A (zh) 产业政策目标群画像构建方法、系统及存储介质
CN112347457A (zh) 异常账户检测方法、装置、计算机设备和存储介质
Rea-Guaman et al. Systematic review: Cybersecurity risk taxonomy
CN116485512A (zh) 基于强化学习的银行数据分析方法及系统
CN116975870A (zh) 系统安全的评估方法、装置、计算机设备、存储介质
Wang et al. Network behavior abnormal detection for electricity management system based on long short-term memory
CN111598159B (zh) 机器学习模型的训练方法、装置、设备及存储介质
CN113918795B (zh) 一种目标标签的确定方法、装置、电子设备及存储介质
CN114816964B (zh) 风险模型构建方法、风险检测方法、装置、计算机设备
Sharma Efficient log analysis using advanced detection and filtering techniques
US20220092214A1 (en) Data processing systems and methods for automatically detecting target data transfers and target data processing
CN118277444A (zh) 异常行为发现方法、装置、存储介质及电子设备
CN117151855A (zh) 欺诈风险预测方法、装置、计算机设备和可读存储介质
CN116702789A (zh) 语义分析方法、装置、计算机设备以及存储介质
CN117455386A (zh) 资源审核方法、装置、计算机设备及其存储介质
CN114996572A (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