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

How does an Antivirus knows not to detect non malicious code?

假设我创建了一个文件压缩库,这个库被用于 1000 个(非恶意)程序。但是现在恶意软件开发人员决定创建一个恶意软件并使用我的库来压缩一些文件。

基于我对 Antivirus 工作原理的了解,它从恶意软件中选择一组字节串并将其存储在其数据库中。现在,当防病毒软件扫描具有这些字节串的程序时,它会警告用户这是恶意软件。

但是,如果防病毒软件选择了一个与我的库代​​码的一部分相对应的字节串,这是否意味着我的库现在被检测为恶意软件(因此现在检测到 1000 个非恶意程序作为恶意软件)?

如果防病毒程序将一段广泛使用的代码标记为恶意代码,那么是的,它会(错误地)将许多程序检测为恶意软件。但是恶意软件签名不是随机选择的;它们是由人类分析师开发的,他们研究恶意软件以了解其功能和工作原理。这些分析师小心翼翼地根据恶意软件实际特定的内容构建签名,而不是恰好包含在其中的一段非恶意库代码。

有两种检测恶意软件的技术,第一种是通过文件签名,例如卡巴斯基每天都会收到大量的恶意代码,这些恶意代码将由其专家进行分析,然后为每个代码生成签名他们中的。因此,当防病毒软件分析文件时,它会将签名与其数据库中的所有签名进行比较。然后 return 结果给用户。 确定软件是否恶意的第二种方法是使用数据挖掘技术。这是将软件的静态和动态分析结果作为输入,然后 return 结果。在这种情况下,它可能 return 误报结果,具体取决于防病毒软件。

如果你是合法库的作者,并且一些恶意软件家伙使用你的库,然后 AVs 开始检测使用你的库的干净程序,唯一的处理方法是联系 AV 公司并告诉他们从您的库中删除检测。他们可以检测恶意代码而不是库代码。 查看每个 AV 公司网站上的投诉表格或联系他们的支持部门。