在构建过程中扫描病毒

时间:2009-11-30 09:20:46

标签: java maven-2 antivirus

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

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

最佳做法是什么?

  • 扫描步骤是否应与正常构建分开,例如预建步骤甚至是单独的构建工作?
  • 扫描是否应在包装的后期进行,将所有文物包装到jar文件中或在过程的早期?
  • 每个发布的人工制品是否都包含一个扫描仪日志文件,用于确定正在使用的防病毒工具,病毒定义文件的版本和日期?

使用哪种防病毒软件超出了此问题的范围。 (例如,我想使用商业供应商支持像ClamAV这样的免费工具)

4 个答案:

答案 0 :(得分:1)

病毒来自哪里?

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

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

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

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

答案 1 :(得分:1)

最佳做法是在不常被病毒攻击的平台(即操作系统)上运行构建。

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

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

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

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

答案 2 :(得分:0)

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

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

我相信迈克菲拥有的Linux版本可能就是您所需要的。

答案 3 :(得分:0)

  

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

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

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