参考链接:OWASP Secure Software Development Lifecycle Project - OWASP

s-SDLC大量借鉴了一般项目管理生命周期方法和软件开发流程中的元素,从所涉及的步骤和阶段的相似性中可以明显看出这一点。参考OWASP中提到的s-SDLC项目,总结如下几点s-SDLC项目推行参考实践:

实践1:自上而下推行软件开发安全落地,且有组织结构支撑

企业在软件开发安全落地的时候,仅依赖传统的信息安全部门或者网络安全部门的规划是远远不够的,必须要自上而下的推动。其中一个非常重要的原因,是软件开发安全需要和开发各个环节深度地结合,需要得到研发部门所有人全力的支持,还需要在各个开发环节给出相应的开发规范、相应的开发安全技能和工具。因此,企业需要自上而下的推动,来引导开发安全的落地。

实践2:软件开发安全要与企业的质量管理体系相结合

大部分企业都设有质量管理部门,并有相应的质量管理人员。但是,质量管理部门通常不关心产品的安全问题,却忽略了安全在本质上也是产品的一项质量指标。在质量管理领域里好的质量应该是设计出来的,同样软件安全也应该是在前期就应该做好的。业界已有成熟的方法和流程,如:ISO9001、CMM等级,这些都用来保障产品的质量的方法。在软件开发安全落地的过程中,需要将一些具体的软件安全指标作为质量管理的标准,比如说普通缺陷和高危漏洞的数量、漏洞修复情况等,质量管理部门可以根据这些指标来决定产品是否可以上线或交付。

实践3:用度量体系将软件开发安全实施效果可视化

一套成型的度量体系,能够将软件开发安全实施的效果形象化地呈现出来。为何要做效果可视化,原因可见于第1点实践建议,软件开发安全需要通过自上而下的推动。若要普及安全意识,就必须让其他公司员工亲眼“看见”安全的重要性。只有将安全的效果可视化,才能更容易地获得管理层和团队其他人的持续性支持。在做这个度量体系之前,我们还需要达成一个共识,就是“世界上没有百分之百的安全,因为安全本身就是动态变化的。”我们不能保证实施了开发安全就不会有漏洞存在,但可以给出一个相对合理的预期,通过软件开发安全实施后,我们尽可能减少了缺陷的存在,把风险控制在一个可控范围以内,在这种情况下建立一套度量体系,通过度量方法把软件开发安全成果呈现出来。一般而言,成果呈现有两种方式。一种是通过软件开发安全能力成熟度来体现,能力成熟度的提升可以证明团队的软件开发安全能力得到了提高,能够开发出更加安全可信的软件产品。另一种,是通过一些结果性的数据来判断我们开发安全是有效的。比如说我们能够在软件上线前做了相应的测试和修复工作,来表明软件上线时是不带有严重高危漏洞,这种情况下也是一个非常好的这么一种结果的一种展示。在开发安全业界中,比较成熟的度量体系有两种,一个是 OWASP SAMM 模型,另一个是 BSIMM 模型,这两个模型在行业里面有很高的知名度,也是很多团队在做软件开发安全能力评估的时候常用的方法。

实践4:建立合适的软件开发安全人员培训体系

软件开发安全不仅仅是偏重于方法和实践, “人”也是其中非常重要的一个因素。想让开发人员了解并且关注软件开发安全,就需要建立起一套合适的安全人员培训体系。与信息安全培训不同,安全人员培训更聚焦在软件开发安全的意识理念和技术能力方面,其中的意识培训板块包括了软件开发安全的基本知识,开发流程与典型的实践,还有一些国家法律法规以及行业标准层面的信息。除了软件安全意识培训外,还有相应的技术能力培训,其中包括安全编码的能力、代码审计能力、威胁建模能力等。在整个培训体系下,我们需要把培训分成不同等级,再去面向不同类型的开发人员和安全人员来提供培训内容。

实践5:威胁模型可以使产品避免大的设计风险

在软件开发过程中,增加一些威胁建模的设计工作。它能建立起产品的威胁模型,通过模型化的方法来管理软件的安全威胁,能有效侦察风险与推进缓解措施的实施。STRIDE 威胁建模方法可以将大颗粒度的威胁结构化,避免威胁模型遗漏大颗粒度的威胁,保证威胁的完整性;一套威胁模型的最核心价值,就在于能发现软件的设计漏洞,即发现某个具体的威胁没有相应的缓解措施或缓解措施不足。

实践6:安全特性组件化可尽量避免编码漏洞

安全功能的组件化,能帮助我们有效规避编码漏洞。固然,安全扫描工具能够识别一些已经存在的编码漏洞,却无法从防治编码漏洞的产生。安全功能的组件化的意义,就在于从根源上遏制漏洞的产生。虽然之前提到了通过培训提高安全编码能力,但我们还是不能保证所有开发人员编写的代码都不含漏洞。而如果我们能把一些安全功能组件化,尽可能简化开发人员自主编写的流程,就能降低代码出错的风险、提高代码编写的规范性。因为这些组件在成为开发团队的公共组件时,本身就获得了安全团队的重点保障。

实践7:管理第三方组件和第三方软件的风险

管理好开发过程中应用的第三方组件的风险。这里的“第三方组件”不仅仅包括开源组件,还包括商业性的组件,这些组件不仅多见于信创行业,在其他行业所应用的占比也是非常大的。尤其是现在对软件供应链安全的高度重视,大家对组件自带安全漏洞而造成的破坏力也是有目共睹。所以,我们有必要做好第三方组件和软件的资产管理,通过相应的资产清单,来确定团队研发的软件哪些使用了第三方,一旦软件发生漏洞事件,可以根据清单迅速排查处理。

