觀點

偽駭客攻擊–滲透測試

2009 / 07 / 23
Trueman
偽駭客攻擊–滲透測試
究竟何謂滲透測試?而其又與弱點偵測差異為何?有待本篇進一步釐清。

「報告老闆!公司網站又有狀況了!」

「X的!這次又是怎麼啦!是網頁被換掉了?還是又被掛馬了?」

「都不是!這是公司客戶資料被google搜尋到了!連客戶的管理密碼都外洩了!」

「怎麼會發生這種事?千萬不能讓客戶發現,不然就事情就大條了!客服部門趕
發信告知客戶最近很多詐騙電話,請他們不要理會。唉!三天兩頭就出事,我們公司不是還有專作資安服務的人員嗎?怎麼還會一直出事?叫他們趕快想想辦法吧!」

  以上情節純屬虛構,如有雷同,那表示該單位真的、真的非常糟糕。

為何需要滲透測試?

  近年來網路攻擊事件層出不窮,早已成了許多企業IT人員揮之不去的夢靨,除了得兼顧專案的執行進度與日常維護的作業外,還得三不五時提防來自各方的網路攻擊!當然人非聖賢,偶爾會出現失守的狀況也無可厚非,但若是一而再,再而三地抵擋不住駭客的網路攻擊,就真的有必要好好檢討單位內的資訊安全管理機制與政策了!遺憾的是,目前我們看到的情形並非如此,有部分VIP級受駭單位乾脆直接處於棄守狀態,讓駭客每次造訪時,都能感受到賓至如歸的感覺;更有甚者,甚至反過頭來利用駭客的威名,在出現人為疏失導致系統運作異常時,直接將罪名推給駭客入侵以規避人員疏失責任的追究,這種做法也許暫時逃過了行政責任疏失的懲處,但對於單位整體資訊安全環境的提升並沒有正面的幫助,同時也罔顧了客戶的權益。

  追根究底,主要是許多企業單位缺乏合宜的資安事件危機處理的標準處理程序,導致IT人員在遭遇資安事件時,也常慌了手腳!只能頭痛醫頭,腳痛醫腳,缺乏一個全面的安全檢測與評估機制,才會導致資安事件不斷歷史重演。加上一般IT人員面臨資安事件處理的經驗普遍較為不足,所以在面臨網路攻擊行為時,如果只是一味地按照過去所學的網路與系統知識來對抗駭客入侵,恐怕對防禦駭客攻擊的效果十分有限;這時候,IT人員其實可以試著從另一個角度思考,反過來以駭客的觀點與思考邏輯來找出駭客可能的攻擊途徑與手法,再依據攻擊結果做為設計整體安全防禦機制的參考,這種模擬駭客攻擊的測試方法,我們稱之為「滲透測試」。

慎選滲透測試團隊

  由於滲透測試必須真實模擬駭客的攻擊行為,所以在滲透測試團隊成員的挑選上,一般都要求必須具備有豐富的網路攻防經驗,才能夠有效掌握駭客的攻擊心理與方式,而滲透測試團隊成員的組成,往往也決定了滲透測試的品質。

  最基本可接受限度,滲透測試小組的成員必須要能夠掌握各類攻擊工具的使用能力,能夠因應不同的網路環境與情境,搭配使用各種不同的攻擊工具來模擬駭客的攻擊(註3);進階一點的,還必須要能夠隨時掌握最新的駭客攻擊資訊,熟悉各種最新的攻擊技術,就像防毒軟體的病毒碼必須時常更新一樣,滲透測試執行人員的攻擊技術也必須不斷更新,才能夠隨時有效地掌握駭客的攻擊趨勢;而最理想的滲透測試團隊成員,則必須還要能夠依據特殊環境與情形撰寫專用攻擊程式,並具備有發掘0-day(註4)的能力,一個優質的滲透測試團隊不應僅侷限於已知的攻擊手法,而是會不斷的實戰過程中鍛鍊出敏銳的攻擊觸覺,能夠藉由追蹤一些細微的異常訊息,發掘出新的攻擊手法與安全漏洞。

  此外,成員也被要求必須具備有高度的道德觀念;由於在攻擊成功時,滲透測試小組成員皆有可能接觸到目標單位的機敏資訊,因此,滲透測試團隊成員往往會被要求具備較高的道德標準;而在正式進行滲透測試之前,執行單位往往也會被要求簽署保密條款,以顧及測試方與受測方的權利。

  但也是由於上述限制,滲透測試小組成員的人力需求並不容易獲得滿足,目前國內具備足夠能力進行滲透測試的專業技術人員仍十分有限,以市場上的需求來說,仍明顯供不應求。

