◆鄒亞君 呂沂倫 何天晴
(曲阜師范大學 網絡空間安全學院 山東 273100)
自互聯網進入大眾視野以來,網絡安全已進入發展快車道,傳統的防火墻策略已經無法滿足人們對網絡安全的要求。入侵檢測技術是一種有效策略,但是在這條道路上還面臨著挑戰。因此必須對入侵檢測技術有全方位多角度的了解,才能更好的應用于網絡安全管理,為人民解決網絡安全隱患,在網絡安全防護市場中發揮關鍵性的作用。
入侵檢測是對用戶上網行為實時監測和安全管理的一種手段,是對網絡防火墻的加強。它提供了用于發現非法行為和惡意入侵跡象的一種檢測方法。入侵檢測系統是一種硬件和軟件交叉結合的檢測設備,能夠對入侵行為發出入侵警報。
(1)根據入侵數據源的不同可以細分為基于主機的入侵檢測和基于網絡的入侵檢測。前者主要功能是監測主機內部行為,監視主機系統的異常操作或運行狀態;后者主要功能是以網絡數據包為數據源,分析數據包的特征。
(2)根據對網絡信息源分析方法的不同又可以分為兩種:基于誤用的入侵檢測和基于異常的入侵檢測。

圖1 入侵檢測的分類
基于主機的入侵檢測系統(Host-based Intrusion Detection System,HIDS)是一種能夠關注計算機系統內部狀態,對審計日志記錄進行分析的一種入侵檢測機制。
HIDS 具有更高的辨識度,對特殊主機關注性較強,可以檢測到行為特征不明顯的入侵。HIDS 針對不同的操作系統具有不同的操作,適用于加密與交換環境,并且HIDS 的成本低,性能也不會受到網絡流量的影響,具有普適性。但是HIDS 也具有以下缺點:實時性較差,不能及時對入侵行為做出反應;只能檢測到局部數據包,入侵檢測范圍不夠全面;利用HIDS 會導致主機資源被占用,并且具有較差的隱蔽性和主動性,不能在沒有用戶的參與下對攻擊行為展開調查。
基于網絡的入侵檢測系統(Network-based Intrusion Detection System,NIDS)是一種能夠對網段數據包內容進行分析,實時監聽網段流量的入侵檢測機制,當某一數據包與內置規則相匹配時,則發出入侵警報或者自動切斷網絡連接。
NIDS 會對整個網段的網絡數據包進行檢測,而不僅局限于一臺主機,NIDS 與HIDS 相比實時性較好,可以及時對一般入侵行為做出反應,同時具有良好的隱蔽性,不易被發現也不需要任何特殊的審計和登錄管理機制,配置好網站的接口即可。而且NIDS 不占用主機資源,能夠節省空間。但是NIDS 還具有以下缺點,處理范圍并不全面,雖然可以檢測一般入侵行為,但是不能有效檢測到帶有偽裝的攻擊行為,當主機要實現監聽功能時,NIDS 會增加沖突的可能性,導致監聽效果變差。此外,NIDS 規則的更新總是慢于攻擊手段的出現,即使用戶可以自定義規則,但這也為入侵者提供了方便,入侵者可以故意規避已有規則,從而使攻擊行為不被NIDS 發現。
NIDS 能夠管理網絡引擎,用戶角色以及數據庫,對數據進行收集,將網卡設為混雜模式來抓取網段中的流量數據包,在檢測到攻擊入侵時能及時對FTP、DNS、HTTP 等事件進行分析并做出響應。
NIDS 發現入侵攻擊行為主要有以下三個特征:端口特征,即對目的IP 地址的端口號進行檢查,如有一些非法程序的端口號出現則可判定為入侵行為。串特征看似是普通的字符串,實則為危險信號,代表攻擊,某些字符串的含義為不經過身份認證就可以使用該主機,危害非常大;數據包頭特征即數據包的碼位含有非法組合,具有代表性的就是WinNuke 攻擊,通過TCP/IP 協議傳輸緊急數據包,當主機收到此數據包就會死機或者藍屏。
Snort 的三種模式。嗅探器:其主要用途是探測網絡數據包,并將其顯示在界面上,常用命令snort -dev。網絡入侵檢測系統:對網絡數據流協議進行分析,并與自定義規則相比較,對有入侵特征的行為采取相應措施。數據包記錄器:將數據包打包存儲到主機,常用命令snort -b。
Snort 的四大組成模塊。數據包嗅探模塊:監聽網絡協議數據包,并進行協議解析。預處理模塊:對傳入的數據包進行整合,利用注冊,初始化和調用等插件進行端口掃描等操作。檢測模塊:數據包被發送到此核心模塊,檢測引擎根據用戶自己設置的規則,對該數據包內容進行檢測和匹配,當用戶發現數據包的內容與規則中content 的字符串相匹配時,就發出警報。報警/日志模塊:當數據包與檢測模塊中的某條規則相匹配,則會觸發報警,報警信息被記錄到日志文件或者數據庫中。
Snort 規則由規則頭和規則體兩部分組成。規則頭又由四部分組成:協議、源IP 地址和目的IP 地址、規則動作、源端口信息和目的端口信息。規則體可以在規則頭的基礎上進一步對數據包進行分析,包含報警信息和需要檢查的包的具體部分。
規則一:
alert any any -> any any[2000;2021](msg:””;content:””)
解釋:“alert”表示規則動作為報警,any 代表任意,“->”表示發送方向,因為端口號之間用分號連接,則目的端口為2000—2021,如果是冒號則是獨立的兩個數值,括號里的內容是規則體,msg 對應的是報警信息,content 對應的是匹配的字符串。
(1)規則動作
規則動作規定了Snort 在發現匹配的數據包時應該作何反應。Snort 預置的規則動作有五種:log 是按照自定義格式對數據包進行記錄。activate 是當數據包與規則相匹配時,會生成警報并啟動相關的dynamic 類型的規則。pass 是跳過對當前數據包的分析,繼續對下一個數據包進行分析。alert 是按照自定義格式對包進行記錄并發出警報。dynamic 是等待activate 規則激活,激活后類似于log。
(2)協議
當前Snort 分析的IP 協議有四種分別是TCP,UDP,ICMP 和IP。
(3)IP 地址
規則中會給定規則的IP 地址和端口信息,any 代表任意(任意IP 地址和任意端口號),地址由數字型IP 地址和CIDR 所表示。在這個區域內的所有IP 地址都對應使用此規則。此部分可能會用到“!”否定運算符,表示除給定的IP 地址外對其他的流都會報警。“111”表示端口映射器,想要測試主機必須先開放111 端口。
規則二:
alert tcp !192.168.15.0/24 any -> 192.168.15.0/24 111(content:””;msg:””)
(4)端口號
any 可以表示任何端口,靜態端口號表示單獨的一個端口號。例如ftp 端口號為21,telnet 端口號為23,http 端口號為80,smtp 端口號為25 等。
(5)方向操作符
“->”表示規則所施加的流的方向。方向操作符左邊的IP 地址和端口號是源主機,方向操作符右邊的IP 地址和端口號是目的主機;“<>”雙向操作符表示IP 地址和端口號又作為源又作為目的主機,記錄數據的雙向傳輸。
規則三:
log 192.168.15.0/24 any <> 192.168.15.0/24 23

