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

基于STRIDE模型的安全需求生成方法、装置、电子设备及介质

文献发布时间:2023-06-19 18:53:06


基于STRIDE模型的安全需求生成方法、装置、电子设备及介质

技术领域

本发明涉及计算机技术领域,特别是涉及一种基于STRIDE模型的安全需求生成方法、装置、电子设备及介质。

背景技术

随着计算机技术的逐渐发展,各种系统或应用受到的威胁数量在逐渐增加,而为了提前消除安全威胁,通常是在系统或应用的开发阶段进行安全方案设计,相应地,需要基于安全需求进行安全方案设计。

现有技术中,往往是由相关工作人员按照工作经验进行人工编辑,得到安全需求,生成安全需求的效率较低。

发明内容

本发明实施例的目的在于提供一种基于STRIDE模型的安全需求生成方法、装置、电子设备及介质,以解决上述问题。具体技术方案如下:

在本发明实施的第一方面,首先提供了一种基于STRIDE模型的安全需求生成方法,该方法可以包括:

获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到;

基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求;

对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求;

基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求;

基于各所述需求描述对应的目标安全需求生成目标安全需求集。

在本发明实施的第二方面,提供了一种基于STRIDE模型的安全需求生成装置,该装置可以包括:

需求描述获取模块,用于获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到;

安全数据划分模块,用于基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求;

第一相似度获取模块,用于对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求;

选取模块,用于基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求;

目标安全需求集生成模块,用于基于各所述需求描述对应的目标安全需求生成目标安全需求集。

本发明实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

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

处理器,用于进行存储器上所存放的程序时,进行上述第一方面所述的方法。

在本发明实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机进行上述第一方面所述的方法。

在本发明实施的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机进行上述第一方面任一所述的方法。

本发明实施例通过获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到;基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求;对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求;基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求;基于各所述需求描述对应的目标安全需求生成目标安全需求集。这样,通过基于STRIDE模型划分的需求描述集和参照安全需求集,可以按照模型维度,获取同一模型维度下的需求描述和待选安全需求的第一相似度,提高第一相似度计算的准确性,同时,通过需求描述和待选安全需求的第一相似度选择与需求描述对应的目标安全需求,并生成目标安全需求集,所得到的目标安全需求与需求描述相一致,且无需人工编辑安全需求,根据第一相似度选择满足要求的安全需求即可,提高了生成目标安全需求集的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是本发明实施例提供的一种基于STRIDE模型的安全需求生成方法的步骤流程图;

图2是本发明实施例提供的一种聚类操作示意图;

图3是本发明实施例提供的一种文本向量计算的示意图;

图4是本发明实施例提供的一种场景示意图;

图5是本发明实施例提供的另一种基于STRIDE模型的安全需求生成方法的步骤流程图;

图6是本发明实施例提供的一种基于STRIDE模型的安全需求生成装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

图1是本发明实施例提供的一种基于STRIDE模型的安全需求生成方法的步骤流程图,如图1所示,该方法可以包括如下步骤:

步骤101、获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到。

其中,上述需求描述集指的是包含需求描述的集合,可以是列表形式的,上述需求描述指的是针对在软件开发的设计阶段所设计的业务流程,可能会存在的攻击信息以及针对该攻击信息需要执行的防护操作,也就是,需求描述可以包含威胁描述以及建议描述,通常为文本形式,且各威胁描述与各建议描述通常是一一对应的。其中,上述业务流程可以是为万维网系统(World Wide Web,WEB)设计的,也可以是为主机类的软件设计的,本发明实施例对软件的类型不作限制。

其中,上述STRIDE模型是一种威胁建模,其可以将威胁划分为仿冒(Spoofing)、篡改(Tampering)、抵赖(Repudiation)、信息泄漏(Information Disclosure)、拒绝服务(Denial of Service)和权限提升(Elevation of Privilege),6个模型维度,相应地,本发明实施例可以将上述需求描述按照STRIDE模型的维度进行分类,得到对应不同维度的需求描述。可选的,本发明实施例中可以按照各需求描述所在的模型维度,进一步将不同维度的需求描述划分为不同的子集,从而上述需求描述集可以包含不同模型维度的子集。