滲透測試與自動化弱點檢測差異

  許多資訊管理人員可能很容易對於自動化弱點檢測工具與滲透測試感到有點混淆,加上目前許多廠商也會將自動化弱點掃瞄工具冠上滲透測試工具的名義販售,導致許多資訊管理人員將兩者誤認為是相同的產品。

  事實上,滲透測試與弱點檢測的確有一部分的功能是重疊的,但兩者也各自具有彼此無法完全取代的功能;廣義來看,滲透測試的測試範圍遠比自動化弱點檢測工具來得廣泛,而在執行滲透測試的過程中通常也會大量運用到各種不同類型的弱點檢測工具,但部分弱點檢測工具則具有滲透測試較為缺乏的管理機制,這兩者其實可以是相輔相成彼此互補的,沒有孰重孰輕,只是在應用的時機上可能會略有不同(當然本文旨在探討滲透測試,內文會著重在滲透測試部分)。

  以檢測範圍來說,一般常見的弱點檢測工具,多半是針對作業系統與常見軟硬體設備的弱點掃描,對於自行開發的應用系統與程式,是較為缺乏偵測能力的。而針對網頁程式弱點掃描的網站掃瞄工具,雖然可以偵測自行開發的網頁程式弱點,但也無法有效找出非網站系統以外的安全漏洞;近來頗為熱門的源碼檢測工具,因為採白箱測試方式,在網頁程式的檢測深度上的確優於滲透測試,但檢測的廣度則僅侷限於網頁程式的弱點,對於網站上線管理的機制與其他網路服務系統的弱點,也明顯缺乏檢測的能力。

  此外,一個優質的滲透測試檢測作業還應該會包含Google Hacking、商業邏輯漏洞、一些國內自行開發的中文套件弱點(註5)與一些上線管理的缺失,滲透經驗較為豐富的滲透測試團隊,甚至能夠嗅探出資訊安全管理系統與政策上的盲點並加以利用,這些部分都是弱點檢測工具較無法有效檢測的部份。

  舉個範例好了,2003年花旗銀行爆發的個資外洩問題,雖然被歸類在2007 OWASP Top10中的第10名"Failure to Restrict UR L Access",但因這類弱點帶有部份商業邏輯漏洞的特性,所以透過自動化的弱點檢測工具,並不容易偵測出這類型弱點;事實上,也因此最近幾年仍陸續有重要的金融與政府單位,相繼被揭露具有相同的安全漏洞。

  所謂的商業邏輯漏洞,依據WhiteHat Security資安顧問公司創辦人兼技術長Jeremiah Grossman的定義,就是一般商業邏輯流程中,所出現的技術漏洞;舉例來說,有些網站為了協助客戶解決忘記密碼的困擾,會提供忘記密碼的服務選項,透過提示問題的回應來協助使用者取回密碼,但攻擊者往往可以透過一些公開資訊的查詢,找出一些有用的線索,並藉此取得登入權限,最知名的案例大概就是2008年美國總統大選前,駭客便是利用這種手法成功入侵共和黨副總統候選人培林的Yahoo信箱;這類商業邏輯漏洞並非程式上的安全漏洞,而是功能設計的邏輯上出現問題,原本可能是提供給使用者更高便利性的功能,卻也給了駭客更大的方便。雖然商業邏輯型弱點的攻擊性並不像Injection Flow一樣兇猛而且直接,但由於自動化工具無法有效判別這類型弱點,也因此導致許多單位輕忽大意,加上透過商業邏輯漏洞攻擊通常並不需具備有高度的技術,一般使用者也可能在意外情形下發現問題並加以利用,所以一旦問題爆發時,對單位所帶來的商譽損害與影響,往往不下於其他常見的網路攻擊手法。

  當然前述觀點並不是在否定自動化弱點檢測工具的功用;由於目前的自動化弱點檢測工具多已導入管理的概念,許多產品的名稱也正式易名為弱點管理系統;資訊管理人員可以透過這類弱點管理產品建立內部的自動化弱點稽核作業,將歷次的弱點檢測與修補結果建檔,對於定期的安全稽核作業與未來資訊安全政策的規劃與修訂,將能提供很有力的佐證數據。

  就如同前面提到的,滲透測試與自動化弱點檢測工具是可以相輔相成的,不必要重此輕彼,甚至是互相攻訐;而是必須在單位資源許可的情況下,將各種資安產品與服務各自配置在適當的位置上,才能發揮最大的安全功效。

