掌桥专利:专业的专利平台
掌桥专利
首页

一种软件威胁分析方法、装置、设备及可读存储介质

文献发布时间:2023-06-19 13:29:16


一种软件威胁分析方法、装置、设备及可读存储介质

技术领域

本申请涉及计算机技术领域,特别涉及一种软件威胁分析方法、装置、设备及可读存储介质。

背景技术

目前,软件应用随处可见,其安全性当然不容忽视。通常可以邀请安全专家对软件进行安全威胁分析,明确软件可能面临的安全风险以及相关的处置措施。但人工评估软件威胁对安全专家的技术要求较高,且人工评估复杂软件应用存在效率低、易遗漏等问题。

因此,如何快速评估软件应用的潜在威胁,是本领域技术人员需要解决的问题。

发明内容

有鉴于此,本申请的目的在于提供一种软件威胁分析方法、装置、设备及可读存储介质,以快速评估软件应用的潜在威胁。其具体方案如下:

第一方面,本申请提供了一种软件威胁分析方法,包括:

获取待分析软件对应的业务功能清单;

针对所述业务功能清单中的任一业务功能,在功能模板库中查询与该业务功能匹配的目标功能模板,并将所述目标功能模板中记录的威胁分析数据确定为该业务功能的威胁分析结果;

汇总所述业务功能清单中的各个业务功能的威胁分析结果,得到所述待分析软件的威胁分析报告,并基于所述威胁分析报告确定相应的安全策略。

优选地,所述在功能模板库中查询与该业务功能匹配的目标功能模板,包括:

以该业务功能的名称为查询字段,利用模糊匹配方法在所述功能模板库中查询与所述名称匹配的目标功能模板。

优选地,还包括:

针对所述业务功能清单中的任一业务功能,若在所述功能模板库中未查询到与该业务功能匹配的目标功能模板,则在所述功能模板库中新建与该业务功能匹配的目标功能模板。

优选地,所述在所述功能模板库中新建与该业务功能匹配的目标功能模板,包括:

确定该业务功能包括的各个子业务操作;

针对该业务功能包括的任一子业务操作,在操作模板库中查询与该业务操作匹配的目标操作模板,并将所述目标操作模板中记录的威胁检测项确定为该子业务操作的威胁检测项;

汇总该业务功能包括的各个子业务操作的威胁检测项;

将各个子业务操作的威胁检测项记录为威胁分析数据,得到与该业务功能匹配的目标功能模板。

优选地,还包括:

针对该业务功能包括的任一子业务操作,若在所述操作模板库中未查询与该子业务操作匹配的目标操作模板,则在所述操作模板库中新建与该子业务操作匹配的目标操作模板。

优选地,所述在所述操作模板库中新建与该子业务操作匹配的目标操作模板,包括:

在所述操作模板库中新建空操作模板;

将用户针对该子业务操作确认的威胁检测项填充至所述空操作模板,得到与该子业务操作匹配的目标操作模板。

优选地,还包括:

利用知识图谱技术记录业务功能、子业务操作、威胁检测项、安全策略之间的关联关系,以得到知识库,以便用户基于所述知识库确认任意子业务操作的威胁检测项。

第二方面,本申请提供了一种软件威胁分析装置,包括:

获取模块,用于获取待分析软件对应的业务功能清单;

匹配模块,用于针对所述业务功能清单中的任一业务功能,在功能模板库中查询与该业务功能匹配的目标功能模板,并将所述目标功能模板中记录的威胁分析数据确定为该业务功能的威胁分析结果;

汇总模块,用于汇总所述业务功能清单中的各个业务功能的威胁分析结果,得到所述待分析软件的威胁分析报告,并基于所述威胁分析报告确定相应的安全策略。

第三方面,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序,以实现前述公开的软件威胁分析方法。

第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的软件威胁分析方法。

