安全需求学习

安全需求工程:是一门涉及到需求工程和信息安全的交叉学科。

2.1安全需求⼯程研究的活动:
  1. 安全需求描述语言:

SDL(Scenario Description Language),一种基于安全评估标准的场景片段植入性安全需求描述语言,通过通过SDL
描述的与安全相关的特定场景⽚段能够通过织⼊技术⾃动定位、插⼊到相关主成功场景,从⽽实现安全需求的⾃动织⼊

  1. 安全需求的获取与分析

使⽤合适的安全需求获取技术是成功获取安全需求的⾸要条件。
目前结构化需求获取技术主要有误⽤例法MC、软系统法SSM、控制需求表达法CORE、问题分析法IBIS、联合应⽤开发法JAD、⾯向特征领域分析法FODA、关键步骤分析法CDA和加速需求获取法ARM等。
安全需求的获取实际上是一个对用户意图不断进行揭示和判断的过程。安全危险性分析的⽬标就是对各种危险信息进⾏全⾯地收集和充分地分析,以使⽤户能够进⼀步地明确系统的脆弱点和可能遭受的安全威胁,从⽽能够提出详细的、准确的安全需求。
安全需求分析技术很多,主要从两方面分析系统安全需求:非形式化分析方法和形式化分析方法。从系统层⾯或使⽤系统的组织机构层⾯来定性的分析安全需求。
非形式化分析方法:分析系统可能遭受的安全威胁,如:软件故障树分析SFTA法,一种逆推的方式对一个已知的入侵行为进行建模分析。⼀般通过如攻击树等⼿段分析系统可能遭受的安全威胁;
形式化分析方法:从身份识别权限管理、密码保护、信任评估等⽅⾯分析系统应满⾜的安全需求。过将安全需求转化为形式化验证⼯具所能⽀持的表述形式进⾏验证。

  1. 安全需求建模

以框架为基础的安全需求建模方法;
面向系统的安全需求建模方法,是对访问控制策略建模和怎样把这些策略整合到模型驱动的软件开发过程中,比如提出一种扩展的统⼀建模语⾔( UML) ,即UMLsec,对诸如机密性和访问控制等安全相关的特征进⾏建模;
从反⾯通过诱导,对攻击者的⾏为进⾏安全需求建模的⽅法,典型:采⽤⽤例( ⽤例描述了系统允许的⼀个功能) 来获取和分析安全需求,并引进了反⽤例模型( 通过对系统的不受限制和约束的任意使⽤,来增加系统的危险性)。

  1. 安全需求模型检测

需求检测在创造⼀个准确和可验证的安全需求中是关键因素,模型检测技术已经成为安全需求⼯程研究领域中的关键技术。

  1. 安全需求的系统支持工具

基于安全需求⼯程中的各种建模框架,开发出相应的⽀持⼯具:
例如Giorgini 等⼈开发出的图形⼯具ST-Tool,由ST-Tool内核和外部解析器两部分组成,能⽀持Tropos 框架中提出的所有新特征。
此外,最新开发出的si* -tool,也能对Security Tropos 进⾏建模,它与ST-Tool 具有相同的功能,并作为⼀种插件嵌⼊到主流的eclipse 开发平台中,使⽤XML 作为它的⽂档格式。

  1. 软件系统的安全风险评估

软件系统的安全风险评估主要是识别系统面临的脆弱性和威胁性
能成为⻛险的事件有三个重要的组成部分:安全威胁、系统脆弱点和事件造成的影响,⼀般⽽⾔,这三个因素必须同时存在才能构成安全⻛险。
有以下⻛险评估技术: 政府问责办公室⻛险评估模型( GAOmodel),美国标准技术研究所⻛险评估模型( NIST model), INFOSEC评估法,RFRM 模型,可⽣存系统分析法
基于框架的安全需求建模⽅法成为⽬前建⽴软件系统安全性⾏为的流⾏⽅法,使软件系统的安全需求与实现这些需求的⼿段⽇趋明显

2.2安全需求工程问题