具体的,本发明实施例可以通过威胁建模工具(threat modeling tool)获取上述需求描述集,其内核为STRIDE建模方法,具体的,可以将所设计的业务流程输入至上述威胁建模工具中,威胁建模工具可以识别判断各流程可能存在的威胁,并根据威胁生成相应的建议,从而可以根据所生成的各威胁以及建议得到需求描述集。

步骤102、基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求。

其中,上述可执行的参照安全数据指的是确定可以为软件开发提供参考的安全需求数据,其可以是历史的软件开发项目的安全需求,也可以是从互联网上直接获取的可参考的安全需求,其通常是在其他软件开发过程中,可以为开发人员提供参考的安全需求,因此上述参照安全数据是确定可执行的,其相比于上述需求描述中的建议描述,通常更为详细,可以为开发人员提供较为准确且更细节的参考。其中,上述安全需求指的是为了保证所设计的软件或系统在各方面(例如,服务器及数据的安全、服务器和用户之间信息传输的安全以及应用客户端与环境的安全等)的安全,在设计阶段所提出的开发需求,开发人员会参照安全需求完成系统或软件的安全功能开发或设计。

其中,上述参照安全数据通常包含大量安全需求数据,且通常是在不同方面提供参考的安全需求数据,可以根据不同的参照安全数据所起到的作用确定各参照安全数据所在的模型维度。具体的,上述参照安全数据也为文本形式,本发明实施例可以通过各参照安全数据的语义描述确定其所在的模型维度,或者,也可以通过接收工作人员针对不同参照安全数据的输入信息来得到各参照安全数据所在的模型维度,本发明实施例对此不作限制。

可选的,本发明实施例中可以按照各参照安全数据的模型维度,进一步将不同维度的参照安全数据划分为不同的子集,从而上述参照安全需求集可以包含各模型维度对应的安全需求子集。

步骤103、对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求。

其中,上述第一相似度可以是需求描述的语义与各待选安全需求的语义之间的相似度,可以表征需求描述与各待选安全需求之间的匹配程度,相似度越高,匹配程度越高,相应地,待选安全需求可以避免该需求描述中的威胁的概率越高,待选安全需求作为该需求描述对应的安全需求的效果越好。

具体的,上述第一相似度可以是需求描述与待选安全需求之间的余弦相似度,当然也可以是采用其他相似度算法来计算,本发明实施例对此不作限制。

具体的,本发明实施例可以将上述参照安全需求集中,与上述需求描述对应的模型维度相同的安全需求作为待选安全需求,而由于模型维度可以表征需求描述与安全需求所针对的威胁维度,从而可以在同一威胁维度下计算两者的第一相似度,提高相似度计算的准确性。

步骤104、基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求。

步骤105、基于各所述需求描述对应的目标安全需求生成目标安全需求集。

具体的,本发明实施例可以从上述各待选安全需求中,选取与需求描述的第一相似度最高的作为目标安全需求,或者,也可以设置选取阈值,将第一相似度大于上述选取阈值的待选安全需求作为上述目标安全需求,可以按照实际情况自行设置,本发明实施例对此不作限制。

进一步地,通过步骤104得到各需求描述对应的目标安全需求后,可以将不同需求描述对应的目标安全需求合并至同一集合中,得到上述目标安全需求集,从而完成安全需求生成。目标安全需求集即为包括所生成的安全需求的集合。

综上所述,本发明实施例通过获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到;基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求;对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求;基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求;基于各所述需求描述对应的目标安全需求生成目标安全需求集。这样,通过基于STRIDE模型划分的需求描述集和参照安全需求集,可以按照模型维度,获取同一模型维度下的需求描述和待选安全需求的第一相似度,提高第一相似度计算的准确性,同时,通过需求描述和待选安全需求的第一相似度选择与需求描述对应的目标安全需求,并生成目标安全需求集,所得到的目标安全需求与需求描述相一致,且无需人工编辑安全需求,根据第一相似度选择满足要求的安全需求即可,提高了生成目标安全需求集的效率。

可选地,本发明实施例具体可以包括下述步骤:

步骤201、对于任一所述模型维度,对所述参照安全需求集中与所述模型维度对应的安全需求进行分类,得到所述模型维度下不同类别的安全需求;任一类别的安全需求包含中心需求。

其中,对于任一模型维度的安全需求,其可能会对应于软件的不同的功能模块,因而上述分类可以是按照各安全需求对应的功能模块进行分类,将对应于同一功能模块的安全需求分类至同一类别中,当然,也可以按照实际需求设置其他的分类规则,本发明实施例对此不作限制。