通过以上方案可知,本申请提供了一种软件威胁分析方法,包括:获取待分析软件对应的业务功能清单;针对所述业务功能清单中的任一业务功能,在功能模板库中查询与该业务功能匹配的目标功能模板,并将所述目标功能模板中记录的威胁分析数据确定为该业务功能的威胁分析结果;汇总所述业务功能清单中的各个业务功能的威胁分析结果,得到所述待分析软件的威胁分析报告,并基于所述威胁分析报告确定相应的安全策略。

可见,本申请在获取到待分析软件对应的业务功能清单后,可针对业务功能清单中的任一业务功能,在功能模板库中进行查询,若查询到与相关业务功能匹配的目标功能模板,则将目标功能模板中记录的威胁分析数据直接确定为该业务功能的威胁分析结果,业务功能清单里的所有业务功能均查询到相应的威胁分析结果后,汇总所有业务功能的威胁分析结果,即可得到待分析软件的威胁分析报告,还可以基于威胁分析报告确定相应的安全策略。该方案能够自动评估任意软件,无需人工参与,因此效率较高、不易遗漏。在快速评估出软件应用的潜在威胁后,还能够自动确定相应的安全策略,因此对软件应用的安全性的提升有一定的数据支持。

相应地,本申请提供的一种软件威胁分析装置、设备及可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种软件威胁分析方法流程图;

图2为本申请公开的另一种软件威胁分析方法流程图;

图3为本申请公开的一种功能模板新建方法流程图;

图4为本申请公开的一种软件威胁分析装置示意图;

图5为本申请公开的一种电子设备示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,软件应用随处可见,其安全性当然不容忽视。通常可以邀请安全专家对软件进行安全威胁分析,明确软件可能面临的安全风险以及相关的处置措施。但人工评估软件威胁对安全专家的技术要求较高,且人工评估复杂软件应用存在效率低、易遗漏等问题。为此,本申请提供了一种软件威胁分析方案,能够快速评估软件应用的潜在威胁。

参见图1所示,本申请实施例公开了一种软件威胁分析方法,包括:

S101、获取待分析软件对应的业务功能清单。

在本实施例中,待分析软件可以是任意APP、代码程序等,其对应的业务功能清单即该程序实现的各种功能清单,如:注册功能、登录功能、订单查询功能、个人昵称修改功能等。

S102、针对业务功能清单中的任一业务功能,在功能模板库中查询与该业务功能匹配的目标功能模板,并将目标功能模板中记录的威胁分析数据确定为该业务功能的威胁分析结果。

需要说明的是,分析任一业务功能的威胁,即:分析实现该业务功能的代码里可能存在的威胁。

本实施例预设有功能模板库,该功能模板库中记录有多个功能模板,一个功能模板对应一个业务功能。一个功能模板中记录有相应业务功能的代码中可能存在的各种威胁(即威胁分析数据)。因此若待分析软件里的任一个业务功能与功能模板库中的任一个功能模板匹配,则说明待分析软件里的这一个业务功能可能存在功能模板中所记录的相关威胁。

其中,待分析软件里的任一个业务功能与功能模板库中的任一个功能模板匹配,则表明此二者的功能匹配。如:此二者都是用户登录功能。据此,可以以功能的名称作为匹配字段进行匹配过程。因此在一种具体实施方式中,在功能模板库中查询与该业务功能匹配的目标功能模板,包括:以该业务功能的名称为查询字段,利用模糊匹配方法在功能模板库中查询与名称匹配的目标功能模板。

S103、汇总业务功能清单中的各个业务功能的威胁分析结果,得到待分析软件的威胁分析报告,并基于威胁分析报告确定相应的安全策略。

基于功能模板库确定出业务功能清单中的各个业务功能的威胁分析结果后,汇总这些结果即可得到待分析软件的威胁分析报告。该威胁分析报告中自然记录有待分析软件包括各个业务功能,每个业务功能的代码可能存在的安全威胁。当前,还可以基于威胁分析报告确定相应的安全策略,也即:哪种安全威胁用什么方式可以规避或消除。