典型的获取安全需求的⽅法包括:基于滥⽤⽤例的⽅法、基于攻击树的⽅法、基于重⽤的⽅法、基于扩展UML的⽅法、基于反模型的⽅法、以使⽤为中⼼的⽅法、基于主体和意图的⽅法、基于CLASP的⽅法、⾯向⽅⾯的⽅法等
P23-P31

基于通用标准的方法 P39

基于安全需求模板的软件安全需求获取技术
  1. 构建安全操作序列
  2. 安全功能组件匹配验证

第⼀步:将构建好的多个安全操作序列分别与该安全功能组件对应的安全要求进⾏匹配,匹配算法采⽤正则表达式验证⽅法;
第⼆步:若匹配成功,则说明为保证该系统的安全不需要此安全功能组件,并继续验证下⼀条安全操作序列,直到所有的安全要求序列验证结束。若缺陷匹配不通过,则说明为保证该系统的安全需要此安全功能组件;
第三步:重复第⼆步和第三步,直到所有安全操作序列都验证完毕。

2.3安全需求表示、建模与分析
  1. 基于攻击模式的安全需求分析

Attack patterns所针对的问题即为软件产品攻击者的⽬标对象,描述的是攻击者⽤来破坏软件产品的技术。
使⽤attack patterns的动机为软件开发者通过将⾃⼰想象为攻击者,参与到威胁中去.
关键是指导软件开发社区采取适当的⽅法避免攻击

一个攻击模式应该包含

  • 模式名称以及分类:⼀个唯⼀的,具有描述性的标识符;
  • 攻击的前置条件:攻击成功实施所必须的条件或者⽬标软件必须具备的功能和特征或者⽬标软件必须展示的⾏为⽅式;
  • 描述:对攻击的描述,包含了对采取的⾏为链的描述;
  • 相关的脆弱点或薄弱处:本次攻击所利⽤的具体的脆弱点或薄弱处。关于这些脆弱点或者薄弱处的定义,应该参考⼀些⼯业标准的⽂献,例如CVE(Common Vulnerability and Exposure),USCERT以及CWE(Common Weakness Enumeration)等;
  • 攻击⽅法:攻击所使⽤的向量(例如:恶意的数据项,恶意制造的⽂件,协议崩溃);
  • 攻击动机-后果:即攻击者实施此次攻击想要达成的结果。这不是⽬标领域的最终商业/任务⽬标,⽽是⼀个对达成最终商业/任务⽬标有帮助的具体的技术性结果。涉及到将攻击模式适⽤于威胁模型上以及判断哪些可得的攻击模式与给定上下⽂有关⽅⾯上,本类信息很有⽤;
  • 攻击者所需技术或知识:攻击者为了执⾏攻击需要哪种层次的技术或特殊的知识;
  • 所需资源:攻击者为了执⾏攻击需要哪些资源;
  • 解决⽅案和缓和技术:缓和这次攻击可以采取的反击攻击或⾃我修复的⾏动或⽅式;
  • 上下⽂描述:该模式与哪些技术上下⽂(例如,平台,操作系统,语⾔,架构范式)相关。在选择针对给定的上下⽂的⼀个攻击模式集合时,本类信息很有⽤;
  • 参考资料:即可以描述该次攻击的参考性的信息资源
  1. 基于误用例的安全需求分析

软件设计⼈员通过用例图来刻画用户对软件的功能需求。 与之对应的,误用例也是⼀种对系统功能⾏为的描述。
误用例所描述的是软件系统正常运⾏时不允许出现的状态,即系统要避免出现的情况。
误用例与用例的特定功能需求相关。换⾔之,针对于某⼀个用例,其特定的功能需求就自然导致可能会存在安全隐患,即误用例。
误用例与攻击模式之间具有的是实现相关的、语义互通的联系,⼆者是在不同的层面解析系统所
面对的攻击⾏为,即误用例是功能描述式的说明,⽽攻击模式则重在具体的实现⽅法
那么,通过解读用例图中的关键资产信息,就可以检测出其中是否带有安全隐患。从⽽在需求分
析阶段最⼤程度地了解软件系统中的潜在威胁,有利于在随后的开发过程中消除安全隐患,⼤幅提⾼软件的安全性能。

