正在检测开源项目中的恶意软件代码



我想知道是否有一种有效的方法可以审计开源项目的源代码,而无需在每次更新应用程序时以及何时提供新的源代码可供下载时检查所有明文文件。

我曾想过创建一个可以为我自动扫描项目的应用程序,但我认为它甚至不会达到很好的有效性水平,因为有很多方法可以在项目中实现恶意软件代码,这些方法并不常见。审计的目的是检测开源项目中的恶意软件。

你有什么建议吗?

传统上,开源软件中的后门很难插入,而且必须非常微妙。从一个数据点来看一下这篇关于Linux的文章。使用自动化工具试图找到类似的东西很可能会失败,尤其是因为有很多方法可以隐藏/混淆代码。

一种选择是在初始代码上运行一个标准的静态分析工具(如Gimpel的Lint、Purify等)来创建基线。然后在新的代码删除中再次运行它。如果输出中有任何delta,那么您需要调查每个单独的更改。

我认为比后门/恶意软件更常见的是不经意(意外)破坏安全的更改。OpenSSL库发生了变化,因为分析工具抱怨,编辑删除了一些代码。但为了提供更多的熵,代码被有意地保留了下来。一旦熵减少,会话就更容易中断。这种变化的影响几乎无法解释,因为需要一位熟悉代码的专家才能理解其影响。

最新更新