实践8:使用自动化软件安全测试工具链

无论是瀑布式开发场景下的 s-SDLC 还是敏捷开发场景下的 DevSecOps,软件开发安全的落地始终离不开流程体系和高度自动化的工具链的融合,常见的应用检测工具包括 SAST、DAST、IAST、SCA 、FUZZ 等,都是有助于软件开发安全落地工作的自动化工具,我们可以通过使用这些工具来提升真正软件安全测试的效率和软件开发安全的工作效率。

OWASP的s-sdlc项目优秀分享相关推荐

  1. Web项目实战分享——小米官网

    Web项目实战分享--小米官网 大约每个学习过前端的学习者来说,都接触过web项目的实战,业内最真实的的,应该是自己独立编写一个网页项目,当然如果你是大佬的话,这只是小菜一碟,而如果你是小白或正在学习 ...

  2. PWA项目实战分享(听书APP)

    PWA项目实战分享 - BookPlayer 每天听本书App 因为自己有个需求,特别的痒,昼夜难免.第二天就开始起手做这个项目,利用业余时间,大概持续了10天时间(因为边学边做),从设计到数据(包括 ...

  3. 物联网示范项目优秀案例集

    本书共收录了18个物联网在细分领域中的应用案例,从项目概况.项目方案.创新点及推广价值.实施效果等多方面进行了案例解读,全面展示了不同行业对物联网应用的探索路径与取得的成果效益. 关注公众号:[互联互 ...

  4. 程序员简历项目经历怎么写 ?三条原则不可忽视 【项目案例分享】

    程序员简历项目经历怎么写 ?三条原则不可忽视 [项目案例分享] 作为一个程序员,想必大家曾经都做过一些项目,可能现在手头上也还有一些项目. 不过还是有很多学生朋友来问我"没有项目怎么办&qu ...

  5. 【原创】2009年8月18日老谷项目管理MSN群专题—项目案例分享文字实录

    2009年8月18日老谷"项目管理MSN群"专题-项目案例分享文字实录 不胜人生一场醉(亲亲我的宝贝!) 说: 先说下项目背景 项目背景 某公司为了解决各部门信息孤岛效应,为了向客 ...

  6. (简单课设)前端小白刚做的一个简单的移动端项目的分享和总结

    前端小白刚做的一个简单的移动端项目的分享和总结 所用技术为简单的div+css 直接上图片 代码部分 小滴服务 接下来是企业项目部分 接下来是我的小滴部分 (另外两个部分内容非常简单,没必要粘贴代码了 ...

  7. 前端学习总结,经验分享,项目经验分享过程

    前言 来,和魔王哪吒总结一下,分享一下自己对前端学习总结,经验分享,以及写过的项目经验分享过程. 如果觉得还不错的话,浏览的过程中,需要您: 点赞,分享,评论 有钱的捧个钱场,没钱的捧个人场 技术实践 ...

  8. springboot毕设项目社区分享系统的实现与分析48ig8(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目社区分享系统的实现与分析48ig8(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql ...

  9. 去年一个百万级的小软件项目经验分享,20来个功能模块,项目不太好做有些棘手

    别人总觉得是在显吧,干脆把这个项目认为是小项目了,不知道把这个项目是小了,别人会不会又觉得又显吧了?说大也不行.说小也不行,也的确没招了. 我想主要把项目里遇到的问题分享给大家一起探讨,也并不是为了什 ...

最新文章

  1. 【跃迁之路】【578天】程序员高效学习方法论探索系列(实验阶段335-2018.09.06)...
  2. golang中的对称加密
  3. 三大数据驱动机制,助力文娱企业打造高留存、高转化增长闭环
  4. python中列表数据汇总和平均值_对数据进行分类,计算每个类别的平均值和标准差...
  5. 未能加载程序集或它的一个依赖项_英伟达发布kaolin:一个用于加速3D深度学习研究的PyTorch库...
  6. 总奖金高达180万元 蚂蚁金服启动区块链创新大赛
  7. 庆国庆,Power BI 统一报表门户横空出世,指南请收
  8. scipy —— 丰富的子包(io、cluster)
  9. videojs如何获取请求消息_消息队列中,如何保证消息的顺序性?
  10. 对携程处理结果表示满意
  11. 2019年互联网企业软件测试面试题(常考)
  12. 一个c语言源程序至少包含,一个C源程序必须包含一个main函数
  13. Sketch入门知识-基础功能介绍
  14. 扩计算机内存,如何增加计算机内存,三种方法来扩展计算机内存
  15. 第十一届蓝桥杯 2020年省赛真题 (C/C++ 大学A组) 第一场
  16. 【转】DICOM医学图像处理:浅析SWF、MWL、SPS、MPPS
  17. flume1.9 用户指南(中文版)
  18. 在sqli-liabs学习SQL注入之旅(第十一关~第二十关)
  19. 红外LED的主要参数及选型参考
  20. Magik Eye将在2019年嵌入式视觉峰会上宣布突破性的3D感应技术Invertible Light™

热门文章

  1. Python | 图片转文字
  2. 我的心只悲伤七次-纪伯伦
  3. 《ZigBee开发笔记》第五部分 外设篇 - 协议栈实验 第4章 CC2530热释电红外传感器
  4. Win10系统重装过程(一键装机)
  5. ipa包的简单校验方法
  6. 用 Python 在股票交易中实现布林带策略
  7. 华为模拟器dhcp中继
  8. 读jQuery 权威指南[5]-插件
  9. 楷书书法规则_楷书的结构法则
  10. 绘制二次贝塞尔曲线(二次贝兹曲线)等距线:让 IE 支持 canvas接口 isPointInPath