吳 慰
湖北工業大學商貿學院實驗中心,湖北武漢 430062
隨著Linux 操作系統與網絡技術的迅猛發展,基于Linux 操作系統構建的小型網絡安全形勢也日趨嚴峻和復雜化,各種計算機安全事件的數量正在不斷增長。面對小型網絡的安全防御問題,如何構建安全的網絡入侵檢測防御系統,成為目前計算機網絡面臨的首要問題。由于網絡入侵者采用的攻擊技術與攻擊手段不斷地變化,功能更為強大,更具針對性和欺騙性,構建高效的入侵檢測防御系統是保護計算機網絡安全的直接解決途徑。目前,在Linux 環境下的主流入侵防御技術是構建特征入侵的防御系統。特征入侵,就是網絡或系統中存在違反安全策略的行為和攻擊行為。入侵檢測防御系統,就是采用主動的入侵檢測技術檢測系統中的這些違反安全策略行為和攻擊行為的系統。作為一種重要的安全防護工具,入侵檢測防御系統的作用已經超過了防火墻的概念。本文通過分析常見的網絡攻擊方式,對Linux 操作系統下對網絡入侵檢測防御系統的設計原理和設計實現進行了探討。
入侵檢測防御系統是為了檢測黑客通過病毒等手段有意攻擊計算機網絡和計算機系統而構建的檢測防御系統。入侵檢測防御系統應具有捕獲符合指定條件的網絡數據包、數據預處理、入侵分析以及告警、簡單防御攻擊行為、誘騙攻擊者、獲取對方攻擊意圖、獲取攻擊者的簡單資料等信息的能力。
如果想要避免Linux 網絡遭受黑客的攻擊,就必須對黑客的攻擊方法、攻擊原理以及攻擊過程有深入詳細的了解。這樣才能設計出有效的主動檢測防御系統。在Linux 網絡系統中,常被攻擊的方式主要有Synflood 攻擊、Ping Flood 攻擊、Smurf 攻擊、Teardrop 攻擊、Land 攻擊、ICMP 掃描/TCP 掃描/UDP 掃描等等。
Synflood 攻擊屬于DoS 攻擊的一種,是最基本的入侵攻擊手段之一,也是最難對付的入侵攻擊手段。具體表現方式是在計算機進行網絡通信時,服務器接到用戶端的SYN 包后,回應用戶端一個SYN/ACK 包,然后等待用戶端的ACK 回應包進行確認時,用戶端不發送ACK 包而導致服務器一直等待,致使服務器一直等待對應用戶端回應而無法響應其他機器的連接請求時,就可認定為Synflood 攻擊。
Ping Flood 攻擊的原理是由于操作系統等對傳輸文件包的長度有限制,如ICMP 包的64 KB 規定,當發送者產生長度超過64Kb的文件包時,就會導致內存錯誤、TCP/IP 堆棧崩潰的情況。目前,大多數系統對Ping Flood 攻擊都有一定的抵抗能力。
Smurf 攻擊的原理是將某數據包的回復地址設置成被攻擊網絡的地址,當網絡中某臺機器使用被攻擊的網絡地址發送一個被設置的數據包時,就會收到多個相應的數據包,Smurf 攻擊就是通過數據包阻塞被害網絡的方式進行攻擊,導致該網絡的所有機器都對此數據包的請求都做出答復,最終導致網絡的阻塞,甚至崩潰。
Teardrop 攻擊方式是采用病態的 UDP 數據包進行攻擊。當操作系統收到病態的UDP 數據包后,產生內存錯誤而導致系統崩潰。在識別Teardrop 攻擊時,一般是通過檢測UDP 數據包的完整性和IP 包I 號是否為242 來確認的。
Land 攻擊中,一個特別打造的SYN 包的源地址和目標地址都被設置成某個服務器的地址。當服務器接收自己發送的SYN/ACK消息時,就會創建一個空的連接,每個連接都將保留到超時,從而出現系統的崩潰現象。在檢測時,對同一端口的大量TCP/SYN包,如果源地址和目標地址相同,就可認定為是Land 攻擊。
隨著計算機網絡技術的發展,依靠主機自我審計信息的檢測方式已經難以適應快速發展的網絡安全需求,而基于規則匹配的入侵檢測技術日益發展成熟。由于規則庫的完善,相應的誤報率也得到了有效控制。因此,可采用擴展性好、可移植佳、開源的Snort 作為系統檢測模塊,以二級鏈表方式組織規則庫,將協議類型、源地址/端口分類合并形成規則頭鏈表,再對可選規則分類,將同一協議類型、源/目的地址/端口的規則放在同一頭鏈下,形成二鏈表。基于網絡的入侵檢測防御系統整體設計結構如下圖所示。