圖2 數據包部分解析示例

圖3 TCP 數據包部分內容示例
面對著如今防火墻產品充斥著市場的現狀,入侵檢測系統作為防火墻的加強手段有著強勁的上升勢頭,但是入侵檢測系統還有許多問題亟待解決,一方面是虛假警報率和漏報率過高,究其原因還是匹配技術與檢測技術不精確,這還有待加強改善;另一方面是檢測速度太慢無法跟上當前大數據時代越來越快的網絡增長速度,和越來越復雜的網絡拓撲結構的步伐。目前大多數的入侵檢測系統在檢測質量和數據負荷量方面不能兼得。可見入侵檢測技術還未成熟,仍然是一個具有研究潛力的課題。
網絡安全技術是一個復雜的課題,而入侵檢測是保證網絡信息安全的一個必要手段,是網絡安全中新興的有效技術。本文針對入侵檢測技術在信息源上的分類,分別進行了簡要的敘述,并且提到了Snort入侵檢測技術,但是Snort 沒有圖形界面,總體來說比較抽象。入侵檢測技術與防火墻技術的結合,將會廣泛應用于安全防護技術當中。如何進一步提高入侵檢測力度,更好迎接兩大方面的挑戰,保障網絡信息安全,是以后入侵檢測方面需要著重研究的新方向。