文章总结: 文章从安全视角探讨研发安全,指出不同研发模式需要不同安全方法,不能盲目追求DevSecOps。漏洞是企业安全的主要入口,85%在编码阶段引入,15%在设计阶段和配置阶段引入。作者建议在研发过程早期即架构设计、编码和配置阶段就介入安全工作,以降低修复成本和提高安全效率,这是研发安全建设的关键切入点。
综合评分: 88
文章分类: 安全建设,漏洞分析,应用安全,解决方案,其他
从安全视角,看研发安全
原创
aerfa21
我的安全视界观
2024年7月16日 06:06
北京
很久以前,就想写一篇关于SDL与DevSecOps的文章,但疏于实践一直未能动笔。想写的原因很简单,因为总是听到有人说SDL落后、DevSecOps相关技术更高超。一提到研发安全建设,不分研发模式都在赶时髦一样地说DevSecOps。从我的观察来看,不结合研发模式来做研发安全,都是不成功的。
在数字化浪潮的推动下,一些公司已经完全步入DevOps模式,有的则出现瀑布、敏捷或DevOps并存,且后者是居多的。所以如何在多种研发模式下进行有效的研发安全建设,成为一个必须解决的难题。经过近十年的实践,终于在探索解法上有一点点收获与经验,于是有了“深耕研发安全”这一系列文章。
本文是第二篇,主要介绍从纯安全的视角出发,紧密围绕漏洞及治理,结合对成本的考虑,去定位研发过程中的漏洞生产源,从而找出最佳的研发安全工作切入点。
01 漏洞通常是企业入口
——————————
下面最左边那张图,是近十年提交到CNVD的漏洞趋势统计,平均每年有1.7w个漏洞被发现并提交。然而这只不过是冰山一角,国内外还有很多类似的平台在收集漏洞,全世界也还有很多漏洞并未被提交到这些平台。所以说,每年发现的漏洞数是非常大的。
其次,在国家级或者各行业的实战攻防演习中,攻击队通常会用互联网业务系统漏洞进行打点,从而突破边界进入内网发起攻击。这些web漏洞、软件供应链漏洞都属于软件安全质量范畴,足以见得漏洞对于企业安全来说是多么重要。
第三是国家对于漏洞的重视程度也在逐渐提高和明确。随着对网络安全的重视,各行业对漏洞都有一些明确的要求,比如上面右图这种漏洞管理的规范,甚至还专门建设漏洞管理平台来收集。
综上三方面想说明:软件的漏洞,特别值得我们去关注和花心思治理。
#
02 什么称之为安全漏洞
——————————
前面一直在提漏洞,那什么是漏洞?见过很多漏洞定义和分类方法,此处想从研发过程来看,包括软件和协议方面的,几乎可以被全部囊括在内。
换而言之,这些漏洞都可以在研发过程中被发现,然后有机会得到治理。
03 怎么切入做研发安全
——————————
在软件质量领域,有一个先驱者叫琼斯,在他的报告中提出以下三张图及对应着三个观点。从安全角度来看,依旧是适用的:
- 85%的缺陷都是在开发人员编码时引入;
- 目前大多数缺陷都是在测试阶段被发现;
- 缺陷的修复工作越往后成本就会越大。
(图片创意来自互联网)
于是得出一个结论:要切入开发流程,尽早地去做研发安全。然而现在又有人提出一个无处不移的概念,其实这也是相对的,在每个阶段开展安全活动都比较重要。
04 研发过程漏洞生产源
——————————
上面提到,在编码阶段引入了85%的漏洞,那剩余的15%在哪儿?如果对漏洞按照开发阶段进行分类,不难发现还有两个主要来源:
第一个是还没开始写代码,即在设计阶段做技术架构选型与设计时,不遵守安全设计原则或未充分考虑安全性,就可能引入漏洞。如:
- 使用存在已知漏洞、潜在后门的开源软件/组件:Java程序中使用旧版本的fastjson、使用被投毒的xz操作系统opensuse等;
- 软件内部设计存在安全缺陷:应用层服务间相互调用,缺少网关统一管控、无认证机制等。
第二就是写完代码并提交,此时还是可能引入漏洞。在部署和发布阶段,PAAS层软件未做安全性配置,就可能带来安全隐患。如非必要使用root权限启动服务、不设置账密、使用默认账密等。
所以说,从安全的角度来看研发,至少要关注架构、编码和配置三方面的问题。
长按识别二维码,和我交流
More…
— 深耕研发安全 —
— SDL 100问 —
- SDL100问:我与SDL的故事
- SDL 1/100问:SDL与DevSecOps有何异同?
- SDL 2/100问:如何在不同企业实施SDL?
- SDL 3/100问:SAST误报太高,如何解决?
- SDL 4/100问:SDL需要哪些人参与?
- SDL 5/100问:在devops中做开发安全,会遇到哪些问题?
- SDL 6/100问:如何实施安全需求?
- SDL 7/100问:安全需求,有哪些来源?
- SDL 8/100问:安全需求怎么实现自动化?
- SDL 9/100问:实施安全需求,会遇到哪些难题?
- SDL 10/100问:安全需求和安全设计有何异同及关联?
- SDL 11/100问:设计阶段应开展哪些安全活动?
- SDL 12/100问:有哪些不错的安全设计参考资料?
- SDL 13/100问:安全设计要求怎么做才能落地?
- SDL 14/100问:有哪些威胁建模方法论?
- SDL 15/100问:有哪些威胁建模工具?
- SDL 16/100问:如何开始或实施威胁建模?
- SDL 17/100问:威胁建模和架构安全评审,有何异同?
- SDL 18/100问:编码阶段,开展哪些安全活动?
- SDL 19/100问:如何选择静态代码扫描(SAST)工具?
- SDL 20/100问:如何选择开源组件安全扫描(SCA)工具?
- SDL 21/100问:SCA工具扫描出很多漏洞,如何处理?
- SDL 22/100问:SCA工具识别出高风险协议,如何处理?
- SDL 23/100问:如何制定一份有用的开发安全规范?
- SDL 24/100问:如何做到开发安全规范的有效实施?
- SDL 25/100问:应该如何选型代码安全扫描工具?
- SDL 26/100问:代码安全扫描应该设置哪些指标?
- SDL 27/100问:如何提升开发人员的安全意识?
- SDL 28/100问:在编码阶段加入安全检查后,如何处理带来的时间压力?
- SDL 29/100问:白盒检测工具存在局限性,如何进行补偿?
— 软件供应链对抗探索 —
——— 实战演习 ———
- 1 何为多维度的视角
- 2 关于对演习的期望
- 3 公司层面统筹布局
- 4 实战攻防演习下的产品安全保障
- 5 产品安全事件定级评分方法
- 6 演习前红队暗泉涌动投毒
- 7 面向情报公司付费信息的应急
- 8 面向互联网侧情报信息的应急
- 9 客户侧产品推送样本事件处置
- 10 某邮箱被攻击情报的自我检查
- 11 办公网出口地址攻击客户蜜罐
- 12 SRC白帽子突破边界进业务网
- 13 某部门下发零日漏洞确认函处置
- 14 公司溯源团队查到团队内部成员
- 15 演习后对工作技能的复盘总结
- 16 演习后认知外的见微知著
——— 安全运营 ———
- 安全事件运营SOP:软件供应链投毒事件
- 安全事件运营SOP:接收漏洞事件
- 安全事件运营SOP:webshell事件
- 安全事件运营SOP:蜜罐告警
- 安全事件运营SOP:网络攻击
- 安全事件运营SOP:钓鱼邮件
- 安全事件运营SOP:基于实践的安全事件简述
- 企业级供应链投毒应急安全能力建设
- 应急能力提升:实战应急困境与突破
- 应急能力提升:挖矿权限维持攻击模拟
- 应急能力提升:内网横向移动攻击模拟
- 应急能力提升:实战应急响应经验
- 应急能力提升:应急响应报告点评
- 应急能力提升:应急响应专题总结会
- 应急响应:redis挖矿(防御篇)
- 应急响应:redis挖矿(攻击篇)
- 应急响应:redis挖矿(完结篇)
——— 软件安全 ———****
——— 企业安全 ———****
- 企业安全建设需求
- 企业安全威胁简述
- 企业安全架构建设
- 企业安全项目-测试环境内网化
- 企业安全项目-Github信息泄露
- 企业安全项目-短信验证码安全
- 企业安全项目-前端绕过专项整改
- 业务安全之另类隐患
- 应用发布之安全隐患
- 甲方眼里的安全测试
- 基于堡垒机的自动化功能实践1****
- 基于堡垒机的自动化功能实践2
- 基于堡垒机的自动化功能实践3
- 基于堡垒机的自动化功能实践4
- Nmap操作系统探测技术浅析
- 漏洞情报调研
- 漏洞调研报告(非完整版)
- 从漏洞视角看敏捷安全
——— 渗透测试 ———****
——— 安全开发 ———****
——— 个人体验 ———****
- 如何学习这么多的安全文章(实践篇)
- 如何学习这么多的安全文章(理论篇)
- 漫谈在安全公司做内部安全的体验
- C3安全峰会参后感
- 提高认知效率秘籍
- 向上型技术人的职业素养
- 关于勇气的一次突破
- 推荐:探索精神和财富自由之路
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:我的安全视界观 aerfa21《从安全视角,看研发安全》