基于LINUX蜜網(wǎng)(Honeynet)的防御系統(tǒng)
隨著Internet的高速發(fā)展,個(gè)人、企業(yè)以及政府部門越來越多地依靠網(wǎng)絡(luò)傳遞信息,然而網(wǎng)絡(luò)的開放性與共享性使它正遭受著來自黑客、腳本編輯者所帶來的巨大的安全威脅,分布式拒絕服務(wù)攻擊、被控主機(jī)敏感信息的竊取,嚴(yán)重地影響了網(wǎng)路的正常工作,一個(gè)安全可靠的防御網(wǎng)絡(luò)成為現(xiàn)在安全領(lǐng)域的一個(gè)熱點(diǎn)。究其根源,是攻擊者與防御者之間在進(jìn)行著一場(chǎng)不對(duì)稱的博弈,特別是信息上的不對(duì)稱,攻擊者可以利用掃描、探測(cè)等一系列技術(shù)手段全面獲取攻擊目標(biāo)的信息,而防御者對(duì)他所受到的安全威脅一無所知,即使在被攻陷后還很難了解攻擊者的來源、攻擊方法和攻擊目標(biāo),蜜網(wǎng)技術(shù)就是為了扭轉(zhuǎn)這種不對(duì)稱局面而提出的。
1 蜜網(wǎng)技術(shù)原理 蜜網(wǎng)技術(shù)實(shí)質(zhì)上仍是一種蜜罐技術(shù),是一種對(duì)攻擊者進(jìn)行欺騙的技術(shù),通過布置一些作為誘餌的主機(jī)、網(wǎng)絡(luò)服務(wù)以及信息誘使攻擊者對(duì)他們進(jìn)行攻擊,減少對(duì)實(shí)際系統(tǒng)所造成的安全威脅。但蜜網(wǎng)有其自身特點(diǎn):首先,蜜網(wǎng)是由多個(gè)蜜罐以及防火墻、入侵防御系統(tǒng)、系統(tǒng)行為記錄、自動(dòng)報(bào)警、輔助分析等一系列系統(tǒng)和工具所組成的一整套體系結(jié)構(gòu),這種體系結(jié)構(gòu)創(chuàng)建了一個(gè)高度可控的網(wǎng)絡(luò),使得安全研究人員可以控制和監(jiān)視其中的所有攻擊活動(dòng),從而去了解攻擊者的攻擊工具、方法和動(dòng)機(jī)。其次,蜜網(wǎng)是一種高交互型的用來獲取廣泛的安全信息的蜜罐,高交互意味著蜜網(wǎng)是用真實(shí)的系統(tǒng),應(yīng)用程序以及服務(wù)來與攻擊者進(jìn)行交互。 蜜網(wǎng)體系結(jié)構(gòu)具有三大關(guān)鍵需求:即數(shù)據(jù)控制、數(shù)據(jù)捕獲和數(shù)據(jù)分析。數(shù)據(jù)控制是對(duì)攻擊者在蜜網(wǎng)中對(duì)第三方發(fā)起的攻擊行為進(jìn)行限制的機(jī)制,用以降低部署蜜網(wǎng)所帶來的安全風(fēng)險(xiǎn)。最大的挑戰(zhàn)在于對(duì)攻擊數(shù)據(jù)流進(jìn)行控制而不能讓攻擊者懷疑:我們必須要給攻擊者一定的自由度,允許他們做大部分“合法”的事情,比如從網(wǎng)絡(luò)上下載入侵工具包等,這樣才能獲取信息,學(xué)習(xí)他們的攻擊方法,但是要拒絕所有攻擊其它機(jī)器的行為,這就需要一個(gè)自由度和安全性的權(quán)衡。數(shù)據(jù)捕獲,即監(jiān)控和記錄攻擊者在蜜網(wǎng)內(nèi)的所有行為,最大的挑戰(zhàn)在于要搜集盡可能多的數(shù)據(jù),而又不被攻擊者所察覺。數(shù)據(jù)分析則是對(duì)捕獲到的攻擊數(shù)據(jù)進(jìn)行整理和融合,以輔助安全專家從中分析出這些數(shù)據(jù)背后蘊(yùn)涵的攻擊工具、方法、技術(shù)和動(dòng)機(jī),在分布式部署的蜜網(wǎng)體系中,還存在著將多個(gè)蜜網(wǎng)中捕獲數(shù)據(jù)進(jìn)行安全地傳輸?shù)揭慌_(tái)中央服務(wù)器,并進(jìn)行集中化分析的分布式數(shù)據(jù)收集需求。 2 基于LINUX蜜網(wǎng)的防御系統(tǒng)的實(shí)現(xiàn) 本系統(tǒng)中使用IP分布如下: Name |Type |IPorGroupitems |Description Firewall |Workstation |10.10.14.11 |honeynetadministrator Roxen |Workstation |10.10.14.20 |runningtheRoxenwebserver DNS |Workstation |10.10.14.23 |DNSserver Apache |Workstation |10.10.14.30 |webserver,vulnerabiliable Honeynet |Group |Roxen+DNS+Apache |Theseareourhoneypots 本honeynet沒有故意留下了漏洞,但可以通過Apache能夠給用戶一個(gè)nobodyshell,再使用EOE防止普通用戶成為root,這樣限制了攻擊者所能做的事。在此基礎(chǔ)上增加策略: (1)有主機(jī)都可以通過ssh或MYSQL連通/firewall; (2)有主機(jī)都可以連接到honeynet這個(gè)組; (3)honeynet允許連接到任意主機(jī); (4)除了以上之外,所有的通信都被攔截; (5)所有防火墻允許通過的數(shù)據(jù)都記錄。 因此策略可以有下面四條: Num Source Destination Service ActionLog 00 Firewall sshorMySQL AcceptLog 01 honeynet any acceptlog 02 honeynet any anyacceptlog 03 other any droplog 進(jìn)行日志服務(wù)器配置 日志服務(wù)器數(shù)據(jù)庫(kù)采用MYSQL,首先在MYSQL中建立snort和ssyslog的用戶并分別給他們對(duì)各自數(shù)據(jù)庫(kù)的INSERT,DELETE,USAGE,SELECT權(quán)限方法如下: Echo CREATE DATABASE snort; | mysql – u root - pmypass mysql> grant INSERT,SELECT on snort.* to root@* ; 入侵檢測(cè)系統(tǒng)配置 作為一個(gè)Honeynet,有大量的數(shù)據(jù)需要手工分析,IDS在這里可以起到很大的幫助。主機(jī)型入侵檢測(cè)系統(tǒng)往往以系統(tǒng)日志、應(yīng)用程序日志等作為數(shù)據(jù)源,它保護(hù)的一般是所在的系統(tǒng)。網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)的數(shù)據(jù)源則是網(wǎng)絡(luò)上的數(shù)據(jù)包。往往將一臺(tái)主機(jī)的網(wǎng)卡設(shè)于混雜模式(promiscmode),監(jiān)聽所有本網(wǎng)段內(nèi)的數(shù)據(jù)包并進(jìn)行判斷。一般網(wǎng)絡(luò)型入侵檢測(cè)系統(tǒng)擔(dān)負(fù)著保護(hù)整個(gè)網(wǎng)段的任務(wù)。作為Honeynet,從目的考慮,我們需要捕獲網(wǎng)絡(luò)及主機(jī)上的所有信息。這時(shí)主機(jī)IDS的必要性不是非常明顯,所以主機(jī)只要能夠阻止用戶執(zhí)行shell或者成為超級(jí)用戶就可以了。網(wǎng)絡(luò)層使用snort作為入侵檢測(cè)的記錄工具。 主機(jī)IDS:EyeonExec如我們上面所說的,EyeonExec就是一個(gè)阻止用戶執(zhí)行shell或者成為超級(jí)用戶的微型HIDS,它可以在發(fā)現(xiàn)這樣的企圖后報(bào)警,并且發(fā)送mail給系統(tǒng)管理員。 網(wǎng)絡(luò)IDS:Snort
把snort配置為記錄所有連接情況,HoneynetProject提供了一份snort.conf文件,在此snort一是充當(dāng)了嗅探器的作用,不用再加載一個(gè)sniffer,這樣可以減輕系統(tǒng)負(fù)載;二是一旦snort沒有發(fā)現(xiàn)攻擊特征,我們還可以通過連接記錄的情況來發(fā)現(xiàn)入侵企圖。 配置VirtualHoneynet 虛擬Honeynet通常依靠某些模擬軟件,在一個(gè)操作系統(tǒng)上同時(shí)運(yùn)行幾個(gè)虛擬的系統(tǒng),User-Mode-Linux來實(shí)現(xiàn)在Linux中運(yùn)行Linux的功能,創(chuàng)建內(nèi)核通常加上“ARCH=um”,比如你用makex config,現(xiàn)在就需要用make xfocus ARCH= um,然后“make dep ARCH=um”、“make linux ARCH=um”,編譯完成后你會(huì)得到一個(gè)名為“linux”的可執(zhí)行文件。 創(chuàng)建root file system文件,并以此作為UML的啟動(dòng)參數(shù)??梢栽谝慌_(tái)真實(shí)的機(jī)器上用不同的root file system來啟動(dòng)UML。 虛擬系統(tǒng)啟動(dòng) 用命令啟動(dòng)虛擬系統(tǒng) Linux ubd0=rootfs.rh72.pristine.bz2ubd1=swap eth0= mcast umn=10.10.10.50 以root登陸系統(tǒng),密碼為空,然后對(duì)虛擬系統(tǒng)進(jìn)行配置。同時(shí)可以將日志記錄等級(jí)設(shè)為最高。 陷阱Ssyslog 前面我們提到過將syslog更改并且將日志發(fā)送到MYSQL中,現(xiàn)在我們?cè)僮鲆淮瓮瑯拥墓ぷ?,只是這次我們是在虛擬的機(jī)器中這么做,日志仍然發(fā)送到真實(shí)(物理的)機(jī)器上的MYSQL數(shù)據(jù)庫(kù)中。 日志服務(wù)器配置:你也可以配置Snare將日志存放于遠(yuǎn)程服務(wù)器上,這里可以存放在我們的真實(shí)(物理的)機(jī)器上,或者我們可以設(shè)置嚴(yán)格的ACL來管理日志,或者只允許日志以appen only形式存在。 3 防御系統(tǒng)的應(yīng)用實(shí)例 我們所部署的防御系統(tǒng)中的虛擬Linux蜜罐主機(jī)被黑客所攻陷,并被用以進(jìn)一步對(duì)外發(fā)起掃描和攻擊,此攻擊的整個(gè)捕獲和分析過程如下: (1)自動(dòng)告警工具發(fā)出告警郵件,顯示虛擬Linux蜜罐主機(jī)有向外HTTP端口的網(wǎng)絡(luò)連接。 (2)通過查看HoneyWall上的snort報(bào)警信息,發(fā)現(xiàn)黑客通過攻擊Linux蜜罐主機(jī)的smbd服務(wù)的漏洞攻陷主機(jī),并獲得一個(gè)root權(quán)限的shell。 (3)進(jìn)一步查看黑客攻陷蜜罐主機(jī)后的行為,發(fā)現(xiàn)黑客連續(xù)下載后門工具以替換系統(tǒng)文件如sshd和login等,同時(shí)也下載了一些批量掃描和攻擊(autorooter)工具如SCAN,TD等,并不斷地對(duì)外部主機(jī)的137端口進(jìn)行掃描,由于Honeywall上的IPTables對(duì)外發(fā)出連接數(shù)進(jìn)行了限制,結(jié)果黑客并沒有利用我們的蜜罐主機(jī)攻陷任何其他主機(jī)。 4 防御系統(tǒng)實(shí)現(xiàn)的主要問題的分析 在防御系統(tǒng)中設(shè)置蜜網(wǎng)的目的就是要誘人攻擊,以便了解和研究黑客所采用的技術(shù),提升網(wǎng)絡(luò)防御能力。所以系統(tǒng)務(wù)必提供真實(shí)有效的服務(wù),以便迷惑入侵者,而且要能對(duì)所有進(jìn)出的數(shù)據(jù)能夠進(jìn)行監(jiān)控,以避免無法控制局面的出現(xiàn)。 在防御系統(tǒng)中我們主要針對(duì)3個(gè)方面的問題: (1)如何誘惑入侵。為了吸引入侵者,需要構(gòu)建一個(gè)具有網(wǎng)絡(luò)流量仿真能力的模擬網(wǎng)作為Honeynet,然后利用端口映射和重定向技術(shù),將它轉(zhuǎn)向到一個(gè)Honeynet的lP地址中,對(duì)其行為進(jìn)行監(jiān)控。得到入侵者使用的主要技術(shù),同時(shí)牽制他們的主要攻擊精力,保證正常網(wǎng)絡(luò)的安全。 (2)如何控制信息。信息控制是一種規(guī)則。必須保證一旦Honeynet被攻陷,不會(huì)出現(xiàn)無法控制的局面,避免對(duì)所保護(hù)網(wǎng)絡(luò)的安全造成危害。難點(diǎn)在于如何在控制住數(shù)據(jù)流量的同時(shí)又不引起入侵者的懷疑。當(dāng)入侵者突破Honeynet后,他們將進(jìn)行網(wǎng)絡(luò)連接,以便從網(wǎng)絡(luò)上獲取攻擊力量等,我們必須允許他們做大部分的“合法”事情。但應(yīng)防止對(duì)其他系統(tǒng)的攻擊,可以使用多層次控制避免單點(diǎn)失效,同時(shí)使用人工實(shí)時(shí)監(jiān)控,一旦入侵者的活躍范圍超越了受控制的范圍,馬上終止所有連接。 (3)如何實(shí)現(xiàn)數(shù)據(jù)捕獲。數(shù)據(jù)捕獲主要是指IDS日志和蜜網(wǎng)中主機(jī)的系統(tǒng)日志,即“多重捕獲”。對(duì)于高明入侵者在攻入系統(tǒng)后,會(huì)試圖更改甚至銷毀目標(biāo)主機(jī)上易于暴露入侵行為的各種記錄。蜜網(wǎng)的“多重捕獲”措施就是在確保不被入侵者發(fā)現(xiàn)的前提下捕獲攻擊行為信息,IDS在數(shù)據(jù)鏈路層對(duì)蜜網(wǎng)中的網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行監(jiān)控!分析和抓取以便將來能夠重現(xiàn)攻擊行為。蜜網(wǎng)中主機(jī)除了使用操作系統(tǒng)自身提供的日志功能外,還可以利用第三方軟件加強(qiáng)日志功能,并且傳輸?shù)桨踩?jí)別更高的服務(wù)器上進(jìn)行備份。 5 結(jié)束語 蜜網(wǎng)是一個(gè)很有價(jià)值的資源,通過研究運(yùn)用蜜網(wǎng)技術(shù)深入了解已知攻擊!發(fā)現(xiàn)未知攻擊,進(jìn)而根據(jù)攻擊深度更新完善網(wǎng)絡(luò)防御系統(tǒng)。隨著各種新的觀點(diǎn)和技術(shù)還在不斷出現(xiàn),相信它會(huì)開辟出網(wǎng)絡(luò)安全主動(dòng)防御領(lǐng)域的一個(gè)新方向,并具有廣闊的應(yīng)用前景。 |
|