• 沒有找到結果。

惡意軟體弱點型態整理與探討結果

在探討完一些針對惡意軟體做測試以及內部加密演算法的文獻之後,接著收 集已知弱點的惡意軟體,並對其做歸納整理。

目前已經有許多網站收集各個軟體的弱點,例如 Open Source Vulnerability Database[39]、National Vulnerability Database[40]提供給其他人分析,其中也 有屬於惡意軟體的弱點。Exploit Database[30]中同樣也有收錄一些惡意軟體的 exploit。而 Open Malware[41]、Malware Domain List[42]則分別存有許多惡意 軟體的樣本以及網站。至於一些文獻、研究中也有提及惡意軟體的漏洞[5, 6, 36-38],因此本研究先從這些地方整理三十五個弱點,分別屬於十七種不同類型 的惡意軟體以進行分析。

為了瞭解不同種類的惡意軟體通常擁有什麼弱點,這裡將惡意軟體型態分為 Server 端以及 Client 端。Server 端即為 botnet C&C server,而 client 端則為一 般存於受感染電腦中的 bot 或是病毒以及視窗程式。首先將有漏洞的惡意軟體以 CWE[43]所分類的弱點型態來做一個整理。

Botnet 最早之前是以 IRC[44]類型為主,後來才衍生出經由 HTTP 的方式,

發展出網頁介面的類型,藉由 HTTP 的 80 PORT 也比較不容易被防火牆阻止,

而也因為利用網頁的緣故而使其可能會有 XSS 以及 SQL injection 的漏洞。

23

表 3. 惡意軟體弱點型態整理

弱點型態 發生原因 惡意軟體名稱 惡意軟體型

Overflow 由 C&C message 發生,當

bot 從 message 中取出資料 時,因為沒有做額外判斷讓 取得的數值遠大於資料結構 本身最大值。

Cutwail Bot、

Zbot、

Sasser Worm、

Worm Web Server、

Poison Ivy、

Fakem RAT

Client、

Server

Null Reference 由 C&C message 發生,bot 因為沒有做額外判斷而會存 取到 Null Reference,例如 使用 RtlAllocateHeap 時超 過可用記憶體的最大空間。

Gheg Bot、

Zbot

Client

Infinite Loop 在使用 C&C message 中的 數值當作迴圈的間隔時,若

Zeus botnet、

Corpse

SQL injection SQL injection VOlk、

HerpesNet、

Dirt Jumper DDoS Toolkit、

BlackEnergy、

Corpse、

Zunkerbot

Server

Access control 藉由軟體密碼被得知而能直 接控制這個軟體或是系統。

Poison Ivy Server

24

Code injection 執行經由攻擊者所上傳檔案 中的惡意指令。

PHP IRC Bot、

Zeus botnet

Server

將所蒐集的資訊整理後,大致可以將弱點型態分為七項:overflow、null reference、infinite loop、XSS、SQL injection、access control 以及 code injection。

由表 1 可知,bot 所潛在的弱點幾乎是與 C&C message 有關,也就是說只要能 夠知道目標 bot 的 C&C message 格式,就能嘗試對 bot 做攻擊。而本研究所找 到的 C&C server 是由 PHP 所撰寫,其中也存在著許多 XSS 以及 SQL injection 的漏洞。

接著以惡意軟體所被找出漏洞以及發佈年代還有規模來做分類,由下表可知 這些惡意軟體都有一至二種類型的漏洞,由本章節開頭所述,由於現金 botnet 都是使用 HTTP base 的架構,因此 botnet 的 C&C server 中常可以找出 XSS 以 及 SQL injection 的弱點。而在規模部分除了較有名的 Zeus 以及 Cutwail 之外,

其餘能夠找到的都座落在數萬左右,有些並沒有被找出弱點的 botnet 會在後續 稍微做個整理。

25

zBot(ZeuS botnet) Overflow Infinite Loop Null

Gheg bot NullReferenc

e

