【问题标题】:Detecting malware code inside open source projects [closed]在开源项目中检测恶意软件代码 [关闭]
【发布时间】:2014-01-11 15:41:55
【问题描述】:

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

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

你对我有什么建议吗?

【问题讨论】:

  • @IraBaxter,尝试转义 * 但rm *.* 不会删除所有文件?
  • 不要使用任何开源,创建它的社区要么编码恶意软件,要么允许贡献恶意软件。任何其他选项只是军备竞赛的另一种形式,即在封闭源代码中检测恶意软件。
  • @Popnoodles:有些东西删除了我的评论。是的, rm star dot star 的重点是它会删除所有文件,因此是恶意的。特别是,更改两个字符会将程序从良性转换为恶意。 【在cmets中引用文本的规则是什么?它们记录在哪里?]

标签: open-source project malware auditing


【解决方案1】:

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

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

我认为比后门/恶意软件更常见的是无意(意外)削弱安全性的更改。 OpenSSL 库中有一个更改,其中 edit removed 一些代码因为分析工具抱怨。但是代码是故意留下的,以提供更多的熵。一旦熵减少,会话就更容易中断。此类更改的影响几乎无法解释,因为需要非常熟悉代码的专家才能理解效果。

【讨论】:

  • 底线:您正在分析图灵机。众所周知,这是不可能做到的。使用开源是爱丽丝梦游仙境中标有“喝我”的瓶子的一个版本。副作用可能令人惊讶。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-16
  • 2014-12-29
相关资源
最近更新 更多