• 沒有找到結果。

行動無線網路安全與惡意程式行為分析跨國產學合作計畫 (國際合作)

N/A
N/A
Protected

Academic year: 2021

Share "行動無線網路安全與惡意程式行為分析跨國產學合作計畫 (國際合作)"

Copied!
131
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

行動無線網路安全與惡意程式行為分析跨國產學合作計畫

(國際合作)

研究成果報告(完整版)

計 畫 類 別 : 個別型 計 畫 編 號 : NSC 98-2218-E-009-020- 執 行 期 間 : 98 年 10 月 01 日至 99 年 10 月 31 日 執 行 單 位 : 國立交通大學資訊工程學系(所) 計 畫 主 持 人 : 曾文貴 共 同 主 持 人 : 謝續平、黃育綸 計畫參與人員: 碩士級-專任助理人員:張智凱 碩士級-專任助理人員:陳柏愷 碩士班研究生-兼任助理人員:王嘉偉 碩士班研究生-兼任助理人員:江孟寰 碩士班研究生-兼任助理人員:鄭昀旻 碩士班研究生-兼任助理人員:鐘凱任 碩士班研究生-兼任助理人員:盧彥銘 碩士班研究生-兼任助理人員:顏豪緯 碩士班研究生-兼任助理人員:彭博群 碩士班研究生-兼任助理人員:黃錦銘 碩士班研究生-兼任助理人員:葉書宏 碩士班研究生-兼任助理人員:鄭偉強 碩士班研究生-兼任助理人員:許鴻生 碩士班研究生-兼任助理人員:黃奕奇 碩士班研究生-兼任助理人員:賴鈺婷 碩士班研究生-兼任助理人員:李勇叡 碩士班研究生-兼任助理人員:黃晉澤 碩士班研究生-兼任助理人員:陳玟媗 碩士班研究生-兼任助理人員:吳思穎 大專生-兼任助理人員:那西格 博士班研究生-兼任助理人員:沈宣佐 博士班研究生-兼任助理人員:陳毅睿 博士班研究生-兼任助理人員:蔡欣宜

(2)

博士班研究生-兼任助理人員:陳柏廷 報 告 附 件 : 國外研究心得報告 出席國際會議研究心得報告及發表論文 國際合作計畫研究心得報告 處 理 方 式 : 本計畫可公開查詢

中 華 民 國 100 年 01 月 26 日

(3)

I

行政院國家科學委員會補助專題研究計畫

行政院國家科學委員會補助專題研究計畫

行政院國家科學委員會補助專題研究計畫

行政院國家科學委員會補助專題研究計畫

■成果報告

成果報告

成果報告

成果報告

□期中進度報告

期中進度報告

期中進度報告

期中進度報告

行動無線網路安全與惡意程式行為分析跨國產學合作計畫

(國際合作)

計畫類別:■個別型計畫 □整合型計畫

計畫編號:NSC 98-2218-E-009-020-

執行期間: 98 年 10 月 01 日 至 99 年 10 月 31 日

執行機構及系所:國立交通大學資訊工程學系(所)

計畫主持人:曾文貴

共同主持人:謝續平、黃育綸

成果報告類型(依經費核定清單規定繳交):□精簡報告 ■完整報告

本計畫除繳交成果報告外,另須繳交以下出國心得報告:

□赴國外出差或研習心得報告

□赴大陸地區出差或研習心得報告

□出席國際學術會議心得報告

■國際合作研究計畫國外研究報告

處理方式:除列管計畫及下列情形者外,得立即公開查詢

□涉及專利或其他智慧財產權,□一年□二年後可公開查詢

中 華 民 國 100 年 1 月 5 日

(4)

II

摘 要

隨著智慧型手機裝置(Smart Phone)與行動小筆電(Netbook)的發展,以及無線網路 與行動上網的普及,行動資訊服務將是未來資訊技術的發展趨勢。有鑑於此,本計畫提出一 套完善的行動平台安全檢測方案,並選派優秀學生赴UC Berkeley交流研究達四人次,在無線 異質網路模擬、惡意程式分析、程式漏洞檢測、與行動平台安全管理機制等研究主題上均提 出論文及雛型系統等具體研究成果。相關研究成果亦已與中華電信及友訊科技等業界知名廠 商簽訂三項產學合作計畫。 本計畫已完成無線異質網路模擬平台的開發,可支援涵蓋16節點的網路實驗。使用者可 在此無線異質網路模擬平台上,進行異質性無線網路系統的安全測試,以模擬可能的異質網 路拓樸與可能存在的攻擊手法。本系統亦與UC Berkeley合作,並已與其開發之有線網路測試 平台DETER完成相容性整合。 惡 意 程 式 除 了 較 常 被 隱 藏 在 執 行 檔 內 之 外 , 一 般 常 見 的 文 書 檔 案 如 MS Word 、 MS PowerPoint、PDF等亦有可能成為散播的媒介。針對此研究議題,本計畫發展出一套惡意檔案 文件分析系統。本系統利用虛擬CPU及記憶體動態分析技術,可偵測出目標文件是否有夾帶惡 意程式或不當獲取系統資訊的意圖。同時本系統亦可過濾各類不正常字串,並找出該惡意程 式利用何種手法來達到攻擊目的。其論文亦榮獲CISC2010之Best Student Paper Award肯定。

針對程式漏洞檢測之研究,本計畫對知名自由軟體 Catchconv 進行改良,已開發完成的 程式碼迴圈處理機制能偵測重複且可省略的動作,透過將計算能量集中在不重複的分析上增 加其執行效率。 此外,於行動平台的安全管理機制之研究,本計畫已完成一個解決方案,其中包含一套 入侵偵測系統以及一套安全雲端儲存系統。於入侵偵測系統,本計畫成功將Snort移植到 Android行動平台,此為Android上的第一套入侵偵測系統,並已針對執行速度、耗電量、與 封包抓取率等方面進行最佳化,以確保Snort於Android上執行仍可保有高度的可用性。本計 畫亦設計出一套安全雲端儲存系統,將使用者資料加密後利用Decentralized Erasure Code 的方式分散在雲端儲存上,以達到高度安全性及可靠性,雛型系統已完成,並已有論文產出。 除以上具體研發成果之外,本計畫亦遵循Light-Weight CMMI標準提出專案計畫書,同 時配合由中研院所推動之「自由軟體產業推動計畫」,於OpenFoundry網站建立三個專案並開 放兩項雛型系統的原始碼。可望能將安全技術研發與自由軟體社群連結,並引入自由軟體社 群的研發能量以吸引產業界投入的意願、厚植國內資訊安全技術的研發潛力。 關鍵詞 關鍵詞 關鍵詞 關鍵詞 雲端安全、行動資安、異質無線網路、惡意程式分析、程式漏洞檢測

(5)

III

Abstract

Wireless and mobile networks are widely used in modern life. With the development of smart phones and netbooks, providing mobile information services has become a trend of internet

technology. This situation, however, could cause security problems.

This project proposes a security inspecting solution for these problems. In this project, four outstanding students were sent to UC Berkeley for months for joint research projects focusing on heterogeneous networks, malware analysis, program defect detection, and the security management of mobile platforms. Based on the research findings, this project also developed prototype systems with related paper published. The project also contributed to various cooperation projects with some well-known companies, such as Chunghwa Telecom and D-Link.

This project completed the development of a heterogeneous network testbed, which can support the experiments with up to 16 nodes. Users can simulate heterogeneous network topologies with the possible network attacks. This testbed can also be integrated with DETER, which is developed by UC Berkeley.

Malicious program codes can not only be hidden in executable files but document files such as Microsoft Word, PowerPoint, or PDF files. For this research area, this project developed an analyzer for the malicious document files. Using virtual CPU and dynamic memory analyzing technology, this system can detect if the target file contains malicious codes or tries to obtain sensitive system information. Meanwhile, this system can also detect various abnormal strings to determine the technics used by the malwares or malicious programs.

For the research on program defect detection, this project improved Catchconv, a famous open source tool, which is widely used for gray-box testing. The improvement is focused on a loop avoiding algorithm and its prototype system. This system can detect and skip unnecessary

operations result from the loops in the program. This does improve the efficiency of Catchconv. Moreover, this project includes an IDS (Intrusion Detection System) on Android and a secure cloud storage system to improve the security management for mobile platforms such as smart phones. The IDS is a ported version of snort based on Linux system and is the first IDS system for Android. It is also optimized for the efficiency, power consuming, and packet capturing rate. We believe that it can run on Android applicably. For the secure cloud storage system, it encrypts and distributes the data to the cloud storage through Decentralized Erasure Code to achieve the goal of security and robustness. The prototype had also been completed with related paper published.

Besides, this project also follows Light-Weight CMMI and had created four projects on OpenFoundry. Two of the prototype systems also opened their source code. This could connect the security researches and the community of open source software. Hopefully this could attract the interests of the industries and can strengthen domestic potential for information security technology.

Keywords

Cloud Security、Mobile Security、Heterogeneous Network、Malware Analysis、Program Defect

(6)

IV

