为什么有的程序会被杀毒软件误报?

详情如题

推荐  (0) | 17人关注关注
14个答案
45 0

首先是因为软件行为的问题。
当年360比较烂的时候,我使用Visual Studio 调试程序,都会把VS当成恶意软件,就是因为VS“注入”了我的程序,在其中随意加入断点、随意挂起程序(废话不加入断点、挂起还怎么停下来单步调试)。这样的行为也有可能出现在很多恶意软件,比如弹窗,可以弹窗之后挂起浏览器,然后你不关闭弹窗就不可以使用浏览器。恶意挂起其他的程序也可能导致其他的程序对外显露失去响应。

然后是因为病毒特征码的问题(和上面那个有点重合了)。
杀毒软件公司会维护一个病毒特征库
病毒特征库里一般会装有大量的二进制串与对应的病毒名称,而二进制串是来自反病毒公司在分析病毒时,确定的只有该病毒才可能会有的一系列二进制串,这些二进制串被称为特征码,在病毒中可能是为了实现某些功能而做的,比如破换系统文件、修改其他程序代码、复制自身然后通过网络传播等等,杀毒软件利用这些特征码可以将其它病毒或正常程序区别开来,接着进行杀毒。
如果正常软件也会有类似的行为,那么也是有可能含有这样的特征码,进而被扫出来的,比较常见的比如游戏破解、游戏修改,还有一些监视软件都会造成误杀,因为确实有可能有这样的行为嘛。这个时候如果确认是被误杀,可以向杀毒软件提供商上报,让他们对特征码进行验证和修改。

除了上述的类似病毒的注入、修改行为,还有可以经常看到的“蠕虫”特征,蠕虫病毒不会依赖其他的程序,也未必会破坏系统,但是具有优良的传播性,可以在网络上蔓延,可以执行垃圾代码占用系统资源,也可以传播之后发动洪水攻击。所以如果查杀出来蠕虫特征,有可能里面确实有能够传播的部分,软件如果需要频繁联网,发动各种请求,想要传播自己,那么就是蠕虫无误。

善意的蠕虫也有,当年在冲击波蠕虫所使用的RPCSS漏洞被发现一段时间后,网络上出现了一个名为 Waldec 的蠕虫,该蠕虫会自动帮助未修复该漏洞的用户打上补丁()。不过,该蠕虫也会大量耗尽网络带宽,与“恶意”蠕虫对网络有差不多的效果。。。。所以虽然很感动,但是还是要灭杀掉他的。。

@渚熏 快来展示一下安全程序猿的工作吧~

33 0

渚熏软件工程师,网路安全从业者

2013-08-15 17:05

我现在主要是搞网站web安全防护的,跟病毒离得有点远。
不过去年弄过一小段时间的网站挂马检测,检测手段其实跟杀毒软件类似,倒也还能战一下

主要还是从两个方面入手:一个是固定的特征,另一个是有没有异常行为。

基于特征检测的方法原理@猪了个去 都说了我就不废话了。特征方法准确度纯粹依赖于特征码选的如何,如果特征码弄了个很大众化各个程序都有的,自然会产生误杀的情况。就好像发了个通缉令,结果描述犯人的文字就俩字“秃子”,那估计警察叔叔连庙里的和尚都能给抓进去了。

另外行为检测则主要是针对特征码的防护效果比较滞后这个缺点发展出来的。要想通过特征码防护得杀毒软件公司发现有病毒了,提取完特征码给你更新之后才有防护的效果,从发现病毒到更新特征库中间有个空白时间病毒容易肆虐。而直接看看你电脑上的程序有没有不轨企图,这样安全性就好多了。

行为检测技术有主动和被动两种,被就是@猪了个去 说的那种,监视各个软件运行时后有没有认为是可以的动作比如进程注射、读取修改敏感的系统文件之类的,发现了就告警。
主动的则是把可疑程序放到一个沙箱环境中 ,然后运行它,监视有没有可疑的行为然后告警。
但是与特征码类似,如果这个行为判断不准也是会引起误报,就好像菜刀能杀人,但结果把买菜刀都当杀人犯抓了,可其实人就是买回去切个菜而已。

3 1

自打杀毒软件免费后,病毒似乎没有了.

诸位有没有这种感觉?

1 0
支持者: 雨醉宫

= = 为啥我想起卡巴司机,把自己卸载(杀了)的那个事件,这算误报么。。。。这是为毛。。。。。。。他怎么做到的。。。。。

3 3

爱抚初级木工石工铁匠玻璃工水电工,程序员,知心大蜀黍

2013-08-22 08:21

我来跑个题,很多国产杀毒软件还在使用很老的技术,已经日益跟不上现在的软件形式,误报很多,宁可错杀一万也不漏掉一个,我这么多年一直在用国外免费软件,电脑无毒而且一次误报都没有,同样是做技术的各种稀奇古怪的软件和开发软件.根本不误报

0 0

上面说的很多,沾点边,但说的太多了反而让LZ更混乱。
简单来说吧,就和判断一个人是好人还是坏蛋一样,不是那么简单一刀切的。现在有些程序夹带病毒特性,有的病毒潜伏很安静,误杀误报在所难免。

0 0

还有可能是杀毒软件的“启发引擎”(heuristic engine),这是针对某一家族恶意软件在出现新的个体而还未入特征码库的时候自动以其模糊特征判定为恶意软件,所有启发式查杀都不可避免误杀,因为这是对于未知程序的自动判定。行为拦截也一样不可避免误杀,因为无论是什么样的程序动作,都可为任意软件也就是无论好坏软件都可以使用,所以白名单就很有必要,一些小软件没及时进入白名单就会被误杀。

0 0

因为杀毒软件的原理之一就是检测行为,自然有误伤的可能性
就像网络防火墙分不清攻击者和搜索引擎蜘蛛一样

0 0

简单的说误报是因为杀毒厂商没有详尽的测试病毒特征码和启发式扫描对大量程序的兼容性。
杀毒厂商需要建立海量的应用程序来减少杀毒软件误报的可能性。

0 0

jjmmk科幻迷、计算机本科生

2013-09-10 23:58

我能说我大一时随便写的一个c程序都被360查杀么?

0 0

做软件卖的公司一般为了防止自己的软件被杀毒软件误杀都会为自己的软件程序加上数字签名。

0 1

据说360特征库采集海量软件的特征码,凡是在库内的就放过,库外就报,一次你自己改的一个小汉化也会报毒.
以上纯属道听途说....

0 1

简单来说,几个原因:

1、杀毒软件傻:
a. 采用特征码不特征,误杀无辜(例如他们对通缉犯的描述是:脸上有痣的人)
b. 采用特征动作不特征:例如修改可执行文件是病毒的特征,但是编程工具本职就是干这个的啊

2、某些软件做的事情就是病毒做的事情,只不过被包装了,例如:360系列本质上就是一个大木马。

3、某些软件,例如CRACK软件,本身并非病毒或木马,但是由于其违反版权,会被报告成恶意程序(因为它会让开发者收不到钱)

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区