加入RUN!PC粉絲團 加入RUN!PC粉絲團
 
精選文章
分享到Plurk
分享到FaceBook
 
IaaS安全
從Amazon EC2攻擊事件看雲端應用安全
文/圖Nicholas

本文一開始先舉Amazons EC2雲端服務被利用做網路犯罪為案例,藉以探討企業在採用IaaS雲端服務所可能產生的相關安全議題。

2009年12月,CA資深研究員發現網路犯罪Zeus botnet利用Amazons提供的EC2雲端運算服務做為Botnet的C&C(command and control)主機,控制遭受感染的殭屍網路電腦。所有已經感染的殭屍電腦主機會直接與Amazons EC2雲端運算服務連線,並利用常見的HTTP通訊協定進行惡意程式更新及新功能下載等動作。這個惡意的木馬程式會在已經感染的主機上竊取使用者的機密敏感資料,以及網路銀行登入認證憑證等,然後再將收集到的資訊回傳到駭客建立的另一個web網站。


雲端運算有如兩刃劍
很明顯地,這個網路犯罪集團背後的活動,目的是竊取使用者的機密資料,將個人資料進行販售謀利。我們已經可以瞭解駭客如何透過合法的方式,使用雲端運算服務隨時pay-as-you-use的特性,利用合法掩飾非法,且不容易被發現,再加上背後擁有強大雲端運算資源進行網路犯罪。
已經有不少資安研究專家預測,駭客集團利用合法雲端運算服務的犯罪將會越來越多,例如亞馬遜的Elastic Computing Cloud(EC2)服務和Google的App Engine。另有其他消息指出,資安研究專家Moxie Marlinspike已經利用雲端運算提供破解無線網路WPA-PSK加密機制密碼的服務,只要花$17美元即可在40分鐘後得到無線網路密碼。


IaaS雲端運算服務的內容
基礎設施即服務(Infrastructure as a Service;IaaS),指的是雲端運算供應商提供處理器、儲存設備、網路以及其他IT資源的租用服務給客戶,例如Amazon的EC2、IBM的Blue Cloud等。客戶無需管理底層的雲端運算基礎架構,但能夠控管處理器、儲存設備、網路與所部署的應用程式,並且能夠選擇網路元件(例如防火牆)等服務。簡單地說,客戶不必瞭解是雲端服務供應商到底使用哪一型態與廠牌的硬體設備,也不需要知道這些硬體置放的地理位置,他們只需要決定租用幾顆處理器處理需要執行服務的資源即足夠。
對於IaaS服務來說,主要是為用戶提供基礎架構服務,並對大規模的分散式實體資源進行整合,例如虛擬資料中心VDC、虛擬機器、虛擬網路等等。不論伺服器主機所在的位置在哪,都讓雲端運算服務可以很彈性的運用各地實體主機的各項硬體資源。IaaS服務所使用的核心技術就是將硬體資源虛擬化,然後整合以利彈性調整運用。


IaaS可能面臨的安全威脅
將企業內部的服務或應用程式資源移到雲端後,對企業會有什麼樣的資安威脅?基本上,企業所使用的雲端服務可能帶來的威脅,大體上而言是從內部轉移到雲端,即是將防禦工作從企業內部轉嫁給雲端運算供應商,資安威脅仍然存在。

減少事故發生的處理流程

對於企業而言,少的是資安事故發生後的處理流程,包括找出感染主機的來源、清除已遭受感染的主機、強化電腦主機的安全性、檢核主機安全性是否不足?是否需要外來支援等等後續事故處理流程。除此之外,更少了資安防護所需的軟/硬體成本,像是入侵防禦系統、使用者端防毒系統、防火牆、Router與Switch ACL、弱點評估、滲透測試等。還有省下眾多防護設備的維護成本與維護人力、時間等成本。但不可諱言,IaaS服務亦產生新的威脅,例如其它客戶是否能利用未知的服務漏洞存取企業的資源或資料。
因此,可以根據IaaS服務的安全需求和特性,從系統安全的角度,探討虛擬主機的入侵檢測和防護技術、運作時的資料完整性保護技術、隔離技術、虛擬主機映像檔的安全保護以及安全遷移技術等。


IaaS的攻擊手法
下面列出幾項目前雲端運算IaaS服務可能遇到的攻擊手法。

DDoS

駭客利用大量殭屍電腦同時攻擊,來達到妨礙正常使用者使用服務的目的。駭客預先入侵大量主機以後,在被害主機上安裝DDoS攻擊程式控制被害主機,再對攻擊目標展開攻擊,利用這樣的方式可以迅速產生極大的網路流量、癱瘓攻擊目標。Amazon提供的EC2服務就遭受過DDoS攻擊。

Man-in-the-Middle Attack

係指駭客扮演中間人角色,假冒伺服器端接收到傳送的訊息,再假冒使用者端把訊息傳給真正的伺服器主機,藉此方式可以在兩端連線不知情的情況下竊取或變更傳遞的訊息內容。