进一步地,在得到不同类别的安全需求后,可以从各类别的安全需求中选取中心需求,其中,可以在同一类别下,计算任一安全需求与其他安全需求的相似度,将与其他安全需求的相似度最大的安全需求作为中心需求,具体的,可以通过K均值聚类算法(k-meansclustering algorithm,K-means)实现上述分类以及确定各类别的中心需求。可以理解的,通过上述方式得到的各类别的中心需求与其他安全需求的均比较接近,因而该中心需求是该类别中比较具有代表性的安全需求。

上述基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求的操作,本发明实施例具体可以包括下述步骤:

步骤202、获取所述需求描述与各目标中心需求之间的第二相似度,作为各所述类别的相似度阈值;所述目标中心需求是所述待选安全需求对应的模型维度下的类别中的中心需求。

步骤203、基于所述需求描述与各待选安全需求之间的第一相似度以及各所述类别的相似度阈值,选取与所述需求描述对应的待选安全需求。

进一步地,本发明实施例可以在同一模型维度下,获取需求描述与各类别的中心需求的第二相似度,由于各类别的中心需求是各类别中比较具有代表性的安全需求,因而可以将各中心需求的第二相似度作为该模型维度下各类别的相似度阈值,用于对其他安全需求进行筛选。其中,上述第二相似度也可以是需求描述的文本与中心需求的文本之间的余弦相似度,当然也可以是通过其他相似度算法计算,本发明实施例对此不作限制。

具体的,在同一模型维度下,可以将各待选安全需求对应的相似度阈值作为选取条件,将第一相似度大于相似度阈值的待选安全需求,作为与需求描述对应的待选安全需求,可以理解的,在存在待选安全需求与需求描述的第一相似度不大于对应的相似度阈值时,表明该待选安全需求与当前软件或系统的实际需求并不匹配,因而可以将其不作为与需求描述对应的待选安全需求,相应地,在存在待选安全需求与需求描述的第一相似度大于对应的相似度阈值时,表明该待选安全需求与当前软件或系统的实际需求相匹配,因而可以将其作为与需求描述对应的待选安全需求。

本发明实施例中,通过对于任一所述模型维度,对所述参照安全需求集中与所述模型维度对应的安全需求进行分类,得到所述模型维度下不同类别的安全需求;任一类别的安全需求包含中心需求;获取所述需求描述与各目标中心需求之间的第二相似度,作为各所述类别的相似度阈值;所述目标中心需求是所述待选安全需求对应的模型维度下的类别中的中心需求;基于所述需求描述与各待选安全需求之间的第一相似度以及各所述类别的相似度阈值,选取与所述需求描述对应的待选安全需求。这样,对每一模型维度下的参照安全需求进行分类,并在每个类别中确定中心需求,可以对同一模型维度中的参照安全需求进行聚类,便于后续的计算,同时,通过将需求描述与各中心需求的相似度作为各类别的相似度阈值,并通过相似度阈值对各待选安全需求进行筛选,可以进一步提高待选安全需求与需求描述之间的匹配性,提高生成目标安全需求集的准确性。

可选地,图2是本发明实施例提供的一种聚类操作示意图,如图2所示,所述对所述参照安全需求集中与所述模型维度对应的安全需求进行分类,得到所述模型维度下不同类别的安全需求的操作,本发明实施例具体可以包括下述步骤:

步骤301、从所述参照安全需求集中与所述模型维度对应的安全需求中选取多个初始中心需求,作为待选中心需求;一个待选中心需求对应表征一个所述类别。

其中,上述初始中心需求可以是在同一模型维度下的安全需求中随机选取的,具体的,可以将同一模型维度下的安全需求随机分为K组,在每一组中随机选取一个初始中心需求,从而得到K个初始中心需求,相应地,可以得到K个类别。其中,上述K值可以按照实际需求自行设置,本发明实施例对此不作限制。

步骤302、对于所述参照安全需求集中与所述模型维度对应的安全需求中的任一安全需求,获取所述安全需求与各所述待选中心需求之间的第三相似度。

步骤303、将所述安全需求划分至对应的第三相似度最大的待选中心需求所表征的类别。

