四种恶意软件常用的逃避技术
作者:星期五, 五月 8, 20150

恶意软件逃避技术总是在不断演变,上个月的RSA大会上安全公司Lastline的联合创始人讲述了逃避技术发展的图景。这篇名为“逃避型恶意软件的揭露和解构”的报告,进进一步验证了一个观点:“杀毒软件没死,只是跟不上时代”。

报告指出,在2014年,只有一小部分恶意软件显示出了逃避的特性,但到了现在,相当大的一部分恶意软件会利用500种逃避技术进行任意组合,以避免被检测和分析。

Lastline指出,单个的恶意软件样本通常只具有10种逃避行为。不过研究表明,其中的四种是最常见的:环境意识、自动化迷惑工具、基于时序的逃避、混淆内部数据。

环境意识

环境意识让恶意软件样本能够检测它本身试图感染的系统的运行环境。这种逃避行为使得恶意软件能够检测到虚拟机和实体机之间的差异,以及操作系统的构件。举例而言,根据Lastline今年早些时候发布的一份研究报告,Carbanak恶意软件中大约五分之一(17%)的样本在执行前试图检测虚拟沙盒环境。

自动化迷惑工具

它使得恶意软件避免被基于特征检测的技术发现,比如杀毒软件。银行业恶意软件Dyre(Dyreza)是这方面很合适的例子。根据Talos集团两位安全研究人员的报告,Dyre的老版本中硬编码了在和幕后服务器通信时自身使用的URL。不过,为了越过恶意软件黑名单,Dyre的编写者开始每天修改幕后服务器的域名。为了适应不断变化的域名,Dyre的新版本中部署了域名生成算法(Domain Generation Algorithm,DGA),这种算法会在任何给定的时刻计算出幕后服务器的域名位置。各机构以前可以封锁与恶意软件有关的流量,但这种修改给封锁行动制造了麻烦。

基于时序的逃避

这是第三种最普遍的逃避技术。通过这种方法,恶意软件可以在特定时间,或用户采取特定行为时启动。其具体使用有如下几种情景:在最初感染后弹出一个窗口,等待用户点击;仅在系统重启后启动;仅在特定的日期前后启动。恶意软件Balck POS是如今市面上最流行的POS恶意软件种类,它的一些样本,特别是新的变种具备某种程度的基于时序的逃避技术。它会查看被感染机器的系统时间,并和其本身硬编码的时间进行比对。该功能可以使Black POS只在特定的时间段运行,而在其它时间休眠。

混淆内部数据

这种逃避技术最常见。使用这种技术的恶意软件可能会采取一系列方式,让代码规避分析系统的检测。ROM是Backoff POS恶意软件的新变种,它深谙此道。比如,ROM会将API名称替换为Hash过的数值,使用一个Hash表来逃过解析过程的某几个特定步骤,并使用443端口和幕后服务器进行通信,这会有效地加密网络流量。这三种修改使得系统很难有效地识别出ROM的恶意性。

需要特别注意的是,Lastline分析的恶意软件往往会将这四种行为混合使用。具体来讲,Carbanak软件中95%的样本都会通过代码注入和将.exe文件伪装成系统文件来隐藏自身的网络活动,混淆内部数据。与此同时,Backoff的加密行为会通过自动化工具妨碍检测;Dyre会分析其运行环境,以确定接下来做什么,如果它是从Windows目录下执行的话,其可能行为包括作为”googleupdate”服务进行安装。

显然,通过使用逃避技术,今天的恶意软件正变得更加复杂。但对于信息安全社区而言还有希望。上个秋天,波士顿东北大学的一位教授在为IBM安全情报中心撰文时表示,安全研究者们正开始针对逃避行为使用特征分析系统,以检测恶意软件。

除了将逃避技术作为恶意软件的信号之外,安全人员也可以对抗逃避行为。这位教授在2013年的RSA大会上演讲时提到,人们需要理解并对抗逃避型恶意软件。恶意软件经常会寻找触发局(Triggers),安全人员可以将它们随机化来检测恶意软件的环境分析行为。安全人员也可以通过为代码执行设置自动侧写来防止基于时序的逃避行为。

类似和更多的解决方案告诉我们不要在与逃避技术的斗争中放弃。恶意软件可能会越来越成熟,因为它们增加了反检测措施,但每天,安全社区都会发现新的方法,使用与恶意软件相同的逃避策略来对抗它们,以其人之道还其人之身。

关键词:

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章