文章目录

  • 一、软件安全开发模型
  • 二、软件安全需求分析
  • 三、软件安全测试

一、软件安全开发模型

软件生命周期由定义、开发和维护 3个时期组成。

三种软件安全开发模型特点比较:

SDL系列
软件安全开发周期(Security Development Lifecycle)相关文档较为丰富。在投入大量的人力、物力进行研究和实践后,微软不断更新升级SDL版本,并通过专门网站和开发者社区对SDL进行推广。同时,SDL还有一个鲜明的特点,就是从需求分析阶段到测试阶段,都有较多的自动化工具支持它,如威胁建模、静态源代码分析等工具。由于SDL体系较为完善,和其他安全开发流程相比,它的实施要求严格,适合于大型机构使用。

BSI系列
内建安全(Build Security In)认为软件安全有3根支柱:风险管理、软件安全接触点和安全知识,强调了在软件生命周期中风险管理的重要性,并要求风险管理框架贯穿整个开发过程。BSI明确了安全知识在软件安全中的重要性,但是没有强调要把安全培训作为软件安全开发的先决条件。

CLASP
综合的轻量应用安全过程(Comprehensive Lightweight Application Security Process) 是一个用于构建安全软件的轻量级过程,应用该方法可以较好地处理那些可能导致安全服务出现漏洞的软件脆弱性。CLASP强调安全开发过程中的角色和职责,其安全活动基于角色安排。CLASP既可用于启动一个新的软件开发项目,也易于和已有的软件开发项目进行集成,它使企业能够使用系统且并不烦琐的流程开发出安全的软件产品。在实践中,CLASP容易存在的一个问题是,其定义的有些角色可能无法和某些企业中现有的人员安排进行对应。与SDL相比,CLASP所采用的流程属于轻量级,也能够与多种软件开发模型相结合,因此,对小型软件企业更具有吸引力。

二、软件安全需求分析

软件安全需求分析 与 软件需求分析 的区别
软件安全需求的:客观性、系统性、经济性和适用性

软件安全需求的来源分类:
外部、内部 安全需求

软件安全需求的四大类内容:
核心安全需求、通用安全需求、运维安全需求及其他安全需求

三、软件安全测试

软件测试的目标在软件投入生产性运行之前,尽可能多地发现软件中的错误。软件测试是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。

软件安全测试的内容主要包括软件安全功能测试软件安全漏洞测试

软件测试与软件安全测试的区别
软件测试主要是从最终用户的角度出发发现缺陷并修复,保证软件满足最终用户的要求。
软件安全测试则是从攻击者的角度出发发现漏洞并修复,保证软件不被恶意攻击者破坏。


完整性测试可以分为数据完整性测试、系统完整性测试和数据传输过程完整性测试。

(1)漏洞扫描与模糊测试、渗透测试的区别

模糊测试,是一种基于缺陷注人的软件安全测试技术,主要通过监视非预期输入可能产生的异常结果来发现系统的漏洞。

渗透测试,是通过尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对目标的安全性做深入的探测,以发现系统的漏洞。

漏洞扫描主要基于漏洞数据库来检测目标系统,漏洞数据库包含了检查安全问题的大量漏洞信息。目前的漏洞扫描工具主要采用的检测方法是基于漏洞信息的匹配,也有通过构造畸形数据包进行模糊测试,或是进行渗透测试检测漏洞的。针对扫描出的安全漏洞,漏洞扫描工具通常会提供一个风险列表,以及漏洞修补建议。

对于通常所说的漏洞扫描,它与模糊测试、渗透测试的不同点表现在以下几个方面。
1、漏洞扫描只清楚地展示出系统中存在的缺陷,但是不会衡量这些缺陷对系统造成的影响;模糊测试和渗透测试除了定位漏洞外,还需要进一步尝试对漏洞进行攻击利用、提权,以及维持对目标系统的控制权
2、漏洞扫描只会以一种非侵略性的方式,仔细地定位和量化系统的所有漏洞;相反,模糊测试和渗透测试的侵略性要强很多,它会试图使用各种技术手段攻击真实生产环境。所以一般来说,模糊测试和渗透测试会是一项更加需要智力和技能的技术活,因而也常需要花费更多的资金。

(2)安全测试与安全评估
可以通过漏洞扫描首先定位那些可能造成软件系统安全问题的威胁元素,进而评估软件系统的安全性。这一评估方法不只是找出现有软件系统中的安全风险,同时还会提出相应的修补方案和漏洞修补的优先级顺序。

通常的安全评估工具除了具备漏洞发现能力外,还能够对漏洞结果进行说明,对系统总体安全状况做总体评价,同时以多种方式生成评估报表,如文字说明、图表等。安全评估软件在安全扫描时不仅对操作系统和应用程序的漏洞进行探测,还包括对目标站点进行配置检查、信息搜集等工作,给出系统易受攻击的漏洞分析。通过安全评估后,用户可以根据情况采取措施,包括给系统打补丁、关闭不需要的应用服务等来对系统进行加固。可以看出,漏洞检测、安全评估和采取措施是一个操作步骤前后相继、安全能力螺旋上升的过程。