工具:argouml

安全需求分析中的用例漏洞检测方法
  • 用例图中的用例包含了设计⼈员对待开发软件所含功能的预期。用例与误用例之间的关联是本质性的。也就是说,⼀旦⼀个用例的功能确定下来,那么与其相关的误用例也就随之确定下来。基于这种情况,将误用例信息作为用例的特殊属性
  • 另⼀⽅面,攻击模式是与特定类型的误用例关联的。也就是说,⼀旦确定了⼀个用例与哪些特定类别的误用例关联,就很容易地得出这个用例与哪些攻击模式关联,也就找到了用例漏洞。
  • 由于用例中包含的主要信息是以语义形式存在的,语义信息是难以提取、理解和精准推导的。因此,在整个检测过程中引⼊形式化⽅法。将用例进⾏形式化后,将用例中与安全相关的误用例信息数字化为⼀个个属性信息。基于这些误用例相关属性来对此用例安全漏洞进⾏检测。
  • 预处理过程由用例提取和误用例信息形式化两部分完成,对比、匹配过程以误用例、攻击模式库为基础,在库构建完成后,通过⼀定算法进⾏查找、匹配,最终找出用例中隐藏的安全问题。
  1. 基于知识图谱的安全需求表达与安全分析
    P113

知识图谱泛指类似Google知识库的各种知识库
知识图谱的应用包括:辅助搜索、辅助问答、辅助数据集成、辅助决策。
安全需求知识图谱是面向安全需求领域的知识库,将安全信息构建在知识图谱有助于对软件安全需求进行更好的分析、更高准确度的获取。

安全需求知识图谱分析过程:

  • 安全需求知识图谱实体抽取

以安全需求分析流程为基础,将分析过程中所涉及到的安全概念抽取出来以实体形式构建在知识图谱中,抽取出的安全概念有资产(Asset)、安全威胁(SecurityThreat)、组织安全策略(Organizational Security Policy)、假设(Assumption)、安全目的(Security Objective)、评估保证等级(Evaluation Assurance Level)、安 全 功 能 需 求 (Security Functal Requirement)和安全保证需求(Security AssuranceRequirement)。
在抽取实体时,加⼊了⼀些影响安全需求分析的安全概念,这些安全概念有的是根据安全需求分析过程中所涉及到与CC⽆关的安全信息如CWE,有的是对认证⽂档分析后认为对安全需求分析具有重要意义的自定义的信息如软件安全等级(Level)。
将所有安全概念的半形式化语⾔的标识符作为实体的名称属性,将安全概念的⽂本描述作为实体的描述属性。定义实体集为E。

  • 安全需求知识图谱关系抽取

在各个安全概念中存在着丰富的关联关系,如安全概念内部层级关系、安全概念与自身的关系和安全概念之间的关系。定义关系集为R。
安全概念内部层级关系主要表现在安全概念以类(Class)、族(Family)、组件(Component)的形式划分层级,每⼀层都是对上⼀层更为细致的划分和对下⼀层特征的汇总。这样的安全概念包括资产、安全威胁、组织安全策略、假设和安全目的。安全功能需求和安全保证需求在组件以下又划分了元素(Element)层,对组件又进⾏了更细致的分类。
安全概念与自身的关系主要表现在安全功能需求部件与安全保证需求部件相互的依赖关系。这样的依赖关系分为直接依赖与间接依赖
安全概念之间的关系的主要依据是安全需求分析流程

  • 安全需求知识图谱构建

以我们抽取的实体和定义的关系构建软件安全需求知识图谱G(h,r,t)。h,t∈E分别表示知识图谱中三元组的头实体和尾实体,r∈R表示三元组中的关系

  • 基于GCN图卷积网络的知识图谱学习

获取实体特征
GCN
链接预测

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值