王玉玺, 周文军, 杨剑
(江苏第二师范学院数学与信息技术学院,江苏南京 210013)
针对客户端的恶意代码分析
王玉玺, 周文军, 杨剑
(江苏第二师范学院数学与信息技术学院,江苏南京210013)
摘要:恶意代码数量多且变种多样,通常会通过加密隐藏真实目的,沙盒可以为恶意代码提供一个安全的运行环境,在实验时借助沙盒分析和揭露恶意代码的行为特征,发现很多恶意代码看似不同,实际为同一恶意代码的变种.最后对若干恶意代码样本进行分析,通过特征码对样本中的恶意代码进行分类,验证了恶意代码变种的现象.
关键词:恶意代码;沙盒;特征码
DOI:10.3969/j.issn.1000-1565.2015.02.015
中图分类号:TP309.5
文献标志码:志码:A
文章编号:编号:1000-1565(2015)02-0193-06
Abstract:The malicious codes can be divided into two types of boot and destructive, and they attack various vulnerabilities for client systems. The quantity of these codes is growing faster, and so much variants have been or will be produced for these codes. Some codes are encrypted to hide their true purpose. Because of the concealment for malicious codes, it is difficult to directly determine the authenticity of malicious codes. Sandbox can provide a secure environment for malicious codes to expose their behavior and find the characteristics. By this way malicious codes can be killed better. It can reveal the hidden malicious code and also verify the feasibility of these detection methods through a number of virus samples tested.
收稿日期:2014-09-12
基金项目:国家重点实验室基地开放课题(9011311);江苏第二师范学院“十二五”规划课题(JSNU-Y-4632)
Analysis on malicious code for client
WANG Yuxi, ZHOU Wenjun,YANG Jian
(College of Mathematics and Information Technology,
Jiangsu Second Normal University, Nanjing 210013, China)
Key words: malicious code; sandbox; signature
第一作者:王玉玺(1978-),男,江苏徐州人,江苏第二师范学院讲师,主要从事计算机网络技术应用、方向研究.
E-mail:hackwindy@sina.com
近年来,互联网在中国取得了持续快速的发展.中国互联网信息中心(CNNIC)2014年1月发布的《中国互联网络发展状况统计报告》中指出截止2013年12月底,中国网民规模达6.18亿,互联网普及率45.8%,较2012年底提升了3.7%[1].随着互联网的普及,Web应用日益丰富,为人们的工作、生活和学习提供了越来越多的便利.但与此同时,Web应用中的安全问题也日益突出.在Web应用中,针对客户端的威胁有多种,其中恶意代码是主要因素之一.目前的杀毒软件主要通过过滤网页内容,比对恶意代码特征码的方式进行甄别,从而保护用户的安全.
1Web安全威胁
根据Symantec发布的《Symantec Internet security threat report》[2],77%的安全漏洞与Web相关.这些安全漏洞可能导致Web应用遭受各种攻击,如拒绝服务攻击、SQL注入、窃取用户信息等[3].而通过Web传播的恶意代码中,约有24.3%为JS(脚本类型文件)[4].利用网页漏洞或使用其他一些手段向网站页面代码中植入包含有恶意代码的脚本仍然是主要手段,即网页挂马.这里所谓的挂马,并不一定是指木马病毒,而可能是Web方式的渗透攻击代码[5].当访问者浏览被挂马网页时,这些恶意代码会在用户不知情的情况下被执行,或者将用户引导至其他恶意网站,从而导致用户主机被感染.一般情况下这些恶意代码利用各种漏洞,诸如浏览器漏洞、系统漏洞,或其他应用程序的漏洞来执行恶意行为[6].
网页挂马,首先要向网站服务器中的网页文件中植入恶意代码,这样当用户访问网页时才可能会被感染.向网页植入恶意代码的方式有多种,一般不会将有明显特征的恶意代码放在用户直接访问的网页中,这样很容易被杀毒软件或者网站管理员发现.恶意代码需要隐藏自身,一般是通过在网页中插入简短的、看似正常的脚本代码;当用户访问网页时,脚本代码会自动执行,弹出一个隐藏的iframe窗口,通过该iframe窗口进行跳转,跳转至恶意代码宿主页,甚至有时为了更好地隐藏,需要通过多层iframe的跳转.当用户被隐式地跳转到恶意代码宿主页时,真正有杀伤力的恶意代码将会被下载执行,过程如图1所示.
图1 恶意代码引导过程Fig.1 Guiding process of malicious codes
为了提高攻击的成功率,恶意代码有一套免杀机制:通过大小写变换、十六进制编码、Unicode编码、Base64编码、Escape编码等方法对自身进行编码混淆;通过通用(Screnc等)或定制的加密工具(XXTEA等)对恶意代码进行加密;修改恶意代码文件掩码、混淆文件结构、分割至多个文件等[5].如果代码被加密,那么无法直接从字面上判断其是否为恶意的,如果能够将加密之后的代码放在一个安全的环境中运行,查看这段加密代码到底做了什么行为,那就很容易判断出该加密代码是否为恶意代码,这种实验需要通过沙盒来进行[7].
2沙盒
沙盒(Sandbox)在计算机领域主要指一个严格受控的计算环境,程序在其中进行运算时的状态、所访问的资源都受到严格的控制和记录,它是一个安全的运算环境.“沙盒”模型的思想是在信任的环境中运行不信任的代码,这样即使用户不小心引入了不安全的代码,也不会对系统造成破坏[8].在沙盒中,可以直接提供一个实际运行的浏览器镜像,让网络上的程序可以在这个空间里随意地运行,如果运行时的行为表明正在运行的程序是病毒或者恶意程序[9],那么可以模仿恶意代码的行为写出类似的恶意代码明文.如果想要直接对加密后的恶意代码进行解密,难度非常大,而模仿加密的恶意代码行为,给出具有相似恶意行为的代码明文,相对来说可行性较高.
这里使用加州大学圣塔芭芭拉分校(University of California, Santa Barbara, UCSB)的Wepawet作为恶意代码运行的沙盒.Wepawet是一个平台,用于检测和分析基于网络的威胁.Wepawet是技术和方法的组合,用于执行、跟踪、分析和描述通过访问网页而触发的代码的活动.其主要用于2个目的:1)在基于网络的恶意软件检测和分析领域,设计、开发和验证新的研究技术;2)在实践中应用这些技术去应对真正的安全威胁.
3恶意代码
对于客户端来说,针对客户端的恶意代码可以分为2种,一种是具有真正杀伤力的恶意代码,可以直接攻击系统中的相关漏洞;还有一种就是具有跳转功能的引导性恶意代码,将用户最终引向恶意代码宿主站点.这2种恶意代码都会被加密,从而尽可能的逃避检测.对于这些加密的恶意代码都可以使用沙盒进行分析.
3.1.1引导性恶意代码
…………//代码省略