我需要使用开源软件对 docker 容器内的文件实施防病毒访问扫描解决方案。Clamav On-Access工作正常,但有一些要求和限制:
这个限制 - “从主机观看时,fanotify 不适用于容器事件”,真的存在还是我只是错误配置了 ClamAV?我对 fanotify 如何与命名空间一起工作没有深入的了解,但对我来说它看起来像是内核限制。
更新:是否有针对此限制的解决方法?添加/var/lib/docker/overlay2/container_id/merged是一种选择,因为动态容器性质clamd.conf需要在每个容器事件上更新。但即使添加了路径,ClamAV 也不会检测到容器中的恶意文件。
每个容器运行 ClamAV 会产生巨大的内存开销,尤其是对于小容器。
链接集合:
我有一个运行NodeJS代码的AWS Lambda函数,用于将文件从S3传输到在EC2实例上运行的ClamAV.
通常(大约75%的时间)系统工作,但经常(特别是当从不同的Lambda容器扫描多个文件时)clamd线程被卡住INSTREAM.
一旦线程INSTREAM进入25-30秒,它似乎无法恢复.当它已经QUEUEDSINCE350秒时被杀死.我无法弄清楚这些数字中的任何一个与我的配置中的任何值有什么关系.
我很难在日志中找到任何错误的迹象 - INSTREAM请求的数量与完整扫描的数量相匹配:
$ sudo grep -c "got command INSTREAM" /var/log/clamav/clamav.log
129
$ sudo grep -c "Chunks complete" /var/log/clamav/clamav.log
129
$ sudo grep -c "Scanthread: connection shut down" /var/log/clamav/clamav.log
129
Run Code Online (Sandbox Code Playgroud)
...好吧,既然我对日志有了更深入的了解,那么扫描一些内容需要花费更长的时间.当我执行一批16个文件时,Lambda并发限制为7,前几个文件将在几秒钟内被扫描.下一个文件很快就开始扫描,在一秒内到达"Chunks complete",但在"Scanthread:connection shutdown"之前需要23秒.从这里开始它变得更糟 - 1:24,1:45 ......然后第3批7个文件需要3分钟才能扫描.
如果我给系统几分钟安定下来,所有的线程都会消失,相同的文件花了3分钟现在大约需要5-7秒.
如果我在更快的机器上运行相同的测试,性能会提高,但问题仍然存在:
当线程陷入困境时INSTREAM我可以看到文件仍然存在:
$ ls -al /tmp
drwx------  2 clamav clamav     4096 Aug 29 16:52 clamav-493bdf893ce4d8d7763c00fee22d9d69.tmp
-rwx------  1 clamav clamav 25683921 Aug 29 16:52 clamav-5cdefd83d5531a03c7cf22fda37d133f.tmp
Run Code Online (Sandbox Code Playgroud)
 我目前在Centos 6.9上遇到ClamAV和freshclam的问题。
我拥有最新的Clam引擎0.99.2,并且可以正常连接互联网。即使我# freshclam -v在a之前运行命令(它仅返回有关freshclam.conf的不安全权限的安全警告)# clamscan,clamAV也会向我返回此警告:
LibClamAV Warning: ************************************************** 
LibClamAV Warning: *** The virus database is older than 7 days.   *** 
LibClamAV Warning: *** Please update it IMMEDIATELY!              *** 
LibClamAV Warning: **************************************************
所以我的问题是:我怎么知道上一次更新何时完成?还是确保病毒数据库是最新的?
PS:我已经用eicar测试文件测试了clamscan,它可以检测到它。
我试图确保上传到 S3 的文件不包含恶意软件或恶意脚本,然后再将文件移动到基础设施的更安全部分(单独帐户中的另一个 S3 存储桶)。
我们通过 AWS 主干连接将文件从上传账户移动到核心账户,这意味着它不会在任何时候暴露在公共互联网上 - 除了初始上传(上传由 AWS 使用 SSL 保护)。
理想情况下,我们希望对文件运行病毒扫描,而不会将文件暴露在互联网上。如果文件未暴露,则可以接受通过互联网更新病毒定义的基于云的 AV 解决方案。我在 ClamAV 中遇到了一个开源解决方案,但我想考虑替代选项 - 甚至是专有软件。实现这一目标的最佳建议是什么,或者是我们没有想到的更安全的选择?
我试图在 Linux 中停止 Clamav 服务,但我无法做到这一点。我已经在一个单独的目录中安装了 Clamav。
运行以下命令时:
$ systemctl stop clamav-daemon
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
警告:停止 clamav-daemon.service,但它仍然可以被激活: clamav-daemon.socket
运行时:
$ systemctl status clamav-daemon
Run Code Online (Sandbox Code Playgroud)
我得到:
 clamav-daemon.service - Clam AntiVirus userspace daemon
   Loaded: loaded (/usr/lib/systemd/system/clamav-daemon.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-04-29 13:23:33 IST; 7s ago
     Docs: man:clamd(8)
           man:clamd.conf(5)
           https://www.clamav.net/documents/
 Main PID: 32213 (clamd)
    Tasks: 1
   CGroup: /system.slice/clamav-daemon.service
           ??32213 /usr/local/sbin/clamd --foreground=true
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢。