软件安全开发
- 软件安全开发生命周期
- 软件安全需求及设计
- 软件安全实现
- 软件安全测试
- 软件安全交付
软件安全开发生命周期
◆软件生命周期模型
◆了解软件生命周期的概念及瀑布模型、迭代模型、增量模型、快速原型模型、螺旋模型、净室模型等典型
◆软件开发生命周期模型。
◆软件危机与安全问题
◆了解三次软件危机产生的原因、特点和解决方案
◆了解软件安全和软件安全保障的基本概念。
◆软件安全生命周期模型
◆了解SDL、 CLASP、CMM、SAM、BSIM等典型的软件安全开发生命周期模型。
软件生命周期模型
◆软件的定义
◆软件是与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据
◆软件生命周期模型
◆瀑布模型
◆迭代模型
◆增量模型
◆快速原型模型
◆螺旋模型
◆净室模型
软件生命周期模型-瀑布模型
◆最早出现的软件开发模型
◆核心思想
◆按工序将问题简化
◆将功能的实现与设计分开
◆不足
◆没有对开发周期后期发现错误做出相应的规定
软件生命周期模型-迭代模型
◆瀑布模型的小型化应用
◆完整的工作流程
◆降低风险
◆增量开支的风险
◆产品无法按期进入市场的风险
◆加快开发进度
◆任务清晰
◆需求更容易随需而变
软件生命周期模型-增量模型
◆融合了瀑布模型和迭代模型的特征
◆本质上是迭代,每个增量发布一个可操作产品
软件安全需求及设计
◆威胁建模
◆理解威胁建模的作用及每个阶段的工作内容
◆掌握 STRIDE模型用于进行威肋建模实践。
◆软件安全需求分析
◆理解软件安全需求在软件安全开发过程中的重要性;
◆理解安全需求分析的方法和过程
◆软件安全设计
◆理解软件安全设计的重要性及内容和主要活动;
◆理解最小特权、权限分离等安全设计的重要原则;
◆理解攻击面的概念并掌握降低攻击面的方式。
威胁建模
◆什么是威胁建模
◆威胁建模是了解系统面临的安全威胁,确定威胁风险并通过适当的绶解措施以降低风险,提高系统安全性的过程。
◆为什么要威胁建模
◆帮助在设计阶段充分了解各种安全威胁,并指导选择适当的应对措施
◆对可能的风险进行管理
◆可以重新验证其架构和设计
◆有助于软件的受攻击面降低
威胁建模流程
◆确定对象
◆识别威肋
◆评估威胁
◆消减威胁
降低软件攻击面通常做法
软件安全测试
模糊测试
◆强制软件程序使用恶意破坏性的数据并进行观察结果的一种测试方法
◆不够强杜的程序会崩溃
◆编码良好的程序正常运行
◆特性
◆方法学
◆随机值
◆大量测试用例
◆查找漏洞或可靠性错误
◆模糊测试过程
◆生成大量的畸形数据作为测试用例
◆将这些测试用例作为输入应用于被测对象
◆监测和记录由输入导致的任何崩溃或异常现象
◆查看测试日志,深入分析产生崩溃或异常的原因。
软件安全交付
◆软件供应链安全
◆了解软件供应链安全的概念并理解软件供应链安全措施
◆软件安全验收
◆了解软件安全验收的重要性及需要考虑的内容
◆软件安全部署
◆了解软件安全部署的重要性及软件安全加固、软件安全配置的概念。
软件供应链安全
◆供应链安全概念
◆目前软件安全开发生命周期中新的威胁,涉及到软件的代码编写、代码编译、软件分发、软件更新
◆代码编写:共享库
◆代码编译:被污染的编译软件
◆软件分发/更新:污染源头
◆供应链安全应对策略
◆安全流程覆盖到引入的第三方代码中
◆可靠的编译软件获取方式
◆官方渠道、发布验证
软件验收及部署
◆软件验收
◆正式的验收流程
◆安全纳入到验收考虑中
◆安全部署
◆提供软件部署所需要的文档和工具
◆软件加固
◆软件安全配置
总结
◆软件安全开发生命周期模型
◆软件安全需求与设计
◆威胁建模
◆攻击面
◆软件安全实现
◆软件安全测试
◆软件安全交付
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树桌面应用开发Tkinter208043 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!