• 0
  • 0
分享
  • 软件安全需求分析——软件测试圈
  • 恬恬圈 2021-05-18 14:12:21 字数 1927 阅读 3091 收藏 0

一、软件与软件安全的需求分析

为了开发出满足用户需求的软件产品,首先需要知道的是用户的需求。这是对软件开发工作能否取得成功的基础条件。

1、软件需求分析的主要工作

为了开发出满足用户需求的软件产品,首先需要知道的是用户的需求。这是对软件开发工作能否取得成功的基础条件。

1)确定系统的综合要求

  • 功能需求:划分系统需要的功能;

  • 性能需求:指定系统的约束,包括速度、信息量、存储量等;

  • 可靠性和可用性需求:顶俩个的指定系统的可靠性,它量化了系统被用户的实用程度;

  • 出错处理需求:该如何人响应错误环境;

  • 接口需求:描述系统与特的通信格式;

  • 约束:应该遵循的限制条件;

  • 逆向需求:说明软件不应该做什么;

  • 将来可能提出的需求:明确哪些需可能扩充到软件之中。

2)分析系统的数据要求

准确全面的定义数据,正确的描述数据之间的逻辑关系。

3)导出系统的逻辑模型

使用数据流图、实体-联系图、状态转换图、数据字典等逻辑模型。

4)修正系统开发计划

在分析过程中,对系统的深入理解,可以具体的、准确的估计系统的成本和进度,修正以前制定的计划。

2、软件安全需求分析的主要工作

1)软件安全需求分析的目的与作用

目的: 描述为了实现信息安全目标,软件系统应该做什么,才能高效的提高软件的安全质量,减少软件漏洞。

重要作用:一个没有惊进行安全需求分析的软件开发项目,将威胁到信息的保密性、完整性和可用性,以及其他的一些安全问题。这个软件被攻破就只是时间的问题,早晚会被攻破。所以对于一个软件来说,软件的安全需求分析是必不可少的。

2)安全需求分析与软件需求分析的联系

软件安全需求分析是软件需求分析的一个必要组成部分。安全需求应该与业务需求具有同样的需求水平,并能对功能需求具有约束力。

3)安全需求分析与软件需求分析的区别

软件安全需求的客观性:

软件安全需求分析是由系统的客观属性决定的。与一般需求分析的不同在于:安全需求并不是从使用者的要求和兴趣出发,而是由系统的客观属性决定的。

软件安全需求的系统性:

软件安全需求分析不能只从系统本身出发,必须从系统角度进行分析。因为软件本身可能会由于逻辑、数据、时序等设计缺陷导致安全问题。从系统角度分析,不可避免涉及到各个领域的专业知识与经验积累。因此分析时应以人为主,分析工具只能起到辅助作用。并且分析时需要有专业的分析人员,熟悉系统架构的总体设计人员,软件设计人员和各领域专家共同参与。

4)安全需求分析的主要工作

首先需要确定明白你软件的业务运行环境、规则环境及技术环境。然后在了解各类软件安全需求的基础上,通过一定的安全需求获取过程,对软件应该包含的安全需求进行分析,然后对如何实际部署和开发进行讨论。

二、软件安全需求来源

1、来源的分类

内部安全需求:

内部安全需求一是指内部需要遵守的政策、标准、指南和实践模式,二是软件功能需要的相关安全需求。

外部安全需求:

主要是法律法规等遵从性需求,包括国家和地区的关于技术与管理的法律法规、标准与要求等。

2、软件安全遵从性需求

主要由信息系统安全的测评国际保准、信息安全管理的国际标准、信息系统安全工程国际标准以及我国的信息安全标准等组成。

三、需求的获取

1、获取的相关方

软件安全需求获取的相关方包括 业务负责人、最终用户、客户、安全需求分析人员和安全技术支持人员等。

业务负责人、最终用户和客户咋安全需求确定是发挥着重要作用,应当积极的参与安全需求的采集和分析过程。

此外,运维小组与信息安全小组等技术支持人员页式相关方,应与分析人员、业务负责人、客户等做好积极沟通,寻求支持与帮助。

2、获取方法

1)头脑风暴

又称之为智力激励法、自由思考法,是指无限制的思考和自由联想、讨论等,其目的在于产生新观念或者激发新创想。值得注意的是,这种情况只适用于需要快速实现的情况下使用。并且这种方式提出的安全需求可能不全面或不一致,以来于个人对问题的理解以及自身的经验等,比较主观。

2)问卷调查和访谈

通过问卷调查,可以直接的生成安全需求。其有效性取决于如何向被调查对象提出和是的问题。调查时应该覆盖当前软件的安全设计原则和安全配置文件的内容,应当考虑业务风险、过程风险和技术风险。

