駭客止步--誘捕系統Honeypot研究

作者/郭毅志

Honeypot前言 至古以來,許多軍事將領運用欺敵策略誘使敵軍下錯誤的決策,例如在第二次世界大戰期間,盟軍誘使德軍誤以為盟軍會從加來登入,因此在盟軍登陸諾曼第時,希特勒相信是聲東擊西,未能及時做出反應;此外,1991年的沙漠風暴軍事中,美軍利用部分士兵、軍營來分散伊拉克軍隊的注意力,同時從別處進攻伊拉克,這些誘騙策略實際運作在戰場上,同樣的也可以運作在十面埋伏的網路世界,而這就是「誘捕系統(Honeypot)」。 Honeypot簡介 誘捕系統,原文「Honeypot」,其設計目的為佈署讓攻擊者攻陷之假系統,如同蜂蜜捕捉昆蟲般,誘使攻擊者偵測、攻擊該系統,此概念最初是由Cliff Stoll以及Bill Cheswick於1990年提出,主要用於觀察網路於被入侵的同時進行觀察、紀錄,如此一來,便可攻擊行為追蹤或是發現新型的攻擊模式;從防禦的角度來看,當我們將Honeypot與真實主機佈署在一起時,會增加攻擊者探測系統主機的時間成本,進而增加管理員的緩衝空間,另一方面,攻擊者在進行攻擊行動前,通常會先做掃描動作,用以尋找弱點主機,以此作為攻擊起點,誘捕系統可針對掃描做紀錄外,同時,也是另一種的預警系統,使得管理者可以即早發現並做出反應;此外,誘捕系統不同於其他入侵偵測系統,會產生誤報的情況,主要原因在於,此系統並非一般使用者會連結的系統,因為所有進入誘捕系統之連線,皆可視為具攻擊嫌疑之連結。 Honeypot類型 Honeypot種類繁多,在此主要以三種區別方式做區分,分別為『目的』、『互動』、『行為』等三種方式: 一、目的區別
1.研究型 主要目的在於收集攻擊資訊,用以了解攻擊者的攻擊行為、步驟、方法以及可能使用的工具等,藉由這些資訊可以修補並且強化網路與系統的安全性,此外,為了盡可能收集到完整的資訊,與真實系統的相似度較高,相對的複雜度也較高。 2.產品型 主要目的在於提升組織內的安全,透過攻擊偵測、找出攻擊者等方式,做出相對應的反應,而不同於研究型Honeypot,產品型Honeypot所能收集的資訊相對較少,攻擊防禦才是其主要任務。

《圖一》
二、互動區別
1.高互動型 此類Honeypot的運作訴求在於高度的真實性,絕大部分這類型的誘捕系統,會以真實系統去架設、佈署,而非透過模擬,因此,此類Honeypot可以收集到非常完整的資訊,但是相對的需要花費大量的成本做維運;此外,也由於基於真實系統,在面對攻擊時,所隱藏的風險也相對較高,若安全措施不足的情況下,可能反而被攻擊者拿來做為攻擊的跳板。 2.低互動型 不同於高互動型Honeypot,通常是採用程式的方式,做系統以及服務的模擬,相對的,由於在模擬程式與攻擊者互動的過程中,所能提供的資訊被模擬程式所侷限,增加被攻擊者識破的風險,也因為並非真實系統,攻擊者的一切行為會被侷限在模擬環境中,相較於以真實系統為基礎的Honeypot是較為安全的;此外,因為其系統服務是模擬的,所收集到關於攻擊的資訊也較少。

《圖二》
三、行為區別
1.被動型    此類型Honeypot於佈署時,會故意將已知弱點或設定缺失置入環境中,當佈署完成後,不會對外有任何動作,僅會持續對系統做監控,等待攻擊者進入,當與真實主機設置在一起時,可減少真實主機被直接攻擊的風險,並且達到預警的效果,供管理者提前做出反應,此種Honeypot適用於防護以及資訊收集。 2.主動型    不同於被動型Honeypot,它會主動去連結惡意網站或執行惡意程式,透過模擬使用者行為的方式,收集相關的步驟、程式或方法,此種Honeypot主要目的在於收集資訊,作為資安的重要依據。