壹、 計畫內容及目的 ... 1 一、 前言及背景說明 ... 1 二、 文獻探討與相關研究 ... 5 三、 計畫目的 ... 12 四、 研究方法 ... 15 貳、 計畫項目完成度 ... 20 參、 計畫成果 ... 26 一、 國外交流研究 ... 26 二、 產學合作計畫 ... 32 三、 學術貢獻 ... 34 四、 系統建置 ... 35 五、 技術方案優越性 ... 84 肆、 結論與展望 ... 88 伍、 參考文獻 ... 90

(7)

1

壹 、

計畫內容及目的

計 畫 內 容 及 目 的

計 畫 內 容 及 目 的

計 畫 內 容 及 目 的

一 、

前言及 背景說明

前 言 及 背 景 說 明

前 言 及 背 景 說 明

前 言 及 背 景 說 明

隨著智慧型手機裝置(Smart Phone)與行動小筆電(Netbook)的發展,以及無 線網路與 3G/3.5G 行動上網的普及,行動資訊服務將是未來資訊服務發展的趨勢。如 何提供使用者安全、可信賴的服務環境,將是重要的關鍵議題。但現今國內資安產業 之關鍵技術仍仰賴國外進口,使得資安產業離技術自主性之目標仍有差距。如能增加 國際合作與人員交流,加速引進關鍵技術,除有助於國內資安產業的發展,更能提升 台灣於國際資安產學界之地位。 因此,本計畫之目的在於提供一套完善的行動平台安全檢測方案,包含無線異質 網路模擬平台、惡意檔案文件分析、程式漏洞檢測以及行動平台的安全管理機制;大 至整體的網路環境,小至行動裝置的安全保護,期許能夠提供使用者完善、安全的行 動資訊服務環境。以下各節將分別針對各研究子項之相關背景進行介紹:  無線異質網路模擬平台無線異質網路模擬平台無線異質網路模擬平台 無線異質網路模擬平台 近年來,隨著無線網路服務與應用之迅速發展,民眾的生活已與網際網路產生密 不可分之關係。在此國際趨勢下,各國莫不積極規劃具前瞻性的資通訊政策,期望以 完善的無線網路基礎建設與應用服務,帶動資訊產業成長,進而提升國家競爭力。我 國政府於 2004 年研擬「行動台灣計畫」 (M-Taiwan),規劃台灣行動生活產業科技發 展策略,期望能成為全球領先的行動生活國家。為配合 M-Taiwan 計畫,國內法人單 位、研究學者紛紛切入異質無線網路連通、無縫架構與安全技術之研究領域,以整合 國內使用中的各類無線網路環境,諸如 GPRS (General Packet Radio Service,整合分封 無線服務)、 3G (the Third Generation,第三代行動通訊)、Wi-Fi (Wireless Fidelity,無 線相容認證)等,以及國際間正積極推動之前瞻性技術,包含了 WiMAX (Worldwide Interoperability for Microwave Access,全球互通微波存取)、4G (the Fourth Generation, 第四代行動通訊)等技術。 異質無線網路測試必需涵蓋多種不同的網路型態和特性,研究人員除了考量各基 本網路型態之安全機制外,尚需解決許多存在於不同網路銜接界面之間的安全議題, 例如:無線網路裝置於異質網路交替 (Handoff) 時所需之安全驗證機制等等。因此, 如何建立一套適用於異質無線網路測試的實驗環境成為現今學者們面臨的一大挑戰。 透過建置實體的異質無線網路測試環境,可以迅速且準確的驗證新提出之安全機制; 但由於新興的無線網路設備售價昂貴,建造整合多項無線網路的實體測試環境所費不 貲。另一方面,藉由軟體模擬來評估安全機制,可解決缺乏實體測試環境之困難;然 而,軟體模擬往往只能擷取部分系統屬性進行分析,無法模擬因硬體設計所造成的效 能瓶頸。

(8)

2 因此,本計畫之研發目標乃在於建立一套適用於無線異質網路之模擬平台。該平 台使用實體機器模擬異質無線網路實驗中的網路設備,使該平台上進行的無線網路模 擬實驗可兼具硬體設備之效能考量,提高實驗結果之真實性。本計畫的研發團隊亦發 展軟體模擬之技術仿真無線網路底層訊號之傳遞,期望提供平台使用者一個可控制、 可重覆之實驗環境。同時,為了使該平台具備易移植性、高彈性以及高擴充性等優點, 本計畫開放使用者於平台上實做新型的無線網路技術並進行測試,以補足無線網路相 關技術開發環境之不足。我們相信,基於此異質無線網路測試平台,產學界各單位可 以進行符合真實環境的產品和安全機制之測試,縮短前瞻網路技術開發與測試時程, 加快新興網路的布建速度。  行動平台的安全機制行動平台的安全機制行動平台的安全機制 行動平台的安全機制 ((((入侵偵測系統入侵偵測系統、入侵偵測系統入侵偵測系統、、、安全雲端儲存系統安全雲端儲存系統安全雲端儲存系統安全雲端儲存系統)))) 行動資訊服務是未來的資訊服務發展的趨勢,如何提供使用者方便與安全的系統 環境是這些服務成功的關鍵。智慧型手機和行動小筆電(netbook)將是使用者主要的 行動平台,透過高速的電信與資訊網路系統,使用者將可以在任何時間任何地點取得 資訊服務業者提供的服務。目前行動平台的作業系統方面,除了微軟的Windows Mobile 及 XP外,Google也積極的搶進這塊新興的領域,例如手機上的的Android系統及 Netbook上的Chrome系統。而智慧型手機系統近年來以Android市佔率成長最快。 Android系統的手機秉持著「使用和擴展」的目標,公開內部的應用程序,並提供一個 開放平台加上一些簡單的規定,讓所有人都能成為應用程式的開發員,因而激發手機 上無限可能的應用。 而由於使用無線網路、Android系統的開放性以及行動上網逐漸風行等關係,行動 平台特別容易遭受攻擊並引發了大量的安全問題,因此我們需要各類針對行動平台的 安全機制,例如,弱點掃描系統、入侵偵測與防禦系統、身份認證系統、防毒系統等, 以因應無所不在的攻擊。另一方面,像是智慧型手機和小筆電等這類的行動裝置具有 體積小與移動性高的特點,使得行動裝置較容易面臨遺失或失竊的情形,一旦裝置遺 失則裝置內的資料將無法復原。例如手機,如果沒有備份手機上的資料,手機一旦遺 失,其中儲存的通訊綠,簡訊甚至是照片都將遺失。若是手機被有心人士取得,那麼 手機上的個人資訊將暴露殆盡,這對個人隱私權造成相當大的傷害。因此行動平台也 是雲端服務的對象之一,雲端儲存服務可以完備整個行動平台的功能性。透過雲端儲 存服務,使用者可以將資料儲存或備份在雲端,爾後只要透過網路就可以存取這些資 料。而如何保障使用者儲存在雲端的資料的安全,並進一步提供多樣性的功能,也是 我們將探討的議題。個人隱私問題關係著使用者的公民權力,如何保障使用者的個人 資訊不被竊取與惡意使用是值得探討的議題。  惡意檔案文件分析惡意檔案文件分析惡意檔案文件分析 惡意檔案文件分析 隨著近年來網路的快速發展,藉著快速的資訊流通,造成了零時差攻擊 (zero-day attack) 這種新興的網路攻擊手法。零時差攻擊利用了軟體漏洞資訊的洩漏,在極短的 時間內利用公佈的漏洞進行攻擊。若業者未能及時發布修正檔來修補漏洞,則會造成

(9)

