惡意程式分析 / 惡意程式行為分析 (Malware Analysis / Malware Behavioral Analysis)


順便歡慶一下粉絲團居然也能突破 500 個 ....

​Malware Analysis Network in Taiwan, M i T, Man in Taiwan (抬丸郎)

嗯 ! 惡意程式分析 或者 再清楚一點稱為 惡意程式行為分析 .... 這東西跟我沒關係 ? 
以前我不知道,但從2010開始多虧我的 Advisor 肯讓我嘗試這方面研究,當然包括 老李 ... 
如果在這行鬼混了好一陣子,或多或少加減都聽過或看過下方這兩個網址以及 Logo 吧 !


Taiwan Malware Analysis Net Plus | TWMAN Plus (臺灣惡意程式分析網 | 抬丸郎)


當然啦,呼 ... 這一篇並不是要講自己的東西,畢竟比起到天龍國流浪後,認識的一些資安界的一大票神人級的外星人們技術面實在是不強的我也就不班門弄斧了因為有些事不會就是不會,很弱就是很弱,就不要想學人四處狂打嘴砲了 ... 但看在我勉強算是個剛好對電腦充滿極濃厚的熱情以及碰巧栽入了這個無底洞,再加上想說難得之前聊到了抬丸郎這名字的由來 (見下方或全文連結),所以姑且決定好好的整理一下我自己所瞭解的惡意程式分析 (我想我不懂的當然還非常多) ... 特別是針對這幾點:Goals, Types & Tools;至於像是啥逆向工程等的高深技巧就讓我再花點時間好好研究一下吧。對了 ... 這邊就不解釋什麼是惡意程式了 .... 白話一點講就是會對你的電腦造成麻煩的就對了 ! 維基百科有很詳細說明 ... 如果你很想知道的話 ! Orz

講個小故事,很久以前,惡意程式行為分析以虛擬機器為主,唯一跑在實體機器的就是Truman (真男人)這自由軟體(Open Source),突然間我意外整合出新工具,因為想要有個響噹噹的名字,所以英文就叫 TWMAN,中文則是因為朋友的 MSN 剛好寫著愛抬丸,就這樣天外飛來一筆取名抬丸郎 … 然後朋友還無償設計了簡單易懂的 Logo (右邊是早期剛做好時,左邊則是我去英國流浪後) … Logo所要陳述的就是想找出惡意程式(駭客)的行為 … 當然革命尚未完成, 只是誰也沒料到一轉眼就這樣老了5歲,但至少我還是硬從實體單機單OS升級為實體加虛擬的多機多OS … 最後瞭解了來龍去脈,千萬不要跟我說看不出來那是放大鏡 …

首先呢 ... 直接從 Google 大神試試到底可以找到什麼吧


Malware Analysis (約有 3,650,000 項結果) | Malware Behavioral Analysis (約有 119,000 項結果)

嗯 ~ 意外發現好像還挺容易搜尋到自己這樣 ~ xDDDD ~ 不過重點真的不是要自肥 !

 所以繼續講重點 ..... 惡意程式分析目標就是:1. 怎樣建立一個環境來瞭解惡意程式以便保護組織內的網路;2. 知道是惡意程式以後下一個動作是啥 ?接著講講惡意程式分析的種類:1. 靜態分析 (就是大家講的源碼分析);2. 動態分析 (也就是行為分析)。當然我一向不是很擅長寫程式,所以就不討論源碼分析這個技術了! xDDDDDD ... 

既然要講惡意程式行為分析,不可避免的當然就是工具啦 ... 不過這邊也不在廣大的眾多網路神人級外星人們面前多加解釋人工分析 (我想應該某些層面可以用數位鑑識來解釋吧) ... ,特別是還有更神的技術:加解殼 (刪除攻擊系統後的日誌來隱藏自己或者是幫自己加密無法透過特徵碼被偵測) 當你 Google 時你一定會發現這幾個朗朗上口的自動化的惡意程式行為分析工具 (嗯,諸如商業工具或者是線上分析的工具等這種就只挑幾個不多加代打廣告這樣 ... 應該說網路上也都查得到相關啦,等有空倒是可以慢慢補上):

商業工具
1. GFI CWSandboxhttp://www.gfi.com
據說這是惡意程式分析的商業軟體中最多人使用的,印像中記得我好像也是從這個入門的,還花了點時間修改流程 ! 而它的功能可說是有一定完整度,缺點就是樹大招風,難免有針對它的反制措施 ! xD .... 話說回來官網上好像找不到這產品了耶 !!! Orz

