内存中扫描文件,理想情况下使用ClamAV

时间:2012-07-24 08:52:52

标签: java antivirus

我们正在实施一个重点关注安全性的企业应用程序,其中包括上传文件。这些文件需要进行病毒扫描,但也需要加密。

当前流程是上传文件,然后通过加密器流式传输到磁盘上的临时存储区域。然后调用病毒扫描程序并在运行时解密文件,通过套接字流式传输到ClamAV - 然后从套接字返回病毒状态。

问题是ClamAV似乎在扫描之前写入磁盘上的临时区域,这意味着文件系统上未加密的,可能敏感的数据。

有谁知道如何解决这个问题?可能只是将ClamAV配置为仅在内存中扫描(我的Google搜索没有产生任何结果),或者可能是其他一些替代建议?

3 个答案:

答案 0 :(得分:6)

我假设您正在使用clamd,因为您通过套接字而不是clamscan cli工具与它交谈。

在这种情况下,您可以通过clamd.conf中的TemporaryDirectory指令对其进行配置,以指向使用dm-crypt(https://help.ubuntu.com/community/EncryptedFilesystemHowto)之类的临时存储的加密文件系统 - 我希望这有帮助。

man 5 clamd.conf的参考:

   TemporaryDirectory STRING
          Optional path to the global temporary directory.
          Default: system specific (usually /tmp or /var/tmp).

答案 1 :(得分:4)

有一个很好的例子:

使用ClamAV Antivirus检测病毒的Java API

http://nsinfra.blogspot.ca/2011/06/java-api-to-detect-virus-using-clamav.html

本文介绍了使用java API扫描文件以检测木马,病毒,恶意软件和其他恶意威胁的方法。

以下项目已涵盖:   关于ClamAV杀毒软件   在Linux机器上安装ClamAV防病毒的说明   使用ClamAV Java API扫描文件以检测病毒的方法

答案 2 :(得分:1)

我能想到的最简单的事情是使用ram磁盘。

也许您应该检查ClamAV是否有更复杂的API来执行此类任务。