软件安全(开发模型、需求分析、测试)总结相关推荐

  1. 软件测试、测试用例、开发模型和测试模型、瀑布模型和螺旋模型

    什么是测试用例? 王婆的九步连环计 通过重重方式测试潘金莲是否能上钩. 有具体步骤, 有预期结果, 有真实结果 步骤一:让潘金莲答应给王婆做寿衣.这是整个局的开始,不过这个步骤看似简单,用意却不小,让 ...

  2. 几种常用的开发模型和测试模型

    1.开发模型 (1)瀑布模型 start--需求分析--计划--设计--编码--测试--end 特点:阶段性强,每一个阶段比较独立,看重前期的需求分析和后期的测试 缺点:测试在编码之后才介入,导致前期 ...

  3. 软件测试整理一:测试基础知识以及开发、测试模型、按照开发阶段进行测试

    文章目录 一.基础概念 1.什么是软件测试 2.软件测试的目的 3.软件测试的原则 4.软件测试的分类 4.1 按照开发阶段分类 4.2 按照软件特性分类 4.3 按照测试技术分类 4.4 按照测试运 ...

  4. 软件测试常见问题 开发模型 PC端qq登录测试用例 BUG的相关问题 测试用例设计的常用方法

    测试基础 1.软件测试和软件研发的区别 2.软件测试和软件调试的区别 软件测试在不同公司的定位 一个优秀的软件测试人员所具备的素质 3. 什么是需求 4.PC端qq登录测试用例 5.测试用例 5.1 ...

  5. 测试学习打卡第一天——测试与开发模型基本介绍

    一.测试与开发模型 测试的工作流程 开发模型 测试模型 开发和测试的关系 测试的工作流程: 需求分析 阅读需求文档(产品文档 产品详细设计说明书 分析需求的点 参与需求评审 快速熟悉项目) 制定测试计 ...

  6. 测试——开发模型(瀑布模型,螺旋模型,增量,迭代,敏捷)和测试模型(V模型,W 模型),软件开发生命周期与软件测试生命周期的对比

    目录: 软件测试生命周期与软件开发生命周期 开发模型 2.1 瀑布模型 2.2 螺旋模型 2.3 增量 和 迭代 2.4 敏捷 测试模型 3.1 V模型 3.2 W模型 1. 软件开发生命周期与软件测 ...

  7. 基于模型的嵌入式开发流程_如何使用基于模型的测试来改善工作流程

    基于模型的嵌入式开发流程 Unit testing is not enough – so let's start using model-based testing to improve our wo ...

  8. Android软件安全开发实践(下)

    Android软件安全开发实践(下) Android开发是当前最火的话题之一,但很少有人讨论这个领域的安全问题.本系列将分两期,探讨Android开发中常见的安全隐患和解决方案.第一期将从数据存储.网 ...

  9. 软件安全开发生命周期(SSDL)全景图

    对于软件安全研发过程,不同的项目会采用不同的过程模型,使用不同的工具,会有不同的门控要求及不同的输出物,下面简单介绍下我所理解的软件安全开发过程 一.软件安全开发全景图 首先我们先根据软件开发生命周期 ...

  10. 105.敏捷开发模型

    文章目录 1.什么是敏捷开发? 2.敏捷开发宣言 3.站立会议的意义 4.敏捷开发想解决什么问题? 5.如果用敏捷的方式盖房子 6.敏捷开发和瀑布模型的差异 (1)敏捷开发是怎么做需求分析的? (2) ...

最新文章

  1. DS, ES, SS, DI, SI, BP, SP, IP, FS 寄存器
  2. ARM处理器:开放者的逆袭
  3. PLSQL_SQL Loader的概念和用法(概念)
  4. python怎么读excel文件-用python读写excel文件
  5. Firefox跟博客园闹别扭!用不了博客园的HTML编辑器了。
  6. cx_oracle写日志信息_MongoDB与MySQL关于写确认的异同
  7. 斯坦福大学机器学习课程资料-吴恩达老师主讲(2008版)
  8. BERT模型蒸馏有哪些方法?
  9. 计算机网络与网页制作教程,计算机网络与网页制作:Dreamweaver CS5案例教程/高等学校通识教育系列教材简介,目录书摘...
  10. 二十四种设计模式:代理模式(Proxy Pattern)
  11. JavaScript 图片的上传前预览(兼容所有浏览器)
  12. tde数据库加密_启用了基于透明数据加密(TDE)的地理复制的Azure SQL数据库
  13. 继电反馈法自整定_PID控制及整定算法
  14. 域共享文件夹服务器怎么设置密码,域环境下共享文件夹加密、Windows 2008 Server局域网共享文件夹设置权限设置的方法...
  15. 计算器和计算机有什么不同,计算机和计算器有区别吗?
  16. Geoffrey Hinton:放弃反向传播,我们的人工智能需要重头再来
  17. c语言,判断整数 m 是否素数
  18. Linux TWI开发指南
  19. 【机器学习】简述多种降维算法
  20. oracle12c非可插拔数据库,oracle 12c创建可插拔数据库(PDB)与用户详解

热门文章

  1. C++ 解决大数运算(大数加法,大数幂运算,大数求余)
  2. jsplumb入门教程及视频教程链接
  3. 轻松调用Google翻译
  4. win10浏览器闪退_win10系统打开ie11浏览器出现闪退的两种解决方法
  5. pantum打印机驱动安装m6506_奔图m6506驱动程序
  6. Java ResourceBundle 加载外部路径资源文件方式
  7. 如何使用Javascript复制到剪贴板
  8. 如何清空c盘只剩系统_如何深度清理c盘空间(怎么清理c盘只留下系统)
  9. php批量打印页面,SETE批量打印
  10. php基于纯真IP数据库实现IP地址信息查询