开源软件测试:ClamAV与Windmill的实践探索
1. 反病毒软件中的误报与漏报检测
反病毒扫描器有时会产生误报,主要分为误报(False Positive)和漏报(False Negative)两种情况。
-误报:合法文件被错误标记为感染。高比例的误报可能使扫描器无法使用,例如桌面用户无法接受一天内频繁弹出病毒通知,系统管理员也会放弃将大量合法邮件标记为感染的产品。
-漏报:受感染文件被错误确认为干净。漏报可能由两个原因导致,一是扫描器数据库中缺乏病毒定义,二是扫描器虽有特定病毒的签名或检测机制,但因检测引擎的漏洞(如无效文件处理、模式匹配器问题)而无法识别。
对于反病毒厂商来说,快速检测和消除误报至关重要,最好在产品或其更新到达最终用户之前完成。
2. ClamAV的误报与漏报处理
2.1 误报处理
ClamAV的病毒分析师努力确保签名质量,但发布签名还需通过一个特殊的全自动签名测试机制。该机制的核心是大量干净文件的集合,其大小、质量和多样性是消除误报的关键因素。集合包含数百GB的各种可执行文件、库和流行操作系统及软件的其他组件,且都已确认安全。
发布新签名的步骤如下:
1. 作者将新签名上传到特殊界面并点击按钮。
2. 系统自动使用这些签名扫描集合,确保不产生检测结果。
3. 若有检测结果,作者会收到通知,发布过程立即停止。
为提高测试速度,该过程会分布在多台存储部分集合的机器上进行,当所有节点都报告无检测结果时,测试成功。