安全开发生命周期(1)-从源头解决安全问题的SDL简介

admin 2022年4月20日06:18:45安全闲碎评论10 views1618字阅读5分23秒阅读模式

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


SDL, Security Development Cycle(安全开发周期)。

换一种说法,就是安全开发流程,就是项目管理流程中的安全控制。


在讨论SDL之前,需要先了解下企业在网络安全上的痛点、风险产生的原因。


安全上的痛点

  • 网站总是被入侵

  • 开发的APP经常被告知存在高危漏洞

  • 寄希望于事后防御,如防火墙设备(或软件)、入侵防御系统(IPS)、Web应用防火墙(WAF),或第三方防护产品,却经常被绕过...


安全漏洞的危害

  • 数据泄露(入侵后泄露用户隐私、公司敏感信息)

  • 影响服务器完整性(入侵后篡改)

  • 影响服务器可用性(不可用或性能低下)

  • 影响公司声誉,影响用户对公司产品的信心,进而可能影响公司的生存与发展


为什么会产生这些漏洞呢?

那就让我们看看产品从开始到上线的各个过程中,存在哪些问题吧。


方案设计过程中的安全问题

  • 架构设计不合理,前后端未有效分离,或数据库向用户开放

  • 依赖客户端安全控制措施

  • 关键算法或保护措施薄弱

  • 事务完整性没有保障

  • 交易过程未形成完整的证据链

  • 跨网络空间的访问未校验对方身份

  • 未校验数据源的完整性

  • 未校验可执行文件、库、配置文件的完整性


开发过程中的安全问题

  • 未对用户提交的参数进行合法性校验

  • 拼接SQL语句,SQL指令和用户参数的拼接导致SQL注入漏洞的产生

  • 将用户创建的未转义的内容呈现给用户,导致跨站攻击脚本(XSS)的产生

  • 未对Form启用防止跨站请求伪造(CSRF)的随机Token

  • 使用路径或路径回溯(../)等作为参数进行传递

  • 各种逻辑或权限设计上的缺陷


测试过程中的安全问题

  • 缺乏安全测试用例

  • 未执行安全测试或安全扫描

  • 带着漏洞上线


部署过程中的安全问题

  • 弱口令、空口令、通用口令(一个口令在多处使用)

  • 数据库向互联网开放

  • 备份未经验证,使用备份数据无法还原系统

  • 使用了含有高危漏洞的中间件版本

  • 未执行安全配置

  • 缺乏基本防护措施(WAF等)


总结一下:


安全漏洞的原因分析总结

  • 只关注功能实现,忽略安全需求

  • 团队的安全开发经验欠缺

  • 缺乏安全开发规范或安全开发规范没有融入项目管理

  • 缺乏安全开发流程,或项目管理流程未包含安全控制

  • 缺乏安全部署标准或规范

  • 缺乏评审环节,没有人对交付质量把关

  • 缺乏上线/发布流程,未执行安全部署、验收审核

  • 安全上缺少投入,寄希望于后期补救


如何从源头开始规避漏洞


有人说,我们已经采购了很多扫描器,或者说渗透测试很厉害,但实际效果如何呢?

美国国家安全局(NSA)的一项研究表明,一般的应用安全测试工具(各种扫描器或渗透测试工具)的漏洞发现率只有14%左右(可搜索“NSA调查称全球没有一款漏洞扫描工具真正有效”了解更进一步的信息)。

14%,很难接受的一个数字,但实际差不多就是如此。


事后的扫描是靠不住的,只有从源头开始规避大部分漏洞,才能将主要的问题和风险消除在萌芽状态,这就要靠组织和流程来保障;将安全要素融入项目管理流程,启用安全开发流程,关键项目阶段要添加相应的安全任务。

这个安全开发流程,或融入安全要素的项目管理流程,即为SDL (Security Development Lifecycle, 安全开发生命周期)。


项目的各个阶段,有自己的安全任务。这些任务如果未完成,则意味着本阶段的安全问题/风险没有解决,带给下一阶段,并最终带入生产环境。通过流程保障,不将问题、风险、缺陷带给下一阶段。


SDL通过规范的项目管理过程和关键安全任务的引入,确保开发设计及部署过程中遵从安全标准与规范,保障所交付产品在全生命周期过程中的安全性。其核心理念就是将安全集成到应用开发的每一个阶段。


安全开发流程最大的价值,就是用标准和流程的确定性,来降低开发过程中的不确定性。


未完待续(请关注微信公众号:网络安全生命周期 ,以方便接收后续文章)...



长按并在弹出菜单中选择"识别图中二维码"关注微信公众号: Security_SDL ,共同探讨网络安全体系建设~

安全开发生命周期(1)-从源头解决安全问题的SDL简介


原文始发于微信公众号(数据安全架构与治理):安全开发生命周期(1)-从源头解决安全问题的SDL简介

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月20日06:18:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  安全开发生命周期(1)-从源头解决安全问题的SDL简介 http://cn-sec.com/archives/884123.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: