杀毒软件如何知道不检测非恶意代码?

6
假设我创建了一个文件压缩库,并且这个库被用于1000个(非恶意的)程序。但现在,一个恶意软件开发者决定创建一个恶意软件,并使用我的库来压缩一些文件。
根据我对杀毒软件如何工作的了解,它从恶意软件中选择一组字节字符串并将其存储在数据库中。现在,当杀毒软件扫描具有这些字节字符串的程序时,它会向用户发出警报,说明这是一种恶意软件。
但是,如果杀毒软件选择了与我的库代码部分相对应的字节字符串,这是否意味着我的库现在被检测为恶意软件(因此1000个非恶意程序现在被检测为恶意软件)?
3个回答

4

检测恶意软件有两种技术,第一种是通过文件签名。例如,卡巴斯基每天都会收到大量的恶意代码,这些代码将由专家进行分析,然后为每个代码生成一个签名。因此,当杀毒软件分析文件时,它会将签名与数据库中的所有签名进行比较,然后将结果返回给用户。

第二种确定软件是否恶意的方法是使用数据挖掘技术。该技术将软件的静态和动态分析结果作为输入,然后返回结果。在这种情况下,它可能会返回误报结果,具体取决于杀毒软件。


2
如果防病毒程序将广泛使用的代码标记为恶意软件,则会(错误地)检测到许多程序被视为恶意软件。但是,恶意软件签名不是随机选择的;它们是由研究恶意软件以了解其功能和工作方式的人类分析师开发的。这些分析师会仔细构建基于实际特定于恶意软件而非包含其中的非恶意库代码的签名。

1
如果您是合法库的作者,某些恶意软件使用了您的库,则杀毒软件开始检测使用您的库的干净程序,唯一的解决方法是联系杀毒软件公司并告诉他们从您的库中删除检测。他们可以在恶意代码上进行检测而不是库代码。请检查每个杀毒软件公司的网站以获取投诉表格或联系其支持部门。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接