2010 10 萬

Sasser Worm Overflow 2004 數萬至數十萬

Worm Web Server Overflow 2000 數萬至數十萬

Zunkerbot botnet SQL injection 2011 數萬

BlackEnergy botnet SQL injection 2011 數千至數萬 HerpesNet botnet SQL injection 2012 數千

Poison Ivy Overflow Access

SQL injection

2012 2012

-- Corpse botnet XSS

SQL injection

2011 2011

--

Adrenalin botnet XSS 2011 --

EOF-0×01 botnet XSS 2011 --

Dirt Jumper DDoS Toolkit

SQL injection 2012 --

PHP IRC bot Code

injection

2012 --

26

接著整理這些弱點所對應的惡意軟體以及其 OSVDB、Exploit DB 的 ID,還 有其回報的年份。 Sasser Worm OSVDB-6197 2004 Worm Web Server OSVDB-58524 2000 Poison Ivy OSVDB-83774 EDB-1961

3

XSS VOlk botnet OSVDB-86832 OSVDB-86833 Zeus botnet OSVDB-82465

OSVDB-80275 Adrenalin botnet OSVDB-80278 2011 EOF-0×01 botnet OSVDB-80272

OSVDB-80273

VOlk botnet OSVDB-86830 OSVDB-86831

EDB-2189 1*

2012 2012 HerpesNet botnet OSVDB-82464 2012 Dirt Jumper DDoS

Toolkit Corpse botnet OSVDB-80279

OSVDB-80271

2011 2011

27

Zunkerbot botnet OSVDB-80277 2011 Access

Control

Poison Ivy OSVDB-83681 2012

Code Injection

PHP IRC Bot OSVDB-84913 EDB-2016 8 與 C&C server 做溝通,因此中間傳遞的訊息 bot 處理時可能會產生一些 overflow、

null reference 的狀況。

表 6、7. 弱點型態、回報年份數量

接著以回報的年份來看,2012、2011 年所找到的弱點主要都以 botnet C&C server 上為主,因此數量遽增,而 2010 主要為[5]這篇文獻中回報的 bot 弱點。

Overflow Null… Infinite Loop XSS SQLi Access Code

Type

28

Botnet 災情主要是濫發垃圾郵件以及竊取銀行帳戶等等的個人資訊,在本研 究所蒐集屬於前者的惡意軟體有 Cutwail、Gheg、Zunker Botnet、BlackEnergy Botnet,其中 Cutwail、Gheg 在 2010 的十大 spam botnets 中[19]排名分別為第 三以及第十,Cutwail 能夠在一天中發送大約 190 億個垃圾郵件訊息,參與的 bots 數量則有 100 萬,目前也出現在 Android 系統上[46]。至於 Gheg 一天則是能夠 散發 4 億封垃圾郵件,參與的 bots 數量則是 6 萬。

後者則有 ZeuS、VOlk、Zunker、BlackEnergy botnet,ZeuS 以及 vOlk 這 類的 botnet 以竊取使用者銀行帳戶資訊為目標,ZeuS botnet[8]為目前最為龐大 的 botnet 之一,根據統計[18, 20]在 2011 年從歐洲的銀行中竊取了 4700 萬美元,

而微軟也公佈了竊取超過一億美元的兩個 ZeuS botnets,受到感染的電腦大約 有 1300 萬部。FBI[47]也有提及感染 ZeuS malware 的受害者大多位於美國。而 vOlk botnet[6]主要影響區域在拉丁美洲,當然也有些遍佈在中國。至於 Dirt Jumper DDoS Toolkit 在 2012 年時也被發現了一些用來關閉整個 C&C server 的漏洞[48],而這漏洞可以追溯到 2008 時的版本。

29

Pushdo/Cutwail 在 2010 時被評為第三大的 spam botnet,前者為 downloader,

在感染之後會下載後者,接著由它來發送垃圾訊息、郵件。在 2013 年時有報導 指出目前感染的數量仍在 100 萬左右,而且也在 Android 系統上發現其蹤跡。

