王玉璽, 周文軍, 楊劍
(江蘇第二師范學(xué)院數(shù)學(xué)與信息技術(shù)學(xué)院,江蘇南京 210013)
針對客戶端的惡意代碼分析
王玉璽, 周文軍, 楊劍
(江蘇第二師范學(xué)院數(shù)學(xué)與信息技術(shù)學(xué)院,江蘇南京210013)
摘要:惡意代碼數(shù)量多且變種多樣,通常會通過加密隱藏真實(shí)目的,沙盒可以為惡意代碼提供一個安全的運(yùn)行環(huán)境,在實(shí)驗(yàn)時借助沙盒分析和揭露惡意代碼的行為特征,發(fā)現(xiàn)很多惡意代碼看似不同,實(shí)際為同一惡意代碼的變種.最后對若干惡意代碼樣本進(jìn)行分析,通過特征碼對樣本中的惡意代碼進(jìn)行分類,驗(yàn)證了惡意代碼變種的現(xiàn)象.
關(guān)鍵詞:惡意代碼;沙盒;特征碼
DOI:10.3969/j.issn.1000-1565.2015.02.015
中圖分類號:TP309.5
文獻(xiàn)標(biāo)志碼:志碼: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
基金項(xiàng)目:國家重點(diǎn)實(shí)驗(yàn)室基地開放課題(9011311);江蘇第二師范學(xué)院“十二五”規(guī)劃課題(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-),男,江蘇徐州人,江蘇第二師范學(xué)院講師,主要從事計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)應(yīng)用、方向研究.
E-mail:hackwindy@sina.com
近年來,互聯(lián)網(wǎng)在中國取得了持續(xù)快速的發(fā)展.中國互聯(lián)網(wǎng)信息中心(CNNIC)2014年1月發(fā)布的《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》中指出截止2013年12月底,中國網(wǎng)民規(guī)模達(dá)6.18億,互聯(lián)網(wǎng)普及率45.8%,較2012年底提升了3.7%[1].隨著互聯(lián)網(wǎng)的普及,Web應(yīng)用日益豐富,為人們的工作、生活和學(xué)習(xí)提供了越來越多的便利.但與此同時,Web應(yīng)用中的安全問題也日益突出.在Web應(yīng)用中,針對客戶端的威脅有多種,其中惡意代碼是主要因素之一.目前的殺毒軟件主要通過過濾網(wǎng)頁內(nèi)容,比對惡意代碼特征碼的方式進(jìn)行甄別,從而保護(hù)用戶的安全.
1Web安全威脅
根據(jù)Symantec發(fā)布的《Symantec Internet security threat report》[2],77%的安全漏洞與Web相關(guān).這些安全漏洞可能導(dǎo)致Web應(yīng)用遭受各種攻擊,如拒絕服務(wù)攻擊、SQL注入、竊取用戶信息等[3].而通過Web傳播的惡意代碼中,約有24.3%為JS(腳本類型文件)[4].利用網(wǎng)頁漏洞或使用其他一些手段向網(wǎng)站頁面代碼中植入包含有惡意代碼的腳本仍然是主要手段,即網(wǎng)頁掛馬.這里所謂的掛馬,并不一定是指木馬病毒,而可能是Web方式的滲透攻擊代碼[5].當(dāng)訪問者瀏覽被掛馬網(wǎng)頁時,這些惡意代碼會在用戶不知情的情況下被執(zhí)行,或者將用戶引導(dǎo)至其他惡意網(wǎng)站,從而導(dǎo)致用戶主機(jī)被感染.一般情況下這些惡意代碼利用各種漏洞,諸如瀏覽器漏洞、系統(tǒng)漏洞,或其他應(yīng)用程序的漏洞來執(zhí)行惡意行為[6].
網(wǎng)頁掛馬,首先要向網(wǎng)站服務(wù)器中的網(wǎng)頁文件中植入惡意代碼,這樣當(dāng)用戶訪問網(wǎng)頁時才可能會被感染.向網(wǎng)頁植入惡意代碼的方式有多種,一般不會將有明顯特征的惡意代碼放在用戶直接訪問的網(wǎng)頁中,這樣很容易被殺毒軟件或者網(wǎng)站管理員發(fā)現(xiàn).惡意代碼需要隱藏自身,一般是通過在網(wǎng)頁中插入簡短的、看似正常的腳本代碼;當(dāng)用戶訪問網(wǎng)頁時,腳本代碼會自動執(zhí)行,彈出一個隱藏的iframe窗口,通過該iframe窗口進(jìn)行跳轉(zhuǎn),跳轉(zhuǎn)至惡意代碼宿主頁,甚至有時為了更好地隱藏,需要通過多層iframe的跳轉(zhuǎn).當(dāng)用戶被隱式地跳轉(zhuǎn)到惡意代碼宿主頁時,真正有殺傷力的惡意代碼將會被下載執(zhí)行,過程如圖1所示.
圖1 惡意代碼引導(dǎo)過程Fig.1 Guiding process of malicious codes
為了提高攻擊的成功率,惡意代碼有一套免殺機(jī)制:通過大小寫變換、十六進(jìn)制編碼、Unicode編碼、Base64編碼、Escape編碼等方法對自身進(jìn)行編碼混淆;通過通用(Screnc等)或定制的加密工具(XXTEA等)對惡意代碼進(jìn)行加密;修改惡意代碼文件掩碼、混淆文件結(jié)構(gòu)、分割至多個文件等[5].如果代碼被加密,那么無法直接從字面上判斷其是否為惡意的,如果能夠?qū)⒓用苤蟮拇a放在一個安全的環(huán)境中運(yùn)行,查看這段加密代碼到底做了什么行為,那就很容易判斷出該加密代碼是否為惡意代碼,這種實(shí)驗(yàn)需要通過沙盒來進(jìn)行[7].
2沙盒
沙盒(Sandbox)在計(jì)算機(jī)領(lǐng)域主要指一個嚴(yán)格受控的計(jì)算環(huán)境,程序在其中進(jìn)行運(yùn)算時的狀態(tài)、所訪問的資源都受到嚴(yán)格的控制和記錄,它是一個安全的運(yùn)算環(huán)境.“沙盒”模型的思想是在信任的環(huán)境中運(yùn)行不信任的代碼,這樣即使用戶不小心引入了不安全的代碼,也不會對系統(tǒng)造成破壞[8].在沙盒中,可以直接提供一個實(shí)際運(yùn)行的瀏覽器鏡像,讓網(wǎng)絡(luò)上的程序可以在這個空間里隨意地運(yùn)行,如果運(yùn)行時的行為表明正在運(yùn)行的程序是病毒或者惡意程序[9],那么可以模仿惡意代碼的行為寫出類似的惡意代碼明文.如果想要直接對加密后的惡意代碼進(jìn)行解密,難度非常大,而模仿加密的惡意代碼行為,給出具有相似惡意行為的代碼明文,相對來說可行性較高.
這里使用加州大學(xué)圣塔芭芭拉分校(University of California, Santa Barbara, UCSB)的Wepawet作為惡意代碼運(yùn)行的沙盒.Wepawet是一個平臺,用于檢測和分析基于網(wǎng)絡(luò)的威脅.Wepawet是技術(shù)和方法的組合,用于執(zhí)行、跟蹤、分析和描述通過訪問網(wǎng)頁而觸發(fā)的代碼的活動.其主要用于2個目的:1)在基于網(wǎng)絡(luò)的惡意軟件檢測和分析領(lǐng)域,設(shè)計(jì)、開發(fā)和驗(yàn)證新的研究技術(shù);2)在實(shí)踐中應(yīng)用這些技術(shù)去應(yīng)對真正的安全威脅.
3惡意代碼
對于客戶端來說,針對客戶端的惡意代碼可以分為2種,一種是具有真正殺傷力的惡意代碼,可以直接攻擊系統(tǒng)中的相關(guān)漏洞;還有一種就是具有跳轉(zhuǎn)功能的引導(dǎo)性惡意代碼,將用戶最終引向惡意代碼宿主站點(diǎn).這2種惡意代碼都會被加密,從而盡可能的逃避檢測.對于這些加密的惡意代碼都可以使用沙盒進(jìn)行分析.
3.1.1引導(dǎo)性惡意代碼
…………//代碼省略