3 眾多的使用者受害,或者是龐大的財產損失。即使業者推出了安全性的更新檔,也因 為無法同步世界各地的更新狀況,無法確保較慢更新的使用者的安全性。而這些攻擊 手法,大多使用夾帶於檔案中的惡意程式,騙取使用者執行該檔,進一步達到攻擊的 目的。如何判斷檔案的威脅性,已經是資安領域中熱門的問題。 可造成破壞行為不一定要透過可執行檔,由於軟體開發人員的疏失,連同一般常 見的文書檔案,如Microsoft office Word、PowerPoint、PDF等,都可能成為散播惡意程 式的媒介。檔案本身雖無破壞能力,但利用相關軟體的漏洞,可以執行攻擊者事先嵌 入的指令,控制該軟體的行為。甚至,執行遠端的程式碼、或下載遠端惡意程式至本 地端執行來達到攻擊的目的。以近期為例:Microsoft Security Advisory (969136) v2.0修 正檔即為修補PowerPoint允許遠端程式碼執行的漏洞,但早在發布的前一個月,各大資 安論壇卻已廣泛討論此漏洞,從而得知此類攻擊早已是駭客們所重視的攻擊手法。 我們希望能夠開發出一套偵測檔案安全的系統,對於任何可能隱藏惡意程式的檔 案,加以分析並且產生報告。對於一般的非執行檔,能夠偵測出是否有夾帶惡意程式, 或者檢測其中是否有意圖獲取更多關於系統方面的資訊,過濾不正常的字串,並且找 出該惡意程式利用何種技術來達到攻擊目的。最後,利用評比顯示出該檔案的威脅度, 以提醒使用者是否信任該執行檔。  程式漏洞檢測程式漏洞檢測程式漏洞檢測 程式漏洞檢測 在程式的開發過程中,檢查、驗證程式本身的正確性,是一個相當重要的步驟; 一般來說,約30%左右的開發成本花費在測試和除錯階段。比較輕微的程式錯誤,可 能只是產生錯誤、非預期的執行結果而已;然而,重大的程式漏洞,卻可能會危害到 整個系統的安全。例如:程式漏洞可能會造成系統當機,讓系統不能繼續正常運作; 惡意攻擊者也可能利用此程式漏洞,去嘗試滲透、攻擊系統,進而埋入惡意程式或是 搶奪系統的控制權,竊取使用者的個人隱私資料,造成使用者的損失。程式漏洞的傷 害根據它所影響的範疇及程度而定,有些可能無足輕重,有些卻會造成莫大的傷害。 對於應用在資訊安全領域的軟體程式,例如大數、密碼方面的程式庫以及資訊安全協 定的軟體實作,其正確性及安全性更是重要,若是含有漏洞,將可被利用來攻擊。例 如:在CRYPTO 2008年的研討會上,Eli Biham、Yaniv Carmeli和Adi Shamir三人發表 了論文“Bug Attacks”,提出利用系統硬體的設計錯誤或是密碼軟體實作上的漏洞,去 推測、擷取使用者秘密金鑰的攻擊方法。這讓我們不得不去重視該如何驗證程式本身 的正確性,以及如何更有效地去驗證程式的技術。 檢查程式的方法有許多種,根據我們對於程式內部運作的了解程度,可以分為以下三 類: (1) 有程式碼,對於程式內部運作完全了解,又稱作 White-Box Testing。除了可 以透過程式碼分析進行靜態檢測,來尋找可能的程式漏洞外,也可產生大量 的測試資料來對程式執行檔進行動態檢測,來發現潛在的程式漏洞。然而, 對於大部分的程式要取得其程式碼並不容易,尤其是用來營利的商業軟體; 另外,對於較為龐大複雜的程式,其大量的程式碼更是造成了檢查上的不方 便及麻煩。如果利用軟體來分析程式碼,會產生相當多的 False Warning,需

(10)

4

要交由人工來檢驗判定是否真的是程式漏洞;我們需要許多的人力去理解、 追蹤程式碼的內容,並從所有可能的執行狀態中找出會有問題的部分。這些 因素使得 White-Box Testing 在實務上並不實際。例如:2004 年 Windows 2000/NT 4 的程式原始碼被洩漏在網路上,當時大家紛紛質疑這些外洩出來 的程式碼是否會暴露出 Windows 系統的安全漏洞,或是被駭客利用來研發 攻擊程式,造成系統安全上的傷害。但事實證明,這些顧慮只是多餘的,外 洩出來的 Windows 系統程式碼太過大量,造成實際分析上的負擔,即使這 些程式碼提供了所有關於 Windows 系統的實作資訊,也因為相關資訊太多, 而無法辨認出真正有用的部分。 (2) 沒有程式碼也沒有程式執行時期資訊,對於程式內部運作完全不了解,只知 道程式的輸入資料及輸出結果,又稱作 Black-Box Testing。對於這種沒有程 式原始碼,只有程式執行檔的狀況,通常是產生一些特定的測試資料位給程 式執行,用來檢測程式的輸出結果是否正確符合預期。要產生有用的測試資 料需要程式實作的相關資訊以及豐富的測試經驗,這通常只在程式開發團隊 內部存在。當無法具備前述條件時,Fuzz Testing 是主要的測試方法,藉由 隨機產生大量的測試資料,來對程式執行檔進行動態分析,觀察比對程式的 執行結果,來發現可能的程式漏洞。然而,由於缺乏程式執行時期的資訊, Fuzz Testing 所產生的隨機測試資料,很難涵蓋到所有的程式區段,通常只 能測試到程式的一小部分而已。在大量的測試資料中,僅有少部分能夠測試 到比較特殊的程式區塊;大部分都是重複地執行測試相同的程式區塊,這使 得 Black-Box Fuzz Testing 在實際上的功效並不如預期。例如:有一程式漏 洞僅在整數(32 bits)變數 X=10000 時發生,此時 Fuzz Testing 隨機產生的 測試資料能夠涵蓋到此漏洞之機率僅為 1/232,幾乎無法偵測到此漏洞。 (3) 沒有程式碼但有程式執行時期資訊,能夠知道程式執行時的變數內容,以及

程式執行時的條件分支執行流程,又稱作 Gray-Box Testing。雖然沒有程式 原始碼,但是利用類似 Virtual Machine 或是 Run-time Debugger 的技術,監 控目標程式的執行過程,取得執行時期的變數資訊和條件分支資訊,提供檢 測時所需相當有用的幫助。Gray-Box Testing 與 Black-Box Testing 相當類似, 最主要的差別在於當知道程式執行時期的資訊時,Fuzz Testing 能夠根據程 式執行時的變數內容、條件分支執行流程去產生有意義的測試資料,而非單 純地隨機產生測試輸入;這種環境行為模式下的 Fuzz Testing 又被稱作是 Concolic Testing。例如:有一程式區塊在整數(32 bits)變數 X=10000 時才 會被執行到,Concolic Testing 一開始雖是使用隨機的測試資料,但是在程式 執行、動態檢測的過程中,便能利用執行時期的變數資訊和條件分支資訊, 得知有一程式區塊僅在 X=10000 時才會被觸發執行,接下來產生能夠使 X=10000 的測試資料,讓 Concolic Testing 再下一輪的檢測中能夠涵蓋到此 程式區塊,檢測此一區塊的安全性。Concolic Testing 在 Gray-Box Testing 的 環境下相當有效,每個測試資料將帶領我們去檢查尚未檢查過的程式區塊, 是目前檢查程式漏洞的主要方法。

(11)

5

二 、

文獻探 討與相關研究

文 獻 探 討 與 相 關 研 究

文 獻 探 討 與 相 關 研 究

文 獻 探 討 與 相 關 研 究

本計畫所涵蓋的範圍包含無線異質網路模擬平台、惡意檔案文件分析、程式漏洞 檢測以及行動平台的安全管理機制等。在此我們將目前各子項之文獻探討以及相關研 究列出並說明,藉此可了解目前其他研究者的研究方向及內容。以下將就本計畫所涵 蓋範圍內的各項相關研究提出分析與說明:  無線異質網路模擬平台無線異質網路模擬平台無線異質網路模擬平台 無線異質網路模擬平台 網路服務的興起增加了開發研究人員對於網路實驗平台之需求。許多專家學者針 對網路實驗的重置性、真實性和擴充性等,設計數套網路測試平台。經過研究,以下 列出幾套現有之知名網路測試平台:

 Emulab Emulab Emulab Emulab

Emulab [1] 是美國猶他大學為了分散式系統和網路的研究所設計的有線網路仿真 (emulated) 平台。使用者以 NS (Network Simulator) 語言描述實驗網路所需之拓 樸,並存放於 NS 設定檔中。Emulab 再依據 NS 設定檔中的資訊,配置實驗用的 實體節點,並在節點上載入指定的可執行映像檔。Emulab 透過虛擬區網 (Virtual Local Area Network,VLAN) 來建立實驗網路拓樸與區隔該平台上所執行的多組 實驗。藉由 VLAN 的區隔,Emulab 可以實現實驗節點之間的溝通性 (connectivity),使位於同一虛擬區網下的實驗節點可以彼此溝通;VLAN 技術 也同時確保實驗之間的隔離性,避免不同實驗彼此互相干擾。然而,Emulab 開 發之初著重於實驗的隔離性、可重複性與擴充性的設計,最初的設計並未考慮到 通訊網路的安全與保護。因此,美國加州大學柏克萊分校繼而研發出基於 Emulab 的 DETER 有線網路攻擊防禦研究平台。

 DETERDETERDETER DETER

DETER [2, 3] 是由美國加州大學柏克萊分校針對有線網路開發的攻擊防禦研究平 台,它以 Emulab 為基礎,提供了具可重複性的網路安全實驗環境。除了防禦機 制外,DETER 亦提供了數組惡意程式,可供使用者測試其新安全機制之強健度 (robustness)。為建造適合網路安全方法、協定、機制與產品的測試環境,DETER 採用了以下安全機制以確保實驗環境的隔離性和安全性:(1)採用網際網路安全通 訊協定 (Internet Protocol Security,簡稱 IPSec) 的通道模式 (tunnel mode) 連接 實驗節點和控制交換器;(2)以防火牆隔離外部和內部實驗網路。防火牆的設計除 了維持內部實驗網路的單純性,亦可避免在實驗中的惡意程式失去控制時危害公 用網路。

 ORBIT Radio Grid TestbedORBIT Radio Grid TestbedORBIT Radio Grid Testbed ORBIT Radio Grid Testbed

