流行病研究机构每年都会观察全球的流感病毒,预测明年可能会出现哪种极度危险的病毒,同时准备好相应疫苗以帮助人们减少患病的风险。实际上,这与信息安全研究人员研究恶意软件并开发相应防护工具所做的工作十分类似。
流行感冒病毒以无法预料的方式进行变异,因此之前的疫苗只能提供有限的保护。防范恶意软件的情况也是如此。
曾经在识别威胁的手段中大发神威的沙盒技术,如今已经被网络犯罪分子所熟悉。他们正在使用高端精密的逃避技术来找到避免沙盒控制和检测的方法。
控制恶意软件:隔离是王道
沙盒很像是医学实验室里的细菌培养皿。通过培养皿,研究者可以在安全可控的环境下,观察病毒的行为和其他潜在的有害可能。这种能够识别新的恶意代码或预先发现未知恶意代码的能力在当今的安全架构中大行其道。
3种狡猾的沙盒逃避技术
至少到现在为止,安全人员在与网络罪犯的斗争中还处于上风,后者则试图扭转这一战局。双方都使用了能够想到的必要手段,包括使用彼此的工具和方法。下面介绍攻击者逃避或企图逃避沙盒检测的几种技术:
延时运行。攻击者暂缓恶意软件的运行,暂缓时间从几分钟到几天,以隐藏其特征从而通过沙盒的检测。虽然这种方法可以愚弄到某些沙盒技术,但已经有一些沙盒技术可以强迫暂缓执行的代码即刻运行并对其进行检测。
诊断沙盒。另一种狡猾的方法是检测虚拟机的注册键、运行进程、磁盘容量、运程通信,或是其他可以识别沙盒环境的特征。当然,沙盒也可以部署相关技术迷惑恶意软件的检测,但这都是短期的变通方法,沙盒最有效的检测方法还是对静态代码的分析。
给计算机用户把脉。很不幸,用户依旧是安全链中最薄弱的一环,网络罪犯则一如既往的利用这一点。这种攻击方法先检测操作计算机的用户行为,然后再决定是否执行。虚拟环境很难模拟页面滚动、鼠标移动或点击等用户的随机行为,如果恶意软件查觉到不正常的行为,它便会退出以避开检测。
最佳检测过程:行为监测 + 深度静态代码分析
在沙盒中观察软件的可疑行为是一种有效的方法,然而当恶意软件实时地改变自身行为以逃避检测时,这种方法就很难进行精准的判断。因此,除了行为判定之外,还需要了解行为的历史信息。安全厂商利用丰富的恶意软件信息库来甄别和跟踪恶意软件的种类,恶意的网站、邮件、IP地址等等信息都具有价值,这就是检测过程的关键所在。
当动态沙盒技术无效时,就该完整的静态代码分析大显身手了。现在的黑客不只是对恶意代码进行压缩,他们还会加密文本字符和网址。而完整静态代码分析不仅可以解开代码压缩包、分解文件、通过语句分析执行路径,还可以发现伪装的恶意网站和IP地址,比较代码和功能函数的执行,以识别沙盒中运行的软件与现有的恶意软件家族的关系。
一个有效的静态代码分析模块的关键是迅速识别所需要分析的代码。黑客通常会改变代码特征以逃避检测,因此任何类型的静态代码分析都必需具备识别这种伎俩能力。
最优解决方案:预防
正如我们看到的,攻击与防守两者之间的战斗不断升级。网络犯罪手段越来越高端复杂,并试图超越安全防护技术,比如沙盒检测。基于行为的监测虽然是一个好的方法,但解决方案的选择却不能止于一次简单的观察。安全解决方案必需联合行为监测和高级静态代码分析,以准确地检测出新型的恶意软件以及逃避沙盒检测的技术。
作者:王小瑞
来源:51CTO