何謂滲透測試?

  滲透測試有別於一般資安產品與服務,多半以防護為出發點的模式,而是一種透過駭客觀點進行的主動攻擊模擬測試,滲透測試需透過專業的滲透測試小組人員,以真實的駭客攻擊模式來協助企業找出目標系統的安全漏洞,並在執行過程中,測試找到的安全漏洞,可實際攻擊與利用的程度,再依此定義出受測目標的風險等級與修復建議(註1)。

 
滲透測試的效益 滲透測試所能帶來的效益如下:

1 協助企業了解入侵者可能利用的攻擊途徑,並加以重點補強以防堵駭客的再次造訪。
  
  由於早期學校或電腦補習班在教授資訊相關課程時,多半是以正向的觀點出發,強調的是如何讓架設的系統能夠有效運作,或讓撰寫出來的程式能夠滿足功能面的需求,在安全性上的著墨並不多,更遑論針對駭客攻擊的手法進行研究與分析,所以資訊管理人員普遍對駭客攻擊的思考邏輯與攻擊途徑常有誤解或錯誤的認知,因而掉以輕心或做了錯誤的配置,透過滲透測試的攻擊成果,可以有效協助資訊管理人員了解潛在的安全風險,甚至是揪出多年來早已被駭客默默接管的系統(實務上這類案例還真的不少)。

2企業IT單位可以依據滲透測試的結果,來評估單位環境內已佈署的網路與系統安全強度,並評估過去採購的安全設備是否有被正確的設定與配置。
  
  早期許多企業都是經歷過嚴重的資安事件後,才開始意識到資訊安全的重要性,並開始著手規劃資安產品與資訊安全管理系統的佈署;但初期往往受限於經費與經驗的限制,只做了重點的防禦,而缺乏一個整體性的防禦規劃,依據資訊安全的木桶理論(註2),這樣的防禦機制其實依舊是充滿風險的。

  有時候則是由於錯誤的認知或經驗的誤導,對產品做了錯誤的配置與設定。例如在那個蠕蟲病毒還很氾濫的年代,筆者就曾經遇過很多客戶要求採購防火牆或入侵偵測系統來阻擋病毒攻擊,事實上,這些設備在遭遇蠕蟲病毒攻擊時,主要的功能就只是有效隔離,避免災情擴大,並無法有效且根本地解決這些客戶當時所面臨的電腦病毒問題。而在筆者過去實際處理資安產品運作不良的案例中,其實多數原因並非這些資安產品功能不彰,而往往是管理人員賦予它們不適合的任務;我們可以反過來想,就像我們玩三國志遊戲一樣,諸葛亮是遊戲中最好的一位軍師(自創人物除外),但若玩家把諸葛亮當成武將推上戰場與敵方武將進行單挑,卻很可能連一位名不見經傳的武將都打不贏;資訊管理人員一旦做了錯誤的產品配置,那就跟派諸葛亮出去單挑沒什麼兩樣,不但缺乏實質效益,也徒然浪費了寶貴的企業IT資源。

3部分單位甚至會採用黑箱測試模式,以測試相關人員對於資安事件的安全回應程序是否能夠正常運作,以及過去所建立的資訊安全管理系統與政策是否合乎現實環境的需求。

  許多單位目前已經陸續導入資訊安全管理系統,甚至也通過了一些資安的稽核與認證輔導,但這些機制多半還沒有機會經歷過實戰的考驗;所以部分企業會要求在進行滲透測試時,對企業內部人員保密,並藉由滲透測試的過程來驗證單位內部資安應變處理程序,是否能夠有效的回應與處置。


註1: 有時候數個低風險等級安全弱點組合在一起,經由駭客的組合利用,可能形成一個嚴重風險等級安全弱點,故滲透測試在風險等級的判斷上,有時會與自動化弱點檢測工具有所差異。

註2: 木桶理論可參閱http://www.isecutech.com .tw/article/article_detail.aspx?aid=4423一文中曾經提及的說明。

註3: 簡單的來說,CEH認證所要求的技術能力,約略等於最低限度的滲透測試人員能力。CEH認證課程中教授了許多攻擊手法的原理、技巧以及對應使用的工具,對有志於從事滲透測試的人員來說,算是一個入門的課程。(但建議仍須具備一定以上的程度才能理解課程內容)

註4: 零時差攻擊,在此代用為發掘新的攻擊手法或安全漏洞。

註5: 許多國內廠商自行開發的中文套件,由於在國際上並不普及,所以國外大廠的自動化弱點掃瞄工具多未將其納入弱點偵測資料庫中,但卻常成為兩岸駭客攻擊的重點。