ORBIT [4] 是以 802.11 實體節點為基礎,針對 3G 和 802.11 網路所設計、具 二層架構的無線測試平台。ORBIT 由密集的 802.11 節點組成網格,網格中的節 點可以動態地連結成所指定的無線網路拓樸。ORBIT 使用者需依照定義的格式 完成實驗腳本格式,以指定網路拓樸、實驗設定和過濾機制等等;透過實驗腳

(12)

6

本,使用者可以遠端控制和觀察實驗之結果。然而,ORBIT 同時僅能支援一個 實驗,若是使用者的實驗僅需使用 10 個節點,則 ORBIT 網格中其他剩餘的節 點,在該實驗尚未完成之前將無法提供測試服務。

 MobiNetMobiNetMobiNet MobiNet

MobiNet [5] 是一套專為無線隨建即連網路 (wireless ac-hoc network) 所設計的仿 真模擬平台,其架構由二大元件組成:邊際節點 (edge node) 和核心節點 (core node)。邊際節點負責處理應用程式以及模擬各種裝置,包含筆記型電腦和 PDA (Personal Digital Assistant,個人數位助理);核心節點則是負責架構網路拓樸、管 理訊號傳輸,以及仿真各種路由協定和媒介存取控制層 (Media Access Control layer,MAC layer) 協定。透過虛擬邊際節點,一個邊際節點可以模擬數十至數百 個無線裝置。此虛擬化功能,可以提升 MobiNet 中無線網路實驗的規模;然 而,藉由軟體仿真無線裝置的實驗方法只能模擬部分系統之屬性,導致實驗之成 果缺乏真實性。

 行動平台的安全機制行動平台的安全機制行動平台的安全機制 行動平台的安全機制

Android 是一個 Open Handset Alliance (OHA)所開發並由 Google 在 2007 年所推出 的一個應用在智慧型手機 以及筆記型電腦上之作業系統平台。在 Android 的發展中, Google 除了提供一個 Open Source 的環境讓廠商可以節省平台授權費外,開發者也能 在開發應用程式上獲取更多的自由,且開發的應用程式可以在不同平台上通用,不必 再花費時間及精力將應用程式作跨平台的改寫。

Android 基本上就是一種嵌入式 Linux 系統再加上一些重要的手機應用開發軟 體,其系統架構總共包含四個層次。最底層是 LINUX 系統核心,採用 LINUX Kernel 2.6 版,負責硬體的驅動程式、網路、電源系統、安全以及記憶體管理等等。第二層 是 Library 的部分,由大多數開放原始碼的 Library 所構成, 例如 C 的 Library、 OPENSSL、SQLite 以及 Webkit 負責 Android 網頁流覽器的運作,另外還有 OPENGL 和 SGL 圖形與多媒體 Library 負責支援各種影音和圖形檔的播放。緊接著是和第二層 Library 並行的 Android Runtime,提供 Android 特有的 JAVA 核心 Library 以及可轉換 JAVA bytecode 成 .dex 檔案格式的 Dalvik 虛擬機器。第三層則是應用軟體架構,為 所有 Android 核心應用程式 Framework API 的總集合,可讓程式開發者方便取用這些 常用的應用程式設計架構,以便增加應用軟體發展速度。在最上層的即是 JAVA 應用 程式,包含檔案管理、通訊錄、電話撥號程式等。

(13)

7

圖一:Android 架構圖

目前限定所有應用程式都必須以 JAVA 語言來撰寫,再以 Dalvik Virtual Machine 來轉換成 DX bytecode,因此程式開發和 JAVA ME 類似,應用程式的介面部分則是由 XML 程式來設計。簡單來說,即是系統由 LINUX 來執行,應用程式則透過 JAVA 語 言來開發以及執行。要在 Android 上執行以 C 語言所構成的程式,有兩種方法:

(1) 利用 Android NDK,在 JAVA 應用程式中去呼叫以 C 語言所構成的 Library 以執 行我們要的功能。 (2) 將 C 語言寫成的程式直接編譯成執行檔,然後再從 JAVA 應用程式中,去直接執 行該執行檔(如圖二所示)。 圖二:JAVA 應用程式端呼叫 C 應用程式示意圖 由於 Android 等行動平台的計算能力以及儲存空間通常是受限的,故利用雲端運 算技術取得額外的儲存空間以及計算能量是一個趨勢。雲端計算近年來成為大家討論 的話題,而且逐漸變成下一代人們使用電腦的架構,雲端計算基本上含有一個以上大 型的數據中心,裡面包含了大規模的軟體以及大量的 database,用戶們只需要一個可 以連到網路的可攜式硬體,即可以透過網路享有高品質的服務(如圖三所示),而這種 獨特模式打破傳統的儲存系統均存放在自己的硬碟裡,隨著網路速度的增加以及現代 人需求愈來愈多樣化的情況下,儲存技術廠商紛紛推出雲端儲存的想法,加上現在的 智慧型行動裝置愈來愈普及的狀況下,許多行動裝置業者紛紛加入雲端服務的功能, C 應用程式 Ex: Snort 呼叫 程式 處理 輸出 輸入 參數 顯示於 螢幕 JAVA前端應用程式

(14)

8 讓使用者能隨意地欣賞到最熱門的音樂、視訊、數位課程、新聞、遊戲、電子書等服 務,不再像是以往的儲存系統只能在限定的機器上才能享受到應有的服務。 圖三: 雲端計算架構圖 雲端這個概念在 2007 年 10 月 IBM 與 Google 在美國校園裡展開,之所以會推廣 雲端計畫,最主要的是希望能降低分散式運算在學術研究計畫裡所花費的巨大資本, 所以 IBM 及 Google 提供了相關的軟硬體支援,讓每個學生都可以透過網路進行大規模 運算為基礎的學術研究。此外 2008 年 1 月 Google 也宣布在台灣的雲端計畫,並且跟 台灣的台大、交大等學校合作,把這個先進的雲端概念迅速的吹進了校園裡頭。 但是雲端的概念充滿了許多問題,包括安全、管理以及效率等方面逐漸浮出檯 面,尤其最近幾年環保意識高漲,許多電器都需加上節能標章,所以在雲端的概念裡 不斷加入了節能的方法,讓每台機器都能充分的運用到。不過在節省能源的同時也突 顯了一些管理上以及安全上的問題,例如當一台沒有用到機器如何關掉其電源,而又 或者忽然間大量服務湧現時,如何讓電源迅速開啟,陸陸續續許多人在管理這方面的 研究,此外管理方面還會出現安全上的問題,例如當雲端計算的使用者逐漸減少,為 了要節省能源將某些沒用到的電腦逐一關閉,然而在關閉的電腦裡或許還有一些使用 者正在運算,那如何讓正在運算的電腦移到其另一台電腦裡,或許是管理上的問題, 但是在移後不會讓目前的使用者不被移到這台的使用者所存取或是相反過來,都是我 們不願意看到的結果,所以近年來雲端發展計畫在安全性這方面逐漸受到重視。  惡意檔案文件分析系統惡意檔案文件分析系統惡意檔案文件分析系統 惡意檔案文件分析系統 對於本研究的議題,分為國內外相關研究、與偵測動態取得堆疊記憶體技術兩部 分來說明。本研究將會先簡介國內外的相關研究與開發系統。接下來介紹本系統將利 用偵測動態取得堆疊技術,來辨識內嵌 Shell Code 的前置手續,如何使用虛擬 CPU 來得知是否有此行為,即可判斷該程式有惡意行為的可疑性。

(15)

9 靜態與動態分析 靜態與動態分析靜態與動態分析 靜態與動態分析 靜態分析比對惡意程式特徵碼[50],一直是市面上防毒軟體普遍使用的分析手法。 對已知惡意程式檢測來說,這種靜態的比對方式是快速且有效的方式。但由於缺 乏彈性,卻對於新型的惡意程式攻擊手法無法即時招架。資安人員致力於分析新 型惡意程式行為特徵,盡力縮短惡意特徵碼更新與新型惡意程式釋出的時間差, 以減輕其所造成的危害。但惡意程式發展技術日新月異。常使用加密、加殼的方 式保護其原始碼,防止被分析知曉其攻擊行為與抵抗惡意特徵值檢測,增加資安 人員分析的困難度。 市面上已開發出檔案分析軟體,例如:PEiD,此工具將其特徵值資料庫與可疑程 式執行檔進行比對,判斷此可疑程式是經由何種工具加殼加密,以提供 相對應之 解碼工具讓使用者參考。尚有另一款軟體 PolyUnpack[54],採取將可疑程式反組 譯方式,但經過一連串靜態與動態分析流程,造成負擔過重。 利用動態分析方式解析惡意程式[52,53,55],是目前的趨勢。由於無論惡意程式如 何包裝自身型態,在執行期間,必定會將其對系統真正有害的程式原始碼與資料 還原,存放於記憶體中。當資安人員以動態分析出惡意程式原始碼執行入口位址 後,即可對惡意程式原始碼採取進一步的行為分析與特徵值取得的工作。 由於動態分析與靜態分析各有優缺點,本系統希望能夠運用各部份所長,來互補 其分析的不足。以動態分析方式取得程式原始碼,因為無頇先突破惡意程式的加 殼加密防護牆,加速了對新型惡意程式分析的速度,成功縮短惡意特徵碼更新與 新型惡意程式釋出的時間差,增加靜態分析比對特徵碼的可用性,讓資安人員於 檢測可疑惡意程式的準確性大幅提升。 偵測動態取得堆疊記憶體技術 偵測動態取得堆疊記憶體技術 偵測動態取得堆疊記憶體技術 偵測動態取得堆疊記憶體技術 現在常見的惡意程式攻擊手法,會將惡意程式碼內嵌在檔案中,來逃避偵測,但 它們在進行攻擊的時候,無法事先預測自己會被分配到哪一塊記憶體區塊,對於 一些與記憶體位址有關的變數或要 Jump 的目標位址,如果還是按照最初編譯時 的位址来尋址,必將導致尋址錯誤,使得惡意程式無法正常的運行 。 因此,惡意程式在攻擊的時候,必頇先得到自己這隻程式現在在記憶體中的位置, 來重新定位那些跟記憶體位址有關的變數或要 Jump 的目標位址。大 多數隱藏於 文件檔案中的惡意程式碼,為了得知自身程式碼所在的記憶體位置,必頇先將目 前的 Program Counter (eip值) 壓入堆疊後,再從堆疊中讀出,這種動作稱之為 Call/Pop 序列。

