Open source 检测开源项目中的恶意代码

Open source 检测开源项目中的恶意代码,open-source,project,malware,auditing,Open Source,Project,Malware,Auditing,我想知道是否有一种有效的方法可以审计开源项目的源代码,而不必在每次应用程序更新时检查所有的明文文件,以及何时有新的源代码可供下载 我曾想过创建一个可以自动扫描项目的应用程序,但我认为它的有效性甚至不高,因为有很多方法可以在项目中实现恶意代码,但这些方法并不常见。审计旨在检测开源项目中的恶意软件 你有什么建议吗?开源软件中的后门传统上很难插入,而且必须非常微妙。请看一个数据点。使用自动化工具来尝试并找到类似的东西很可能会失败,特别是因为隐藏/混淆代码的方法太多了 一种选择是在初始代码上运行标准的静

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

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


你有什么建议吗?

开源软件中的后门传统上很难插入,而且必须非常微妙。请看一个数据点。使用自动化工具来尝试并找到类似的东西很可能会失败,特别是因为隐藏/混淆代码的方法太多了

一种选择是在初始代码上运行标准的静态分析工具(例如,等等),以创建基线。然后在新代码拖放中再次运行它。如果输出中有任何增量,则需要调查每个单独的更改


我认为比后门/恶意软件更常见的是无意(意外)破坏安全性的更改。OpenSSL库中发生了一个变化,由于分析工具的抱怨,出现了一些代码。但是,代码故意保留这种方式,以提供更多的熵位。一旦熵减小,会话就更容易中断。像这样的变化所产生的影响将是无法解释的,因为需要一位熟悉代码的专家才能理解其影响。

@IraBaxter,尝试避开*但不会
rm*
删除所有文件?不要使用任何开源,因为创建它的社区会编写恶意软件,或允许恶意软件参与。任何其他选项都只是另一种军备竞赛的味道,即在封闭源代码中检测恶意软件。@poplaines:something删除了我的评论。是的,rm star的要点是它删除所有文件,因此是恶意的。特别是,更改两个字符会将程序从良性转换为恶意。[注释中引用文本的规则是什么?它们记录在哪里?]底线:您正在分析图灵机。众所周知,这是不可能做到的。使用开源是爱丽丝梦游仙境的瓶子版本,标签是“喝我”。副作用可能令人惊讶。