ZeuS、Koopface 以及 TidServ 在 2009 年分別為美國 10 大 botnet 的前三名,

當時 ZeuS 在美國感染的系統數量有 360 萬,直至現在數量更加的龐大,

Conficker[50]則是微軟修補 Windows 的 MS08-067 安全性漏洞主要防堵的惡意 軟體。而另外兩個由於並沒有相關的弱點訊息,因此並沒有做深入的探討。

由此得知遭受 botnet 所危害的總系統數量相當龐大,即便這些系統並非同一 時間都會在線上,有些可能都是不再使用的個體,或者同時成為兩個 botnet 的 一員,但是仍可以看的出來災害很大,若是能夠藉著這些已被找到的漏洞進行攻 擊,便可能將整個 botnet 瓦解,或是從旁觀察它們的一舉一動,觀察整個被危 害的系統的資訊,例如屬於何種作業系統、所在的區域以及在何種狀況下中毒,

這些資訊都可以用來協助改善系統的安全性,藉此降低危害。

當然這些漏洞並非永遠存在,像是 ZeuS botnet 其中一個漏洞[37]已經被修 正,因此開發一個自動化的測試工具來協助找尋新的漏洞,無論是對付 botnet 或是其他惡意程式都是很有用的,當然也需要考量該對這些惡意軟體做出什麼行 動,像是直接摧毀或是觀察來收集資訊。

30

最後本研究嘗試以實驗室做提出的 CRAX [51]來嘗試重現上述整理的惡意軟 體已知漏洞,CRAXweb 目前主要是以 XSS 以及 SQL injection 為主要目標,因 此挑選 ZeuS、vOlk 以及 blackenergy C&C server 來做測試。至於 Bot,由[5]

所述,必須要架設一個偽造的 Server 與其溝通,因此只選用 Poison Ivy 做為測

ZeuS C&C server

- 4 Code injection -

vOlk C&C server

1(*2) 5 SQL injection -

Blackenergy C&C server

3 2 SQL injection -

由於本研究所找到屬於 ZeuS C&C server 漏洞,其中兩個為舊版本,目前無 法取得,而另外的與 I/O 有關,目前實驗室的工具並沒有處理這部分的判斷,因 此並沒有找到 ZeuS 的漏洞。

在 volk C&C server 部分,所收集的漏洞有五個,其中包括了兩個 SQL injection 以及三個 XSS,測試的結果目前有發現一個疑似是漏洞的部分,只是 還未能產生出結果。至於原有的漏洞經過追蹤原始碼後,確定其中兩個漏洞已被 修復。

接著在 BlackEnergy C&C server 上,雖然表 5 標示所蒐集的漏洞為兩個,

但其中一個根據在 OSVDB 上的說明,實際上是多個 SQL injection,而實驗室 開發的工具在這個 server 上則找出了三個漏洞。

31 的檢查,botnet 的 C&C server 也因為架構問題而難以瓦解。雖然目前以防禦角 度的方法例如防毒軟體等能夠減少危害,但時常因為惡意軟體版本更動而使其失 效,所謂治標不治本,因此本研究以直接針對惡意軟體進行測試與攻擊為目的,

包括背後的 botnet C&C server,收集並了解這方面的研究。

所以本研究整理了以下幾個內容:

1. 加密演算法的辨認以及處理

由前述所提,一般分析測試軟體會因為加密演算法的關係而沒有辦法有效的 對惡意軟體產生測試資料,因此在探討了目前有針對惡意軟體這類問題的文 獻後,了解他們大多是利用 heuristic function 去判斷惡意軟體執行時的指令 以及資料,然後辨認是哪種加密演算法。 Exploit 藉此產生一些原本沒有的行為,例如 botnet C&C server 的 Exploit 便能使之關閉整個 botnet,因此蒐集這些漏洞並分析其發生原因。

相關文件