摘 要:蜜罐系統(tǒng)是應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域的信息系統(tǒng)資源,目前蜜罐及其相關(guān)技術(shù)已經(jīng)開始步入大規(guī)模的商業(yè)應(yīng)用階段。本文通過研究Honeyd這款強(qiáng)大的蜜罐應(yīng)用工具,對其在使用過程中包括各邏輯模塊的的協(xié)調(diào),在各種網(wǎng)絡(luò)協(xié)議下的數(shù)據(jù)包處理等功能進(jìn)行了詳細(xì)研究,在此基礎(chǔ)上完善了Honeyd的日志記錄這一薄弱功能,并對其架構(gòu)進(jìn)行了分析及優(yōu)化設(shè)計(jì),使其搜集到的信息更有利用價(jià)值。
關(guān)鍵詞:Honeyd;蜜罐;系統(tǒng)調(diào)用劫持
中圖分類號:TP393.08
1 蜜罐技術(shù)簡介
1.1 蜜罐的定義
蜜網(wǎng)項(xiàng)目組的創(chuàng)始人Lancee Spitzer給出了蜜罐的基本定義:蜜罐是一種安全資源,其價(jià)值在于被掃描、攻擊和攻陷。這個定義表明蜜罐并無其他實(shí)際作用,因此流入/流出蜜罐的網(wǎng)絡(luò)流量都預(yù)示了掃描、攻擊和攻陷。而蜜罐的核心價(jià)值就在于對些攻擊活動進(jìn)行監(jiān)視、檢測和分析。[1]
1.2 蜜罐技術(shù)的原理
(1)模擬欺騙。通過模擬、欺騙技術(shù)誘引入侵者;(2)捕獲入侵。吸引入侵者后,對入侵行為的日志記錄、用戶行為進(jìn)行捕獲記錄;(3)數(shù)據(jù)分析。對攻擊行為的所有記錄性數(shù)據(jù)分類、挖掘、分析;(4)危險(xiǎn)預(yù)警。經(jīng)過數(shù)據(jù)分析比較,對入侵者可能的入侵行為和目的進(jìn)行預(yù)測,并向網(wǎng)絡(luò)安全人員提供預(yù)警;(5)數(shù)據(jù)控制。通過系統(tǒng)調(diào)用劫持技術(shù)保護(hù)蜜罐自身安全。
1.3 蜜罐的不足
(1)只能看見針對自身的攻擊行為,并記錄下來,沒有有效的反擊黑客的能力;(2)蜜罐的專有特性會使有經(jīng)驗(yàn)的入侵者發(fā)現(xiàn)它,并在安全退出之前破壞日志信息;(3)蜜罐中Honeyd的日志記錄機(jī)制只能記錄未被加密協(xié)議的部分信息且自身保護(hù)能力不足。(4)蜜罐可能將風(fēng)險(xiǎn)引入它所在的環(huán)境,一旦它被攻陷,就有可能被作為攻擊、滲透其他系統(tǒng)的跳板。[2]
2 Honeyd的結(jié)構(gòu)分析
Honeyd是一款開源軟件,通過采用很多功能強(qiáng)大的開源函數(shù)庫,可以搭建虛擬蜜罐與蜜罐網(wǎng)絡(luò)的輕量級守護(hù)進(jìn)程,它幾乎可以模擬任何一種類型的應(yīng)用層服務(wù)與任意一個版本的操作系統(tǒng)。
2.1 Honeyd邏輯框架分析
Honeyd結(jié)構(gòu)組成:(1)路由器,路由是一個可選擇的邏輯部件;(2)數(shù)據(jù)包分配器;(3)協(xié)議管理器包括ICMP/UDP/TCP協(xié)議管理和服務(wù)處理單元;(4)特征引擎;(5)配置數(shù)據(jù)庫包含了一切配置參數(shù)。
2.2 主要函數(shù)分析
(1)Honeyd_recv_cb():接收數(shù)據(jù)包函數(shù),接受到數(shù)據(jù)包后便開始工作;(2)Honeyd_input():數(shù)據(jù)包轉(zhuǎn)發(fā)函數(shù),對進(jìn)入的數(shù)據(jù)包進(jìn)行路由轉(zhuǎn)發(fā)或者直接轉(zhuǎn)發(fā);(3)Honeyd_route_packet():數(shù)據(jù)包處理函數(shù),在處理數(shù)據(jù)包時會參考配置數(shù)據(jù)庫中的配置數(shù)據(jù),根據(jù)數(shù)據(jù)庫中配置的邏輯鏈路,調(diào)用相關(guān)函數(shù);(4)Honeyd_delay_packet():鏈路延時處理函數(shù);(5)Honeyd_delay_cb():發(fā)送被延遲函數(shù)處理好的數(shù)據(jù)包函數(shù);根據(jù)送來的數(shù)據(jù)包的標(biāo)記進(jìn)行分流。(6)Honeyd_dispatch():協(xié)議處理機(jī)函數(shù),根據(jù)ip包的頭部字段的類型,分別調(diào)用不同的協(xié)議處理函數(shù);(7)Honeyd_ip_send():發(fā)送函數(shù);用來加工完成協(xié)議方面處理的數(shù)據(jù)包。
2.3 路由拓?fù)浞治?/p>
通常情況下,Honeyd架構(gòu)支持平行共存的多個網(wǎng)絡(luò)入口。在模擬網(wǎng)絡(luò)時,當(dāng)Honeyd框架系統(tǒng)接收到一個發(fā)送給真實(shí)系統(tǒng)的數(shù)據(jù)包時,該數(shù)據(jù)包會同樣的周游該網(wǎng)絡(luò)拓?fù)?,直到發(fā)現(xiàn)一個可以直接響應(yīng)該真實(shí)系統(tǒng)所處網(wǎng)絡(luò)空間的虛擬路由器。需要的時候,Honeyd框架系統(tǒng)會發(fā)送ARP請求來確定真實(shí)系統(tǒng)的硬件地址,然后將該數(shù)據(jù)包封裝在一個以太網(wǎng)幀里發(fā)送給該地址。類似的,Honeyd框架系統(tǒng)也可以利用相應(yīng)的虛擬路由器來響應(yīng)真實(shí)系統(tǒng)所發(fā)送的ARP請求。[3]
3 系統(tǒng)優(yōu)化設(shè)計(jì)
3.1 日志模塊改進(jìn)需求
Honeyd的日志記錄模塊就是將搜集到的流量信息中分析出的各種攻擊信息記錄到日志文件中。通過這些信息來確定入侵者的一系列攻擊行為。而Honeyd的日志記錄機(jī)制一般是不會記錄加密的部分信息。
此外,Honeyd的日志文件也缺少隱藏功能,這樣攻擊者一旦攻陷了蜜罐主機(jī),既可將日志文件刪除。所以,很有必要為Honeyd開發(fā)一個日志記錄系統(tǒng),它既有很高的安全性,隱蔽性,也可對加密協(xié)議進(jìn)行處理,從而使Honeyd搜集到的信息更有利用價(jià)值。
3.2 Linux的系統(tǒng)調(diào)用設(shè)計(jì)
傳統(tǒng)的從內(nèi)核截獲交互數(shù)據(jù)(攻擊者與目標(biāo)蜜罐終端進(jìn)行交互的數(shù)據(jù))的方法為中斷sys_read()或sys_write()系統(tǒng)調(diào)用,在其中加入記錄擊鍵的相關(guān)函數(shù)。但是,很顯然,這種方法是很不穩(wěn)定的并且會明顯的降低系統(tǒng)的額速度,因?yàn)橹袛嗟那∏∈窍到y(tǒng)使用最頻繁的兩個系統(tǒng)調(diào)用sys_read(),sys_write(),其中sys_read()在每個進(jìn)程需要讀寫設(shè)備的時候都會用到。所以采用了一個更穩(wěn)定,效率更高的辦法,就是劫持tty_buffer()進(jìn)程函數(shù)。
3.3 模塊功能設(shè)計(jì)
(1)數(shù)據(jù)捕獲:通過劫持適合的函數(shù)實(shí)現(xiàn)數(shù)據(jù)捕獲,獲得擊鍵信息;(2)文件(目錄)隱藏:通過干預(yù)使得系統(tǒng)調(diào)用忽略特定的目錄項(xiàng)(要隱藏的文件),實(shí)現(xiàn)隱藏文件(目錄)功能;(3)進(jìn)程隱藏:用隱藏文件的方法來隱藏proc文件系統(tǒng)中的文件,從而實(shí)現(xiàn)對進(jìn)程信息的隱藏;(4)網(wǎng)絡(luò)連接隱藏:通常利用netstat命令讀取/proc/net/tcp和/proc/net/udp文件,來查看網(wǎng)絡(luò)連接狀態(tài)的信息,對系統(tǒng)調(diào)用sys_read()進(jìn)行替換達(dá)到隱藏目的;(5)模塊本身隱藏:系統(tǒng)通過調(diào)用sys_query_module來查詢模塊信息,所以可以通過修改該系統(tǒng)調(diào)用隱藏指定模塊。
4 結(jié)束語
雖然蜜罐系統(tǒng)主要是一種研究工具,但是基于Honeyd的蜜罐系統(tǒng)現(xiàn)在的應(yīng)用比較廣泛,而且具備真正的商業(yè)應(yīng)用的能力。所以,通過對Honeyd的分析和改進(jìn),不但可以為網(wǎng)絡(luò)管理員提供一些技術(shù)或思路上的幫助,也能給蜜罐領(lǐng)域的應(yīng)用者提供理論與應(yīng)用上的幫助。隨著國家對信息安全相關(guān)產(chǎn)業(yè)的重視,網(wǎng)絡(luò)安全和網(wǎng)絡(luò)入侵也呈現(xiàn)多樣化的發(fā)展,信息安全研究者和相關(guān)從業(yè)者也將為此付出更大的努力。
參考文獻(xiàn):
[1]Lance Spitzner, Honeypots:Definitions and Value of Honeypots[EB/OL]. http://www.tracking-hackers.com,2003.5.29.
[2]王婷.基于Honeyd的蜜罐技術(shù)研究與設(shè)計(jì)[D],西南交通大學(xué),2007(09).
[3]梁知音.Honeyd軟件框架介紹[EB/OL],北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所,2004.
作者簡介:關(guān)興(1985-),男,滿族,遼寧沈陽人,助理工程師,研究方向:信息安全。
作者單位:東北大學(xué)軟件學(xué)院實(shí)驗(yàn)中心,沈陽 110819;法國電信北京研發(fā)中心有限公司,北京 100086;遼寧省凌海市公安局,遼寧凌海 121200