System vulnerability (Windows、Unix-like、SQL )Attack

利用已發現或未公開的系統弱點進行攻擊,取得或提升服務主機管理權限。
上述三點之外另有其它威脅,可能是未知的雲端IaaS服務漏洞,或是跨越虛擬化主機之間的漏洞等,這些都會是未來雲端運算服務供應商所要面對與解決的。


IaaS的安全議題
目前雲端運算IaaS服務的可能安全議題如下:
 顛覆傳統的管理程序。
 透明的安全法規和程序。
 安全事故的影響、惡意的VM的錯誤設定。
 雲端運算供應商資料中心彈性應用硬體資源分配時可能造成的影響。
 安全監控的發展。
接著我們將就上述各項主題,提出下列執行改善措施。

顛覆傳統的管理程序

通常大家最擔心發生具有非常嚴重程度的威脅層級事件,但其實會發生的機率卻很低。至目前為止,尚未出現任何有意義的指標是關於安全的管理程序結構上的問題。透過API,雖然可模組化的系統管理程序增加擴展功能,但是卻有潛在的危險性問題。一旦系統管理程序已經被入侵,應當考慮的是線上虛擬主機是否需要轉移的問題。如果不做,要如何以最佳方式通知客戶並且恢復原始狀態?雲端運算供應商必須採用縱深防禦的安全防護架構,準備好在發現違反管理程序時,可以做作出相對應的反應與措施阻止攻擊。

透明的安全法規和程序

雲端運算供應商是否能提供足夠透明的安全報告給客戶。CVE(Common Vulnerabilities and Exposures)一級報告內容對於客戶可能過於詳細,且透露太多潛在的攻擊者所需資訊。例如:CVE-2010-0249 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0249),內容就描述弱點的原因;也提供會影響的版本資訊、各大資安網站關於這個弱點詳細的報告,甚至還將提供 exploit code原始碼提供的網站資訊。雲端運算供應商應當公佈高層級的安全政策與相關標準程序,並回報實施情況的報告。報告應提供PDF和XML(SCAP??ACE-ML?)格式,或提供ATOM/ RSS報告。報告基本上應按月提交,並提供增加報告頻率可另外付費的服務。ISO 27001是個合理的起始點,雲端運算供應商可利用它發展安全報告程序。

彈性化資料中心的影響

雲端運算供應商可能因當地法規限制本身提供的服務或區域,客戶本身亦有服務上的要求,合約是否能含括此類爭議的解決方案。客戶必須了解雲端運算供應商當地的資料儲存相關法規與客戶本身當地的相關法規。雲端運算供應商應當明確讓客戶知道資料儲存所在地,甚至允許客戶指定資料儲存區域。


2009年對於雲端運算服務的挑戰與疑慮(資料來源:IDC)。



與其他服務安全考量的差異
相對於PaaS雲端服務來說,它可以讓客戶能夠將自己建立的某些類型應用程式部署到供應商提供的雲端服務上執行,並且允許客戶對應用程式及其虛擬主機環境,進行控制調整配置。因為來自於客戶端的程式碼含有惡意行為,再加上如果PaaS服務暴露在Internet上過多的介面,可能會給攻擊者有攻擊的機會。比方說,客戶可能會上傳一段惡意程式碼,而這段程式碼可能會佔滿CPU資源、記憶體空間甚至其他資源,也有可能會攻擊其他客戶,甚至可能會攻擊供應商執行環境的底層平台。
而SaaS服務,目前只在某些特定應用程式上首先使用,例如CRM、ERP、人力資源管理等,它的主要做法是採用同一套軟體程式碼來處理不同用戶的私有資料,並提供租賃服務,以便獲得低成本規模的服務(Economies of Scale)。由於SaaS服務端暴露在 Internet?的介面相對有限,即系統安全性核可權限是最低的,一般而言並不會對其所在的軟體套件下的更高系統安全核可權限帶來新的安全性問題。至於客戶私有資料在服務供應商的安全保護問題,則可以歸類到IaaS的安全問題。


服務供應商所提供的安全防護
IaaS雲端運算服務所提供的安全性防護措施,大致可歸類為以下幾點。
1. 提供虛擬主機的入侵防禦系統(Host IPS)強化主機安全性,防止針對已知漏洞攻擊。(例如IBM ISS Proventia產品;HP最近收購的3COM旗下的TippingPoint,預計2010 Q1到Q2間會發佈相關虛擬主機安全性產品。)
2. 其它防護措施不外乎防火牆、提供限制來源位址的遠端管理加密連線方式,例如VPN連線、SSH遠端連線、HTTPS連線等。
3. 虛擬主機運作時的資料完整性保護技術、隔離技術、虛擬主機映像檔的安全保護以及虛擬主機的安全遷移技術等。
此外,客戶端可以對服務的連線遠端管理連線加密執行防護,但如果將服務連線整個做加密時,會需要足夠的網路頻寬與高階加解密硬體設備,才能處理服務連線的資料。通常,遠端管理選項有虛擬私有網路(VPN)、遠端桌面、遠端Shell和Web GUI。


