软件安全开发:
包含五个知识子域:
软件安全开发生命周期:
软件生命周期模型:
软件的定义:
知识子域: 软件安全开发生命周期
软件生命周期模型
• 了解软件生命周期的概念及瀑布模型 、迭代模型 、 增量模型 、 快速原型模型 、螺旋模型 、 净室模型等典型软件开发生命周期 模型。
• 软件危机与安全问题
• 了解三次软件危机产生的原因 、特点和解决方案;
• 了解软件安全和软件安全保障的基本概念。
• 软件安全生命周期模型
• 了解SDL 、 CLASP 、 CMMI 、SAMM 、 BSIMM等典型的软件安全 开发生命周期模型。
软件生命周期模型
软件的定义
• 软件是与计算机系统操作有关的计算机程序 、规程 、规则 以及可能有的文件 文档及数据
• 软件生命周期模型
• 瀑布模型
• 迭代模型
• 增量模型
• 快速原型模型
• 螺旋模型
• 净室模型
软件生命周期模型-瀑布模型
• 最早出现的软件开发模型
• 核心思想
• 按工序将问题简化
• 将功能的实现与设计分开
• 不足
• 没有对开发周期后期发现错误做出相应的规定
迭代模型:
增量模型
快速原型模型:
螺旋模型:
千行代码缺陷率:
缺陷率 = 缺陷数量/ (代码行数/1000)
软件安全问题产生—内因
系统的复杂性决定了安全问题必不可免
软件安全问题产生—外因
1:互联网发展对软件安全的挑战
2:开发环境和开发人员对软件安全的挑战
3:开发者缺乏安全开发的动机
4:开发者缺乏相关知识
5:缺乏安全开发工具
软件安全保障:
软件安全开发生命周期:
相关模型及研究:
软件开发问题越早解决越好:因为后期解决的成本会越高。
SDL :安全开发生命周期
SDL的七个阶段和十七项必须的安全活动:
SDL实施效果:sdl不适合小型企业
适合小公司企业的:CMMI SAMM
BSI:
软件安全需求设计:
威胁建模:
威胁是了解系统面临的安全威胁,确定威胁风险并通过适当的缓解措施以降低风险,提高系统安全性的过程。
为什么要威胁建模:
威胁建模阶段:
1:确定对象
2:识别威胁
3:评估风险
4:消减威胁
需求分析过程
安全设计的重要性:
安全设计原则:
降低攻击面:
有文件上传的功能就是一个攻击面
降低攻击面策略:
渗透测试的流程: