美文网首页
安全开发生命周期 (SDL)简介

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

作者: 土司阿哈 | 来源:发表于2020-01-09 20:49 被阅读0次

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

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

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

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

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模型对于安全属性的图

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.响应

当软件发布后遭受攻击时,根据制定的应急响应计划快速采取措施,把事件造成的损失降到最小。这里还可以加入应急响应演练,以加强公司对抗信息安全攻击的能力。

如果你喜欢我的文章,欢迎关注扫描公众账号:MiniStarClub

相关文章

  • SDL初识

    1、SDL是什么? SDL(Security Development Lifecycle)安全开发生命周期。是微软...

  • SDL安全开发周期

    SDL介绍 安全开发生命周期(SDL)即Security Development Lifecycle,是一个帮助开...

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

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

  • 每日安全资讯(2019.12.25)

    软件安全构建成熟度实践尝试软件安全构建通过在软件开发生命周期(SDL)中增加安全的控制点,保障软件架构安全性,减少...

  • ffmpeg 、SDL

    目录:1、视频的显示知识;2、SDL简介3、vc下sdl的开发搭建【在mac上应该如何搭建、linux上】4、示例...

  • 初探Security Development Lifecycle

    这个东西是什么:Security Development Lifecycle (SDL)中文名称软件安全开发周期 ...

  • 安全开发流程SDL

    一、简介 由微软最早提出的概念,安全开发流程(Security Development Lifecycle),...

  • SDL系列讲解(十) 按键处理流程

    SDL系列讲解(一) 简介SDL系列讲解(二) 环境搭建SDL系列讲解(三) 工具安装SDL是什么,能干什么,为...

  • SDL系列讲解(九) 异常退出分析

    SDL系列讲解(一) 简介SDL系列讲解(二) 环境搭建SDL系列讲解(三) 工具安装SDL是什么,能干什么,为...

  • Python游戏编程之旅(1):初识pygame

    一、pygame简介 Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发...

网友评论

      本文标题:安全开发生命周期 (SDL)简介

      本文链接:https://www.haomeiwen.com/subject/wlwdactx.html