BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

软件开发生命周期中的安全性

| 作者 Srini Penchikala 关注 36 他的粉丝 ,译者 侯伯薇 关注 0 他的粉丝 发布于 2011年3月5日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

我们必须把应用程序的安全性整合到软件开发的过程中。之后在测试中才关注安全性是不够的,因为对于修改错误来说,那太迟了,而且非常昂贵。微软的Steve Lipner在上周举行的RSA大会2011上发表了关于应用程序安全性的演讲,其中谈到在软件开发生命周期中的安全性。他向大家介绍了微软创建的安全性开发生命周期过程,其中包括以下阶段:

  • 安全性培训
  • 需求分析
  • 设计
  • 实现
  • 验证
  • 发布
  • 反馈

另外,SDL框架还有一个敏捷的版本,它支持把安全性因素整合到敏捷开发过程中。敏捷过程中的安全性需求可以归为三类:

  • 每次Sprint(Every-Sprint):这些是高优先级和重要的安全性需求,我们可以使用像威胁建模之类的技术来识别它们。
  • 一次(One-time):这类需求包括架构和策略上的需求,像决定编译器的版本或者设置缺陷跟踪数据库等等。
  • 大量(Bucket):这类需求包括长期运行或者可以暂缓的需求。比方说文件或者ActiveX fuzzing

其他演讲者也在会上谈到了提高应用程序安全性的技术。Alberto Revelli(Cigital)讨论了安全设计原则,像黑名单和白名单、内存级别和主机级别上的保护、安全的互操作性、最小权限原则以及区域分割(compartmentalization)等等。

Brian Chess和Jacob West(都来自于Fortify)谈到了关于安全编码技术。现在已经有多种安全缺陷的分类列表,像OWASP Top 10、七种致命错误(Seven Pernicious Kingdoms)、常见弱点列表(CWE)、Sans Top 25以及常见易受攻击点评分系统(CVSS)等等,各个组织可以使用它们来管理应用程序中的安全弱点。Jacob对其中的一些弱点给出了示例,像跨站点脚本攻击(XSS)、跨站点伪造请求(CSRF)、HTTP响应分割、会话固定攻击以及SQL注入攻击等等。Brian推荐了一些安全编码原则,像默认做出良好的验证、在应用程序的不同层之间发布信任边界、间接选择以及白名单等等。

Chris Eng(Veracode)说明了各种不同的安全测试方法,像静态、动态、手动的测试以及其中的细节,另外还谈到了各种方式的强度和局限性。Reeny Sondhi(EMC公司)也对她的公司中所使用的缺陷响应程序做了概述。
 

查看英文原文:Security in the Software Development Lifecycle

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT