时至今日,按网络安全等级保护要求,对 Linux 服务器部署使用 ClamAV 去防范恶意代码(杀毒),这个措施应该已经常态化了。
笔者:国际认证信息系统审计师、软考系统分析师
但手头的CentOS 7服务器部署完用起来了发现,通过 freshclam 更新ClamAV的恶意代码检测数据库后,每次运行 clamscan 进行杀毒,clamscan 就会告警:
LibClamAV Warning: Detected duplicate databases /var/lib/clamav/bytecode.cvd and /var/lib/clamav/bytecode.cld, please manually remove one of them
LibClamAV Warning: Detected duplicate databases /var/lib/clamav/main.cvd and /var/lib/clamav/main.cld, please manually remove one of them
提示发现有重复的恶意代码检测数据库文件,应删除其中一个。
这个问题的原因,是通过 yum 或者 dnf 安装 clamav 软件包时,软件包内包括有 clamav-data 这个单独的 RPM 组件包,可以通过 rpm 命令观察:
[root@vm ~]# rpm -qa | grep clamav
clamav-0.103.7-1.el8.x86_64
clamav-data-0.103.7-1.el8.noarch
clamav-filesystem-0.103.7-1.el8.noarch
clamav-update-0.103.7-1.el8.x86_64
clamav-lib-0.103.7-1.el8.x86_64
clamav-data组件包是clamav的恶意代码检测数据库,由以下三个文件组成:
[root@vm ~]# rpm -q --filesbypkg clamav-data
clamav-data /var/lib/clamav/bytecode.cvd
clamav-data /var/lib/clamav/daily.cvd
clamav-data /var/lib/clamav/main.cvd
当运行 freshclam 之后,clamav-update会从网络上下载最新的恶意代码检测数据库,也就是和clamav-data在功能上相同的三个文件,但文件的扩展名是 cld,并不会覆盖原有的 cvd 文件,因此就会导致提示重复。
解决问题的办法也很简单,如果 freshclam 运作良好,能更新,那么就可以单独卸载掉 clamav-data 组件包,从而避免恶意代码检测数据库重复。
操作上就是:
yum remove clamav-data
在 clamscan 使用期间,它有时会对扫描内容给出一些信息,比较常见的,以及所对应的原因如下:
LibClamAV Warning: cli_codepage_to_utf8: iconv error: An invalid multibyte sequence has been encountered in the input.
提示在输入(扫描的内容)中遇到了一个无效的多字节字符序列。
iconv()是用于转换文本的字符编码的函数。clamav通过iconv函数转换扫描内容(比如html文件)的字符集,这样统一化字符集后,可以容易检测出用非UTF8的多字节字符集(比如CJK,MBCS之类)去隐藏的恶意代码。
这个提示是iconv()的转换过程碰到了处理不了的多字节字符序列,向用户示意可能会有隐藏得更加深的恶意代码没有被 clamscan 检查出来。
如果对涉及的文件没有疑问,直接忽略这个提示便可。但如果确实可疑,应将涉及的文件单独进行检查,比如通过 virustotal.com 这一在线检查工具对可疑文件作深入检查。
iconv相关还有其它一些告警信息,道理都是相似的。
LibClamAV Warning: PNG: Unexpected early end-of-file.
图片文件(比如PNG)虽然不是可以执行的文件,但由于处理图片的函数库可能存在缺陷,使得图片文件也是恶意代码的可能载体。
clamscan 对图片文件进行结构解析和检查是否存在恶意代码。如果图片文件结构不完整,就会给出这样的提示。
处理的方式同上,如果可疑,就扔到 virustotal.com 作进一步的深入检查。
另外,也可以通过 --alert-broken-media=no 参数关闭告警。类似的参数可以通过 clamscan --help 观察获得。
LibClamAV Warning: cli_scanxz: decompress file size exceeds limits - only scanning 27262976 bytes
clamscan 支持对压缩文件解压查杀,但由于解压查杀对计算机的性能可能会产生极大影响拖累,所以 clamscan 默认只解压26MB的数据,这对于大多数情况是足够了,但使用者的系统内还是会有大压缩包存在的,所以就给出告警提示。
可以通过 --max-scansize=#n 去设定不同的大小限制,类似的最大限制参数还有其它一些,可以自行观察。
LibClamAV Warning: fmap_readpage: pread fail: asked for 4073 bytes @offset 23, got 0
这种情况是因为扫描了比如 /sys 这种特殊的文件系统位置。因此必须指定 clamscan 的扫描目标,不应该闭上眼从根开始扫。
本站微信订阅号:
本页网址二维码: