CN110457009A - 基于数据分析的软件安全需求推荐模型的实现方法 - Google Patents
基于数据分析的软件安全需求推荐模型的实现方法 Download PDFInfo
- Publication number
- CN110457009A CN110457009A CN201910607133.8A CN201910607133A CN110457009A CN 110457009 A CN110457009 A CN 110457009A CN 201910607133 A CN201910607133 A CN 201910607133A CN 110457009 A CN110457009 A CN 110457009A
- Authority
- CN
- China
- Prior art keywords
- security
- demand
- threat
- security threat
- product
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000007405 data analysis Methods 0.000 title claims abstract description 8
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 238000003058 natural language processing Methods 0.000 claims abstract description 8
- 239000013067 intermediate product Substances 0.000 claims abstract description 6
- 238000012217 deletion Methods 0.000 claims abstract description 4
- 230000037430 deletion Effects 0.000 claims abstract description 4
- 239000000047 product Substances 0.000 claims description 71
- 239000011159 matrix material Substances 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 claims 1
- 239000000284 extract Substances 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000012550 audit Methods 0.000 description 13
- 238000012549 training Methods 0.000 description 10
- 230000018109 developmental process Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 229940127559 single-entity product Drugs 0.000 description 1
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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于数据分析的软件安全需求推荐模型的实现方法,步骤一、收集不同软件产品的安全威胁描述,步骤二、提取不同软件产品之间的安全威胁的特征,使用自然语言处理技术中的语义模型Skip‑Thoughts来聚类不同软件产品中安全威胁之间的相似度,并生成一个不同软件产品之间安全威胁的安全威胁相似度特征矩阵;过滤掉不太相似的安全威胁,继而得到相似安全威胁特征;构建共现模型,即删除中间产品层,抽取每个软件产品的安全需求,挖掘新的安全威胁与安全需求映射关系。本发明本方法推荐的安全需求的精确度较为稳定;在软件开发生命周期的需求阶段减少因后期需求忽略的安全问题而造成的经济损,这也将有助于减少后期的维护成本以及bug的修复成本。
Description
技术领域
本发明涉及软件安全技术领域,特别是涉及一种软件安全需求推荐模型。
背景技术
现代社会与经济越来越依赖社区、金融、能源分配和交通等基础设施,而随着信息技术的发展,这些基础设施也越来越依赖于网络信息系统,例如传统的金融服务有赖于银行业务的办理,而现在的金融服务大多依赖于手机或电脑软件产品,再如传统的家用电器一般表现为单个实体产品,其核心为物理感应设备和电设备的结合,而现代的电器多属于物联网的一部分需要通过软件产品进行控制实现人工智能,以达到满足人们生活便捷的需求,因为软件产品已经渗透进入人们生活的最低层,可以说软件正在悄然影响着人们的生活方式。
然而近年来,人们经常可以从新闻上看到软件产品出现安全故障,例如,某大型网站的用户信息被窃取,大量的用户信息被转卖给非法分子,导致使用该网站的用户账户安全、生活隐私均受到威胁,给用户生活上带来很大的不便,以至用户的流失甚至引起法律纠纷。早前,软件工程协会的互联网安全专家中心的统计数据也显示,报告的应用程序漏洞数量从起初的数百个增加到数百万个,引发安全问题的一个重要原因是没有考虑整个系统的安全需求。例如,CardSystems Solutions通过存储黑客可以获得的历史交易的数据,暴露了约4000万张信用卡的详细信息,原因在于数据是系统的一部分,却被没有被列入安全计划中。
为了降低在软件开发过程中维护安全问题的成本,高质量的安全要求对于高质量信息系统的开发极为重要,有必要在软件产品的开发初期尽可能早的分析软件的安全性特征以获得软件的安全性规范需求。在软件开发的需求阶段获取安全需求的重要性已经得到众多研究学者认可,且此项工作被归纳为需求工程,国内外已有很多研究,更为重要的是,“Security Requirements Analysis,Method and Tools”已经于1999年通过国际组织机构的审批计划。更有很多相关会议如:Symposium on Requirements Engineering forInformation Security(SREIS),IEEE International Requirements EngineeringConference(RE),这些会议在安全需求的分析、描述和验证等方面进行了深层次研究,其研究成果在也在领域内卓有成效,与此同时,也开发了一系列安全标准(ISO/IEC系列有17799标准、13335标准、15408标准),这些标准用来协助产品的开发者捕获软件软件的安全性要求,使得开发的软件产品具有较高的安全性。现阶段,国内外的研究中已经提出很多获取安全需求的方法,更有甚者,有研究学者对获取安全需求的方法进行了总结,Raja等人总结并分析了存在的安全需求获取方法,包括用例、误用例、滥用例、攻击树、Anti模型、问题框架、安全模板和威胁建模等等。在这些方法中,大多数方法需要较强的专家知识,并进行详细的分析,从中抽取出关键资产,依据关键资产得到威胁,进一步对应出与威胁相对应的安全目标,最后将安全目标细化到安全需求上。虽然这些方法可以在一定程度上获得安全性要求,但它们需要效率较低,更依赖于专家,而不是普遍的。
发明内容
本发明旨在提出一种基于数据分析的软件安全需求推荐模型的实现方法,主要从安全威胁的角度出发,构建安全威胁和安全需求的关系模型——共现模型,依据该基于语义聚类的共现模型根据产品所收到的威胁推荐相应的安全需求,给研发人员提供全面、合理的安全需求,以保障开发人员对软件的安全开发。
本发明的一种基于数据分析的软件安全需求推荐模型的实现方法,该方法包括以下流程:
步骤一、收集不同软件产品的安全威胁描述:从软件SecurityTarget文档中手动抽取出安全威胁描述,构建安全威胁描述数据库;依据在SecurityTarget文档中包含的软件产品的安全威胁,构建每个软件产品和安全威胁描述之间的映射关系,同时,根据软件SecurityTarget文档中所需的安全需求,构建产品与安全需求之间的映射关系;
步骤二、提取不同软件产品之间的安全威胁的特征:首先,对Common Criteria官网中提供的Security Target文档进行详细解读,从中抽取出安全威胁描述构成数据集;然后,计算不同产品之间安全威胁的相似度,并将数据集中的安全威胁编码为向量。基于步骤一收集的不同软件产品的安全威胁描述,使用自然语言处理技术中的语义模型Skip-Thoughts来聚类不同软件产品中安全威胁之间的相似度,并生成一个不同软件产品之间安全威胁的安全威胁相似度特征矩阵,安全威胁相似度特征矩阵表示为其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,矩阵中的元素为不同产品的安全威胁相似度,将安全威胁相似度计算函数表示为:
S(pnt'x1,pmt'x2),m∈N,n=1,2,...,N,n≠m,x1∈Mn,x2=1,2,...,Mm
其中,S表示不同产品之间的安全威胁相似度,pnt’表示产品n编码后的安全威胁向量,n表示产品的编号,m表示安全威胁的数量,Mn表示产品n的威胁数量,Mm表示产品m的威胁数量;
过滤掉安全威胁相似度特征矩阵的特征值为1、2或3时的安全威胁,继而得到相似安全威胁特征;
步骤三、构建共现模型,即删除中间产品层,为每个软件产品的安全威胁标记安全需求,挖掘新的安全威胁与安全需求映射关系:首先,根据所选类别标记软件产品的安全要求构建当前产品和对应的安全需求的二元组;然后,根据通用标准对安全需求进行预处理和编号;根据软件产品和安全威胁的一对多关系以及软件产品和安全需求之间的一对多关系,删除中间产品层后,获得安全威胁与安全要求之间的映射关系,进而,建立安全威胁-安全需求之间的关系。将安全威胁与安全需求的映射关系表示如下:
{<ti,1,ti,2,···ti,j,···,ti,N>,<sri>}
其中,i表示产品编号,N表示产品i的安全威胁的数量,ti,j表示安全威胁描述,sri表示产品i的安全需求,其包括安全保证组件和安全功能组件;
计算每个软件产品与其他软件产品的共有安全需求,获得N个[N-1,K]的0-1矩阵,K表示当前软件产品所包含的安全需求组件的总数;结合安全威胁相似度矩阵,进一步得到了不同安全威胁之间的共有组件标识矩阵该矩阵中一行代表一个安全威胁、一列代表一个安全需求组件;初始阶段,假设安全威胁与安全需求组件不相关,则该矩阵为0矩阵;第i个矩阵代表第i个产品和包括安全功能组件和安全保证组件在内的特征矩阵Com_Cpi,1≤i≤N;如果pi[n,j]=1,最后,根据安全威胁相似度对前一状态与当前状态进行累计,累计过程公式如下:
W(pitncj)=W-1(pitncj)+S(pnti',pmt'x2)
其中,W(pitncj)表示第n个产品的第i个威胁的第j个组件的权重,初始化为0,W-1(pitncj)表示第n个产品的第i个威胁的第j个组件在前一个状态时的权重;
根据步骤二得到的安全威胁相似度特征矩阵,结合标注的安全需求,通过累加权重的方式得到安全威胁与安全需求之间的相关程度矩阵其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,R表示该威胁所标注的安全需求;
经过以上处理之后得到了安全威胁与安全需求的共现模型,共现模型的输入为:不同产品之间的安全威胁相似度特征矩阵S、每个安全威胁的安全需求向量集安全威胁和安全需求之间的的相关程度矩阵;共现模型的输出为:新的安全威胁和安全需求之间的相关程度矩阵其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,R表示该威胁所标注的安全需求。
本发明预期能够达到如下有益效果:
1、在新的软件产品研发的初级阶段,根据软件产品类别,利用已经训练好的安全威胁特征来聚类相似的安全威胁得到安全威胁特征;
2、利用召回率、精准率和F1值对安全需求推荐结果的质量进行评估。另外,还对比了不同类型的产品的推荐结果的精准率,可以看出,本方法推荐的安全需求的精确度较为稳定。
3、在软件开发生命周期的需求阶段为软件产品推荐高质量的安全需求,高质量的安全需求将有助于产生高质量的软件产品,以减少因后期需求忽略的安全问题而造成的经济损,这也将有助于减少后期的维护成本以及bug的修复成本。
附图说明
图1为本发明的基于数据分析的软件安全需求推荐模型实现方法的整体流程框架示意图。
具体实施方式
以下结合附图和实施例对本发明技术方案进行详细描述。
本发明的基于大数据分析的安全需求推荐模型实现方法,基于大量的ST文档、结合自然语言处理技术中的语义模型skip-thought挖掘安全威胁与安全需求之间的关系,在此基础上,联合眼下存在的协同过滤方法构建安全需求的自动推荐方案,来为给定的新的软件信息系统推荐高质量的安全需求。当给定新的待开发的信息系统时,根据其安全威胁描述,自动为其推荐完备的安全性需求以保证其安全性。其中。ST文档被分为训练集和测试集,训练集训练模型然后根据测试集来验证其推荐的安全需求的正确率。
如图1所示,基于大数据分析的安全需求推荐模型实现方法的实现框架由收集安全威胁描述、计算不同产品中安全威胁之间的相似性得到相似度特征、挖掘安全威胁与安全需求之间的关系。
步骤一、收集不同软件产品的安全威胁描述:从软件Security Target文档中手动抽取出安全威胁描述(基于自然语言处理技术的语义模型来构建软件产品功能描述以及安全威胁描述的匹配规则。从CC官方网站给定的大量的ST文档中抽取大量的安全威胁描述和软件产品功能描述。一方面,通过自然语言处理技术分析安全威胁描述中的语言特征,并提取安全威胁描述中的关键字,构建主体库、行为库以及资产库。另一方面,提取功能描述的特征,通过关键字匹配的规则根据功能关键字来构建安全威胁。从而,当给定功能描述的新的软件产品时,根据规则得到安全威胁描述。在研究过程中发现CC中提供的安全需求和需求文档中定义的威胁表达结构是相似的,分为主体,操作和资产。主体通常是指具有某种权限的个人,例如未经授权,授权等。操作通常是指受试者的行为。对象通常是指资源或资产。经仔细阅读文献并进行实验对比,得到的结论是安全要求和安全威胁的结构是相似的,含义是相关的。),构建安全威胁描述数据库(其表述形式为段式文本);依据在SecurityTarget文档中包含的软件产品的安全威胁,构建每个软件产品和安全威胁描述之间的映射关系,同时,根据软件Security Target文档中所需的安全需求,构建产品与安全需求之间的映射关系,即为产品标记安全需求。
如表1所示,为本发明实施例的九种类型的产品名称。
表1
步骤二、提取不同软件产品之间的安全威胁的特征:首先,对Common Criteria官网中提供的Security Target文档进行详细解读与理解,从中提出安全威胁描述;然后,构建安全威胁特征库,并训练出安全威胁的特征向量,安全威胁特征库用作训练集。基于步骤一收集的不同软件产品的安全威胁描述,使用自然语言处理技术中的语义模型Skip-Thoughts来使用自然语言处理技术中的语义聚类算法来聚类不同产品相似的安全威胁,并生成一个不同软件产品之间安全威胁的相似度特征矩阵,此特征值在1-5之间,其中1表示两个安全威胁不相似,5表示两个安全威胁具有较高的相似度。语义模型Skip-Thoughts将数据集中的安全威胁编码为向量,是一种通用的无监督学习方法,该模型依赖于连续文本的训练语料库,并且只要训练集足够大,训练集就不会偏向任何特定领域或应用。对于训练好的模型,语义和句法属性相同的句子被映射到类似的向量空间中,该模型包含语义相似度计算方法。将安全威胁相似度计算函数表示为:
S(pnt'x1,pmt'x2),m∈N,n=1,2,...,N,n≠m,x1∈Mn,x2=1,2,...,Mm
其中,S表示不同产品之间的安全威胁相似度,pnt’表示产品n编码后的安全威胁向量,n表示产品的编号,m表示安全威胁的数量,Mn表示产品n的威胁数量,Mm表示产品m的威胁数量。
将安全威胁相似度特征矩阵表示为其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,矩阵中的元素为不同产品的安全威胁之间的相似度。在计算过程中,为安全威胁做了双位标签,第一位为产品编号,第二位为威胁编号,以便构建模型。根据计算出的相似度的结果,过滤掉不太相似的安全威胁,继而得到安全威胁之间的相似性特征,相似度特征矩阵的特征值在1-5之间,其中1表示两个安全威胁不相似,5表示两个安全威胁具有较高的相似度,当特征矩阵的特征值为1、2或3时可以认为它们之间相似度较低。
步骤三、构建共现模型,即删除中间产品层,抽取每个软件产品的安全需求,挖掘安全威胁与安全需求映射关系:首先,根据所选类别标记软件产品的安全要求构建当前产品和对应的安全需求的二元组;然后,根据通用标准对安全需求进行预处理和编号。根据软件产品和安全威胁的一对多关系以及软件产品和安全需求之间的一对多关系,删除中间产品层后,获得安全威胁与安全要求之间的映射关系。删除产品层的具体处理为:CC官方网站上下载的大量经过验证的软件产品抽取安全威胁和安全需求,得到两组关系:产品:安全威胁=(1:n),产品:安全需求=(1:m),表示产品包含若干个安全威胁,安全需求包含若干个安全组件,进而,建立安全威胁-安全需求之间的关系。将安全威胁与安全需求的映射关系表示如下:
{<ti,1,ti,2,···ti,j,···,ti,N>,<sri>}
其中,i表示产品编号,N表示产品si的安全威胁的数量,ti,j表示安全威胁描述,sri表示产品i的安全需求,其包括安全保证组件和安全功能组件。
安全功能组件被编号为1-134,安全保证组件被编号为135-271,接下来,计算每个软件产品与其他软件产品的共有安全需求,获得N个[N-1,K]的0-1矩阵,K表示当前软件产品所包含的安全需求组件的总数。其中,共有组件(包括安全功能组件和安全保证组件)标识为1,其余组件(包括安全功能组件和安全保证组件)标识为0。结合安全威胁相似度矩阵,进一步得到了不同安全威胁之间的共有组件标识矩阵该矩阵中一行代表一个安全威胁、一列代表一个安全需求组件。初始阶段,假设安全威胁与安全需求组件不相关,则该矩阵为0矩阵;第i个矩阵代表第i个产品和其他产品公共组件(包括安全功能组件和安全保证组件)的特征矩阵Com_Cpi,1≤i≤N;如果pi[n,j]=1,最后,根据安全威胁相似度对前一状态与当前状态进行累计,累计过程公式如下:
W(pitncj)=W-1(pitncj)+S(pnti',pmt'x2)
其中,W(pitncj)表示第n个产品的第i个威胁的第j个组件的权重,初始化为0,W-1(pitncj)表示第n个产品的第i个威胁的第j个组件在前一个状态时的权重。
根据步骤二得到的安全威胁相似度特征矩阵,结合标注的安全需求,通过累加权重的方式得到安全威胁与安全需求之间的相关程度矩阵其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,R表示该威胁所标注的安全需求。
经过以上处理之后得到了安全威胁与安全需求的共现模型,共现模型的输入为:不同产品之间的安全威胁相似度特征矩阵S、每个安全威胁的安全需求向量集安全威胁和安全需求之间的的相关程度矩阵,初始化为0;共现模型的输出为:新的安全威胁和安全需求之间的相关程度矩阵也就是该模型中存储安全威胁与安全需求之间的关系,其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,R表示该威胁所标注的安全需求,其存储的数据为每个安全威胁下的每个安全需求的相关程度。
本发明建模过程的具体实施方式举例描述如下:
(1)环境搭建
本发明使用Theano在NVIDIA Tesla M40 GPU运行,安全威胁之间的相似度计算工具为Github上的skip-thoughts模型,skip-thoughts模型为一个句子编码器,训练后的模型可以将语义相似的句子映射到相似的向量空间中,通过足够大的数据集,训练的模型结果不会偏向任何特定的领域或应用,因此,我们使用skip-thoughts中的大型数据集来训练skip-thoughts模型。
(2)数据抽取
数据抽取工作是从Security Target文档中抽取做实验使用到的数据集。一方面,从Security Target文档的第五章中抽取安全需求,包括安全功能组件和安全保证组件
其中安全需求表达为安全功能组件和安全保证组件。Common Criteria标准的第二第三部分分别包含了134个安全功能组件和138个安全保证组件,组件的表示形式为“类子类组件号”,故抽取规则分别为F**_###.no和A**_###.no,例如,FAUGEN.1\FAU GEN.1的含义具体如下:
F表示安全功能,AU的全称为Security Audit,即安全审计类,安全审计涉及识别、生成日志、存储日志和分析与安全相关活动相关的信息,可以检查生成的审计记录,以确定发生了哪些安全相关活动以及由谁(哪个用户)负责,即FAU表示安全功能的安全审计类。GEN的全称为Security Audit Data Generation,即安全审计数据生成,该系列定义了记录TSF控制下发生的安全相关事件的要求。该系列标识审计级别,列举TSF可审计的事件类型,并确定应在各种审计记录类型中提供的最小审计相关信息集。数字1表示组件的层级,FAUGEN.1表示审计数据生成定义可审计事件的级别,并指定应记录在每个记录中的数据列表,FAU GEN.2表示与用户身份相关,TOE安全功能需要把审计事件和个人用户身份关联起来。
另一方面,从给出的Security Target文档的第三章中抽取安全威胁的描述。
(3)评估参数设定
本发明通过计算测试集的正确率、召回率以及F1值来对模型进行评估。在本模型中正确率表达为针对当前软件产品所推荐出的安全需求为实际安全需求占推荐出的安全需求总数的比例,比例越高,推荐出的安全需求越准确。召回率表达为所推荐出的安全需求为实际安全需求占当前产品中实际安全需求总数的比例,比例越高,推荐出的安全需求涵盖的实际安全需求越全面。F1值,即精确值和召回率的调和均值,F1值越高方法越有效。
正确率计算公式如下:
召回率计算公式如下:
F1值计算公式如下:
其中,tp表示将正类预测为正类的数量;tn表示将负类预测位负类的数量;fp表示将负类预测位正类的数量;fn表示将正类预测为负类的数量。
建模结果:过程中仔细研究了Common Criteria,安全需求以类、族、组件的形式由浅及深,模型使用组件来表达安全需求。此模型需要设置θ为软件产品推荐一组安全需求,θ是安全威胁与安全需求权重以及安全威胁之间的相似度得到的值,其中,相似度与权重值均属于[0,1],所以,θ值基本很小,因此使用等间距的值来观察评估参数的趋势。
随着θ的增长,正确率也会提高,也就是说,增强相似度或组件的权重,所推荐的安全需求的正确率随之升高。这表示安全需求和威胁之间的权重以及我们模型中安全威胁之间的相似度是可信的,但是,随着精确度的增长,推荐的安全需求变得越来越不全面。根据F值的定义可知,F值是大于0.8说明精确度和召回率都是可信的。根据结果,首先,根据精确度的趋势可知训练集中的数据量越多,训练的模型的效果就越好。其次,确保了推荐的安全需求的正确性,这有助于分析师减少安全需求分析的工作量和分析操作的复杂性。
本发明可以用来进一步验证安全需求的正确性。
Claims (1)
1.一种基于数据分析的软件安全需求推荐模型的实现方法,该方法包括以下流程:
步骤一、收集不同软件产品的安全威胁描述:从软件Security Target文档中手动抽取出安全威胁描述,构建安全威胁描述数据库;依据在Security Target文档中包含的软件产品的安全威胁,构建每个软件产品和安全威胁描述之间的映射关系,同时,根据软件Security Target文档中所需的安全需求,构建产品与安全需求之间的映射关系;
步骤二、提取不同软件产品之间的安全威胁的特征:首先,对Common Criteria官网中提供的Security Target文档进行详细解读,从中抽取出安全威胁描述构成数据集;然后,计算不同产品之间安全威胁的相似度,并将数据集中的安全威胁编码为向;基于步骤一收集的不同软件产品的安全威胁描述,使用自然语言处理技术中的语义模型Skip-Thoughts来聚类不同软件产品中安全威胁之间的相似度,并生成一个不同软件产品之间安全威胁的安全威胁相似度特征矩阵,安全威胁相似度特征矩阵表示为其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,矩阵中的元素为不同产品的安全威胁相似度,将安全威胁相似度计算函数表示为:
S(pnt'x1,pmt'x2),m∈N,n=1,2,...,N,n≠m,x1∈Mn,x2=1,2,...,Mm
其中,S表示不同产品之间的安全威胁相似度,pnt’表示产品n编码后的安全威胁向量,n表示产品的编号,m表示安全威胁的数量,Mn表示产品n的威胁数量,Mm表示产品m的威胁数量;
过滤掉安全威胁相似度特征矩阵的特征值为1、2或3时的安全威胁,继而得到相似安全威胁特征;
步骤三、构建共现模型,即删除中间产品层,为每个软件产品的安全威胁标记安全需求,挖掘新的安全威胁与安全需求映射关系:首先,根据所选类别标记软件产品的安全要求构建当前产品和对应的安全需求的二元组;然后,根据通用标准对安全需求进行预处理和编号;根据软件产品和安全威胁的一对多关系以及软件产品和安全需求之间的一对多关系,删除中间产品层后,获得安全威胁与安全要求之间的映射关系,进而,建立安全威胁-安全需求之间的关系,将安全威胁与安全需求的映射关系表示如下:
{<ti,1,ti,2,…ti,j,…,ti,N>,<sri>}
其中,i表示产品编号,N表示产品i的安全威胁的数量,ti,j表示安全威胁描述,sri表示产品i的安全需求,其包括安全保证组件和安全功能组件;
计算每个软件产品与其他软件产品的共有安全需求,获得N个[N-1,K]的0-1矩阵,K表示当前软件产品所包含的安全需求组件的总数;结合安全威胁相似度矩阵,进一步得到了不同安全威胁之间的共有组件标识矩阵该矩阵中一行代表一个安全威胁、一列代表一个安全需求组件;初始阶段,假设安全威胁与安全需求组件不相关,则该矩阵为0矩阵;第i个矩阵代表第i个产品和包括安全功能组件和安全保证组件在内的特征矩阵Com_Cpi,1≤i≤N;如果pi[n,j]=1,最后,根据安全威胁相似度对前一状态与当前状态进行累计,累计过程公式如下:
W(pitncj)=W-1(pitncj)+S(pnti',pmt'x2)
其中,W(pitncj)表示第n个产品的第i个威胁的第j个组件的权重,初始化为0,W-1(pitncj)表示第n个产品的第i个威胁的第j个组件在前一个状态时的权重;
根据步骤二得到的安全威胁相似度特征矩阵,结合标注的安全需求,通过累加权重的方式得到安全威胁与安全需求之间的相关程度矩阵其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,R表示该威胁所标注的安全需求;
经过以上处理之后得到了安全威胁与安全需求的共现模型,共现模型的输入为:不同产品之间的安全威胁相似度特征矩阵S、每个安全威胁的安全需求向量集安全威胁和安全需求之间的的相关程度矩阵;共现模型的输出为:新的安全威胁和安全需求之间的相关程度矩阵其中表示所有软件产品的安全威胁的总数量,j表示产品i的威胁,R表示该威胁所标注的安全需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910607133.8A CN110457009B (zh) | 2019-07-06 | 2019-07-06 | 基于数据分析的软件安全需求推荐模型的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910607133.8A CN110457009B (zh) | 2019-07-06 | 2019-07-06 | 基于数据分析的软件安全需求推荐模型的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457009A true CN110457009A (zh) | 2019-11-15 |
CN110457009B CN110457009B (zh) | 2023-04-14 |
Family
ID=68482352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910607133.8A Expired - Fee Related CN110457009B (zh) | 2019-07-06 | 2019-07-06 | 基于数据分析的软件安全需求推荐模型的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457009B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612631A (zh) * | 2021-07-16 | 2021-11-05 | 深圳开源互联网安全技术有限公司 | 车联网威胁建模方法、系统及计算机可读存储介质 |
CN115809466A (zh) * | 2023-02-13 | 2023-03-17 | 天翼云科技有限公司 | 基于stride模型的安全需求生成方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005038020A (ja) * | 2003-07-15 | 2005-02-10 | Rikogaku Shinkokai | 指紋認証装置、計算機システム、およびネットワークシステム |
CN102236758A (zh) * | 2011-07-26 | 2011-11-09 | 天津大学 | 基于安全知识库的安全需求获取方法 |
CN102289619A (zh) * | 2011-07-26 | 2011-12-21 | 天津大学 | 一种等级驱动的安全需求分析方法 |
CN102799816A (zh) * | 2012-06-29 | 2012-11-28 | 天津大学 | 基于cc标准的软件安全功能组件管理方法 |
CN108280350A (zh) * | 2018-02-05 | 2018-07-13 | 南京航空航天大学 | 一种面向Android的移动网络终端恶意软件多特征检测方法 |
-
2019
- 2019-07-06 CN CN201910607133.8A patent/CN110457009B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005038020A (ja) * | 2003-07-15 | 2005-02-10 | Rikogaku Shinkokai | 指紋認証装置、計算機システム、およびネットワークシステム |
CN102236758A (zh) * | 2011-07-26 | 2011-11-09 | 天津大学 | 基于安全知识库的安全需求获取方法 |
CN102289619A (zh) * | 2011-07-26 | 2011-12-21 | 天津大学 | 一种等级驱动的安全需求分析方法 |
CN102799816A (zh) * | 2012-06-29 | 2012-11-28 | 天津大学 | 基于cc标准的软件安全功能组件管理方法 |
CN108280350A (zh) * | 2018-02-05 | 2018-07-13 | 南京航空航天大学 | 一种面向Android的移动网络终端恶意软件多特征检测方法 |
Non-Patent Citations (2)
Title |
---|
周松松等: "基于威胁情报的恶意软件识别", 《信息网络安全》 * |
琚安康等: "网络安全事件关联分析技术与工具研究", 《计算机科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612631A (zh) * | 2021-07-16 | 2021-11-05 | 深圳开源互联网安全技术有限公司 | 车联网威胁建模方法、系统及计算机可读存储介质 |
CN113612631B (zh) * | 2021-07-16 | 2023-07-11 | 深圳开源互联网安全技术有限公司 | 车联网威胁建模方法、系统及计算机可读存储介质 |
CN115809466A (zh) * | 2023-02-13 | 2023-03-17 | 天翼云科技有限公司 | 基于stride模型的安全需求生成方法、装置、电子设备及介质 |
CN115809466B (zh) * | 2023-02-13 | 2023-04-07 | 天翼云科技有限公司 | 基于stride模型的安全需求生成方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110457009B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Data-driven personas: Constructing archetypal users with clickstreams and user telemetry | |
Li et al. | DCT-GAN: dilated convolutional transformer-based GAN for time series anomaly detection | |
CN109657947A (zh) | 一种面向企业行业分类的异常检测方法 | |
Maček et al. | A systematic literature review on the application of multicriteria decision making methods for information security risk assessment | |
CN106202480A (zh) | 一种基于K‑means和LDA双向验证的网络行为习惯聚类方法 | |
CN115547466B (zh) | 基于大数据的医疗机构登记评审系统及其方法 | |
Marle et al. | Forming risk clusters in projects to improve coordination between risk owners | |
CN110457009A (zh) | 基于数据分析的软件安全需求推荐模型的实现方法 | |
CN109783638A (zh) | 一种基于半监督学习的用户评论聚类方法 | |
Aghimien et al. | A review of the application of data mining for sustainable construction in Nigeria | |
CN105511869A (zh) | 一种基于用户反馈的需求跟踪系统及方法 | |
Wang et al. | The construction and empirical analysis of the company’s financial early warning model based on data mining algorithms | |
Tavares et al. | Anomaly detection in business process based on data stream mining | |
Poelmans et al. | A case of using formal concept analysis in combination with emergent self organizing maps for detecting domestic violence | |
Xu et al. | The convergence level and influencing factors of China’s digital economy and real economy based on grey model and PLS-SEM | |
Hou et al. | Research on unstructured data processing technology in executing audit based on big data budget | |
Li et al. | The evaluation of mineral resources development efficiency based on hesitant fuzzy linguistic approach and modified TODIM | |
Naviamos et al. | A study on determining household poverty status: SVM based classification model | |
Wang et al. | A Novel Multi‐Input AlexNet Prediction Model for Oil and Gas Production | |
Chai et al. | Default feature selection in credit risk modeling: evidence from Chinese small enterprises | |
CN111242520B (zh) | 特征合成模型的生成方法、装置及电子设备 | |
Xu et al. | Multi-view Heterogeneous Temporal Graph Neural Network for “Click Farming” Detection | |
Tamtama et al. | Increasing Accuracy of The Random Forest Algorithm Using PCA and Resampling Techniques with Data Augmentation for Fraud Detection of Credit Card Transaction | |
Bharathy et al. | Applications of social systems modeling to political risk management | |
Qiao et al. | A Novel Long‐and Short‐Term Memory Network with Time Series Data Analysis Capabilities |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20230414 |