您使用哪些安全软件开发实践?

时间:2010-03-31 16:39:13

标签: cryptography static-analysis security

我在微软(http://microsoft.com/sdl)开展了一个名为安全开发生命周期(SDL)项目的项目 - 简而言之,它是产品组在发布产品之前必须使用的一组实践,以帮助提高安全性

在过去几年中,我们发布了大量SDL文档,因为客户要求提供有关我们正在做的事情的更多信息。

但我想知道的是:

  1. 您在组织内做了什么来帮助提高产品的安全性?
  2. 什么有效?什么不起作用?
  3. 您是如何让管理层同意这项工作的?
  4. 感谢。

3 个答案:

答案 0 :(得分:2)

老实说,阅读your book是一个好的开始。 :-)

回答你的问题:

  1. Crypto是我的一个爱好,我有时会在博客上发帖(例如TLSAES)。在编写了我自己的AES实现之后,我学到了足够的知识,除了一个合理的怀疑之外我不应该使用自己的实现,而是使用CryptoAPI和OpenSSL人员编写的实现。

    • Code reviews擅长安全问题的人被标记为必需。
    • 在实验室进行实验,以提高对本书中提到的问题的认识,以及讨论新问题的内部邮件列表。
    • 有几个人听Security Now podcast来了解当前哪些类型的问题以及受到攻击的问题。这间接影响了设计。
  2. 除了现场课程和购买代码审查工具外,这些都不需要管理层批准。

答案 1 :(得分:1)

我是独立开发者,也是平台安全传播者:我是Wrox出版的Pro Cocoa Application Security的作者。在那本书中,我支持我自己使用的安全开发技术:它基于Swiderski和Snyder威胁建模,但有两个变化。我通过考虑哪些入口点在不使用DFD的情况下访问哪些资产来减轻重量。我还更加注重识别用户和滥用者,我认为这更适用于收缩包装软件。

就工具支持而言,我使用Xcode静态分析器(基于clang),但发现它没有检测到一些常见的漏洞。我确实提出了错误:-)。我也总是使用gcc _FORTIFY_SOURCE宏。没有好的Mac风险分析工具,但我正在研究......; - )

我已经在会议和播客上向Mac开发人员发表了安全性的演讲并获得了大量反馈,如果您希望我澄清我所说的或对社区反馈感兴趣的内容,请在评论中提问。欢迎提出私人问题(虽然我更愿意留在论坛上):iamleeg at securemacprogramming dot 融为一体

答案 2 :(得分:0)

我们在编码之前想。奇怪的是,它避免了许多错误,包括可被恶意方利用的东西,以及后来被称为“安全漏洞”。

部分诀窍是不要让任何人靠近键盘,除非他有丰富的经验和专业知识。