需要说明的是,若在软件开发之前执行本实施例提供的方案,那么毫无疑问,所得结果可以给开发人员提供安全参考意见,以使开发人员在撰写代码时就规避掉可能存在的威胁或漏洞。若在软件开发完成后执行本实施例提供的方案,那么毫无疑问,所得结果也可以给开发人员提供安全参考意见,以使开发人员及时修复代码中的威胁或漏洞。当然,在软件开发之前执行本实施例提供的方案是最为优选的一种方案,因为在软件开发时预先规避代码漏洞和威胁,可以大幅降低软件被攻破的概率,能够给软件安全带来可靠的安全保障。

可见,本实施例在获取到待分析软件对应的业务功能清单后,可针对业务功能清单中的任一业务功能,在功能模板库中进行查询,若查询到与相关业务功能匹配的目标功能模板,则将目标功能模板中记录的威胁分析数据直接确定为该业务功能的威胁分析结果,业务功能清单里的所有业务功能均查询到相应的威胁分析结果后,汇总所有业务功能的威胁分析结果,即可得到待分析软件的威胁分析报告,还可以基于威胁分析报告确定相应的安全策略。该方案能够自动评估任意软件,无需人工参与,因此效率较高、不易遗漏。在快速评估出软件应用的潜在威胁后,还能够自动确定相应的安全策略,因此对软件应用的安全性的提升有一定的数据支持。

基于上述实施例,需要说明的是,功能模板库可能不够全面,也即:业务功能清单里的某些业务功能在功能模板库中没有与之匹配的功能模板。因此在一种具体实施方式中,还包括:针对业务功能清单中的任一业务功能,若在功能模板库中未查询到与该业务功能匹配的目标功能模板,则在功能模板库中新建与该业务功能匹配的目标功能模板,并将新建所得的目标功能模板中记录的威胁分析数据确定为相应业务功能的威胁分析结果。

其中,在功能模板库中新建与该业务功能匹配的目标功能模板,包括:确定该业务功能包括的各个子业务操作;针对该业务功能包括的任一子业务操作,在操作模板库中查询与该业务操作匹配的目标操作模板;若查询到相应目标操作模板,则将目标操作模板中记录的威胁检测项确定为该子业务操作的威胁检测项;若未查询相应目标操作模板,则在操作模板库中新建与该子业务操作匹配的目标操作模板,并将新建所得的目标操作模板中记录的威胁检测项确定为该子业务操作的威胁检测项;汇总该业务功能包括的各个子业务操作的威胁检测项;将各个子业务操作的威胁检测项记录为威胁分析数据,得到与该业务功能匹配的目标功能模板。

其中,一个业务功能包括的任一子业务操作可以参照如下示例。假设业务功能为登录功能,那么子业务操作可以是手机验证码登录、用户名密码登录等。

本实施例预设有操作模板库,该操作模板库中记录有多个操作模板,一个操作模板对应一个子业务操作。一个操作模板中记录有相应子业务操作的代码需要进行的威胁检测项。因此若一个业务功能包括的任一个子业务操作与操作模板库中的任一个操作模板匹配,则可确定该业务功能包括的这个子业务操作需要进行哪些威胁检测项。例如:当子业务操作是手机验证码登录时,那么威胁检测项可以是:验证码是否容易被窃取或重复使用。相应的,说明登录功能中可能存在“验证码被窃取或重复使用”的威胁。

其中,在操作模板库中新建与该子业务操作匹配的目标操作模板,包括:在操作模板库中新建空操作模板;将用户针对该子业务操作确认的威胁检测项填充至空操作模板,得到与该子业务操作匹配的目标操作模板。可见,用户可以确定哪个子业务操作对应有哪些需要进行的威胁检测项,这些需要进行的威胁检测项即可作为相应的威胁分析数据。

当然,可以预先利用知识图谱技术记录业务功能、子业务操作、威胁检测项、安全策略之间的关联关系,以得到知识库,以便用户基于知识库确认任意子业务操作的威胁检测项。其中,利用知识图谱技术记录的业务功能、子业务操作、威胁检测项等内容,可以从上述操作模板库和功能模板库中获取。当然,也可以利用知识图谱技术记录不在上述操作模板库和功能模板库中的业务功能、子业务操作、威胁检测项。也即:知识图谱技术所记录的信息集合大于或等于操作模板库和功能模板库的并集。