3)策略分解

将组织需要遵守的内部和外部政策,包括法律法规、隐私和遵从性命令分解成详细的安全需求。这是一个连续化的结构化的过程。

4)数据分类

更具数据的生命周期管理对数据分阶段划分来决定安全需求。也可以根据数据的重要性等级的划分来确定。

5)主客体关系矩阵

采用主/课题无关系矩阵来刻划一个基于使用用例的主/客体之间的操作关系,在此基础之上确立安全需求。


作者:育菌头顶凉

原文链接:https://blog.csdn.net/qq_45590334/article/details/111990740

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • Python独一无二的特色除了缩进还有哪些特色呢?大多数的回答一定是语法简洁、简单易学、代码高效、功能强大等四项。那究竟是Python的哪些语言特性使得人们普遍认为Python具有语法简洁、简单易学、代码高效、功能强大的特点呢?其实很大程度上,这要归功于列表(list)、字典(dict)、元组(tuple)和集合(set)这“四大金刚”。尽管整型(int)、浮点型(float)和字符串(str)也很重要,但毫不夸张地说,列表、字典、元组和集合才代表了Python语言的核心和基础,同时也是Python的精髓所在。学会使用列表、字典、元组和集合,就意味着掌握了Python这门编程语言。我们来一起回...
            2 3 4201
            分享
          • 引言进入二十一世纪之后,硬件元器件得到了飞速发展,从而也是的嵌入式软件的功能更加强大和复杂.随之而来的也是嵌入式软件测试工作的加重,传统的软件测试技术已经难以满足嵌入式软件越来越复杂的需求.而目前,市场上已经有较多的传统软件自动化测试技术,如何在这些技术的基础上进行改进,从而能够适应嵌入式软件环境,从而实现嵌入式软件的自动化测试,是嵌入式软件发展的重要方向.1.嵌入式软件自动化测试平台分析嵌入式软件的自动化测试即利用脚本来自动化驱动嵌入式软件的运行,并且自动收集相关数据进行分析,最终生成相应的测试报告.虽然,嵌入式软件的自动化测试流程与一般PC机应用软件的自动化测试流程相同。但是,由于嵌入式软...
            0 0 2823
            分享
          • 面试中,针对“用户登录”界面设计测试用例这个题目可以说是非常的耳熟能详了!可能你会说,“用户登录”这个测试对象也有点太简单了吧,我只要找一个用户,让他在界面上输入用户名和密码,然后点击“确认”按钮,验证一下是否登录成功就可以了。的确,这构成了一个最基本、最典型的测试用例,这也是终端用户在使用系统时最典型的 Happy Path 场景。但是作为测试工程师,你的目标是要保证系统在各种应用场景下的功能是符合设计要求的,所以你需要考虑的测试用例就需要更多、更全面,于是你可能会根据“用户登录”功能的需求描述,结合等价类划分和边界值分析方法来设计一系列的测试用例。那什么是等价类划分和边界值分析方法呢?首先...
            14 15 3268
            分享
          •   在国内,软件测试的步骤就比较晚,其作为弱势的部分的地方一直难于改变。但另一方面软件行业的迅速发展,软件的版本升级的频度超出了人们的想像。作为软件测试也不得不跟紧这种飞速的进度。  当版本发布时,就必须要求在短时间内完成测试任务,测试人员进度靠人力的堆积变得越来越不可行,自动化测试的就显得越来越重要。国内自动化测试虽然比软件测试要晚得多,但是却从一开始声势就要大的得多,几科一时间所有的部门都在讨论自动化测试,自动化测试的未来似乎一片光明。但是几年过年过去,自动化测试的发展有点雷声大雨点小,自动化测试的现状显然没有想象的那么好。常见的原因有以下几个方面:  望而却步型:且不谈商业软件的购买成本...
            0 0 1865
            分享
          • 一、准备1、postman工具2、搭建被测系统服务3、fiddler抓包工具说明:本此实战测试是在完成前台界面开发后进行的,接口是通过fiddler抓包获取的。(如果没有完成系统前台开发,以项目组输入的接口为准进行测试也是一样的原理)二、完成后先看一下完成后的情况:①设置环境变量,可区分是线上环境、测试环境、开发环境等不同的环境(可将变化的变量存放在此,如:ip、port、用户信息、token等)。②新建要测试的接口:请求方式支持get、post、put、delete等③保存新建的接口,便于下次继续使用,如:切换环境后接口确认及版本升级后回归测试。三、具体操作-以登录接口为例1、设置环境变量2...
            8 9 2472
            分享
      • 51testing软件测试圈微信