根据我的信息,没有硬和快速的规则进行安全代码审查,但我们都制定了自己的战略,为同样的。我想知道我们是否都能共享安全代码评审中涉及或使用的不同策略。
发布于 2011-04-20 06:44:17
正如@sonofaaa提到的,在“软件安全评估的艺术”一书中,作者在第4章(第一部分的结尾)中讨论了代码审核策略。
特别讨论了外部流灵敏度(数据流和控制流)和跟踪方向(正反向切片)以及许多中立的回顾方法。其他专题将详细讨论。这是关于安全代码评审主题的最好的书面材料。
我还应该提到“使用静态分析进行安全编程”--一本由Brian和软件撰写的书。它们涵盖了以安全为中心的静态分析工具的内部和使用,并将它们与安全代码审查世界中的其他形式/工具进行了比较。
如果您想要查看以安全为重点的现代静态分析器,我建议您首先使用一些开源或免费工具,例如CAT.NET for .NET (通常是C#、VB.NET和/或ASP.NET)、发现-秒-错误 (或旧的LAPSE+)、Java和JSP,以及RIPS。您通常不会发现支持动态语言的以安全性为中心的静态分析器,因为它们不依赖于类型系统,但是如果您对Python、Ruby或其他动态语言(或任何其他语言)感兴趣,请告诉我,我将尝试为您指明正确的方向。首先,尝试Bandit ( Python的OpenStack项目)和。
以商业安全为重点的静态分析器是为训练有素和专业的面向安全的应用程序开发人员而设计的。他们的成本假设有人将每天运行和分析这些工具,作为一项全职工作,一年到头。如果您有兴趣看到快速的结果--查看全氟辛烷磺酸 --但是如果您有兴趣将这些工具集成到一个长期的、具有风险的应用程序组合中,请查看Cigital电除尘器。还有许多应用程序安全精品店和咨询公司为他们的客户运行和优化这些工具。根据您的地区和战略方向,我会选择与一个伙伴,无论我提到的其他任何事情,因为他们可以宝贵的成功,一个appsec计划。在LinkedIn上搜索“应用程序安全咨询”()应该是可行的,如果您不去下一步的话。
发布于 2011-04-20 20:05:02
与您的声明相反,我认为(安全)代码评审不应该是一项主要是临时的活动。有一些非常强大的方法可以用来进行有效的代码评审。为了获得最好的结果,应该以增量和迭代的方式进行。
下面是这样一种方法的高级大纲的示例,并附有一些指导原则:
发布于 2011-04-20 04:45:01
我通常从清单开始。例如OWASP前10名或CERT编码指南(或我自己的书中的章节!)我让团队评估与清单相关的代码,并进行无定向测试和检查。公开评审中的“流行”问题被添加到清单中,取代原来在清单上出现的非问题。
此外,在可用的地方使用静态分析工具。
这种方法的好处也是它最大的缺点。清单上的问题很容易发现,但往往是唯一的问题,因为创造性的找虫并不容易。
https://security.stackexchange.com/questions/3197
复制相似问题