一般地,一个业务功能可以包括一个或多个子业务操作,一个子业务操作可以对应几个威胁检测项,一个威胁检测项可以对应至少一个安全策略。安全策略即:消除或规避相应威胁的方法。

其中,基于知识图谱技术可以使功能业务、子业务操作、威胁、安全策略被被关联起来,构成一条知识。基于该知识可确定:某个子业务操作存在哪些具体的威胁,该子业务操作属于哪个功能业务。

下述实施例对软件威胁分析过程进一步详细阐述。

以某一软件的业务功能清单为基础的分析流程请参见图2。由图2可知,针对任一个业务功能,只需查询相应功能模板即可确定相应威胁。若未查询到相应功能模板,则更新专家知识库。更新专家知识库即:新建相应功能模板。

该流程从更细的粒度去完成威胁分析,使用者录入业务功能清单(业务功能清单是软件研发文档的一部分),业务功能清单中的功能包括:登录、转账等。分析工具可自动推荐相近的功能模板,如果确认功能模板与相关业务功能相似,则直接使用功能模板里记录的威胁分析结果作为当前业务功能的威胁分析结果。如果没有匹配到相应功能模板,则需要更新专家知识库。

请参见图3,更新专家知识库的过程包括:导入新型业务功能的空功能模板,在已有功能模板中选择可参考的相近功能模板,以便确定新型业务功能包括的各个子业务操作。针对新型业务功能包括的任一个子业务操作,若已有相应操作模板,则直接使用该操作模板模板里记录的安全需求作为当前子业务操作的安全需要;若没有相应操作模板,则新建相应操作模板,并让用户为该新建操作模板填写安全需求。据此,新型业务功能里的各个子业务操作都有相应操作模板后,将所有操作模板里的安全区域填充至上述所建立的空功能模板,即可得到新型业务功能的功能模板,从而完成专家知识库的更新。

其中,子业务操作具备一定的抽象性和通用性,因此专家知识库可以使用知识图谱技术构建。也即:将功能模板、操作模板里记录的相关信息以知识图谱技术构建相应可视化图结构,以明确展示功能与威胁、功能与子业务操作等之间的关系。

子业务操作如:文件IO、数据库读写、验证码技术、全局要求、敏感数据操作等。子业务操作对应的威胁检测项具体可参见如下示例:

(1)网络节点之间的通信协议是否安全。相应安全策略:使用强壮的加密算法和安全协议保护客户端与服务器之间的所有连接,保证传输数据的机密性和完整性,例如,使用SSL/TLS、IPSEC等。

(2)验证码复杂度是否符合要求,以防止OCR工具自动识别。相应安全策略:验证码由数字和字母等字符混合组成;随机产生;采取图片底纹干扰、颜色变换、设置非连续性及旋转图片字体、变异字体显示样式等有效方式,防范恶意代码自动识别图片上的信息。

(3)敏感数据是否加密存储。相应安全策略:避免直接明文或者采用简单编码进行保护;密码等敏感信息采用HASH算法进行保护;算法避免采用MD5或者SHA-1,同时加入混淆值;其他敏感信息加密后存放。

下述以SQL(Structured Query Language,结构化查询语言)注入威胁为例,具体阐述使用SQL语句的威胁性。因为结构化查询语句的使用,往往都涉及到对访问数据库的操作,从而可以与访问数据库操作建立起联系。虽然通过引入访问数据库进行操作,这样的一个子业务操作,避免了直接使用威胁和安全知识分析,但是访问数据库操作作为子业务操作,与软件系统和业务相距甚远,这里仍然需要对子业务操作进行组合扩展。例如:用户账号登录的业务。对于一般的用户登录而言,可有数据库操作、验证码、账号风险控制等操作组成,将这几个子业务操作对应的安全威胁合并,那么便能得到某个业务的安全威胁分析结果,进一步合并也能得到系统的安全威胁分析结果。