IaaS遠端連線管理選項
由於IaaS資源在遠端,因此管理者會需要某些遠端管理機制,最常用的遠端管理機制包括下列各項。

VPN

提供連線到IaaS資源的安全連接通道。通常在遠端管理應用程式不能保護其傳輸的資料時使用,最常見的解決方案包括PPTP、L2TP、IPSEC,或SSL/TLS。

遠端連線管理

圖形介面工具所使用的介面,多半是在作業系統本身不支援命令列工具程式的管理時使用(如Windows作業系統),最常見的解決方案是Windows遠端桌面或虛擬網路電腦(VNC)。

遠程Shell

為系統管理提供命令列的介面。此種環境的性能是最好的,最常見的解決方案是SSH。

Web GUI

通常是由雲端運算服務供應商自行開發的遠端管理介面,例如Amazon的AWS服務所使用的RightScale介面。


常見遠端管理威脅
缺乏強健的憑證是上述遠端管理連線的主要威脅。強度較弱的認證方式大多是由於缺少憑證,這是資訊暴露在Internet上最常見的方式。另外,重複使用的使用者戶稱與密碼,或長期共用的私鑰,也是遠端管理連線目前面臨的主要威脅。其他影響遠端管理連線的重大威脅,還包括由Protocol相關的原始設計缺陷所造成的。主要類型如下:

常見遠端管理威脅

在這個時候,Protocol主要還是屬於理論上的風險而已,在實際環境中的攻擊仍非常少見,減緩因Protocol造成風險的唯一解決辦法,是變更使用其它較安全的Protocol(例如IPSEC over PPTP),或者升級到強度最高的Protocol(例如SSL v3或TLS v1,TLS v2)。

遠端桌面

此應用主要有兩個遠端桌面Protocol,一個是RDP(遠端桌面協議),例如微軟的遠端桌面;而另一個RFB,像是著名的遠端遙控軟體VNC。目前這兩種通訊協定最新版本仍存在相當程度的安全風險,最好的辦法就是在一個安全通道內使用這些工具(例如VPN)。

遠程Shell

目前最常使用的遠端sell協議是SSH和Telnet,由於Telnet以明碼方式傳輸,極度不安全,因此目前SSH的最新版本相對安全。

Web GUI

Web的通訊協定有HTTP或SSL/TLS或加密方式的HTTPS,但無論是HTTP或SSL/TLS都存在相當程度的威脅。


如何降低雲端威脅
降低認證威脅的最佳辦法是使用Two-factor認證,或是使用動態共用密鑰,以及縮短共用密鑰的共用期,且不要長期使用高重複性的使用者名稱與密碼,並保持最新的安全修補程式。遠端工具使用上,建議SSH工具使用RSA密鑰進行認證。微軟的遠程桌面工具用高強度加密方式,並要求伺服器認證。使用VNC時,建議在SSH或SSL/TLS tunel上使用。另外,在此強烈建議「不要使用」Telnet。對於無法自我保護傳輸資料安全的程式,應使用VPN或安全加密連線方式(SSL/TLS或SSH),可先使用IPSEC,然後才是SSLv3或TLSv1。

企業在決定評估使用IaaS雲端服務之前,建議從Cloud Security Alliance提供的評估程序開始著手。(請注意:此項評估程序並非代表完整雲端的風險評估架構。)

Step1:決定資產的重要性

導入雲端運算IaaS服務的順序,應先從虛擬主機還是虛擬儲存設備開始?要達成何種程度的虛擬化與使用者滿意度?使用雲端運算服務後,反應速度要達到企業一定的服務水準時,應有何種層級的基礎架構?哪些資源與資訊可以使用,哪些因為安全性問題不應使用?

Step2:決定資產可能部署的雲端架構

Public cloud:直接使用公有雲,省去初期的基礎建構,成本也多在於往後的維護,但安全問題則需仰賴雲端運算供應商提供的安全防護。 Private cloud:私有雲,由雲端運算供應商提供諮詢與協助建構的服務,在企業內部建立私有雲,初期需花費基礎建構成本,爾後的安全性防護亦由企業本身全權負責與掌控。
Hybrid cloud:混合雲的架構上,可以公有雲為主,私有雲為輔;或是以私有雲為主,公有雲為主。前者省去大部分的基礎建置,大部分的安全防護由供應商負責提供;而後者大部分的安全性防護由企業自行責責管理。


以ISO27001為參考
對於雲端服務供應商提供的存取記錄與遠端管理存取權限,存取記錄內容必須包含存取來源IP address,登入時間、存取變更設定或相關內容,離開時間等記錄,也必需確定這些內容是否為不可否認性,才能保障客戶權益。另外像是服務、資源因異常發生中斷時,緊急回復時間、內容、方式為何?都必須詳細列出並了解。雲端服務供應商提供的安全稽核記錄報告是否完善,可以ISO 27001為審核的參考基礎。


【原文刊載於RUN!PC雜誌:2010年3月號】