Search Our Site

注册

培训内容

内容介绍

内容大纲


CP211  S-SDLC流程
CP212  S-SDLC流程与敏捷开发 CP213  S-SDLC流程实施与成熟度模型

软件安全漏洞的产生可能源于多方面因素。软件开发和测试人员缺乏必要的安全知识;软件开发过程中没有充分考虑软件设计的安全性;或者是所开发的软件和产品缺乏必要的安全功能等。这些因素都可能造成所开发的软件存在严重的安全漏洞。

本节课程着重介绍如何从软件开发整个生命周期流程的角度考虑软件的安全性。通过在软件设计、开发、测试、发布和响应的各个阶段执行相应的安全活动来提高软件的安全性。另外,随着敏捷开发模式的普遍应用,S-SDLC有必要和敏捷开发相结合,让安全活动的执行能够适应敏捷开发的特点和要求。

1.1. S-SDLC流程
1.1.1. S-SDLC 关键要素
          需求
          设计
          实施
          验证
          发布和响应
          培训、政策和组织
1.1.2. S-SDLC需求阶段
          风险评估
          基于安全风险进行资源调配
1.1.3. S-SDLC设计阶段
          设计审核
          攻击面分析
          威胁分析
1.1.4. S-SDLC实施阶段
          建立并遵循安全开发最佳实践
1.1.5. S-SDLC验证阶段
          安全测试    
          渗透测试
1.1.6. S-SDLC发布和响应阶段
1.1.7. S-SDLC培训、政策和组织
1.2. S-SDLC与敏捷开发
1.2.1. 流程与敏捷开发
1.3. 软件安全保障
1.3.1. SAMM
1.3.2. BSIMM-V
1.3.3. 微软SDL优化模型

CP220  设计安全

开发一个安全的、能够抵御黑客攻击的软件产品需要在产品开发生命周期的每个阶段关注软件安全性。

安全漏洞的出现并不总是编程错误的结果,也可能是由软件设计缺陷造成的。本节课程重点介绍软件设计的基本安全准则,并详细阐述安全防御手段对提高软件安全的重要性。

2.1. Saltzer和Schroeder设计安全准则 2.1.1. 机制的经济性
2.1.2. 安全失败的缺省值
2.1.3. 完全仲裁
2.1.4. 公开设计
2.1.5. 特权分离
2.1.6. 最小特权
2.1.7. 最小共同机制
2.1.8. 心理接受程度
2.2. 设计安全 
2.2.1. 设计审核
         身份认证
         授权
         数据和代码分离
         输入验证
         加密
         敏感数据
         日志和审计
         ......

CP230  攻击安全

攻击面分析是S-SDLC设计阶段的一项重要安全活动。本节课程重点介绍什么是软件的受攻击面,以及如何分析和消减软件的受攻击面。攻击面消减的核心原则是,所有的程序代码都可能存在安全漏洞,而其中一些漏洞有可能会被黑客利用并成功实施攻击。攻击面消减是通过减少暴露给潜在攻击者的安全薄弱点或漏洞,以降低软件被黑客成功攻击的机会和风险。


3.1. 攻击面分析
3.1.1. 攻击面分析
         入口点:接口、协议、代码执行路径… 3.1.2. 攻击面消减
         代码、可访问性、权限

CP240  威胁分析

威胁建模是S-SDLC最重要的安全活动之一。本节课程将涵盖不同类型的威胁模型,并重点介绍基于设计的威胁模型。基于设计的威胁模型以数据流为基础,依据STRIDE模型对数据流不同类型的元素进行威胁分析。

除了介绍威胁建模的基本方法和工具以外,本节课程还将采用分组讨论方式,用一两个具体的实例和课上练习来帮助学员了解如何利用威胁建模方法和工具来分析识别软件的安全威胁,并采取适当的缓解措施。

4.1. 威胁建模结构化方法
4.2. 威胁建模数据流图
4.3. 威胁模型S.T.R.I.D.E.
4.4. 威胁分析
4.5. 消减措施方法和技术手段
4.6. 威胁库示例: 仿冒外部实体或处理过程 4.7. 风险分析