2

我想将病毒扫描合并到 Java/Maven/Hudson 构建过程中。不幸的是,我找不到任何有关此类构建步骤的专用工具的资源。我的构建环境是基于 Linux 的。

我的问题是: 如何将防病毒扫描整合到基于 Maven 和 Hudson 的构建过程中?

最佳实践是什么?

  • 扫描步骤是否应该与正常构建分开,例如预构建步骤甚至是单独的构建作业?
  • 扫描应该发生在打包的后期,在所有的人工制品都被打包到 jar 文件之后还是在这个过程的早期?
  • 每个发布的人工制品是否应该包括一个扫描仪日志文件,该文件确定正在使用的防病毒工具、病毒定义文件的版本和日期?

使用哪种防病毒软件不在此问题的范围内。(例如,我想使用商业供应商来支持 ClamAV 等免费工具)

4

4 回答 4

2

病毒可能来自哪里?

我还没有看到可以修改源代码的病毒,所以源代码可能是安全的(好吧,除非你不能信任你的开发人员)。

因此病毒可以隐藏在其中一个构建工具中并尝试修改 JAR。手头的工具是tripwire:它将为所有文件创建校验和,并且构建工具不应更改(除非您安装新版本;然后您必须再次运行tripwire)。

如果构建工具是安全的,您只需要一个保护操作系统的 AV 工具(因此打开和写入文件等功能是安全的)。为此,请使用贵公司的标准 AV。

为了使整个过程非常紧凑,您可以在构建新版本之前再次构建最后一个版本。旧版本的校验和不应更改(但请注意文件中的时间戳)。

于 2009-11-30T09:54:14.773 回答
1

最佳实践是在一个很少被病毒攻击的平台(即操作系统)上运行您的构建。

最佳实践是在构建平台上的操作系统级别运行防病毒扫描程序。

最佳做法是及时更新您的操作系统补丁,锁定防火墙,不要挂载可能已在家庭网络上被感染的 USB 密钥等。

我从未听说过“感染”源代码、.class 文件或 JAR 文件的病毒。我想它们是可能的,但商业 AV 产品很有可能不会注意到它们,因为它们很不寻常。当然,如果病毒专门针对您/您的公司,则 AV 产品将无济于事。

但是假设您确实有一个您认为可以工作的 AV 产品,您可以在旋转“发布版本”之前进行 AV 扫描。我不知道有什么插件会自动完成这项工作,但让 Maven 运行碰巧通过其命令行调用病毒检查器的“一些批处理文件”应该不难。

于 2009-11-30T10:05:19.720 回答
0

您需要一个可编写脚本的防病毒程序。

当您拥有它时,应该很容易添加“扫描我刚刚构建的内容”步骤。

我相信 McAfee 的 Linux 版本可能正是您所需要的。

于 2009-11-30T10:32:00.777 回答
0

如何将防病毒扫描整合到基于 Maven 和 Hudson 的构建过程中?

如果这确实是一个问题,我认为您的安全团队应该强迫您(和 maven)通过运行某种防病毒软件的代理。这将是做事的正确方法。

但是,在我看来,从存储库中获取恶意代码的可能性接近于零,尤其是对于广泛使用的库(用户如此之多,我怀疑在您获取该代码之前没有人会注意到问题),我敢打赌被(网络)邮件、USB 密钥、下载软件感染的概率要高得多。我知道这不是一个答案,但说真的,安全策略有时很荒谬。

于 2009-11-30T23:29:01.567 回答