ClamAV 是一个开源的(GPL)反病毒引擎,用于检测木马、病毒、恶意软件和其他恶意威胁。它为用户提供了许多实用程序,包括一个可扩展的多线程守护程序、一个命令行扫描器和一个自动更新数据库的高级工具。
ClamAV 由思科和开源社区共同开发,第一个版本的 ClamAV 于 2002 年发布,在首次发布近 20 年后,ClamAV 1.0 正式推出。
ClamAV 1.0.0 现已稳定,可通过 ClamAV.net 或 Docker Hub 下载。ClamAV 1.0.0 包括以下变化:
主要变化
- 支持解密用默认密码加密的基于 OLE2 的只读 XLS 文件。默认密码的使用现在将出现在元数据 JSON 中。
- 彻底检查了全匹配功能的实现。较新的代码更可靠,更容易维护:
- 修复了全匹配模式下签名检测的几个已知问题:
- 启用嵌入式文件类型识别签名,当恶意软件签名也在同一层的扫描中匹配时,可进行匹配。
- 启用字节码签名,以便在发生匹配后以全匹配模式运行。
- 修正了各种全匹配的边缘案例问题。
- 增加了多个测试案例,以验证正确的全匹配行为
- 修复了全匹配模式下签名检测的几个已知问题:
- 在公共 API 中增加了一个新的回调,用于在每层档案提取的扫描过程中检查文件内容
- 在公共 API 中增加了一个新函数,用于解压 CVD 签名档案
- 使用外部 TomsFastMath 库构建的选项已被删除
- 将 Docker 文件和支持脚本从 ClamAV 主仓库移到了一个新仓库:https://github.com/Cisco-Talos/clamav-docker
- 由于 0.103 LTS 版本和 1.0 LTS 版本之间的 ABI 变化,增加了 libclamav 的 SONAME 主要版本。
其他改进
- 增加检查以限制 PDF 对象的提取递归
- 增加了对基于不可信任输入的内存分配的限制,并改变了超过限制时的警告信息,使其更有帮助
- 大幅改善了 libclamav-Rust 单元测试的构建时间
- 对于 Windows:当以 "RelWithDebInfo" 或 "Debug" 模式构建时,调试符号(PDB)文件现在会与 DLL 和 LIB 库文件一起安装。
- 放宽了对重叠的 ZIP 文件条目的检查限制
- 增加了 FreshClam 中在 DNS 条目过期时发出警告的时间限制
- Docker:C 库的头文件现在包含在 Docker 镜像中
- 在使用 CMake 的
ccmake
GUI 时显示 BYTECODE_RUNTIME 构建选项 - 增加了明确的最小和最大支持的 LLVM 版本,这样如果你试图用一个太老或太新的版本进行编译,编译就会失败,并且会打印出一个有用的消息,而不是简单地因为兼容性问题而编译失败
- 修正了 Clang 16 中可能变成错误的编译器警告
- 允许使用自定义 RPATH 进行构建,以便在开发环境中构建后将可执行文件移至最终安装目录。
更多详情可查看:https://blog.clamav.net/2022/11/clamav-100-lts-released.html