王玉璽, 周文軍, 楊劍
(江蘇第二師范學院數學與信息技術學院,江蘇南京 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引導性惡意代碼
…………//代碼省略