Call/Pop Example1: call getDelta getDelta:

pop ebp

sub ebp,offset getDelta ...

(16)

10

如上面的範例,惡意程式碼就能利用利用 Call/Pop 序列,先用 Call 將去取 得 Program Counter(eip 值),將其壓入堆疊後,再從堆疊中讀出。

在得到現在的記憶體位址之後,惡意程式就會去呼叫 Win32 的API 來對系統進行 破壞的動作,此動作稱為 Hook API。惡意程式在做 hook API 的時候,通常會去 推算 kernel32.dll 的位置,此位置可利用 FS 暫存器中的SEH,TEB,PEB 資料 結構來獲得 kernel32.dll 的記憶體位置。

得到 Win32 API 的記憶體位址後,惡意程式所需使用的 API 的位址可以 透過解 析該 dll 的導出地址表(Export section)和導入地址表(Import Address Table,IAT) 等方法來取得,也可先在 kernel32.dll 中搜索 GetProcAddress 的地址, 再用 GetProcAddress(“Win32 API 名字”,”函數名字”)得到其他的 API 地址。所需的 API 也可透過 LoadLibrary 來加載。如此一來,內嵌在普通文件裡的惡意程式, 就可以對系統造成破壞。

 程式漏洞檢測程式漏洞檢測程式漏洞檢測 程式漏洞檢測

目前,國內外的研究方向主要在 Gray-Box Fuzz Testing 上面,比較有代表性的研 究成果有:

 Koushik Sen, Darko Marinov, Gul Agha. CUTE: A Concolic Unit Testing Engine for C. ESECFSE 2005.

 Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, Dawson R. Engler. EXE: Automatically Generating Inputs of Death. CCS 2006.  David Molnar, David Wagner. Catchconv: Symbolic execution and run-time type inference for integer conversion errors. Electrical Engineering and Computer Sciences, University of California at Berkeley, Technique Report No. UCB/EECS-2007-23.

http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-23.html  Kuen-Han Huang, Shin-Kun Huang. Detecting Buffer Overflow

Vulnerabilities by Search-based Testing. CISC 2010.

CUTE(Concolic Unit Test Engine)是一套 C/C++程式檢測系統,其檢測 Java 程 式的版本為 jCUTE。CUTE 利用 Concolic Testing 技術去檢查目標程式,其特點在於 能夠支援追蹤複雜的資料結構,例如:pointer、struct、class,對於經常大量使用 pointer 及自行定義 class 的 C/C++程式,檢測上有極大的幫助。EXE(EXecution generated Executions)則是由美國史丹佛(Stanford)大學提出的系統,也是使用 Concolic Testing 的技術,利用程式執行時期的資訊,去嘗試產生會觸發程式漏洞的 測試資料,比起一般的 Run-time checking tool 更為有效,同時產生出來的測試輸入也 提供程式設計員除錯上的幫助,能夠更快速地找出有漏洞的程式碼。Catchconv 則是 由美國加州大學柏克萊分校(UCB)EECS 的教授 David Wagner 和他的博士生 David Molnar 一起研發的系統,以 Valgrind 為 instrumented framework,在上面開發的 Concolic Testing plug-ins,除了使用程式執行時期的資訊,產生觸發程式漏洞的測試

(17)

11

資料外,還合併了動態的型別轉換檢查,對於不同型別變數之間的互相轉換,或是 有號數無號數轉換所造成的數值溢位,都能夠做檢查;除此之外,Catchconv 特別著 重於尋找記憶體方面的程式漏洞,例如:記憶體緩衝區溢位,以避免這類型的程式 漏洞成為系統上的安全弱點,造成重大的傷害。

(18)

12

三 、

計畫目 的

計 畫 目 的

計 畫 目 的

計 畫 目 的

本計畫之目的在於提供一套完善的行動平台安全檢測方案,包含無線異質網路模 擬平台、惡意檔案文件分析、程式漏洞檢測以及行動平台的安全管理機制,依相關文 獻與研究做為參考,提出針對此四項研究子項的可行方案,以下將針對各研究子項所 包含的具體研究內容進行說明:  無線異質網路模擬平台無線異質網路模擬平台無線異質網路模擬平台 無線異質網路模擬平台 近年來,無線網路傳輸技術的蓬勃發展,使市場迫切需要一個能快速且正確的驗 證新型網路技術與產品之實驗與測試環境。此外,目前市面上之產品逐漸以整合許多 無線網路型態的異質無線網路服務為主,針對此類異質無線網路之安全議題,除了必 須考量各基本網路型態之固有安全機制外,許多存在於不同網路銜接界面之間的安全 問題亦極待解決。為建立一套能測試異質無線網路服務之實驗與測試環境,本計畫研 究人員將建置一套能支援 Wi-Fi、WiMAX 等無線網路技術之異質無線網路模擬平台。 此模擬平台的開發將以 EmuLab、DETER 等有線網路測試平台為基礎,提供實體 機器讓使用者自行配置所需實驗之網路拓樸,使運行於平台上之模擬實驗可兼具硬體 設備之效能考量與實驗結果之真實性。為了支援 Wi-Fi、WiMAX 等無線網路技術, 本平台使用模擬的方式仿真無線網路底層的訊號傳遞,實驗中的無線網路節點可藉由 平台底層的有線網路將封包廣播至其他節點,來模擬無線網路在空氣介質中的傳輸行 為。本模擬平台亦提供多套軟體工具,諸如使用者操作界面、無線網路攻防實驗模組 等等,以協助研究人員利用本系統動態規劃無線網路實驗環境,並進行異質無線網路 的安全測試及模擬可能的異質無線網路攻擊手法,藉此評估目前網路環境的安全性、 可靠性,與可能存在的弱點。 本計畫也將延續和美國加州大學柏克萊分校 (UCB) 的合作,期望整合本計畫開發 之異質無線網路模擬平台與 UCB 開發的 DETER 實驗平台。透過共享兩平台擁有的 實驗節點,本平台可望提供更大規模(至數百節點規模)之異質無線網路實驗。最後,為 推廣本平台之使用,本計畫也將撰寫詳細的開發文件和使用者操作手冊,將其以維基 百科 (Wikipedia) 之方式公開在網路上,以降低本平台之使用門檻,並鼓勵學界與企 業界於本平台上進行無線網路實驗,增加更多合作機會和產學效益。  行動平台的安全機制行動平台的安全機制行動平台的安全機制 行動平台的安全機制 在探討行動平台安全機制上,為了預防可能的安全威脅,本研究之目的在於開發 一套行動安全平台機制,包含以下兩項子系統:  行動平台入侵偵測系統行動平台入侵偵測系統行動平台入侵偵測系統 行動平台入侵偵測系統 在考量行動平台隨時隨地可利用無線網路上網的訴求,以及面對網路上層出 不窮的攻擊,我們希望能在行動平台上建立一個有效率且可實用的防範系 統,其中一種最有效也最多人使用的方式,就是使用 Intrusion Detection

(19)

13

System(IDS),也就是所謂的入侵偵測系統,利用每種攻擊的特徵,對系統 以及網路中的各項資料去進行比對。IDS 從偵測方式上可分為兩種,分別為 Anomaly-based detection 以及 Signature-based detection,前者是利用監控作業 系統中的各項資源,去找出資源異常使用的地方,若有某項資源的使用量超 出一般情況很多,則判定為異常,可能是受到攻擊或是使用者有異常行為, 便會發出警告給系統管理員;後者則是利用字串比對的方式,去對要檢查的 內容進行比對,以判斷是否含有會對系統造成危害之字串,從定義上防毒軟 體可以視為被包含在這個分類裡面。從偵測目標上則可分為 Host-based IDS(HIDS)以及 Network-based IDS(NIDS),顧名思義,前者是對主機去進行 監控,而後者則是對網路封包去進行監控。其中 NIDS 大多都使用

