一、識別方式的設計漏洞
1.對比已知攻擊手法與入侵檢測系統監視到的在網上出現的字符串,是大部分網絡入侵檢測系統都會采取的一種方式.例如,在早期apache web服務器版本上的phf cgi程序,就是過去常被黑客用來讀取服務器系統上的密碼文件(/etc/password),或讓服務器為其執行任意指令的工具之一.當黑客利用這種工具時,在其url request請求中多數就會出現類似"get /cgi-bin/phf?....."的字符串.因此許多入侵檢測系統就會直接對比所有的url request 中是否出現/cgi-bin/phf 的字符串,以此判斷是否出現phf 的攻擊行為.
2.這樣的檢查方式,雖然適用于各種不同的入侵檢測系統,但那些不同的入侵檢測系統,因設計思想不同,采用的對比方式也會有所不同.有的入侵檢測系統僅能進行單純的字符串對比,有的則能進行詳細的tcp session重建及檢查工作.這兩種設計方式,一個考慮了效能,一個則考慮了識別能力.攻擊者在進行攻擊時,為避免被入侵檢測系統發現其行為,可能會采取一些規避手法,以隱藏其意圖.例如:攻擊者會將url中的字符編碼成%xx 的警惕6進值,此時"cgi-bin"就會變成"%63%67%69%2d%62%69%6e",單純的字符串對比就會忽略掉這串編碼值內部代表的意義.攻擊者也可以通過目錄結構的特性,隱藏其真正的意圖,例如:在目錄結構中,"./"代表本目錄,"../"代表上層目錄,web服務器 可能會將"/cgi-bin/././phf"、"http://cgi-bin//phf"、"/cgi-bin/blah/../phf?"這些url request均解析成"/cgi-bin/phf",但單純的入侵檢測系統可能只會判斷這些request是否包含"/cgi-bin/phf"的字符串,而沒有發現其背后所代表的意義.
3.將整個request在同一個tcp session中切割成多個僅內含幾個字符的小packet,網絡入侵檢測若沒將整個tcp session重建,則入侵檢測系統將僅能看到類似"get"、"/cg"、"i"、"-bin"、"/phf"的個別packet,而不能發現重組回來的結果,因為它僅單純地檢查個別packet是否出現類似攻擊的字符串.類似的規避方式還有ip fragmentation overlap、tcp overlap 等各種較復雜的欺瞞手法.
二、"獵殺"及重調安全政策的漏洞
所謂"獵殺",就是在服務器中設定一個陷阱,如有意打開一個端口,用檢測系統對其進行24小時的嚴密盯防,當黑客嘗試通過該端口入侵時,檢測系統就會及時地將其封鎖.網絡入侵檢測系統的"獵殺"及重新調整防火墻安全政策設置功能,雖然能即時阻斷攻擊動作,但這種阻斷動作僅能適用tcp session,要完全限制,就必須依賴重新調整防火墻安全政策設置的功能,同時也可能造成另一種反效果:即時阻斷的動作會讓攻擊者發現ids的存在,攻擊者通常會尋找規避方式,或轉向對ids進行攻擊.重新設置防火墻的安全政策,若設置不當,也可能造成被攻擊者用來做阻斷服務(denial of service)攻擊的工具:經過適當的設計,若網絡入侵檢測的檢查不足,攻擊者可以偽裝成其他的正常ip來源進行攻擊動作,入侵檢測系統若貿然限制這些來源的ip,將會導致那些合法用戶因攻擊者的攻擊而無法使用.論是識別方式的設計,還是所謂的"獵殺"及重新設置防火墻安全政策的設置功能,都有其利弊.能夠實地了解入侵檢測系統的識別方式,或進行其識別手法的調整,將有助于提高入侵檢測系統運作的正確性.對"獵殺"及重新調整防火墻安全政策設置功能工具的使用,則應仔細評估其效益與相應的損失,這樣才能有效地發揮網絡入侵檢測系統的功能
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/