題。Song, Wanger, Perrig [14] 提出了一個用來解決關鍵字搜尋加密資料的方法。使用者將 資料加密儲存在不可完全信任的遠端伺服器上,接者使用者可以透過關鍵字找回其對應的 為 Regenerating code[18][19]。在修復機制中,若新增的儲存伺服器完全還原了發生錯誤的 伺服器中儲存的資料,此類的修復方法稱為 exact repair,與之相對的方法則被稱為
functional repair。Rashmi 等學者提出 exact repair 的修復機制並且證明其效率衡量值落在 regenerating code 的曲線上[20]。Shah 等人則考慮網路狀況為不對稱的系統模型進行研究 [21]。其他學者紛紛考慮不同的系統模型演化出不同修復機制[22][23][24]。若系統只能修 誤(faulty error)的存在[27]。Rashmi 等人則提出可以結合兩個容錯編碼來提供更好的修復功 能[28]。Pawar 等人討論當修復機制在執行的時候,網路上的竊聽者是否會破壞資料隱私性 的問題[29]。Papailiopoulos 與 Dimakis 則證明了在最大化資料隱私性與最小化修復網路頻 寬問題中間的對等關係[30]。無論是修復單一錯誤或者多個錯誤,我們發現到的是在效率
8
儲存系統,非集中式的容錯編碼使得儲存系統不需要常設一個中央管理單位來維護系統全 域參數,個別的儲存伺服器可以獨立進行編碼運算,無須彼此溝通,此結構很適合非集中 式的環境,譬如點對點(P2P)環境或者是無線感測網路。
在雲端資料的完整性驗證的研究中,Ateniese 等人定義了 provable data possession
(PDP)模型。他們提出了一套非對稱性密鑰的 PDP 方法,使用 homomorphic verifiable tag 來驗證使用者資料。根據 homomorphic verifiable 的特性,雲端儲存伺服器可以將使用者資 料的 tag 線性組合起來,組合成單一個 tag 並回傳給使用者,以達到有效率的資料完整性驗 證。後來,Ateniese 等人提出了一個對稱性密鑰的 PDP 方法,支持儲存資料的動態操作,
像是插入刪除替換等。他們的方法具有可擴展性和高效率,然而,資料完整性驗證的次數 卻是有限制的,取決於資料前處理時所插入的 token 數。Erway 等人提出的 dynamic provable data possession(DPDP)使用 rank-based skip list 來驗證資料完整性,skip list 是一種類似於 Merkle hash tree 的驗證用資料結構,DPDP 支援使用者資料上的動態操作。Juels 和 Kaliski 提出了 proof of retrievability(POR)模型。POR 確保儲存的資料可以被使用者正確地存取 到,而 PDP 確保資料完好地儲存在雲端儲存伺服器中。Juels 和 Kaliski 的方法同樣需受限 於資料前處理時插入的 token 數。後來,Shacham 和 Waters 提出了一個支援無限制檢驗次 數的 POR 方法。Bowers 等人提出了一個理論框架去設計 POR 方法,該框架採用兩層的錯 誤糾正碼(error correcting code)從雲端伺服器的回應中回復使用者的資料,他們的框架改 善以往 POR 的研究成果。Wang 等人提出了支援資料動態操作和可公開驗證的 POR 方法,
他們的方法同樣使用了 Merkle hash tree 資料結構以支援使用者資料的動態操作。為了同時 實現高可用性和資料完整性檢查,使用者資料通常會有多個副本或是套用一些錯誤糾正的 編碼方法。Curtmola 等人提出了 MR-PDP,確保每個獨特的副本都存在於儲存伺服器中。
Curtmola 等人又提出了一個強大的資料完整性檢查方法,使用前向錯誤糾正碼(forward error correcting code)。後來,Bowers 等人提出了 HAIL,HAIL 提供了高可用性和資料完整 性,HAIL 使用了多層的錯誤更正碼(error correcting code),可確保資料在分散式的儲存 環境下,仍有一定的可用性。
基於機器碼之 Windows 惡意程式行為分析雲端平台
惡意樣本的蒐集已是資安相關領域中相當重要的問題,許多樣本蒐集平台也紛紛被開 發出來[52][53][55][56]。以往的樣本蒐集大多採取 Honeypot 的方式來誘捕攻擊者,分析其 一連串的入侵手法以及殘留在電腦系統中的惡意檔案。但利用 Honeypot 蒐集的效率並不 高,故有學者紛紛提出增加被攻擊的機率以提高樣本蒐集的速率[54]。由於雲端技術的誕 生,使用者可以靠著自行架設的機器來擷取網路的檔案,並且可以多台同時合作和達到橫 向擴展(Horizontal expandable)來達到運算的可擴充性。利用 MapReduce 的雲端計算架構來 平行化擷取網路檔案,可以讓使用者在最短的時間內建置自己檔案樣本來源。
9
IaaS 雲目前市場的領導者是 Amazon。Amazon 的 EC2 (Elastic Compute Cloud) 提供客 戶透過網際網路配置虛擬機器[70]。
例如三家公司 A、B、C 分別在 EC2 上配置虛擬機器,底層是由四台實體機器所構成。
每台實體機器上有安裝 Xen Hypervisor[71] 來提供虛擬化的服務。用戶可以在所配置到的 虛擬機器上安裝各自所需的作業系統 (如 Linux、 OpenSolaris、Windows Server 等) 以及 業系統(Guest Operating System)。這稱為 Type-1 的虛擬化。如 VMWare ESX、Citrix Xen [74]、Microsoft Hyper-V[73]均屬於此類。另一種型態的虛擬化是在一台已經裝好作業系統 (Host OS)的機器上裝上一個 Hypervisor,然後再於 Hypervisor 內運行虛擬機器。Hypervisor 必須要透過 Host OS 的系統 API 才能跟底層硬體溝通。Type-2 Hypervisor 本身受到 Host OS 所加諸的一些限制,也因此在執行需要特殊權限的程式碼的時候,需要輔以 emulation 或 binary rewriting 等技巧來處理。Type-2 Hypervisor 包括了如 VMWare Fusion、VMWare Workstation、Microsoft Virtual PC、Oracle VirtualBox 、HXEN (Hosted Xen)等。對於 IaaS Cloud 來說,使用 Type-1 Virtualization 是一個比較常見的作法。主要原因不外乎因為系統 的主要目的就是提供虛擬化環境,也因此底層先放個 host OS 也就顯得多此一舉,更遑論
10
雲端運算
本節將介紹目前較為知名的雲端服務與平台,包括 Amazon EC2 與微軟的 Windows Azure 平台。
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2)是一種網頁服務,可以提供可變大小 的計算能力。專門針對開發人員而設計,使其能輕易地調整網站計算規模。為了 達到公平計費的目的,EC2 使用 Xen 虛擬化技術,依據所配置的處理器運算能 力與記憶體大小,將其運算節點分為八大類,包括 m1.small、m1.large、m1.xlarge、
m2.xlarge、m2.2xlarge、m2.4xlarge、c1.medium 以及 c2.xlarge。m1 類均配置一 般記憶體,依照所配置的記憶體大小分為 small、large 與 xlarge。m2 類為高速記 憶體,c2 類節點則配有高速運算能力之處理器。每種節點上均可選用不同的作業 系統(Linux/UNIX、Windows),並可依據資料庫需求,增配 SQL 伺服器。此外,
EC2 服務也能依據使用者對 IP 位址、負載平衡以及資料傳輸量的需求,適度地 提供不同的配置,並依使用情況收取不同的費用。當使用或要求的資源少時,收 費也會跟著減少。
簡單來說,Amazon EC2 簡單的網頁服務介面可以讓使用者在最少衝突的情況下,
取得與配置所需的計算能力。同時,EC2 也允許其使用者可以全面控制這些計算 資源,並於 Amazon 所認可的計算環境中執行應用程式。EC2 可以將取得新伺服 器與開機的時間縮減至數分鐘,讓使用者可以隨著計算需求改變時,快速隨狀況 調整運算能力。此外,EC2 也提供開發人員一些工具,開發各種可以由錯誤中回 復的應用程式,並使這些應用程式可以免於遇到常見的錯誤情況。
圖表一:Amazon EC2 之架構
Microsoft Azure Platform
11
一直以來,微軟都是以本機端的視窗軟體為其根基。然而,這卻與雲端運算的宗 旨(不需安裝額外的本機端軟體,所有資源都在雲端,本機端只需能連上雲端的 設備與瀏覽程式即可)相違背。為了因應雲端的流行趨勢,不落人後的微軟也開 始推出免費的雲端服務,搭配其本機端軟體,可以讓使用者在熟悉的環境中,享 受這些免費的雲端服務。
Windows Azure Platform 是微軟新推出的雲端服務平台(含有 Windows Azure 作業 系統、.NET 服務與 SQL 資料庫),可提供開發人員一套更有彈性的視窗環境,
使其能快速地開發雲端應用與服務。Windows Azure 是一套雲端服務的作業系 統,除了開發之外,也能提供管理服務的機制與環境,開發人員可以透過 Azure 平 台提供使用者所需要的計算與儲存能力,甚至能透過網路管理其網站應用。由於 Windows Azure 整合了 Visual Studio,也支援多種標準與協定,如 SOAP、XML、
PHP 等,因此,能使開發人員過去的開發經驗繼續傳承與延伸。
圖表二:Windows Azure Platform 之架構
網路測試平台
在網路測試平台方面,本節主要介紹目前較為知名的幾個國內外測試平台,包括 Emulab、DETER、TESTBED@TWISC 等。
Emulab
Emulab 是猶他大學所研發設計之網路測試平台,利用分散式系統與網路建置出一 套研究用的仿真平台。在此平台中,使用者可以利用 NS 語法,將平台內的各實 驗節點任意連接成一個網路拓樸。平台可以支援多組實驗同時進行,每個實驗網 路均以 VLAN 隔開。 不管實際接線情況為何,配置在同一個 VLAN 下的網路
12
拓樸彼此之間可以互相通訊,就好似連接在同一個區網之內。此隔絕性可以保證 各實驗之間彼此不會互相干擾。在 Emulab 中,使用者建置新實驗的步驟包括: 1) 配置實驗節點;2) 配置 VLAN,以建構所需的拓樸;3) 將映像檔載入所指定的 實驗節點中。然後,使用者就可以開始進行其測試實驗。
圖表三:猶他大學的 EmuLab 平台
DETER
以 Emulab 為基礎,DETER 測試平台更進一步地提供安全保護機制,避免測試平 台本身遭到外部攻擊,同時也保證測試平台內部的實驗資料(尤其是含有惡意程 式碼的實驗)不會流入外部公用網路。此平台的特色在於提供「安全」的測試環 境。其設計已經整合於目前的 Emulab 中,並有眾多使用者以此平台作為測試其 新方法的依據。
圖表四:柏克萊大學的 DETER 平台
TESTBED@TWISC
Testbed@TWISC 由國內成功大學所建置之網路測試平台。此平台以猶他大學所授 權的 Emulab 為基礎,具備網路測試所需的隔離性、仿真度等特性。由於國內外 硬體規格差異,成功大學研發團隊在取得 Emulab 授權之後,便積極尋找可替代 之國產硬體(包括實體實驗節點、電源控制器、交換器等設備),並自行研發相關
Testbed@TWISC 由國內成功大學所建置之網路測試平台。此平台以猶他大學所授 權的 Emulab 為基礎,具備網路測試所需的隔離性、仿真度等特性。由於國內外 硬體規格差異,成功大學研發團隊在取得 Emulab 授權之後,便積極尋找可替代 之國產硬體(包括實體實驗節點、電源控制器、交換器等設備),並自行研發相關