扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
三、样本分析与判定环节
在样本分析与判定环节,哪些会造成误报呢?
1、被病毒和攻击者利用的第三方软件
在没有BO这类远程控制工具之前,攻击者就已经学会了采用一些商用第三方软件作为后门使用,他们可能会对这些软件稍加改造。这种趋势比较明显的是自DIY蠕虫开始的,由于网络上的工具越来越普遍,一些病毒作者发现,其实并不需要编写代码,把一些工具组合起来,再用批处理或者脚本调度一下,就可以写成一个“DIY病毒”,DIY蠕虫可能包括扫描部分、投放部分、升级部分、后门部门、跳板部分等等,这些都可以在网上找到现成的工具。而其中利用的一些工具,很多也并非是专门的黑客工具,有很多本来是免费甚至是商用的正常软件。我们可以通过表一来看一看经常被病毒使用的。
表一:病毒经常使用的第三方工具
对上述软件来说,反病毒的处理要高度慎重,除对行命令工具,反病毒软件基本都会选择报警外,对其他几类,由于很难分辨相关程序,是用户的正常使用,还是病毒“种植”的结果,如果将这些代码加入到病毒库,很可能造成用户信息系统的异常。
2、公共控件和驱动
广泛被使用的一些公共控件,为软件开发者提供了方便,但它也为病毒的作者提供了方便,他们也可以使用公共控件来实现自身的功能。毫无疑问,如果把公共控件当成病毒衍生物并提取特征,就会导致公共控件和其他使用该控件的正常程序被报警。
例子:在win9x的时代,木马通过EXEBIND的方式,搭载一个winsock.ocx是比较常用的做法,由于winsock.ocx在病毒执行后同样被作为衍生物释放,因此很容易被当成病毒文件。这是一个我们自己曾经犯过的错误,而且这个错误险些重复过。彻底避免了这个问题的关键是,搜集齐了所有版本的winsock.ocx,放入了白名单。另外可以一题的是,其他一些正常应用程序虽然也使用winsock.ocx,但他们都是通过安装包把自己和winsock.ocx安装到系统中,而不会通过exebind的方式,因此我们当时采用过如果一个程序检测不到病毒,但发现exebind了winsock.ocx的情况下,就报警未知木马的方法,还是有不错的效果。
3、开源软件
开源软件比公共控件更利于应用,因此同样会导致误报的产生。开源软件的代码如果用来编写后门,就会导致开源软件本身被误报。
例子:VNC是非常有名气的开源远程管理控制工具,其行为是非常规范的,运行后在右下角有托盘图标,用户可以设定密码验证,也可以正常关闭。但一些病毒作者,对VNC代码进行修改,使其不再被用户可见,这样就成为了一个后门。但对这个后门的特征提取,很难规避不报警正常的VNC程序。
4、被修改的文件
一些病毒希望通过修改某些系统文件或者其他程序文件达到自己的目的。如果反病毒软件不能识别这些文件的话,会导致病毒造成的隐患依然存在,但在这些文件体上提取特征,则也很容易导致原来未被修改的正常文件被误报。
例子:著名的蠕虫HAPPY99会将系统正常wsock32.dll改名为 wsock32.ska,并生成一个与wsock32.dll文件大小一样的文件,新的文件修改了函数调用,从而达到调用病毒自身的另外一个链接库,获取用户发送邮件的收件人地址,然后发送一封把自身作为附件、被捕获得邮件地址为收件人的病毒邮件的作用。
而如果在新的wsock32.dll上提取的特征位置不当的话,就会导致正常的wsock32.dll被误报,而一些厂商采用了取巧的方法,当他们发现Happy99的病毒体后,就在系统目录下寻找wsock32.ska,并覆盖回wsock32.dll。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者