《圖三》
實例介紹 – Honeyd 一、簡介
Honeyd,是由Niels Provos於2007所發表的開源軟體,讓使用者可以在網路上建立多個虛擬設備,同時,這些虛擬設備也可以模擬不同的服務(例如:telnet),藉此將真實設備隱藏,以改善外部惡意掃描的威脅。
二、實例操作
《Case 1 – 建立虛擬電腦》 ‧PC A、B為真實設備 ‧B-1、B-2為Honeyd所產生的虛擬主機

《圖四》Honeyd Case 1
‧設定說明:

《圖五》
Honeyd是以模組化的方式建立虛擬設備,此指令目的在於建立一個名為linux的模組:
Create linux
對於不同的作業系統,會有不同的特徵,許多掃描工具可以針對這些特徵去識別,Honeyd收集許多此類的資訊以供設定,此處所使用的特徵為Linux 2.4.7(x86):
set linux personality "Linux 2.4.7 (X86)"
根據需要設定所要開啟的port:
add linux tcp port 22 open
除了設定port的狀態之外,同時也可以載入Script模擬服務:
add linux tcp port 25 "perl /usr/share/honeyd/scripts/smtp.pl" add linux tcp port 110 "sh /usr/share/honeyd/scripts/pop3.sh"
而其他關閉的Port,針對TCP的連線,則回應RST:
set linux default tcp action reset
分別設定UID、GID以及網卡位置:
set linux uid 32762 gid 32762 set linux ethernet "00:0c:29:b1:7a:22"
最後將linux模組綁上192.169.1.100:
bind 192.169.1.100 linux
《case 2 – 建立虛擬網路》 ‧rH1、rH2: 真實設備 ‧vR1、vR2、vH1、vH2、vH3: 虛擬設備

《圖六》
‧設定說明:

《圖七》
分別產生五台虛擬設備,分別為兩台Router以及三台電腦,分別綁定IP:
bind 192.169.1.99 router1 bind 192.169.2.99 router2 bind 192.169.1.10 linux bind 192.169.2.10 win bind 192.169.3.10 win
建立虛擬網路入口,以192.169.1.99(router1)為虛擬網路之入口:
route entry 192.169.1.99 network 192.169.0.0/16
將192.169.2.0/24的網段,連結於192.169.1.99(router1)上:
route 192.169.1.99 link 192.169.2.0/24
在192.169.1.99(router1)新增一個子網段192.169.3.0/24,可透過192.169.2.99(router2)做連結:
route 192.169.1.99 add net 192.169.3.0/24 192.169.2.99
三、測試
以case2所產生的環境為例,分別用Ping、Traceroute、Telnet等方式對模擬出來的虛擬設備做驗證,同時觀察Honeyd所產生的Log訊息。 測試環境:

《圖八》
測試方式:

《圖九》
圖示:

《圖十》
 測試結果:

《圖十一》
從Honeyd Log中可以看到,虛擬設備(192.169.2.10、192.169.3.10、192.169.2.99)分別對來至rH1的Ping,做出回應。

《圖十二》
從測試結果中可以看出,Honeyd確實模擬出網路路由。

《圖十三》
從Honeyd Log中可以看出,Client端可以與虛擬設備做telnet連線,同時可以看出,Client嘗試登入的錯誤訊息。 從以上三項測試中,可以看出Honeyd所產生之虛擬設備,確實對外部的偵測做出反應,並且做出相對應之互動。
結語    誘捕系統,在駭客新式攻擊手法、新型病毒等的蒐集與發現,有不少成績,此外,基於其單純性,凡是進入系統的連結都可判定為具高度威脅性的連結,因此可以有效降低誤判,並且做出早期預警,已達到對於內網之防護提升。    誘捕系統,由於其本身就是一個具有弱點之系統,即便是無論是使用真實或是模擬的系統、服務,仍然有可能反被惡意人士利用做為跳板,因此,誘捕系統建置完成後,仍須做維護與管理工作,並且對於所偵測到的可疑安全事件,做出即時的反應。 參考資料 1.【遠端惡意探測工具介紹與實做】,許勝翔 2.【惡意程式與誘捕系統簡介】,張宏昌 3.【誘捕式網路防禦技術應用於國軍網路管理異常偵防研究】,吳嘉龍,林弘憲 4.Honeynet,http://www.honeynet.org/ 5.WIKI,http://en.wikipedia.org/wiki/Honeypot_(computing) 6.Honeyd,http://www.honeyd.org 7.Honeyd Manual Page,http://www.citi.umich.edu/u/provos/honeyd/ 8.“Simulating Networks with Honeyd”, Roshen Chandran, Sangita Pakala