我看到 ClamAV 告诉我它在我的计算机上检测到的所有病毒的名称,但它似乎没有给我提供关于这些检测实际上意味着什么以及这些病毒实际上是什么的文档。它甚至没有告诉我检测名称的结构,所以我甚至无法自己判断每个部分的含义。这是我能找到的唯一文档:https://github.com/vrtadmin/clamav-devel/raw/master/docs/signatures.pdf这甚至没有给我其中一半的检测定义。有没有其他文档可以解释病毒检测定义的含义,以及它们是如何用点和其他东西构成的?如果目前没有更多文档,那么是否有计划?如果没有更多文档,人们如何编写定义?肯定有,但它不公开。但这很糟糕,因为如果除了他们之外没有人知道它们的含义,为什么还要花时间去制作花哨的检测名称呢?
非常需要更详细的文档,因为它可以检测病毒并给出检测的名称,但您对该检测一无所知,甚至无法查找它以了解它是否想重新格式化您的硬盘或是否在监视您的一举一动。
答案1
使用命令:
sigtool --find-sigs <virus name> | awk ‘{ print $2 }’ | sigtool --decode-sigs
这将找到签名,从输出中提取签名部分并将其转换为“纯语言”。哈希值除外,它仅表示整体已知为坏的。
然后,您可以在相关文件中查找该简单语言并确定它是准确的还是误报。
更新:以这种方式使用 sigtool(--find-sigs 和 --decode-sigs)是不是签名创建文档 (signatures.pdf) 中明确介绍了这些内容。文档涵盖了创建您自己的签名所需的所有其他内容,包括公认的命名约定及其含义的描述(第 3.10 节签名名称... ClamAV 使用以下前缀作为签名名称...)
除此之外,最终用户还需要确定检测到的内容是否真的是恶意的,还是误报,而确定这一点的方法是了解签名在寻找什么以及它在受影响文件中的位置。正如我所提到的,唯一不起作用的是哈希值。对于这些,你能做的最好的事情就是在各种在线扫描仪中查找哈希值,了解其他引擎将它们检测为什么,并查找病毒名称。
如果这两件事(现有文档和 sigtool 的使用)不能回答问题,那么需要重新表述问题,以便更清楚地说明问题的意图。从解码的病毒签名中应该可以清楚地了解为什么有人认为某些东西是恶意的。如果不是,或者如果您不同意检测结果,则应将其报告为误报,以便可以改进/澄清签名/等。
以 Win.Exploit.Unicode_Mixed-1 为例,我会说由于这个原因它不是一个很好的信号(目前还不清楚该序列的哪些部分是恶意的)。
(对我来说)尚不清楚该序列的恶意之处,但它可能是混合 Unicode 脚本利用中常见的内容(但同样,这只是猜测)。从病毒的名称来看,预计您会在 Windows 系统或 Windows 系统可以访问的某些东西上找到它,并且很可能存在与混合 Unicode 字符和非 Unicode 字符相关的漏洞,这些漏洞与该签名相匹配。有了这些信息,您只需快速在 Google 上搜索“Windows 混合 Unicode 漏洞”,就会出现 133,000 多个网站的结果,这些网站讨论了如何构建漏洞以利用 Windows 中的 Unicode 处理问题。
如果您在 IDS 上的 tcpdump 输出中看到该信息,那么很可能是您的某个系统从被利用的远程系统(如 Web 服务器)提取了该数据。
原帖作者问的是,是否有“计划规范签名名称,使其更加规范,让人们真正了解它们的含义”……而这确实在签名书写文档中。或者,至少,ClamAV 人员会尝试遵循并向其他人推荐这些指南。如果您从其他第三方来源提取信息,他们可能有自己的命名约定。
原作者说得对,文档中的名称列表甚至对于 ClamAV 编写的签名也非常不完整。但鉴于 ClamAV 是开源的,几乎任何人都可以为其编写签名,而无需 ClamAV 作者的批准,因此签名名称“受监管”的可能性为零。
您能做的最好的事情就是分解名称,查看签名定义,然后谷歌搜索。即使 sigtool 不会告诉您签名作者为什么认为它是恶意的,它至少会告诉您 ClamAV 认为什么是恶意的。