签名扫描

Lan*_*ndo 3 security signature malware-detection

许多使用基于签名的恶意软件检测的防病毒程序.这是为ClamAV创建签名.我可以理解他们如何创建签名,考虑到整个文件是恶意软件,但我无法理解如何在文件正文中找到恶意软件 - 哈希将是另一个.有人知道吗?

Gri*_*han 7

我的答案不是ClamAV特有的; 相反,我已经回答了一般意义上的问题.也许这对你有帮助.

首先,病毒签名不一定是文件的哈希值.甲签名通常是在一个文件中发现的比特串,但是散列值也可以作为一个签名.

例如,假设病毒包含比特串0x23956a58bd910345.我们可以将此字符串视为病毒的签名,我们可以在系统上的文件中搜索此签名.但是,即使我们找到签名,我们也无法确定我们是否已找到病毒,因为其他无辜文件可能包含相同的位串.

值得注意的是,如果文件中的位是随机的,那么这种错误匹配的可能性在1/2 ^ 64时可以忽略不计.参考

有许多方法可以为恶意软件检测生成签名和/或功能.在这里了解更多.

此外,还有其他方法可以检测病毒:
1 异常检测 - 也称为行为分析 - 可执行文件的活动跟踪,如:

  • 修改或创建的文件
  • 注册表修改
  • 在执行之前加载了哪些DLL
  • 访问虚拟内存
  • 创建流程
  • 打开网络连接并传输数据包
  • 恶意软件访问的存储区域,安装的服务和内核驱动程序以及其他信息.
    参考

2 更改检测 - 意外更改的文件可能表示感染.

我们如何检测变化?在这方面,散列函数很有用.假设我们计算系统上所有文件的哈希值并安全地存储这些哈希值.然后,我们可以定期重新计算哈希值,并将新值与先前存储的值进行比较.如果文件在一个或多个位位置发生了变化 - 就像病毒感染的情况一样 - 我们会发现新计算的散列与先前计算的散列值不匹配.

改变检测有许多缺点.系统上的文件通常由于正常的系统功能而不是恶意行为而发生变化.因此,更改检测可能会产生许多误报,这给用户和管理员带来了沉重的负担.如果将病毒插入经常更改的文件中,则可能会通过更改检测方案.[参考:Mark-Stam的书籍信息安全]

并且您认为正确的哈希机制是用于检测的弱方法.
在我的研究工作中,我使用14种防病毒工具对2000多种真实病毒进行了比较和分类,我发现ClamAV在检测病毒方面非常糟糕!这是描述MOMENTUM的论文的链接.

图表显示各种防病毒产品的检测率