freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

企业安全开发生命周期(SDL)实践--初次接触
爱学习的大大大杰 2023-11-20 17:47:26 219858

一、背景

作为一名数据安全合规工程师,我负责的其中一个模块是参与SDL(安全开发生命周期)。起初,我对SDL一无所知,因为在面试时并没有涉及这方面的问题。我之前在乙方从事数据安全服务工作,对SDL从未有过了解,这触及到了我的盲区。然而,通过同事的帮助和自己的学习,我逐渐了解了SDL,并在公司中实践应用。

写这篇文章的初衷是为了记录自己学习的过程,并分享一些实践经验。目前,我们已经运行这套体系有一段时间了。在实践中,自己可能有一些理解不到位的地方,期待同行大佬们能够一起讨论指导,互相学习。

二、简介

SDL是什么?

安全开发生命周期(Security Development Lifecycle,SDL)是一种从安全角度指导软件开发过程的管理模式,由微软最早提出。其核心理念是将安全问题集成到软件开发的每一个阶段中,确保在开发的所有环节都考虑到了安全和隐私的要求。

SDL的主要目标

帮助开发人员构建更安全的软件,解决安全合规要求,同时降低开发成本。为了实现这个目标,SDL引入了一种侧重于软件开发的安全保证过程。

SDL也关注企业在网络安全上的痛点和风险产生的原因,例如网站被入侵、开发的APP存在高危漏洞等,并致力于通过事前防御来避免这些问题的发生。

它可以帮助公司防止数据泄露、保护服务器的完整性和可用性,同时也有助于维护公司的声誉和用户对公司产品的信心。

三、流程

安全开发生命周期(SDL)的流程主要由以下几个步骤组成:

  1. 安全培训:开发团队的所有成员,包括开发人员、测试人员、项目经理、产品经理等,都必须接受适当的安全培训,以了解相关的安全知识和标准。
  2. 需求分析:在项目确立之前,需要与项目经理或者产品owner进行沟通,明确安全的要求和需要做的事情。同时,确认项目计划和里程碑,尽量避免因为安全问题而导致项目延期发布。
  3. 设计阶段:根据前两步所确定的安全要求和需求,进行系统设计。这一阶段的目标是创建出一个可维护、可扩展且安全的系统架构。
  4. 实现阶段:在这一阶段中,开发团队开始编写代码,实现在前几个阶段中所设定的安全要求和设计。源代码扫描和人工审计等工作也是从这个阶段开始介入。
  5. 验证阶段:完成代码的编写后,需要进行测试以确保代码符合安全要求和设计。质量门和bug栏在这一阶段用于确定安全和隐私质量的最低可接受级别。
  6. 发布阶段:在软件发布前,需要进行最终的安全和隐私风险评估。例如,应用程序在发布时不得包含具有“关键”或“重要”评级的已知漏洞。
  7. 应急响应:对于可能出现的安全问题,需要立即启动应急响应计划。这个计划应包含如何定位问题、如何修复漏洞以及如何防止类似问题再次发生等内容。

官方说法参考:Microsoft 安全开发生命周期(SDL) - Microsoft Service Assurance | Microsoft Learn

以上就是SDL的主要流程,这个流程在整个开发过程中不断循环,以确保最终开发出的软件满足所有的安全要求。

四、准则

根据《白帽子讲Web安全》一书中,提出SDL实战经验的几个关键准则也分享给各位:

一、与项目经理进行充分沟通,确保有足够的时间用于安全评估。

二、规范公司的立项流程,确保所有项目都能及时通知到安全团队,避免遗漏。

三、需求分析与设计阶段:确保安全强度和安全体验达到标准。

四、开发阶段:在代码实现上注重安全性,例如提供安全的函数。

五、测试阶段:确保软件在发布前经过充分的安全测试。

六、发布阶段:监控软件在生产环境中的表现,及时发现并修复安全问题。

五、总结

步骤

描述

培训

组织内部人员接受安全意识、安全政策和最佳实践的培训。

需求

在系统设计阶段,确定安全需求并将其纳入系统规范中。

设计

根据安全需求,设计系统架构和组件,并考虑安全性。

实现

编写代码并实施安全措施,如访问控制、加密等。

验证

对系统进行各种类型的测试,包括单元测试、集成测试和系统测试,以确保安全性。

发布

将系统部署到生产环境中。

响应

监控系统运行情况,及时修复漏洞和安全问题。

由于公司较晚开始运行SDL体系,笔者在学习和实践的过程中面临了一些挑战。目前,我所在的公司是一家工业互联网企业,随着公司规模的不断扩大,我们面临着安全起步较晚和安全团队人数不足的问题,这导致了安全开发推动的缓慢。然而,今年我们进行了一次较大的改革,目前已经基本实现了新上线的业务系统和涉及较大变更的系统都按照SDL体系进行推行。对于部分小需求,我们也会让安全团队审核并查看是否需要参与需求评审,并提供设计前的安全注意事项。

后续我将根据以上步骤逐个环节展开分享我的实践之路,感谢各位的阅读,感兴趣可以关注点赞鼓励我一直分享下去哟。

# 数据安全 # 企业安全 # SDL # 安全合规 # 企业实践
本文为 爱学习的大大大杰 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
爱学习的大大大杰 LV.4
信息不存在绝对的安全,我们该如何平衡阉割业务的高效去落实安全与满足合规呢
  • 19 文章数
  • 51 关注者
《网络数据安全管理条例》正式发布后与之前的征求意见稿相比,主要一些区别及变化意义
2024-10-25
Android 安全加固技术全方面分析(下)
2024-10-17
Android 安全加固技术全方面分析(上)
2024-08-29
文章目录