Signature-based 的偵測方式。

本計畫預定將 Snort 移植到 Android 行動平台,Snort 為 Signature- based 的 NIDS,其為網路上很受歡迎的一款 IDS,不但功能強大而且還是共享軟體, 其良好的軟體設計理念,使得 Snort 到現在還是非常多人使用,並且仍然有 在進行功能更新。我們可利用 Snort 對行動無線網路傳輸做安全檢測與控 管。無可諱言現有 PC 及 NB 平台上的安全機制可以移植到行動平台上,但 是行動平台有其限制(受限於 CPU 計算速度、主記憶體容量、網路頻寬及電 池容量等),所以在設計相關的安全機制時,我們必須考量特殊的通訊環境 與硬體規格,不能全盤照收,佔用太多資源的系統就不太適合,例如完整的 防火牆。  安全雲端儲存系統安全雲端儲存系統安全雲端儲存系統 安全雲端儲存系統 本計畫預定設計出一套安全雲端儲存系統,可同時達到高度的安全性以及資 料可靠度。OceanStore 在 2000 年就提出了分散式儲存系統的構想,目的是希 望提供行動用戶們可以隨時隨地透過行動裝置去存取 OceanStore 中的資料。 不過它不像是傳統的系統一樣將資料存放在固定的伺服器中,且每台伺服器 都有防火牆保護。雲端的概念使得使用者能透過網路在任意時間任意地點, 以及任意設備上獲取資料,而且會依伺服器不同的需要在任意時間點將資料 搬動到其他伺服器上。假設資料是以明文儲存的話,這樣安全性上會有很大 問題,另外如果伺服器上的資料有發生損毀的問題,那麼使用者下載完成的 檔案也會發生問題。所以目前的儲存伺服器都必頇要具有檔案的完整性及保 密性的功能。 儲存系統的目的主要是為了長期保存資料,會有系統資料損毀或是遭人惡意 串改的情況,儲存上如有這些情況都是長期保存資料時所不允許的,早期的 方式是將一份資料複製好幾份存到每台 storage server,或是一台 storage server,會有一台相對應的 mirror storage server(簡稱 MSS),當資料毀損或被 串改時,就可以從 MSS 上還原回來,但是以上種種方法的 overhead 都太 高,所以 Erasure code 是較早提出的方法中具體達到容錯以及低 overhead 的 方法。在 2006 年 Decentralized Erasure code 被提出,並用在分散式網路儲存

(20)

14

系統的架構中,緊接著在 2009 年 Secure Decentralized Erasure code 被提出, 用以加強系統中資料的保密性。 事實上,在雲端系統上所提供的服務分為計算與儲存,本研究分的重點在安 全雲端儲存系統,也就是分散式的儲存系統。當使用智者將資料上傳至雲端 時,被以加密分散的方式放在許多雲端伺服器上,當使用者要需要時,只要 有一定數量的雲端伺服器回應,就可以將資料取回,除此之外,使用者也可 以將資料轉加密傳送給第三者。  惡意檔案文件分析系統惡意檔案文件分析系統惡意檔案文件分析系統 惡意檔案文件分析系統 本計畫亦開發一套惡意程式自動檢測系統,目的是讓檢測可疑惡意程式過程自動 化並能綜合多項鑑識程序以提供完整的掃描報告利分析人員判讀。檔案首先將分成可 執行檔與普通文件檔兩類。其次,系統將針對其檔案類型進行適當的二進位內容 (Binary Analysis)靜態分析比對與檔案格式內容判定,標註程式中可供鑑識惡意行為的 相關資訊,例如:含有可疑字串、檔案格式與副檔名的比對。動態的行為分析資訊為 利用虛擬 CPU 技術來偵測動態取得記憶體位置之技術,來偵測內嵌程式碼的行為資 訊。藉由蒐集以上靜態與動態的分析資訊,詳盡列出該程式所觸發的惡意行為。  程式漏洞檢測程式漏洞檢測程式漏洞檢測 程式漏洞檢測 要有效地檢測出程式的正確性、安全性實為一困難的目標,即使有專業的人才、 專門的團隊進行測試,也難以保證百分之百沒有漏洞。為了提升檢測工作的效率,減 少檢測所花費的人力、時間成本,同時避免因程式漏洞所造成的系統安全問題,本計 畫的目的包含一套程式漏洞檢測系統,能夠替使用者檢查所使用的軟體中是否有程式 漏洞存在。如果有漏洞存在的話,將產生對應此漏洞的測試資料給予使用者,讓使用 者可將此漏洞回報給原始程式的開發人員,進行除錯修補。 除了注重漏洞檢測的功效外,也必須要考量到檢測所花費的時間,才能夠有效率 地完成目標。現行的 Concolic Testing 技術,都需要 Instrumented Framework 來監控程 式執行,同時插入漏洞測試的動作進來;另一方面,Concolic Testing 會對檢測中遇到 的每一個條件分支都做 Query,以產生對應的測試輸入。礙於這些原因,Concolic Testing 在檢測上需要不少的時間,在實際應用上也較不適合用在大型程式上。本計畫 將考量到以上的因素,著重於 Concolic Testing 的效率最佳化,希望能更有效率的執行 程式漏洞檢測,使 Concolic Testing 應用的範疇更廣。

(21)

15

四 、

研究方 法

研 究 方 法

研 究 方 法

研 究 方 法

本計畫包含了異質無線網路模擬平台、行動平台的安全機制、惡意檔案文件分析 系統、與程式漏洞檢測等四個研究子項,對於本計畫的各子項,我們將分別採用以下 之研究方法:  異質異質異質無線網路異質無線網路無線網路模擬無線網路模擬模擬模擬平台平台平台平台 本計畫所建置之異質無線網路模擬平台必須具備以下之功能:(1) 實驗之可控性與 可重複性、(2) 無線網路模擬之真實性、(3)無線網路通訊技術之可擴充性與可移植性。 因此,本計畫先以研究現有之網路測試平台為目標,探討現有測試平台架構,以及將 其套用到本計畫之異質無線網路模擬環境的可行性。 在分析各平台之特性及優缺點後,我們歸納出以下幾點:(1) 採用實體無線網路裝 置的實驗平台 (如:ORBIT Radio Grid Testbed) 雖具有較高之模擬真實性,其模擬之結 果最接近真實世界中異質無線網路之傳輸行為。然而,此類平台擴充性低、建置成本 高,尤其是新興的網路設備往往售價昂貴,欲於平台上測試新的無線網路技術所費不 貲。而且,實驗易受到環境與訊號之干擾,缺乏可控性與可重複性;(2) 模擬無線網路 裝置進行測試的實驗平台 (如 MobiNet) 的優點是具備高擴充性,使用者可於平台上開 發新的模組來模擬新的網路協定與技術,但是藉由軟體模擬的實驗往往因只擷取部分 系統屬性進行模擬而缺乏真實性,且無法考量因硬體設備所造成的效能瓶頸;(3) 現行 之有線網路測試平台 (如 EmuLab、DETER 等) 採用一對一的方式,利用實體主機仿 真有線網中的每個節點,於平台上建立之實驗具備可控性與可重複性,但缺乏無線網 路之支援。 於上述三類之平台中,本計畫之研究人員認為於 EmuLab 等有線網路測試平台上 擴充無線網路的訊號模擬,能達到所欲建立之異質無線網路模擬平台之所有功能。因 此本計畫提出了虛擬驅動程式和虛擬天線的架構模擬無線網路的訊號傳送方式來補足 有線平台之不足,其中:(1) 虛擬驅動程式負責與作業系統核心溝通,模擬無線裝置的 網路控制層 (MAC layer) 的所有控制以及資料封包的處理工作;(2) 虛擬天線則用以 仿真無線網路底層 (硬體傳輸層) 之介質傳送和資訊交換的工作,將來自虛擬驅動程式 的無線網路封包 (802.11、802.16d) 封裝成有線網路 (802.3) 之 UDP 廣播封包,再傳 送給所有實驗節點。使用虛擬驅動程式和虛擬天線的架構模擬無線網路,可確保進行 中之無線網路實驗不受外界訊號之干擾。底層的有線網路平台使用之防火牆與 VLAN 技術,除了能保護進行中之實驗不互相干擾外,更可以確保在內部進行的攻擊實驗, 不會擴散至外部公用網路。此外,本計畫模擬無線網路裝置 MAC 層與硬體傳輸層之設 計,也可以方便使用者將新型無線網路技術開發成虛擬驅動程式或虛擬天線,移植到 平台上進行協定之驗證與安全機制之測試,以提高異質無線網路測試平台之移植性與 可擴充性。 本計畫延續和美國加州大學柏克萊分校 (UCB) 之合作,持續發展可提供異質無線 網路模擬之實驗環境。為進一步擴展兩校之合作關係,本計畫透過加入 DETER

(22)

16

