吳 慰
湖北工業(yè)大學商貿(mào)學院實驗中心,湖北武漢 430062
隨著Linux 操作系統(tǒng)與網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,基于Linux 操作系統(tǒng)構(gòu)建的小型網(wǎng)絡(luò)安全形勢也日趨嚴峻和復(fù)雜化,各種計算機安全事件的數(shù)量正在不斷增長。面對小型網(wǎng)絡(luò)的安全防御問題,如何構(gòu)建安全的網(wǎng)絡(luò)入侵檢測防御系統(tǒng),成為目前計算機網(wǎng)絡(luò)面臨的首要問題。由于網(wǎng)絡(luò)入侵者采用的攻擊技術(shù)與攻擊手段不斷地變化,功能更為強大,更具針對性和欺騙性,構(gòu)建高效的入侵檢測防御系統(tǒng)是保護計算機網(wǎng)絡(luò)安全的直接解決途徑。目前,在Linux 環(huán)境下的主流入侵防御技術(shù)是構(gòu)建特征入侵的防御系統(tǒng)。特征入侵,就是網(wǎng)絡(luò)或系統(tǒng)中存在違反安全策略的行為和攻擊行為。入侵檢測防御系統(tǒng),就是采用主動的入侵檢測技術(shù)檢測系統(tǒng)中的這些違反安全策略行為和攻擊行為的系統(tǒng)。作為一種重要的安全防護工具,入侵檢測防御系統(tǒng)的作用已經(jīng)超過了防火墻的概念。本文通過分析常見的網(wǎng)絡(luò)攻擊方式,對Linux 操作系統(tǒng)下對網(wǎng)絡(luò)入侵檢測防御系統(tǒng)的設(shè)計原理和設(shè)計實現(xiàn)進行了探討。
入侵檢測防御系統(tǒng)是為了檢測黑客通過病毒等手段有意攻擊計算機網(wǎng)絡(luò)和計算機系統(tǒng)而構(gòu)建的檢測防御系統(tǒng)。入侵檢測防御系統(tǒng)應(yīng)具有捕獲符合指定條件的網(wǎng)絡(luò)數(shù)據(jù)包、數(shù)據(jù)預(yù)處理、入侵分析以及告警、簡單防御攻擊行為、誘騙攻擊者、獲取對方攻擊意圖、獲取攻擊者的簡單資料等信息的能力。
如果想要避免Linux 網(wǎng)絡(luò)遭受黑客的攻擊,就必須對黑客的攻擊方法、攻擊原理以及攻擊過程有深入詳細的了解。這樣才能設(shè)計出有效的主動檢測防御系統(tǒng)。在Linux 網(wǎng)絡(luò)系統(tǒng)中,常被攻擊的方式主要有Synflood 攻擊、Ping Flood 攻擊、Smurf 攻擊、Teardrop 攻擊、Land 攻擊、ICMP 掃描/TCP 掃描/UDP 掃描等等。
Synflood 攻擊屬于DoS 攻擊的一種,是最基本的入侵攻擊手段之一,也是最難對付的入侵攻擊手段。具體表現(xiàn)方式是在計算機進行網(wǎng)絡(luò)通信時,服務(wù)器接到用戶端的SYN 包后,回應(yīng)用戶端一個SYN/ACK 包,然后等待用戶端的ACK 回應(yīng)包進行確認時,用戶端不發(fā)送ACK 包而導致服務(wù)器一直等待,致使服務(wù)器一直等待對應(yīng)用戶端回應(yīng)而無法響應(yīng)其他機器的連接請求時,就可認定為Synflood 攻擊。
Ping Flood 攻擊的原理是由于操作系統(tǒng)等對傳輸文件包的長度有限制,如ICMP 包的64 KB 規(guī)定,當發(fā)送者產(chǎn)生長度超過64Kb的文件包時,就會導致內(nèi)存錯誤、TCP/IP 堆棧崩潰的情況。目前,大多數(shù)系統(tǒng)對Ping Flood 攻擊都有一定的抵抗能力。
Smurf 攻擊的原理是將某數(shù)據(jù)包的回復(fù)地址設(shè)置成被攻擊網(wǎng)絡(luò)的地址,當網(wǎng)絡(luò)中某臺機器使用被攻擊的網(wǎng)絡(luò)地址發(fā)送一個被設(shè)置的數(shù)據(jù)包時,就會收到多個相應(yīng)的數(shù)據(jù)包,Smurf 攻擊就是通過數(shù)據(jù)包阻塞被害網(wǎng)絡(luò)的方式進行攻擊,導致該網(wǎng)絡(luò)的所有機器都對此數(shù)據(jù)包的請求都做出答復(fù),最終導致網(wǎng)絡(luò)的阻塞,甚至崩潰。
Teardrop 攻擊方式是采用病態(tài)的 UDP 數(shù)據(jù)包進行攻擊。當操作系統(tǒng)收到病態(tài)的UDP 數(shù)據(jù)包后,產(chǎn)生內(nèi)存錯誤而導致系統(tǒng)崩潰。在識別Teardrop 攻擊時,一般是通過檢測UDP 數(shù)據(jù)包的完整性和IP 包I 號是否為242 來確認的。
Land 攻擊中,一個特別打造的SYN 包的源地址和目標地址都被設(shè)置成某個服務(wù)器的地址。當服務(wù)器接收自己發(fā)送的SYN/ACK消息時,就會創(chuàng)建一個空的連接,每個連接都將保留到超時,從而出現(xiàn)系統(tǒng)的崩潰現(xiàn)象。在檢測時,對同一端口的大量TCP/SYN包,如果源地址和目標地址相同,就可認定為是Land 攻擊。
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,依靠主機自我審計信息的檢測方式已經(jīng)難以適應(yīng)快速發(fā)展的網(wǎng)絡(luò)安全需求,而基于規(guī)則匹配的入侵檢測技術(shù)日益發(fā)展成熟。由于規(guī)則庫的完善,相應(yīng)的誤報率也得到了有效控制。因此,可采用擴展性好、可移植佳、開源的Snort 作為系統(tǒng)檢測模塊,以二級鏈表方式組織規(guī)則庫,將協(xié)議類型、源地址/端口分類合并形成規(guī)則頭鏈表,再對可選規(guī)則分類,將同一協(xié)議類型、源/目的地址/端口的規(guī)則放在同一頭鏈下,形成二鏈表?;诰W(wǎng)絡(luò)的入侵檢測防御系統(tǒng)整體設(shè)計結(jié)構(gòu)如下圖所示。
圖1 基于linux 操作系統(tǒng)小型網(wǎng)絡(luò)的入侵檢測防御系統(tǒng)整體設(shè)計結(jié)構(gòu)圖
網(wǎng)絡(luò)數(shù)據(jù)包捕獲模塊的主要功能就是從以太網(wǎng)中捕獲數(shù)據(jù)包,這個工作可以在操作系統(tǒng)的底層調(diào)用來實現(xiàn),也可以使用相應(yīng)的高層調(diào)用來實現(xiàn)。為提高效率,可以采用Lniux 流行的BPF 捕獲機制實現(xiàn)。此機制性能優(yōu)越,不需底層調(diào)用。
網(wǎng)絡(luò)數(shù)據(jù)分析模塊是本系統(tǒng)中一個十分重要的模塊,它的設(shè)計結(jié)果關(guān)系到能否有效主動防御入侵,保證計算機網(wǎng)絡(luò)安全的最終效果。只有能夠完全的分析數(shù)據(jù)包類型,才能在此基礎(chǔ)上進一步分析是否有入侵行為的發(fā)生。為保證分析結(jié)果的準確性,本系統(tǒng)設(shè)置了各種入侵行為特征庫,通過預(yù)設(shè)模塊調(diào)用。通過與捕獲數(shù)據(jù)的對比分析,可以大大提高數(shù)據(jù)的分析速度與準確性,減少錯報、漏報的幾率。
在對網(wǎng)絡(luò)數(shù)據(jù)包與特征庫對比分析后,對捕獲到的可疑行為進行緊急響應(yīng),積極調(diào)用與之相關(guān)的保護模塊、誘騙系統(tǒng)。由于網(wǎng)絡(luò)攻擊的復(fù)雜性,不可能做到針對每一種攻擊方式都設(shè)置相應(yīng)處理措施,只能將攻擊方式大致分類處理,并針對每一種分類,設(shè)計出相應(yīng)的保護措施與誘騙措施,以期達到主動防御的效果。因此,本模塊的設(shè)計也是整個檢測防御系統(tǒng)的核心,稍有漏洞,就功虧一簣。在進行本模塊的設(shè)計時,一定要做好相關(guān)文獻資料的查閱工作,做到最大保護系統(tǒng)的安全,一旦保護模塊失敗,還可以通過誘騙系統(tǒng)暫時保護系統(tǒng)的安全。
由于網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,攻擊者的手段也在快速更新,僅僅依靠設(shè)計好的檢測防御模塊還不能徹底保證計算機網(wǎng)絡(luò)的安全,還需要設(shè)置相應(yīng)的報警機制,及時的提醒網(wǎng)絡(luò)管理員,對可疑的攻擊行為或防御失敗的攻擊行為盡快處理,以避免出現(xiàn)不必要損失。對于系統(tǒng)日志模塊,是記錄系統(tǒng)檢測防護網(wǎng)絡(luò)安全性能的實時記錄,也是系統(tǒng)管理員尋找防御失敗攻擊行為解決措施的直接參考依據(jù)。做好系統(tǒng)日志模塊的記錄模塊設(shè)計,可以為特征庫的更新做好數(shù)據(jù)基礎(chǔ),為建立新的檢測防御體系提供技術(shù)支持。
由于網(wǎng)絡(luò)數(shù)據(jù)包很多,而且是稍縱即逝,如何建立動態(tài)的數(shù)據(jù)存儲、將有用信息經(jīng)檢測分析系統(tǒng)的過濾后,及時存儲起來,是本模塊的主要設(shè)計要求。可參考的數(shù)據(jù)庫為MYSQL,由于本系統(tǒng)采取模塊化的設(shè)計思想,易于單獨考慮數(shù)據(jù)模塊的設(shè)計方法,以方便動態(tài)掛載/卸載,以及系統(tǒng)管理員的查看。
Linux 操作系統(tǒng)是一個免費的操作系統(tǒng),具有高穩(wěn)定性、高可靠性、高安全性、源文件開放的特點;在近年中,頗受受到了廣大計算機愛好者的青睞,各種基于Linux 操作系統(tǒng)的專業(yè)應(yīng)用程序也得到了開發(fā)應(yīng)用。Linux 作為一個多用戶的操作系統(tǒng),具有多任務(wù)處理、支持共享庫、支持Windows 操作系統(tǒng)、虛擬內(nèi)存、支持GUN 軟件、內(nèi)置網(wǎng)絡(luò)配置、非專有資源代碼等優(yōu)點。隨著Linux應(yīng)用的不斷深入,Linux 的用戶也越來越多,構(gòu)建Linux 環(huán)境下的入侵檢測防御系統(tǒng)具有重要的現(xiàn)實意義。
[1][美]Strassberg Keith E.防火墻技術(shù)大全[M].李昂,等譯.北京:機械工業(yè)出版社,2003.
[2]潘瑜.Linux網(wǎng)絡(luò)系統(tǒng)安全的分析和探討[J].計算機時代,2003(8):7-9.
[3]J W Seok, J W Hong.Audio Watermarking for Copyright Protection of Digital Audio Data. Electron Letter, 2001, 37(1): 60-61.