安全开发生命周期 (SDL)简介

最近在学习安全测试相关内容,目前大部分公司安全体系借鉴了SDL进行设计和改良,本文通过网络文章整理成文,仅用于学习安全基础基础知识。

SDL的是安全开发生命周期,Security Development Lifecycle。由微软最早提出,是一种专注于软件开发的安全保障流程。为实现保护最终用户为目标,它在软件开发流程的各个阶段引入安全和隐私问题。

SDL的核心理念就是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段每都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度。

安全开发生命周期 (SDL)是侧重于软件开发的安全保证过程,旨在开发出安全的软件应用。

efae230824730f45665cf78ac504bad9.jpeg

1、培训

开发团队的所有成员都必须接受适当的安全培训,了解相关的安全知识。培训对象:开发人员、测试人员、项目经理、产品经理;培训内容:安全设计、威胁建模、安全编码、安全测试、隐私等。

2、安全要求

2.1确定安全计划

在项目确立之前,需要提前与项目经理进行沟通,确定安全的要求和需要做的事情。确认项目计划和里程碑,尽量避免因为安全问题而导致项目延期发布。

2.2 设立安全基线和安全分级。

安全基线用于确定安全风险的最低可接受级别,安全分级用于定义安全漏洞的严重性阈值。例如,应用程序在发布时不得包含具有“关键”或“重要”评级的已知漏洞。安全基线和安全分级一经设定,便绝不能放松。

2.3安全和隐私风险评估。

对系统可能面临的威胁、存在的弱点、造成的影响,以及三者综合作用所带来风险的可能性的评估,量化系统遭受攻击带来的影响或损失的可能程度。

安全风险评估(SRA)和隐私风险评估(PRA)是一个必需的过程,用于确定软件中需要深入评析的功能环节。包括:

① 项目的哪些部分在发布前需要建立威胁模型?

② 哪些部分在发布前需要进行安全设计评析?

③ 哪些部分需要由不属于项目团队且双方认可的小组进行渗透测试?

④ 是否存在安全顾问认为有必要增加的测试或分析?

⑤ 模糊测试的具体范围?

⑥ 隐私对评级的影响。

3、设计阶段

3.1设计要求

在设计阶段应仔细考虑安全和隐私问题,在项目初期确定好安全需求,尽可能避免安全引起的需求变更。

3.2减小攻击面

减小攻击面与威胁建模紧密相关,不过它解决安全问题的角度稍有不同。减小攻击面通过减小攻击者利用潜在弱点或漏洞的机会来降低风险,减小攻击面包括:关闭或限制对系统服务的访问,应用“最小权限原则”,以及尽可能进行分层防御。

减小攻击面与威胁建模紧密相关。它通过减少攻击者利用潜在弱点或漏洞的机会来降低风险,包括关闭或限制对系统服务的访问,应用“最小权限原则”,尽可能分层防御。

3.3威胁建模

微软的 STRIDE 模型。所谓STRIDE为Spoofing(假冒),Tampering(篡改),Repudiation(否认),Information Disclosure(信息泄漏),Denial of Service(拒绝服务),Elevation of Privilege(提升权限)。此乃微软的安全建模的模型,微软的产品就是基于它考虑安全问题的哦。STRIDE模型几乎是可以涵盖现在世界上绝大部分的安全问题。下面给上STRIDE模型对于安全属性的图

25c413c476c2e92a1149b7c1c2f91e40.jpeg

4.实施阶段

4.1 使用指定的工具

开发团队使用的编辑器、链接器等相关工具,可能会涉及一些安全相关的环节,因此在使用工具的版本上,需要提前与安全团队进行沟通。

4.2弃用不安全的函数

许多常用函数可能存在安全隐患,应当禁用不安全的函数和API,使用安全团队推荐的函数。

4.3静态分析

静态分析可以帮助软件开发人员、质量保证人员查找代码中存在的结构性错误、安全漏洞等问题,从而保证软件的整体质量。

5 验证阶段

5.1动态分析

态分析是静态分析的补充,用在程序运行时,测试验证程序的安全性,也称作“黑箱测试”。通过模拟黑客行为对系统进行动态攻击,分析系统的反应,从而确定该系统是否易受攻击。

5.2 模糊测试

模糊测试是一种特定的动态分析方法,通过故意向应用程序引入不良格式或随机数据诱发程序故障。测试策略的制定以应用程序的预期用途、功能、设计规范为基础。

5.3 威胁模型和攻击面评析

项目因需求变更等因素导致最终产出偏离原定目标,为此项目后期有必要对威胁模型和攻击面进行重新评析。

6.发布阶段

6.1事件响应计划

SDL要求约束的每个软件在发布时都必须包含事件响应计划。即使在发布时不包含任何已知漏洞的产品,也可能在日后面临新出现的威胁。需要注意的是,如果产品中包含第三方的代码,也需要留下第三方的联系方式并加入事件响应计划,以便在发生问题时能够找到对应的人。

6.2最终安全评析(FSR)

最终安全评析指在产品发布之前对软件执行的安全活动,对比安全基准确定产品不符合安全基准、缺少功能和其他要求的区域,然后进行以下三种决策:

1) 通过FSR。在FSR过程中确定所有安全和隐私问题都已得到修复或缓解;

2) 通过FSR但有异常。在FSR过程中确定所有安全和隐私问题都已得到修复或缓解,并且/或者所有异常都已得到圆满解决。无法解决的问题将记录下来,在下次发布时更正。

3) 需上报问题的FSR。如果团队未满足所有SDL要求,并且安全顾问和产品团队无法达成可接受的折中方案,则安全顾问不能批准项目,项目不能发布。团队必须在发布之前解决所有可解决的问题,或者上报高级管理层进行抉择。

6.3 发布/存档

在通过FSR或者虽有问题但达成一致后,可以完成产品的发布。但发布的同时仍需对各种问题和文档进行存档,为紧急响应和产品升级提供帮助。

7.响应

当软件发布后遭受攻击时,根据制定的应急响应计划快速采取措施,把事件造成的损失降到最小。这里还可以加入应急响应演练,以加强公司对抗信息安全攻击的能力。a2db67af3a3a552e64e0c4d22dd07491.jpeg文章来源:MiniStarClub北京,致力于提供最具价值的测试及测试管理领域原创文章。包括测试技术、测试方法、测试思想、测试管理等。

· 推 荐 阅 读 ·

RECOMMENDATION

团队管理与个人成长文章汇总

你需要的测试策略都在这里!!!

深入学习自动化测试看这里就够了!!!

深入理解自动化测试基本原理和框架设计

京东金融App端链路服务端全链路压测策略

UI自动化应该实施哪些内容?

基于业务分层的测试策略

你点的每个“在看”,我都认真当成了喜欢!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值