进一步地,通过获取同一模型维度下的其他安全需求与各待选中心需求之间的第三相似度,可以得到各安全需求与各待选中心需求之间的接近距离,相似度越大,表明两者越接近,从而可以将各安全需求分别分配到与其第三相似度最大的待选中心需求的类别中,实现聚类,得到每一模型维度下不同类别的安全需求以及该类别安全需求的中心需求。其中,上述第三相似度也可以是两者文本之间的余弦相似度,当然也可以通过其他相似度算法进行计算,本发明实施例对此不作限制。

步骤304、基于各类别中包含的安全需求,重新选取多个中心需求作为所述待选中心需求,并基于各所述待选中心需求重新执行所述获取所述安全需求与各所述待选中心需求之间的第三相似度的操作,直至达到预设的终止条件,将当前的各所述待选中心需求作为目标中心需求,并将当前的分类结果作为最终分类结果。

进一步地,在将同一模型维度下的各安全需求均分配到各待选中心需求所表征的类别后,可以从当前的各个类别所包含的安全需求中,重新选取各类别的中心需求,作为新的待选中心需求。其中,上述各类别中包含的安全需求包括各类别的中心需求以及各类别中的除中心需求之外的其他安全需求。

具体的,上述重新选取多个中心需求的操作可以是根据当前类别中所包含的安全需求,重新计算任一安全需求与类别中其他安全需求的相似度,进一步得到新的不同类别的待选中心需求,具体的,在得到任一安全需求与类别中其他安全需求的相似度后,可以进一步得到该安全需求与其他安全需求的相似度均值,即,将该安全需求与其他安全需求的相似度之和,除以,其他安全需求的数量,得到该安全需求的相似度均值,相应地,在该类别中的各安全需求通过上述操作均可以得到对应的相似度均值,可以将相似度均值最小的安全需求作为新的待选中心需求。

进一步地,可以再一次执行获取各待选中心需求与上述参照安全需求集中与各待选中心需求在同一模型维度下的其他安全需求的第三相似度,并将其他安全需求划分至对应的第三相似度最大的待选中心需求的类别中。

其中,上述预设的终止条件可以是重新选取的待选中心需求与原待选中心需求相一致,或者,选取待选中心需求的次数达到预设次数阈值,本发明实施例对此不作限制。在达到预设的终止条件的情况下,表明当前的分类结果已经满足要求,从而可以将当前的分类结果作为最终分类结果,将当前的待选中心需求作为目标中心需求,相应地,将各目标中心需求所表征的类别所包含的安全需求作为该类别的安全需求。

本发明实施例中,通过从所述参照安全需求集中与所述模型维度对应的安全需求中选取多个初始中心需求,作为待选中心需求;一个待选中心需求对应表征一个所述类别;对于所述参照安全需求集中与所述模型维度对应的安全需求中的任一安全需求,获取所述安全需求与各所述待选中心需求之间的第三相似度;将所述安全需求划分至对应的第三相似度最大的待选中心需求所表征的类别;基于各类别中包含的安全需求,重新选取多个中心需求作为所述待选中心需求,并基于各所述待选中心需求重新执行所述获取所述安全需求与各所述待选中心需求之间的第三相似度的操作,直至达到预设的终止条件,将当前的各所述待选中心需求作为目标中心需求,并将当前的分类结果作为最终分类结果。这样,通过计算第三相似度可以对同一模型维度下的安全需求进行分类,将较为接近的安全需求划分至同一类别,实现聚类,从而便于在同一模型维度及同一类别下对需求描述和安全需求进行匹配,进一步提高匹配的精确性。

可选地,上述基于所述需求描述与各待选安全需求之间的第一相似度以及各所述类别的相似度阈值,选取与所述需求描述对应的待选安全需求的操作,本发明实施例具体可以包括下述步骤:

步骤401、对于任一所述待选安全需求,从各所述类别的相似度阈值中获取所述待选安全需求所属的类别相似度阈值,作为所述待选安全需求对应的目标相似度阈值。

步骤402、在所述待选安全需求与所述需求描述之间的第一相似度不低于所述待选安全需求对应的目标相似度阈值的情况下,将所述待选安全需求确定为与所述需求描述对应的待选安全需求。

其中,通过前述步骤可以得到不同类别对应的多个相似度阈值,从而本发明实施例中可以根据待选安全需求所在的类别,选取该类别的相似度阈值作为该待选安全需求的目标相似度阈值,从而可以得到各待选安全需求分别对应的目标相似度阈值。