2. FireEye Malware Analysis System (MAS)http://www.fireeye.com/products-and-solutions/forensic-analysis.html
這個產品我倒沒使用過 ... 如果有人有經驗還懇請不吝分享;不過這家常會發表很多文章倒是可以讀一下 !

3. IBM Security AppScan Mobile Analyzer (For Android) : https://appscan.bluemix.net/mobileAnalyzer/SCX/scxHome

這個產品看來試用也有點搞工 ... 所以不如就直接看一下展示比較快 !




線上分析

不用在自己的電腦執行可疑檔案進行分析,檢測報告中會列出執行後所帶來的檔案、記憶體、登錄檔或其他系統設定與網路流量的變化,看出這些可疑程式到底在玩什麼花樣。有機會可以補上各家對於某些病毒的偵測能力


這個東西我想應該是不需要解釋,因為它的功能實在是太強大 ... xD

2.ThreatExpert: http://www.threatexpert.com/submit.aspx (看起來已經掛了)
透過內建的ATAS機制進行檔案型為分析與病毒檢測,完成後會再提供一個詳盡的檢測報告

3. Document Analyzerhttp://www.document-analyzer.net (上傳後沒反應)
這一款是意外找到的 ... 可用 Mail 通知,只是分析需要申請認證碼 ... Orz

至於這個則是大名鼎鼎的 SRI 下的其中一個專案 ... 一天限制上傳 10 個 ... 可用 Mail 通知,也會自己預先產生網址供查閱 ... 但是 Submission time: Sat Jul 5 13:06:30 2014 ... Estimated processing time: 1030 minutes ... 這是那招我就不瞭了 !