Federation (DETER 聯盟) 的方式共享 DETER 平台與本計畫之間的實驗機器,擴大本 平台所能提供之實驗節點數量。加入 DETER Federation 之有線網路測試平台為一系列 使用猶他大學所提出的 EmuLab 架構為基礎進行開發之網路實驗平台(例如:柏克萊大 學的 DETER 平台、威斯康辛大學的 WAIL 平台等),加入 DETER Federation 平台之 使用者可透過 Federation 機制配置其他平台的實驗機器到實驗中,彌補單一平台實驗機 器數量之不足。本計畫目前已完成加入 DETER Federation 所需之技術分析與測試,包 含運行於實驗主機之作業系統的移植,802.11、802.16d 等無線網路協定的虛擬驅動程 式和虛擬天線的驗證等等,本計畫所能運行之異質無線網路實驗皆可於 DETER 平台 上進行重置;待本計畫通過 DETER Federation 之審查後即可正式與其他平台共享實驗 節點,並將本計畫之無線模擬機制推廣到其他平台上,促進與其他各校之學術交流。 最後,為有系統地推廣本平台之使用,本計畫主持人與研究人員亦鼓勵台灣學界 與企業界於本平台上進行無線網路模擬實驗。本計畫已完成詳細的開發文件和使用者 手冊,並以維基百科 (Wikipedia) 之形式公開於本計畫之官方網站上 (http:// www.swoon.cs.nctu.edu.tw)。目前已公開的文件包含 (1) 平台硬體設備安裝與設定文 件、(2) 平台軟體架構設計和安裝步驟、(3) 無線網路模擬實驗的使用教學等等。除此 之外,本計畫也公開研究人員所發展之網路攻防模組及其原始碼,協助使用者快速學 習如何在本平台上進行無線網路模擬實驗,期望吸引更多使用者到本平台上開發或測 試新的無線網路協定或安全機制,以擴充本計畫所能支援之異質網路測試之廣度與深 度。  行動平台的安全機制行動平台的安全機制行動平台的安全機制 行動平台的安全機制 針對探討行動平台的安全問題、安全雲端儲存系統以及行動平台的入侵偵測系統 分別提出我們的研究方法: (1) 探討行動探討行動探討行動平台的安全問題探討行動平台的安全問題平台的安全問題平台的安全問題:::

研究現行各種行動平台,如 Android、 Windows Mobile、 XP 以及 Netbook 上的 Chrome 等,因為行動平台使用到許多開放的系統與資料,如何保障系統資料安 全是重要的課題,而密碼及通訊編碼是目前較可行的作法。目前這方面的成果 不少,本研究將綜合我們所收集的資料,仔細研讀並密集的討論相關的問題。 透過相互之間的腦力激盪,使我能夠更清楚及深入的瞭解論文及所要解決的問 題。本計畫從研讀相關的論文中,整理出重要的部分做成 survey 報告,每週由 參與計畫的學生舉行論文研討,讓學生仔細研讀最新的論文,並做正式的報 告。另外像是多參加國內外相關會議,與外界交流來擴大我們的視野,並收集 最新的資料。透過和其他學者的交流可以增進我們瞭解短處,及增進自己的研 究能力。 (2) 安全雲端儲存系統安全雲端儲存系統安全雲端儲存系統:安全雲端儲存系統:: 本研究將探討如何將訊息明文安全地儲存在各自獨立運作的儲存伺服器之中, 當我們需要時可以隨時取出來加以解密,儲存的資料還可以抵擋攻擊者的攻 擊,保障訊息的隱私。本研究的重點在於如何將訊息明文加密成分散式密文, 然後存入分散式系統的儲存伺服器中,當需要時,只要取出適當伺服器數內的

(23)

17

分散式密文,就可以結合解回原來的訊息明文。我們將先了解相關密碼工具 homomorphic signature 與 proxy re-encryption scheme 等的最新發展,再針對我們 的系統需求進行客製化設計,最後進行正規的正確性與安全性分析。最後研究 成果將撰寫為技術報告。而當我們有了理論及技術之後,需要建置一個雛形系 統來測試我們的理論及開發相關軟體系統,以便和實際應證,如有不符合的地 方,當檢討模型,然後修正理論,使系統的實際功能及效能達到預定的目標。 (3) 行動平台的入侵偵測系統行動平台的入侵偵測系統行動平台的入侵偵測系統行動平台的入侵偵測系統::: 在硬體規格上,一般 Android 手機的行動平台受限於 CPU 計算速度、主記憶體 容量、網路頻寬及電池容量等限制,同時其強調隨時隨地上網,除了非常的耗 費電力外,攻擊者可以隨時發動攻擊導致個人資料的外洩或成為攻擊的跳板, 因此理論上在行動平台上的防護必須時時開啟。本研究的主要任務是如何將各 類的防護系統整合放到行動平台上,並以其受限的硬體規格為考量,進而設計 與系統整度高的安全機制。關於防護系統,如防火牆、入侵偵測、弱點掃描、 惡意程式檢測等系統,我們打算用自由及共享軟體為基礎,將其輕量化後放到 行動平台上。  惡意檔案文件分析系統惡意檔案文件分析系統惡意檔案文件分析系統 惡意檔案文件分析系統 本子研究將分成以下三個部分:(1)可疑字串檢驗、(2)檔案格式與副檔名檢驗、(3) 虛擬 CPU 以偵測動態取得記憶體位址。以下將對各項做深入的說明: (1) 可疑字串檢驗可疑字串檢驗可疑字串檢驗可疑字串檢驗 在一般文件檔案或可執行檔中,字串會以 ASCI 碼方式保留在檔案內容。透過每 個位元組位移的掃描方式,可以確定該檔是否有符合的可疑字串。利用正規表示 法的特徵來找出事先設定的字串。為了往後的擴充性,設定檔是獨立出來的,供 使用者往後可以針對不同的檔案內容特徵做檢查。以下為目前檢驗的字串格式: a. IP 格式 b. 網路連結 c. windows 檔案路徑 d. unix-like 檔案路徑 e. iframe tag f. embed tag g. windows 可執行檔 由於程式行為很難直接判定是否為惡意。但若檢驗檔案的行為理應簡單而可預 知,例如:影片、Office 文件、小遊戲…等,但卻檢查出有包含可疑的字串格式, 雖有可能本身沒有包含惡意行為,但也有可能為首頁綁架、惡意軟體下載器等間 接的木馬程式。我們實作了可疑字串檢查模組,將能找出類似可疑的字串,協助 我們對檔案的判斷。 (2) 檔案格式與副檔名檢驗檔案格式與副檔名檢驗檔案格式與副檔名檢驗檔案格式與副檔名檢驗

(24)

18 微軟的檔案系統都會包含副檔名以得知和哪個軟體有關聯性,而該副檔名也成了 騙取使用者執行的幫兇。若一個檔案格式與其副檔名不同,將有欺騙使用者之 嫌。攻擊者可能把惡意執行檔替換成一般文件,以降低使用者或防毒軟體對該檔 的警戒心,但必要的時候讀取該檔內容將成為攻擊程式。整合 Liunx 的 file 指令 來協助檔案判斷,file 可以判斷數千種檔案格式,其特徵碼達數萬行。我們找出 較敏感的若干檔案格式如下: a. MS Windows (DLL) : dll b. MS Windows (GUI) : exe c. ASCII text : inf

d. MS Windows (console) : exe e. Macromedia Flash data : swf f. Zip archive data : zip

g. ISO-8859 text : htm h. PDF document : pdf

i. Microsoft Office Document : msi, doc, ppt, xls, shs j. RAR archive data : rar

k. troff or preprocessor input text : py l. python 2.5 byte-compiled : pyc m. MPEG sequence : ico

由於上述的檔案格式較多人使用,也常見於檔案系統之中。我們實作以找出是否 屬於上述檔案,而副檔名卻正確對應的檔案。此處檔案格式與副檔名的對應可由 分析者自行增加,方法如後所述。

(3) 虛擬虛擬虛擬虛擬 CPU 以偵測動態取得記憶體位址以偵測動態取得記憶體位址以偵測動態取得記憶體位址以偵測動態取得記憶體位址

許多惡意程式會運用緩衝區溢位(Buffer Overflow)來插入 shell code,為了控制 program counter 的位址,惡意程式需要知道目標惡意程式碼的位址。而大部分的 資料都會存放在堆疊當中,利用 CPU 指令 call、pop 可以得知運行時的堆疊資訊。 為了能夠偵測該程式會不會刻意取出堆疊的回傳位址(return address),此分析模組 會包含一個模擬的 x86 CPU,來模擬堆疊與 CPU 暫存器的狀況。我們會在每個 CPU 指令 call 執行之後,在堆疊寫入一特定值,若該數值馬上被取出放入到暫存 器內,則可以確定該程式具有 call、pop 取出堆疊位址的技術。不同於虛擬機器, 此分析模組不用模擬所有的硬體裝置,只要簡單的模擬 CPU 暫存器與堆疊,故 能減少其他較不必要的運算開銷。由於 CPU 模擬器的實作較複雜冗長,我們將 會結合利用 python 開發的 pyemu 來縮短此分析模組的開發時間。藉由著修改 pyemu 的系統,觀測模擬運算時記憶體的狀態,來實作出偵測取得堆疊位址資訊 的可疑檔案。 此部分將會檢查出一般文件檔案是否具有堆疊位址取得的技術。給予一個欲檢測 的一般檔案,本分析模組能夠判斷該程式是否會刻意的存取堆疊的內容。如果該 執行檔試圖取出堆疊的內容,將會被此系統偵測出。

(25)

19  程式漏洞檢測程式漏洞檢測程式漏洞檢測 程式漏洞檢測 我們計畫以美國加州大學柏克萊分校(UCB)研發的 Catchconv 為基礎平台,進行 關鍵技術的研發與檢測系統的開發。Catchconv 是目前相當優秀、技術先進的程式 檢測系統,同時它也是公開原始碼的,在上面進行技術研發,除了能夠方便取得大 量有益的資源外,也可習得許多先進的檢測技術;更重要的是,能夠推廣公開原始 碼軟體與提升台灣資訊軟體在公開原始碼上的參與度與貢獻度。 在 Catchconv 的檢測過程中,我們須先提供一個初始的測試資料,用來當作被檢測 程式的輸入。Catchconv 將會監控被檢測程式的執行運作,檢查是否有潛在的程式 漏洞,並產生可引發此程式漏洞的測試資料;Catchconv 也會根據目前程式執行過 程中的變數內容與條件執行流程,產生能夠執行到尚未執行過的程式區塊的測試資 料。對於被檢測程式中的程式碼敘述(例如:Buffer[i]=0;),Catchconv 將會嘗試 產生可能的測試資料,使得索引 i 超過 Buffer[ ]的大小,企圖引發記憶體緩衝區溢 位;另一方面,對於程式執行中的條件執行流程(例如:if (i>0) OOO else XXX), 如果目前程式執行的是 i>0 這一條路徑,Catchconv 將會嘗試產生可能的測試資料, 使得變數 i<=0,企圖讓被檢測程式下次執行另一條路徑。

我們發現到在 Catchconv 的檢測過程中,迴圈將會造成許多重複的條件執行流程, 這會讓 Catchconv 的檢測變得較無效率。例如:對於迴圈 for (i=0;i<10000;++i), Catchconv 將會面對 i<10000 這樣的條件執行流程大約一萬次(i=0、i=1、…、 i=10000),然而這些條件執行流程所產生的測試資料,事實上卻只是影響了迴圈 的執行次數,並沒有帶領我們發現、檢測新的程式區塊。根據以上的觀察與發現, 我們希望能夠偵測出被檢測程式中,哪些條件執行流程是由迴圈造成的,這樣我們 便可讓 Catchconv 在檢測程式的過程中,不會陷於迴圈的陷阱。 我們首先進行 Catchconv 的程式碼修改,使其能夠輸出檢測過程中所遇到的條件分 支資訊,包含目前的條件分支是否被執行以及此條件分支的目標位置。接下來開發 迴圈偵測程式,利用條件分支的資訊,判斷哪些條件分支是由迴圈所造成的,並輸 出可以被省略的 Query 清單供 Catchconv 使用。之後我們修改 Catchconv 的主程式 部分,使其在進行檢測的過程中,能夠利用可省略的 Query 清單,不用對所有的條 件分支進行 Query,節省 Query Solving 的時間,增進整體效率。

除了迴圈偵測及 Query 最佳化的部分之外,我們注意到 Catchconv 在不同回合的檢 測過程中,有許多是之前的回合中已經被 Query 過,又再度被重複 Query 到的條件 分支,因此我們同樣希望可以辨識出這些重複的 Query,以省略再一次 Query 所造 成的浪費。

我們同樣利用條件分支的資訊,紀錄哪些條件分支是已經被 Query 過的。我們修改 Catchconv 的主程式,使其利用 Prefix Tree 來紀錄目前為止已經被 Query 過的條件 分支,如此便能對目前所遇到的條件分支進行檢查,判斷是否已經被 Query 過而可 以被省略,以達到我們的目的。

(26)

20

貳 、

計畫

計 畫

計 畫

計 畫 項 目

項 目

項 目

項 目 完 成 度

完 成 度

完 成 度

完 成 度

以下依照本計畫所涵蓋的無線異質網路模擬平台、行動平台安全機制、惡意檔案文件 分析系統、程式漏洞檢測系統等四個子項,回報其工作執行狀況與其完程度。  無線異質網路測試平台無線異質網路測試平台無線異質網路測試平台 無線異質網路測試平台 (完成度完成度完成度完成度::100%) 本子研究之工作項目完成度如下: (1) 現有網路測試平台之分析現有網路測試平台之分析現有網路測試平台之分析現有網路測試平台之分析 (100%) 本計畫依據:(1)實驗之可控性與可重複性、(2)無線網路模擬之真實性、(3)無線技 術之可擴充性與可移植性等條件,分析現有之有線/無線網路測試平台之優缺點, 尋找適用於本計畫所欲建立之異質無線網路模擬平台之技術與架構。根據分析的 結果,本計畫之研究人員認為於 EmuLab 有線網路測試平台上擴充無線網路的訊 號模擬,能符合本計畫所欲建立之異質無線模擬平台的所有要求: (1) Emulab 利 用實體機器仿真實驗節點的方式可以確保模擬結果之真實性與實驗之可重複性; (2)有線網路平台的封閉測試環境可保障實驗之安全性與隔離性,避免實驗失控危 害一般網路之使用; (3) 利用虛擬驅動程式和虛擬天線的架構仿真無線網路訊號 之傳遞的方式,可彌補有線網路測試平台缺乏無線傳輸設備的缺點,並提高異質 無線網路測試平台之移植性與可擴充性。 (2) 異質無線網路模擬平台架構設計與建置異質無線網路模擬平台架構設計與建置異質無線網路模擬平台架構設計與建置異質無線網路模擬平台架構設計與建置 (100%) 本計畫之異質無線網路模擬平台採用 EmuLab 所提出之有線網路測試平台架 構,以輔助實驗機器與系統安全之管理。本平台之管理功能集中在指揮伺服器與 使用者伺服器: (1) 指揮伺服器負責實驗之建置與管理,並利用虛擬區網技術控 制網路交換器來區隔不同之網路實驗,達到實驗之隔離性; (2) 使用者伺服器主 要之功能為管理使用者帳號以及使用者所建立的實驗,使用者可經由使用者伺服 器利用 SSH 連線至其所建立之網路實驗節點。同時,本計畫亦採納 UCB 的 DETER 開發團隊之建議,使用防火牆隔離內部與外部網路,避免駭客入侵實驗 中之主機或是內部網路之惡意程式失控擴散至公有網路。 (3) 異質無線網路模擬平台軟體開發異質無線網路模擬平台軟體開發異質無線網路模擬平台軟體開發異質無線網路模擬平台軟體開發 (100%) 本計畫提出了虛擬驅動程式和虛擬天線的架構仿真無線網路底層訊號之傳遞,以 補足有線網路測試平台缺乏無線模擬功能之不足: (1) 虛擬驅動程式負責與作業 系統核心溝通,模擬無線裝置的網路控制層 (MAC layer) 的所有控制以及資料封 包的處理工作; (2) 虛擬天線則用以仿真無線網路底層 (硬體傳輸層) 之介質傳 送和資訊交換的工作,將來自虛擬驅動程式的無線網路封包 (802.11、802.16d) 封裝成有線網路 (802.3) 之 UDP 廣播封包,傳送給所有實驗節點。本計畫亦開 發了完善的使用者介面與基本的網路攻防模組,以協助使用者於本平台上進行無 線網路模擬實驗。 (4) 整合本計畫平台與整合本計畫平台與整合本計畫平台與整合本計畫平台與 DETER 平台之實驗資源平台之實驗資源平台之實驗資源平台之實驗資源 (100%)

參考文獻

相關文件

勞動部為促進青少年就業,及培訓契合企業需求之優質專業技術人 力,自民國 92 年與教育部合作,引進德國「雙軌制」(Dual

39 資訊與網路技術 佳作 李喬安 國立花蓮高級工業職業學校/勞動部勞動力發 展署桃竹苗分署. 39 資訊與網路技術 佳作

勞動部為促進青少年就業,及培訓契合企業需求之優質專業技術人 力,自民國 92 年與教育部合作,引進德國「雙軌制」(Dual

Our environmental policy is to promote environmental education in schools, to maintain a management system to improve the environmental quality of our activities, to adopt

This kind of algorithm has also been a powerful tool for solving many other optimization problems, including symmetric cone complementarity problems [15, 16, 20–22], symmetric

“Blue Teen from Hong Kong had an interesting project ~ Bluetooth critical zone control system automatic authentication and sterilization system for centralized butchery in order

– evolve the algorithm into an end-to-end system for ball detection and tracking of broadcast tennis video g. – analyze the tactics of players and winning-patterns, and hence

The applications of an ERP cloud service to improve the effective management of a SCC and the related possible operational issues are then discussed1. Finally, a real case of an