进一步地,可以将各待选安全需求与需求描述之间的第一相似度,与各待选安全需求的目标相似度阈值分别进行比对,将第一相似度不低于对应的目标相似度阈值的待选安全需求,确定为与需求描述对应的待选安全需求。

本发明实施例中,通过对于任一所述待选安全需求,从各所述类别的相似度阈值中获取所述待选安全需求所属的类别相似度阈值,作为所述待选安全需求对应的目标相似度阈值;在所述待选安全需求与所述需求描述之间的第一相似度不低于所述待选安全需求对应的目标相似度阈值的情况下,将所述待选安全需求确定为与所述需求描述对应的待选安全需求。这样,通过选取第一相似度阈值不低于目标相似度阈值的待选安全需求,可以提高所选取的待选安全需求与需求描述的匹配度,同时,通过从各类别的相似度阈值中获取待选安全需求所属的类别的相似度阈值作为目标相似度阈值,可以在同一模型维度的同一类别下对待选安全需求进行筛选,使得待选安全需求的筛选更加细化,进一步提高所选择的待选安全需求的准确性。

可选地,上述获取所述需求描述与各待选安全需求之间的第一相似度的操作,本发明实施例具体可以包括下述步骤:

步骤501、获取各所述待选安全需求对应的第一文本向量以及所述需求描述对应的第二文本向量。

步骤502、基于所述第二文本向量以及各所述待选安全需求对应的所述第一文本向量,确定所述需求描述与各待选安全需求之间的第一相似度。

其中,上述文本向量是可以表征文本语义或主题的向量,从而本发明实施例通过分别获取各待选安全需求的第一文本向量以及需求描述对应的第二文本向量,再计算两者之间的相似度。

具体的,本发明实施例中可以通过文本向量算法(例如,doc2vec)来计算上述第一文本向量和第二文本向量。图3是本发明实施例提供的一种文本向量计算的示意图,如图3所示,可以将各待选安全需求与需求描述的文本分别输入至分词器中,得到各文本的分词(Information-Dispersal Scheme,ids),再将分词作为输入,通过向量映射函数(nn.Embedding)得到文本向量。

进一步地,可以通过计算第一文本向量和第二文本向量的余弦相似度来得到上述第一相似度。具体的,余弦相似度可以通过测量两个向量的夹角的余弦值来度量两者的相似性,其中,由于0度角的余弦值是1,其他角度的余弦值都不大于1,且最小值为-1,因而可以根据两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向,从而在本发明实施例中可以得出各待选安全需求与需求描述的主题或语义方面的相似程度。

本发明实施例中,通过获取各所述待选安全需求对应的第一文本向量以及所述需求描述对应的第二文本向量;基于所述第二文本向量以及各所述待选安全需求对应的所述第一文本向量,确定所述需求描述与各待选安全需求之间的第一相似度。这样,通过先获取各待选安全需求与需求描述的文本向量,可以得到待选安全需求与需求描述的语义表征,从而通过文本向量来计算第一相似度,可以提高第一相似度的准确性。

可选地,上述基于所述STRIDE模型对可执行的参照安全数据进行划分的操作,本发明实施例具体可以包括下述步骤:

步骤601、获取所述参照安全数据中包含的各条安全数据的语义信息。

步骤602、对于任一条所述安全数据,将所述安全数据的语义信息作为所述STRIDE模型的输入,由所述STRIDE模型根据所述语义信息将所述安全数据划分至对应的模型维度。

其中,上述语义信息可以表征各条安全数据所表达的含义,具体可以通过预设的文本语义提取模型或文本语义提取算法来获取各安全数据的语义信息,本发明实施例对此不作限制。

具体的,参照安全数据往往为整段的文本,本发明实施例可以对参照安全数据进行拆分,拆分为多条安全数据,进一步地,在参照安全数据的格式非指定格式的情况下,还可以对参照安全数据进行预处理,将其转换为指定格式,其中,上述指定格式可以为TXT格式,从而便于后续的计算和解析。

进一步地,上述STRIDE模型指的是可以按照STRIDE方法对数据进行分类的模型,上述STRIDE模型可以是预先构建的。具体的,上述STRIDE模型可以通过上述语义信息,确定各条安全数据所针对的威胁的类型,确定其用于解决哪一种模型维度的威胁,并将其划分至对应的模型维度,不同的模型维度对应不同的威胁类型,从而实现对安全数据的划分。