本实施例通过引入子业务操作这一概念降低了威胁分析建模的技术门槛,子业务操作包括但不仅限于验证码、文件读写、数据库访问、敏感数据操作。

其中,组装操作模板得到功能模板,可一次性分析多个子业务操作的威胁,让使用者直接面向业务功能进行分析,在不涉及到具体威胁的情况下完成对业务功能的威胁分析,同时也让使用者更深入理解业务功能,减少了威胁分析的工作量,不再需要进行大量的重复工作,只需更新模板就能覆盖到更多的功能业务。

具体的,使用本实施例在软件开发周期中进行软件威胁分析,可以给软件设计文档提供全面的安全指引,极大地提高了软件安全性。

下面对本申请实施例提供的一种软件威胁分析装置进行介绍,下文描述的一种软件威胁分析装置与上文描述的一种软件威胁分析方法可以相互参照。

参见图4所示,本申请实施例公开了一种软件威胁分析装置,包括:

获取模块401,用于获取待分析软件对应的业务功能清单;

匹配模块402,用于针对业务功能清单中的任一业务功能,在功能模板库中查询与该业务功能匹配的目标功能模板,并将目标功能模板中记录的威胁分析数据确定为该业务功能的威胁分析结果;

汇总模块403,用于汇总业务功能清单中的各个业务功能的威胁分析结果,得到待分析软件的威胁分析报告,并基于威胁分析报告确定相应的安全策略。

在一种具体实施方式中,匹配模块具体用于:

以该业务功能的名称为查询字段,利用模糊匹配方法在功能模板库中查询与名称匹配的目标功能模板。

在一种具体实施方式中,还包括:

新建模块,用于针对业务功能清单中的任一业务功能,若在功能模板库中未查询到与该业务功能匹配的目标功能模板,则在功能模板库中新建与该业务功能匹配的目标功能模板。

在一种具体实施方式中,新建模块包括:

确定单元,用于确定该业务功能包括的各个子业务操作;

匹配单元,用于针对该业务功能包括的任一子业务操作,在操作模板库中查询与该业务操作匹配的目标操作模板,并将目标操作模板中记录的威胁检测项确定为该子业务操作的威胁检测项;

汇总单元,用于汇总该业务功能包括的各个子业务操作的威胁检测项;

记录单元,用于将各个子业务操作的威胁检测项记录为威胁分析数据,得到与该业务功能匹配的目标功能模板。

在一种具体实施方式中,新建模块还包括:

新建单元,用于针对该业务功能包括的任一子业务操作,若在操作模板库中未查询与该子业务操作匹配的目标操作模板,则在操作模板库中新建与该子业务操作匹配的目标操作模板。

在一种具体实施方式中,匹配单元具体用于:

在操作模板库中新建空操作模板;

将用户针对该子业务操作确认的威胁检测项填充至空操作模板,得到与该子业务操作匹配的目标操作模板。

在一种具体实施方式中,还包括:

图谱生成模块,用于利用知识图谱技术记录业务功能、子业务操作、威胁检测项、安全策略之间的关联关系,以得到知识库,以便用户基于知识库确认任意子业务操作的威胁检测项。

其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本实施例提供了一种软件威胁分析装置,该装置能够自动评估任意软件,无需人工参与,因此效率较高、不易遗漏。在快速评估出软件应用的潜在威胁后,还能够自动确定相应的安全策略,因此对软件应用的安全性的提升有一定的数据支持。

下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种软件威胁分析方法及装置可以相互参照。

参见图5所示,本申请实施例公开了一种电子设备,包括:

存储器501,用于保存计算机程序;

处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。

下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种软件威胁分析方法、装置及设备可以相互参照。

一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的软件威胁分析方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种软件威胁分析方法、装置、设备及可读存储介质
  • 一种网络威胁分析方法、装置、电子设备及存储介质
技术分类

06120113693174