想象一下:我们已经得到了几个软件程序的源代码,一些是开源的,另一些是专有的。在每种情况下,分析源代码的最佳策略是什么?
例如:我们知道开源软件通常比商业软件更可靠。所以我想知道是不是一个好主意,不是逐行检查开源代码,而是从网络下载原始代码,并将其与提供给我们的代码进行比较。如果没有区别,我们得出结论,源代码可能是安全的,我们可以跳过手动代码检查。
这种做法是否可以接受?还有其他可以加速源代码分析的策略吗?
发布于 2014-05-03 13:12:10
我在这里假设,您要做的是执行静态分析,以确定您所提供的代码库中的安全问题?
如果是这样的话,你可以采取很多方法。假设进行评审的人员不是熟练的应用程序安全分析人员,那么您将需要依靠工具来完成大量工作,尽管要注意这个领域中的工具很少(如果有的话)点并单击事务。
根据您可能发现的语言,供应商有一些可以使用的工具(例如FXCop)
还有一些开源工具,如完美无瑕和大鼠。
最后,有许多商业解决方案,比如查克马克斯和设防,如果您想要一个托管解决方案,Veracode
你到底怎么做将取决于你的预算(提示,商业工具并不便宜),你有什么技能,有多少时间进行评论。
发布于 2014-05-03 11:31:21
专业IDE,如开发,具有广泛和自动的静态代码分析功能。我建议您通过完整的代码分析规则来运行所有源代码,这通常会揭示相当多的安全性(对于.NET,我没有使用其他代码分析框架)。手动完成所有这些操作是不可行的,除非有一个非常大的预算。
还有一些用于.NET框架的非Microsoft代码分析工具,例如JetBrains ReSharper。
如果源代码是用另一种语言编写的,您可以在维基百科上找到静态代码分析工具列表。
https://security.stackexchange.com/questions/57185
复制相似问题