可选地,上述对安全数据的划分也可以通过接收工作人员的输入信息进行,上述输入信息可以表征各条安全数据所属的模型维度。

本发明实施例中,通过获取所述参照安全数据中包含的各条安全数据的语义信息;对于任一条所述安全数据,将所述安全数据的语义信息作为所述STRIDE模型的输入,由所述STRIDE模型根据所述语义信息将所述安全数据划分至对应的模型维度。这样,通过STRIDE模型对参照安全数据进行划分,可以得到符合STRIDE模型维度的安全数据,从而便于后续在不同模型维度下与需求描述进行相似度匹配,提高匹配的准确性。

可选地,上述获取需求描述集的操作,本发明实施例具体可以包括下述步骤:

步骤701、获取待处理流程中各流程所存在的威胁信息。

步骤702、对于任一所述流程,根据所述威胁信息确定所述流程对应的需求描述。

步骤703、对于任一条所述需求描述,将所述需求描述的语义信息作为所述STRIDE模型的输入,由所述STRIDE模型根据所述语义信息将所述需求描述划分至对应的模型维度。

针对上述步骤701~703,其中,上述待处理流程指的是需要为其生成目标安全需求集的业务流程,业务流程可以是在软件设计阶段为需要开发的软件所设计的流程。相应地,上述威胁信息指的是在各流程的实际执行过程中可能存在的威胁,可能是外部的,也可能是内部的,会对系统或软件产生破坏性的后果,可能导致宕机或敏感信息泄露等,因而本发明实施例可以对待处理流程中所存在的威胁信息进行预先识别。

进一步地,在存在威胁信息的情况下,可以为其生成相应的建议信息,其中,建议信息指的是通过为流程增加操作步骤以解决对应的威胁,本发明实施例可以进一步将上述威胁信息以及建议信息作为需求描述,或者,也可以直接将威胁信息或建议信息作为需求描述,本发明实施例对此不作限制。具体的,上述威胁信息以及需求描述均可以通过threatmodeling tool得到。

进一步地,上述STRIDE模型指的是可以按照STRIDE方法对数据进行分类的模型,上述STRIDE模型可以是预先构建的。具体的,由于语义信息可以表征各需求描述所表达的含义,从而上述STRIDE模型可以通过各个需求描述的语义信息,确定各条需求描述所需解决的威胁的类型,确定其所需解决哪一种模型维度的威胁,并将其划分至对应的模型维度,不同的模型维度对应不同的威胁类型,从而实现对需求描述的划分。

本发明实施例中,通过获取待处理流程中各流程所存在的威胁信息;对于任一所述流程,根据所述威胁信息确定所述流程对应的需求描述;对于任一条所述需求描述,将所述需求描述的语义信息作为所述STRIDE模型的输入,由所述STRIDE模型根据所述语义信息将所述需求描述划分至对应的模型维度。这样,通过获取待处理流程中的威胁信息以及需求描述,可以按照待处理流程的实际的需求,为其生成对应的目标安全需求集,同时,通过STRIDE模型对需求描述进行划分,可以得到符合STRIDE模型维度的需求描述,从而便于后续在不同模型维度下与参照安全数据进行相似度匹配,提高匹配的准确性。

可选地,上述模型维度包括仿冒、篡改、抵赖、信息泄露、拒绝服务以及权限提升。

其中,上述仿冒指的是攻击方通过使用虚假身份信息来尝试获取访问权限,上述篡改指的是攻击方在未经授权的情况下恶意修改数据,例如修改通信数据,上述抵赖指的是攻击方以合规或不合规的方式否认其执行了某项操作或业务,上述信息泄露指的是私密数据的意外公开,例如,用户可以查阅未授权的数据或内容,上述拒绝服务指的是导致系统或软件、应用不可用的过程,例如,攻击方通过向服务器发送大量请求来消耗系统的所有可用资源,导致的系统不可用。上述权限提升指的是拥有有限权限的用户取得了其他操作的权限,例如,攻击方接管具有较高权限且受信任的进程或账户。