5. COMODOhttp://camas.comodo.com
速度頗快的 ... 資料也算是挺完整的 (範例: http://goo.gl/ew0oDP)

6. Anubis / Andrubis (For Android Static / Dynamic )https://anubis.iseclab.org

全名為ANalyzing Unknown BInarieS,又有影射為埃及死神之意(另釋冥界之王)。xDDDD
這個服務可以掃檔案也可以掃網址,看網頁發現還有 Android App 的掃描 ... 算是較特別的地方 ( 範例: http://goo.gl/5tB9wJ) ... 更強大的是這是一所大學實驗室所開發出來的 ... 然後也開了一家公司這樣

7. VirusTotal (For PC / Android )https://www.virustotal.com/zh-tw/

當然啦,這個更是不能錯過的一個線上掃描分析服務,而且我自己也寫了篇教學供參 " 整合 VirusTotal API 提供未知樣本做病毒檢測提高惡意程式知識庫精確度 " 不過,VT 雖然很多人愛用,但是很常碰到的是一開始全部廠商都說是安全,隔了一陣子後卻慢慢變多,或者是明明就已經很多人知道是有問題的,但卻仍舊有些大廠的引擎還說是安全的這樣 ! XD
範例: https://goo.gl/0wknVv

8. Malwrhttps://malwr.com

至於這個 ... 就是下方的 強大的 Cuckoo 線上分析版 ... 不知道的話就真的白混了

9. CopperDroid (For Android Dynamic)http://copperdroid.isg.rhul.ac.uk

嗯 ~ 查了一下是在 security 頗有名氣的大學所做的

10. NVISO ApkScan (For Android 
Static / Dynamic )https://apkscan.nviso.be
範例: https://apkscan.nviso.be/report/show/db3007f01056b70aac3920b628a86f76
靜態方面檢視了像是權限以及在 VT 上的判斷;動態所呈現的資訊倒是挺豐富的,可以玩玩看

11. AVC UnDroid (For Android 
Static )http://www.av-comparatives.org/avc-analyzer/
試用了一下,感覺是藉由 Androguard 來列出各個細部資訊。

12. MobiSec Eacus (For Android 
Static / Dynamic )http://www.mobiseclab.org
範例: http://goo.gl/onmMb7
靜態方面做了這幾個 Re-pack Check, ADs Check, Obfuscator Check, Virus DB Check, Embedded APK Check,算是蠻特別的一種判斷方式;動態方面則是沒測成功。

13. Sandroid (For Android 
Static / Dynamic )http://sanddroid.xjtu.edu.cn
這個應該也就不需多加說明了,相信很多人都聽過這個,雖然是對岸的大學做的,但資訊還挺豐富的,只是會讓人感覺有點太多,需要花點時間瞭解就是 !

免費軟體

就是讓你可以自己建個分析系統來玩 ! @_@ ... 這邊要注意的是又可再細分為靜/動態還有 PC 跟 手機 的這樣


1. Cuckoohttp://www.cuckoosandbox.org
這東西我想也不用多加解釋,如果你想玩惡意程式分析,但是不知道建議還是考慮一下不然真的是白混了啊 ....

2. REMnux: https://sourceforge.net/projects/remnux/
官網下載不是系統安裝光碟而是 an OVF/OVA virtual appliance, a VMware-specific virtual appliance and an ISO image of a Live CD ... 其中裡面包了非常多種的工具 ... 值得測試的是 REMnux has been updated to version 5 in May 2014 ... 勢必是個不錯的工具 (找時間試試) ...

3. Malheur: http://www.mlsec.org/malheur/
試著用 CentOS 6.5 x86_64 裝碰上了 libconfig 版本太低要升級的問題 ... 不過官網上的這段說明,看起來是個很有趣的工具 (或許表示報表產出來要有一定格式?):Malheur builds on the concept of dynamic analysis: Malware binaries are collected in the wild and executed in a sandbox, where their behavior is monitored during run-time. The execution of each malware binary results in a report of recorded behavior. Malheur analyzes these reports for discovery and discrimination of malware classes using machine learning.

4. Zero Winehttp://sourceforge.net/projects/zerowine/
很久以前有安裝來玩過 ... 這邊有對岸寫的說明,挺清楚的:http://netsecurity.51cto.com/art/200902/108189.htm ... 應該算的上是資深分析工具了

5. Minibishttp://cert.at/downloads/software/minibis_en.html

6. Busterhttp://bsa.isoftware.nl

這個的資料不多 ... 但卻意外找到一段 YouTube .... :D



Android 靜態分析
4. Droid Intent Data Flow Analysis for Information Leakage (Didfail): https://www.cert.org/secure-coding/tools/didfail.cfm
DidFail:你的手機信息泄漏了么
5. FlowDroid: http://sseblog.ec-spride.de/tools/flowdroid/
找到一篇蠻詳細的說明: FlowDroid: 精确的上下文,流,field, 对象敏感和lifecycle感知的Taint analysis,不過不管是 FlowDroid 或者是其它 TaintDroid 之類的工具,最大的問題我想在於到底傳了什麼出去吧 ? 總不能看到黑影就開槍吧?
6. SmaliSCA - Smali Static Code Analysis: https://github.com/dorneanu/smalisca

7. CFGScanDroid - Scans and compares CFG against CFG of malicious applications: https://github.com/douggard/CFGScanDroid

8. Madrolyzer - extracts actionable data like C&C, phone number etc.: https://github.com/maldroid/maldrolyzer

關於 Android 是現在很夯的一個平台,也陸續冒出許多的工具,因為幾乎都是在 github 上面,所以也就不多加解說了 .... 另外還有一些 reversing 的工具像是 Androguard, Smali, Baksmali, APKtool, JD-GUI 等這些也就不多加介紹了,那會寫不完啊 ... 請自己找大神幫忙 ! 最後 .... 還是在這邊補上一些相關的說明文

Part 1 – Reverse engineering using Androguard
Part 2 – Deep analysis using Androguard tools
Part 3 – Reverse engineering using other tools
Part 4 – Online tools for Reverse Engineering and Malware Analysis
Part 5 – Reverse Engineering using Virtual Machine


Android 動態分析


1. CuckooDroid - Android extension for Cuckoo sandbox: https://github.com/idanr1986/cuckoo-droid 這個一看名字也知道吧 ?

2. Droidbox: https://code.google.com/p/droidbox/ 這個也是非常有名的工具

3. Taintdroid - requires AOSP compilation: http://appanalysis.org

4. Cobradroid - custom image for malware analysis: https://github.com/jakev/CobraDroidBeta/

8. Android tamer: https://androidtamer.com

11. StaDynA - available upon request: https://github.com/zyrikby/StaDynA


最後,可以看一下這一篇 ... Free Toolkits for Automating Malware ... 算是挺詳細的 !

另外也找到一個介紹:http://malwaretips.com/threads/malware-analysis-online-services.5974/


最後看完上面可發現有一個最大的共通點 .... 那就是上述各類工具講的都是在虛擬機上運作,這是因為虛擬機具備了可快速回復至原始乾淨狀態進行下一次分析以及容易佈署的優點;關於怎樣在實體的機器上運行,過去拜請了 Google 大神許久,唯一找到的便是 Truman 了,而這個也是促使我自己更新了 Kernel 然後整合 Clonezilla 做出 TWMAN 的故事了 ... 當然,現在查到 TWMAN 都是 NCHC 了 ... 我想很多人也都知道為啥會這樣,因為我在那服了2年11個月的研發替代役 ( 痛痛的人生-我在國家高速網路與計算中心的那1075天及離開後的730天 ) ... 不過印像中好像是我自己一個人獨力整合再加上 Jazz 跟 Figaro 等大師不吝指點的協助下才做出來的 ... 現在看了一下除了 TonTon 這名字被拿掉好像內容完封不動耶 ( 有圖有證據啦 )


據說會被告侵犯商標? ... 圖跟內容整個完全不一樣,加上是 Open Source 且我算是原創 ... 我是不懂為啥我沒啥再計較卻被說成是侵犯智財權啦 (沒專利是要怎說我侵犯智財權啊?再說跟申請到的商標一樣嗎?) ... xD ... 但也因此促使我整個重新打造修正架構 ... 畢竟我想應該沒人會比我還熟悉當初整個流程設計過程了 ... 很大的一個問題點便是沒辦法快速的還原 ... 以及沒辦法較智慧的控制 Client 分析端 ... 還有只能在 WINDOWS XP 上分析執行檔 以及 必須是 1 對 1 的 Client-Server 架構 ....


最後當然還有我後來到英國流浪以及到最近半年 ... 而那就又是另外一個故事啦 ....


總之這一篇主要是採文獻回顧的 fu 先來自己做一下整理,先瞭解一下各方的優缺點,這樣對自己後續的論文也比較有點幫助 ! 那看在自己花了那麼長的時間加減自肥廣告推銷一下 !!!!

不彷讀一下我自己陸續累積發表的論文和我自己建置的環境吧 !!!!

Book Chapter (專書論文)

H. D. Huang,  G. Acampora, V. Loia, C. S. Lee, H. Hagras, M. H. Wang, H. Y. Kao, and J. G. Chang, “Fuzzy markup language for malware behavioral analysis,” in G. Acampora, C. S. Lee, M. H. Wang, and V. Loia (editors), On the Power of Fuzzy Markup Language, Springer-Verlag, Germany, 2012, pp. 113-131.

International Journal Papers ( 國際期刊論文 )

H. D. Huang, C. S. Lee, M. H. Wang, and  H. Y. Kao, "IT2FS-based ontology with soft-computing mechanism for malware behavior analysis," Soft Computing, vol. 18, no. 2, pp. 267-284, 2014. 

International Conference Papers ( 國際會議論文 )

H. D. Huang, C. S. Lee, M. H. Wang, and H. Y. Kao, "IT2FLS-based Malware Analysis Mechanism: Malware Analysis Network in Taiwan (MiT)" in Proceeding of the 2013 IEEE International Conference on Systems, Man, and Cybernetics (IEEE SMC 2013), Manchester, United-Kingdom, Oct. 13-16, 2013.

H. D. Huang,   C. S. Lee, H. Hagras, and H. Y. Kao, "TWMAN+:A Type-2 Fuzzy Ontology Model for Malware Behavior Analysis," in Proceeding of  the 2012 IEEE International Conference on Systems, Man, and Cybernetics (IEEE SMC 2012), COEX, Seoul, Korea, Oct. 14-17, 2012.

H. D. Huang, G. Acampora, V. Loia,  C. S. Lee, and H. Y. Kao  "Applying FML and Fuzzy Ontologies to Malware Behavioral Analysis," in Proceeding of the 2011 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2011), Taipei, Taiwan, June. 27-30, 2011.

H. D. Huang,  C. S. Lee, H. Y. Kao  Y. L. Tsai, and J. G. Chang, "Malware Behavioral Analysis System: TWMAN," in Proceeding of the 2011 IEEE Symposium on Computational Intelligence for Intelligent Agent (IEEE SSCI 2011), Paris, France, Apr. 11-15, 2011.

H. D. Huang, T. Y. Chuang, Y. L. Tsai, and  C. S. Lee, "Ontology-based intelligent system for malware behavioral analysis," in Proceeding of the 2010 IEEE World Congress on Computational Intelligence (WCCI 2010), Barcelona, Spain, Jul. 18-23, 2010.

Local Conference Papers ( 國內會議論文 ) 


黃獻德, 李健興, 莊宗嚴, 蔡一郎, 邱敏乘, "基於知識本體之惡意程式分析平台," 2009全國計算機會議(NCS2009), 台北, 2009.


黃獻德, 蔡一郎, 邱敏乘, 李健興, 莊宗嚴, "知識本體於惡意程式行為分析之應用," 2009年臺灣網際網路研討會 (TANET2009), 彰化, 2009.

看完上面會發現都跟所謂的 知識本體 / Ontology (OWL) / Fuzzy Markup Language (FML) 再加上 Fuzzy / Type-2 Fuzzy Logic 等扯上關係 ... 關於這些我在想可能要再花點時間好好的再整理一篇個人對於這方面多年來的瞭解了 ....