我正在寻找一个安全的软件开发清单。
我知道有几种安全的开发方法(例如选择哪种安全的开发生命周期模型?),它们涵盖了软件开发的所有步骤,但是当它达到“编写安全代码”的程度时,它们并没有指定普通程序员在编码时必须考虑哪些元素。
我找到的唯一的文档是:https://www.owasp.org/images/0/08/OWASP_SCP_快的_参考文献_指南_v2.pdf https://www.owasp.org/images/5/58/OWASP_ASVS_版本_2.pdf。
你认识其他人吗?
谢谢。
发布于 2015-03-17 17:24:33
这有点像一个产品推荐,所以它最终可能会关闭。你也应该小心地区分清单和标准。
如果您正在寻找用于开发过程的高级别检查表,则可能需要签出SANS SWAT,这将包含更多的逻辑考虑,而不是特定的代码级别问题。您也可能对ISO 27000 (即ISO/IEC 27034)系列感兴趣(而不仅仅是27001或27002)。其他方法包括微软的步幅 (不推荐)和恐惧。
目前还不清楚这是否适用于特定的编程语言,但美国宇航局喷气推进实验室( NASA )为C和JAVA制定了指导方针,可以作为安全标准的一部分加以考虑。甲骨文有自己的JAVA安全指南。已经在Jaques回答中的CERT指南也在同一领域。
您需要澄清您的目标,并在这些工具的基础上创建:
检查清单可能是一个很好的开始方式,因为它是明确的,但坏的过程可能同样有害-例如,您促进错误的分支与错误的代码)。
发布于 2015-03-17 20:45:50
通过定义一组要遵守的规则是不可能获得安全代码的。雅克链接到的CERT标准就是一个很好的例子。它列出了“不好的事情要做”,我浏览了一下,我没有发现任何我特别不同意的东西。但是这个列表是如此之长,许多项目如此深奥和笼统,除了作为一本字典这样的参考材料之外,它是相对无用的。
很可能没有一个好的方法能让你获得安全。安全性是通过开发人员了解安全知识以及在安全被重视的组织中工作来实现的。如果您的组织不了解安全性,您就不会得到任何信息。
您可能能做的最好的就是通过示例和代码评审来鼓励安全开发。在代码进入您的产品并提供建设性的批评之前,您需要有知识的人来阅读它。鼓励你的开发人员至少理解Owasp前10名,有些人会比其他人更好。
安全是关于文化,而不是生命周期或遵循规则。您不能定义安全性,因为它总是一个移动的目标,对于每种情况都是不同的。
发布于 2015-03-15 19:25:46
看看微软的SDLC。他们建议使用静态代码分析工具来捕捉简单的东西,如超出界限的数组等,并使用动态模糊测试来帮助查找更难的内容。但是他们也依赖于他们的程序员为他们的任务带来高水平的能力。
如果您需要更多的纯文本建议和指导,请参阅RobertC.Seacord的“C和C++中的安全编码”。这本书的中间三分之一是关于问题和解决方案的详细清单,似乎是你感兴趣的项目的“清单”。
https://security.stackexchange.com/questions/83562
复制相似问题