可以理解的,上述模型维度包含了系统应用中可能存在的各个威胁类型,本发明实施例通过将需求描述以及参照安全数据划分为上述模型维度,可以从各个类型的威胁的角度出发,确定与需求描述相对应的目标安全需求集,从而保证所生成的目标安全需求集可以满足实际的安全需求,从而使得开发人员按照该目标安全需求集所开发的安全功能,可以有效避免上述不同模型维度的威胁。

图4是本发明实施例提供的一种场景示意图,如图4所示,其中示出了软件开发的生命周期(SystemDevelopment Life Cycle ,SDLC),可以包含问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,其中,设计阶段是对需求分析结果进行软件系统整体设计的重要阶段,相比在系统完成开发后再考虑安全需求,提前在设计阶段就完成整体安全方案设计,不管对开发人员还是安全人员,都有更大的弹性空间提前消除安全威胁,避免类似事后打补丁式地被动防御,同时也有助于降低开发和后期维护的成本。通过安全设计消除潜在的威胁,并在测试环节进行安全测试验证,形成一个设计-实现-验证闭环。而绝大部分安全威胁,可以通过威胁建模来发现。

本发明实施例为了防止威胁对系统产生严重影响,在开发设计阶段引入了基于STRIDE模型的威胁建模流程,使用历史积累的攻击案例作为数据集,识别出系统潜在的安全漏洞和安全威胁,确定每种威胁的严重性。然后生成对应的安全需求指导后续的开发和测试,这样可以尽早发现和解决潜在的问题,防止后期漏洞出现引起线上问题。

图5是本发明实施例提供的另一种基于STRIDE模型的安全需求生成方法的步骤流程图,如图5所示,可以包括:

步骤211、生成基础威胁列表。

其中,上述基础威胁列表指的是上述需求描述集,其中可以按照仿冒、篡改、抵赖、信息泄露、拒绝服务以及权限提升进行分类。

步骤212、获取历史安全需求数据作为参照安全数据。

步骤213、按照仿冒、篡改、抵赖、信息泄露、拒绝服务以及权限提升进行分类,得到参照安全需求集。

步骤214、计算各参照安全需求的文本向量。

其中,具体可以使用doc2vec计算。

步骤215、利用余弦相似度计算各参照安全需求之间的文本相似性。

步骤216、对参照安全需求进行聚类。

具体可以通过k-means算法进行聚类。

步骤217、通过余弦相似度判断基础威胁描述与聚类后的安全需求的相似性。

步骤218、将超出相似度阈值的安全需求进行输出,得到目标安全需求列表。

可以看出,本发明实施例提出的基于STRIDE模型的安全需求生成方法相比现有的人工编辑的方式,可以按照模型维度,在同一模型维度下获取需求描述和待选安全需求的相似度,提高相似度计算的准确性,同时,通过需求描述和待选安全需求的相似度选择与需求描述对应的目标安全需求,并生成目标安全需求集,可以在无需人工编辑安全需求的同时,满足需求描述集中的需求,根据相似度选择满足要求的安全需求即可,提高了生成目标安全需求集的效率,通过基础的威胁信息得到了比较全面的安全需求列表。

图6是本发明实施例提供的一种基于STRIDE模型的安全需求生成装置80的结构框图,如图6所示,该装置可以包括:

需求描述获取模块801,用于获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到;

安全数据划分模块802,用于基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求;

第一相似度获取模块803,用于对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求;

选取模块804,用于基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求;

目标安全需求集生成模块805,用于基于各所述需求描述对应的目标安全需求生成目标安全需求集。

可选地,所述装置80还包括:

分类模块,用于对于任一所述模型维度,对所述参照安全需求集中与所述模型维度对应的安全需求进行分类,得到所述模型维度下不同类别的安全需求;任一类别的安全需求包含中心需求;

所述选取模块804,具体用于:

获取所述需求描述与各目标中心需求之间的第二相似度,作为各所述类别的相似度阈值;所述目标中心需求是所述待选安全需求对应的模型维度下的类别中的中心需求;

基于所述需求描述与各待选安全需求之间的第一相似度以及各所述类别的相似度阈值,选取与所述需求描述对应的待选安全需求。

可选地,所述分类模块,具体用于:

从所述参照安全需求集中与所述模型维度对应的安全需求中选取多个初始中心需求,作为待选中心需求;一个待选中心需求对应表征一个所述类别;