圖1 基于linux 操作系統小型網絡的入侵檢測防御系統整體設計結構圖
網絡數據包捕獲模塊的主要功能就是從以太網中捕獲數據包,這個工作可以在操作系統的底層調用來實現,也可以使用相應的高層調用來實現。為提高效率,可以采用Lniux 流行的BPF 捕獲機制實現。此機制性能優越,不需底層調用。
網絡數據分析模塊是本系統中一個十分重要的模塊,它的設計結果關系到能否有效主動防御入侵,保證計算機網絡安全的最終效果。只有能夠完全的分析數據包類型,才能在此基礎上進一步分析是否有入侵行為的發生。為保證分析結果的準確性,本系統設置了各種入侵行為特征庫,通過預設模塊調用。通過與捕獲數據的對比分析,可以大大提高數據的分析速度與準確性,減少錯報、漏報的幾率。
在對網絡數據包與特征庫對比分析后,對捕獲到的可疑行為進行緊急響應,積極調用與之相關的保護模塊、誘騙系統。由于網絡攻擊的復雜性,不可能做到針對每一種攻擊方式都設置相應處理措施,只能將攻擊方式大致分類處理,并針對每一種分類,設計出相應的保護措施與誘騙措施,以期達到主動防御的效果。因此,本模塊的設計也是整個檢測防御系統的核心,稍有漏洞,就功虧一簣。在進行本模塊的設計時,一定要做好相關文獻資料的查閱工作,做到最大保護系統的安全,一旦保護模塊失敗,還可以通過誘騙系統暫時保護系統的安全。
由于網絡技術的不斷發展,攻擊者的手段也在快速更新,僅僅依靠設計好的檢測防御模塊還不能徹底保證計算機網絡的安全,還需要設置相應的報警機制,及時的提醒網絡管理員,對可疑的攻擊行為或防御失敗的攻擊行為盡快處理,以避免出現不必要損失。對于系統日志模塊,是記錄系統檢測防護網絡安全性能的實時記錄,也是系統管理員尋找防御失敗攻擊行為解決措施的直接參考依據。做好系統日志模塊的記錄模塊設計,可以為特征庫的更新做好數據基礎,為建立新的檢測防御體系提供技術支持。
由于網絡數據包很多,而且是稍縱即逝,如何建立動態的數據存儲、將有用信息經檢測分析系統的過濾后,及時存儲起來,是本模塊的主要設計要求。可參考的數據庫為MYSQL,由于本系統采取模塊化的設計思想,易于單獨考慮數據模塊的設計方法,以方便動態掛載/卸載,以及系統管理員的查看。
Linux 操作系統是一個免費的操作系統,具有高穩定性、高可靠性、高安全性、源文件開放的特點;在近年中,頗受受到了廣大計算機愛好者的青睞,各種基于Linux 操作系統的專業應用程序也得到了開發應用。Linux 作為一個多用戶的操作系統,具有多任務處理、支持共享庫、支持Windows 操作系統、虛擬內存、支持GUN 軟件、內置網絡配置、非專有資源代碼等優點。隨著Linux應用的不斷深入,Linux 的用戶也越來越多,構建Linux 環境下的入侵檢測防御系統具有重要的現實意義。
[1][美]Strassberg Keith E.防火墻技術大全[M].李昂,等譯.北京:機械工業出版社,2003.
[2]潘瑜.Linux網絡系統安全的分析和探討[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.