对于所述参照安全需求集中与所述模型维度对应的安全需求中的任一安全需求,获取所述安全需求与各所述待选中心需求之间的第三相似度;

将所述安全需求划分至对应的第三相似度最大的待选中心需求所表征的类别;

基于各类别中包含的安全需求,重新选取多个中心需求作为所述待选中心需求,并基于各所述待选中心需求重新执行所述获取所述安全需求与各所述待选中心需求之间的第三相似度的操作,直至达到预设的终止条件,将当前的各所述待选中心需求作为目标中心需求,并将当前的分类结果作为最终分类结果。

可选地,所述选取模块804,具体还用于:

对于任一所述待选安全需求,从各所述类别的相似度阈值中获取所述待选安全需求所属的类别相似度阈值,作为所述待选安全需求对应的目标相似度阈值;

在所述待选安全需求与所述需求描述之间的第一相似度不低于所述待选安全需求对应的目标相似度阈值的情况下,将所述待选安全需求确定为与所述需求描述对应的待选安全需求。

可选地,所述第一相似度获取模块,具体用于:

获取各所述待选安全需求对应的第一文本向量以及所述需求描述对应的第二文本向量;

基于所述第二文本向量以及各所述待选安全需求对应的所述第一文本向量,确定所述需求描述与各待选安全需求之间的第一相似度。

可选地,所述安全数据划分模块802,具体用于:

获取所述参照安全数据中包含的各条安全数据的语义信息;

对于任一条所述安全数据,将所述安全数据的语义信息作为所述STRIDE模型的输入,由所述STRIDE模型根据所述语义信息将所述安全数据划分至对应的模型维度。

可选地,所述需求描述获取模块801,具体用于:

获取待处理流程中各流程所存在的威胁信息;

对于任一所述流程,根据所述威胁信息确定所述流程对应的需求描述;

对于任一条所述需求描述,将所述需求描述的语义信息作为所述STRIDE模型的输入,由所述STRIDE模型根据所述语义信息将所述需求描述划分至对应的模型维度.

可选地,所述模型维度包括仿冒、篡改、抵赖、信息泄露、拒绝服务以及权限提升。

综上所述,本发明实施例通过获取需求描述集,所述需求描述集包括与各模型维度对应的需求描述,所述需求描述集基于所述STRIDE模型划分得到;基于所述STRIDE模型对可执行的参照安全数据进行划分,得到参照安全需求集;所述参照安全需求集包括与各所述模型维度对应的安全需求;对于所述需求描述集中的任一需求描述,获取所述需求描述与各待选安全需求之间的第一相似度;所述待选安全需求是所述参照安全需求集中对应的模型维度与所述需求描述对应的模型维度相一致的安全需求;基于所述需求描述与各待选安全需求之间的第一相似度,选取与所述需求描述对应的待选安全需求,作为目标安全需求;基于各所述需求描述对应的目标安全需求生成目标安全需求集。这样,通过基于STRIDE模型划分的需求描述集和参照安全需求集,可以按照模型维度,获取同一模型维度下的需求描述和待选安全需求的第一相似度,提高第一相似度计算的准确性,同时,通过需求描述和待选安全需求的第一相似度选择与需求描述对应的目标安全需求,并生成目标安全需求集,所得到的目标安全需求与需求描述相一致,且无需人工编辑安全需求,根据第一相似度选择满足要求的安全需求即可,提高了生成目标安全需求集的效率。

在本发明提供的又一实施例中,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

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

处理器,用于进行存储器上所存放的程序时,进行上述任一所述的方法。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机进行上述实施例中任一所述的方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机进行上述实施例中任一所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和进行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,本申请实施例中获取各种数据相关过程,都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 模型生成方法、装置、电子设备和计算机可读存储介质
  • 集群间通信安全因子的生成方法、装置、介质及电子设备
  • 基于大数据的报表生成方法及装置、电子设备、存储介质
  • 基于三维模型的美妆方法、装置、电子设备和存储介质
  • 类文件生成方法、装置、电子设备及存储介质
  • 图像生成装置、图像生成方法、记录介质生成方法、学习模型生成装置、学习模型生成方法、学习模型、数据处理装置、数据处理方法、推断方法、电子装置、生成方法、程序和非暂时性计算机可读介质
  • 基于安全需求元模型的安全需求模板构建方法
技术分类

06120115723023