2007年11月13日星期二

主機入侵防禦系統的應用

網 絡的互連是為了實現信息的方便共享和傳輸。但是幾乎自從有了網絡的存在,入侵行為也就同時出現了。Internet的出現和高速發展同時帶動了網絡入侵活 動的發展。在種種網絡入侵行為中,針對關鍵服務器的攻擊可以說是最具威脅性、可能造成損失最大的行為。越來越重要的信息無形資産存儲在這些服務器上,一旦 服務器受到了安全威脅勢必殃及這些信息和數據。下面將從分析一些最普遍的攻擊方式入手,逐一介紹破解這種攻擊的方法,此處用到的核心技術是主機入侵防禦系 統。

一、堆棧溢出防範 這種類型的攻擊赫赫有名,頻頻出現在CERT、SANS、CSI等國際網絡安全組織的最具威脅的攻擊類型名單內。據統計,通過緩沖區溢出進行的攻擊占所有 系統攻擊總數的80%以上。這是一種滲透到系統中的攻擊技術,其基本原理是當來自某個程序的輸入數據超出程序緩沖區能夠處理的長度時會産生溢出,結果不受程 序員的控制。當入侵者巧妙地安排代碼後,被攻擊的服務器還可能執行入侵者指定的程序代碼,從而導致攻擊者甚至可以獲得系統中超級用戶的權限。比如80年代 的Morris"蠕蟲"事件導致了當時Internet上1/3的計算機癱瘓,這種入侵方式就是采用了UNIX的Finger服務的一個緩存區溢出的漏 洞;2001年的紅色代碼病毒在短短幾個小時內傳遍了全球,造成了數十億美元的損失,也是采用了Windows服務器平台上的IIS服務的一個緩存區溢出 漏洞。2003年的SQL Slammer蠕蟲、2004年的震蕩波等同樣也是利用了這種漏洞。為什麽這種攻擊這麽多呢?主要原因在于(單不僅限于)目前廣泛用于系統編程的語言-- C語言本身的某些函數就存在著一些漏洞,造成了這種漏洞的廣泛存在和難以徹底清查。


目前對這種攻擊方式的防範方式主要有以下幾種:第一,對存在溢出漏洞的程序打補丁。這是最常見的防範方式,需要依靠程序的廠商提供相應的補丁程序才能生 效。但是隨著網絡攻擊的頻度不斷加快,一個漏洞從被發現到運用在大規模的攻擊中的時間大大縮短。往往程序廠商還沒有發布相應的補丁程序,攻擊就已經發生 了。所以這種方式是非常被動的,無法防範新出現的漏洞入侵。第二,通過操作系統的設置使得緩沖區不可執行,從而阻止攻擊者植入攻擊代碼。這種方式的主要問 題在于首先可能和現有的應用程序存在沖突,其次對溢出攻擊的防範不全面。因為有些攻擊不需要進行攻擊代碼的植入過程。第三,采用專用的防範溢出的編譯器對 程序進行編譯檢查。這是一個比較完整的保護措施,但是卻需要付出非常高昂的時間和費用的代價。



所有上述的辦法都無法在現實的業務系統中順利使用。主機入侵防禦系統則提供了另一種切實可行、易于實施的防止"堆棧溢出攻擊"的方法。主機入侵防禦系統中 具有一種STOP (STack Overflow Protection,堆棧溢出保護)技術,可以阻止這種入侵,防止用戶或程序獲得超級用戶權限。


所有的緩沖區漏洞挖掘程序都基于以下一個假設,即:程序在每次運行時有問題的參數壓入棧內的數據地址空間偏移量是一定的(或者相差較小)。如果在程序運行 時由操作系統定義並且分配一個隨機化的偏移給該應用程序,那麽則專為此有缺陷的程序設計的溢出程序在溢出時就會返回一個錯誤的ret地址,而不能跳轉到惡 意構造的shellcode下。雖然大部分的緩沖區溢出程序也能提供可調整的offset變量,但由于每次有缺陷的程序運行時都將擁有一個隨機化的偏移, 因此通過上次不成功的溢出猜測所得到的地址空間和內容並不能來指導修正下次調整的offset。主機入侵防禦系統提供了STOP技術在不改變操作系統內核 下同級工作,能幫助定義並且分配一個隨機化的偏移量,在不修改的系統內核的情況動態實現上述功能。


   通過這種防範措施,用戶不僅僅能夠對所有已知和未知推棧溢出類型的攻擊進行高強度防範,而且還不需要修改任何現有的操作系統和應用程序,保證原有系統的持續運行,保護了投資。


二、信息篡改保護 信息篡改破壞了信息的完整性,是入侵者攻擊目的的一種。信息篡改主要有兩種形式:信息傳輸中的篡改和信息存儲時的篡改。信息傳輸中的篡改主要發生在 在線的交易過程中對交易信息的篡改,將導致交易雙方的嚴重經濟損失;網絡設備控制信息的篡改,可能導致網絡工作異常、甚至導致信息傳輸途徑的更改以至于失 密。這種攻擊行為的防範主要依靠信息交換雙方對信息的加密和數字簽名以及強驗證方式來實現。信息存儲時的篡改是最為常見的攻擊方式,往往表現在對關鍵業務 服務器上數據的更改,導致業務無法正常運行;對一些關鍵文件的篡改,比如針對網站主頁的篡改,會導致被攻擊者形象的損失和潛在的經濟損失。比如一家在線交 易單位如果網頁被篡改,其後果可能會導致大量客戶的流失,即使入侵行為沒有危及到關鍵的交易數據。另外一種最具威脅的攻擊手段是對可執行程序的篡改。入侵 者通過對系統原有的可執行文件的篡改能夠達到很多破壞目的。比如通過非法修改證券交易系統或者銀行業務系統的程序以獲取暴利;通過篡改某些關鍵應用程序導 致系統無法正常運行。但是最常見的篡改目的是:通過篡改一些管理員或者用戶經常使用的應用程序,使其在運行的時候除了執行正常的操作之外,同時運行一個入 侵者放置的木馬程序。這樣,對管理員或者用戶來說好像系統運行一切正常,但是卻在不知不覺中運行了木馬程序,導致後門洞開。這種入侵的後果是非常嚴重的, 將可能導致嚴重的信息泄密。


   主機入侵防禦系統的解決方法就是從根本入手,大大細化了對資源的控制粒度。不管是UNIX還是Windows服務器操作系統,對文件和目錄的安全許可權限 都是非常有限的。但是通過主機入侵防禦系統就能夠使文件和目錄的許可控制大大增強。如圖所示,許可類型除了讀、寫、執行外,還額外添加了刪除、重命名、模 式更改、屬主更改、時間更新、ACL更改、創建、更改目錄等8項許可,為管理員提供了充分的授權空間,能夠按照最貼切的方式對各個賬戶進行資源的授權,防 止授權過大造成的內部安全隱患。同時,同樣一個賬戶采用不同的應用程序訪問資源也有可能獲得不同級別的訪問許可,這給某些行業的特殊需求提供了極大的便 利。


   有了文件許可的細化控制能夠極大地減少由于授權原因造成的信息篡改事件。但是為了徹底杜絕對關鍵信息的篡改,主機入侵防禦系統還提供了數字簽名的功能,能 夠對普通文件、數據文件以及可執行文件特別是入侵者攻擊的首要目標--UNIX中的suid和sgid類型的程序進行完整性校驗。如果普通文件和數據文件 發生了意外更改,主機入侵防禦系統將會報警;如果可執行文件發生了意外更改,主機入侵防禦系統將會自動拒絕這個可執行文件的執行,並且同時報警。這樣,即 使非法入侵者對目標文件進行了篡改,其目的也很難得逞。當然,如果實現利用主機入侵防禦系統的文件保護功能對這些關鍵的文件進行了保護,入侵者是無法達到 非法篡改的目的的。


木馬後門防範
  特洛伊木馬(以下簡稱木馬),英文叫做"Trojan horse",其名稱取自古希臘的特洛伊木馬攻城故事,相信大家都已經耳熟能詳了。正是這種古老的攻城方式卻成為了現在令人色變的網絡入侵方式。


  首先,主機入侵防禦系統具有的程序訪問控制列表(PACL)功能使得同樣一個用戶訪問同樣的資源的時候,如果采用不同的應用程序訪問,將會得到不同的 權限。也就是說,對于一些重要的資源,我們可以采用主機入侵防禦系統這種功能限定不同應用程序的訪問權限,只允許已知的合法的應用程序訪問這些資源。這 樣,即使入侵者在被攻擊的服務器上運行了木馬程序,但是木馬程序需要竊取關鍵信息的時候必須要經過主機入侵防禦系統的安全驗證。由于PACL中沒有定義木 馬程序的訪問權限,按照默認權限是不能夠訪問的,由此就起到了對木馬信息竊取的防範。


  另外,計算機一旦連結上了網絡就融入了一個整體,需要對整體的安全性負責任。通過上文的分析我們已經發現,木馬不僅僅會竊取本地信息,更嚴重的是入侵 者能夠通過本地計算機對網絡中的其它計算機發起入侵,如DDoS攻擊行為。美國政府法律規定由于某台計算機的安全問題直接導致的其它聯網計算機的入侵事 件,這台具有安全問題的計算機的所有人是需要負責任的。目前其它國家也正在陸續出台相關的規定。所以,在網絡上僅僅采取明哲保身的自保策略是不夠的。為了 避免被植入木馬的服務器成為入侵者的跳板和傀儡,主機入侵防禦系統還具備了網絡訪問控制的作用。網絡訪問控制規則不僅僅能夠定義哪些人能夠在什麽時間從哪 裏訪問本機的哪些服務,而且更為重要的是,它還能夠定義從本機能夠發出什麽類型的網絡連接。這樣,凡是不符合規則的連結將不能夠從本機發出。舉例來說,在 紅色代碼泛濫的時候,許多運行IIS服務的服務器感染病毒後會在網絡中進行大範圍的掃描,發現TCP 80端口開放的潛在受攻擊者。但是Web服務器的這種行為明顯地是非常異常的行為。所以通過在主機入侵防禦系統中定義外出連結的類型,能夠從根本上避免由 木馬發起的外部攻擊行為,特別是避免成為DDoS攻擊的傀儡。

四、進程中止保護 在很多關鍵業務環境中,肯定都會有幾種比較重要的服務在運行。比如一個電子商務交易Web站點,服務器上的HTTP服務或者守護進程就是非常關鍵 的。而在後台的支撐環境中運行的數據庫服務器上,數據庫的守護進程就是這台服務器的靈魂。同樣地,對于一個剛剛興起的收費郵箱服務提供商來說,如果後台郵 件服務器上的SMTP服務忽然停頓,勢必會更加難以招徕用戶。所以,信息化的社會的基石就是在關鍵服務器上運行的種種服務。一旦服務中止,上層的應用就會 沒有了根基。而在操作系統中,這些關鍵服務是以後台進程的方式存在。


   目前,受到攻擊最多的服務就是HTTP、SMTP以及數據庫進程,當然也有其它的關鍵服務進程。入侵者對于這些進程的中止方式一般有兩種:一種是利用這些 服務本身存在的某些漏洞進行入侵,而另外一種則是首先獲得操作系統中能夠中止進程的權限,一般是超級用戶的權限,然後再中止進程。


   進程的安全性完全依賴于操作系統提供的安全級別。一般來說,進行進程中止的防止主要是采用Watchdog的技術。所謂Watchdog就是看門 狗的意思,其主要功能是對進程進行看護,防止進程的意外中止。如果由于某些意外因素,進程非正常中斷,Watchdog能夠在很短時間內快速重新啓動被看 護的進程。


   主機入侵防禦系統就具備了這種Watchdog的功能。事實上,主機入侵防禦系統本身提供的服務就是基于三個進程的。主機入侵防禦系統要對操作系 統進行安全保護,需要首先進行自身的保護,防止自己進程的意外中止。在實際運行當中,這三個進程出了各自完成自己的職能外,還存在一種互相看守的關系。就 是進程一是進程二的Watchdog,而進程二又是進程三的Watchdog,進程三則是進程一的Watchdog。這樣,如果其中一個進程意外中止了, 總有一個進程會將其重新啓動。即使在非常情況之下兩個進程同時意外中斷,剩下的一個進程依然能夠將另一個進程啓動,然後啓動最後一個進程。所以,主機入侵 防禦系統的這種安全機制是非常嚴密的,不僅僅用來保護自己,而且還能夠很好地應用于對關鍵服務進程的安全防護。

五、超級權限分割 超級用戶的存在為管理者帶來了極大的方便,登錄一次,就能夠完成所有的管理工作,執行所有的命令,進行所有的系統維護。但是,同時正是因為有了超級用戶無所不能的超級權限,也造成了很多的麻煩。

  首先抛開入侵者的攻擊不談,僅僅管理員在執行正常的操作時,超級權限就帶來了不少的問題。一旦使用超級用戶登錄,管理員在作各種操作的時候必須慎之又 慎。系統中的很多動作是不可逆的,一旦管理員因為人為失誤做出不當的操作,往往會造成不可挽回的損失。特別在關鍵的業務服務器系統上經常會出現這種類似的 損失慘重的失誤,我們經常能夠在媒體上看到相關的一些報道。據統計,管理員的人為失誤是對整個網絡系統最大的安全威脅之一。實際上有一些操作是遠遠不需要 超級用戶的權限就能夠完成的,但是絕大多數的人還是會選擇采用超級用戶的賬戶進行登錄,究其原因,恐怕最根本的就是為了圖方便,從而釀成大錯。

  其次,在操作系統中設置超級用戶有其不合理的一面。一般來說,管理員的職責是維護系統的正常運行,建立和維護各種賬戶,對資源的訪問權限進行分配等 等,他們一般不應該具有讀取甚至修改、刪除某些存放在服務器上的機密信息的權利。但是在現實中,具有超級用戶的權限者就能夠任意地對這些數據進行處理,即 使經過加密的數據他們也能夠輕而易舉地破壞甚至刪除。這是不合乎正常的安全策略的,需要通過某種措施進行控制。

  最後,在入侵者的世界裏,恐怕再沒有獲取一個新的重要系統的超級用戶的身份更加美好的事情了。幾乎所有的攻擊手段的終極目標就是要獲得被攻擊系統的完 全控制權,而這一切基本上同于獲得系統的超級用戶的賬戶名稱和密碼。口令破解、堆棧溢出、網絡竊聽…等等,目的無不于此。一旦獲得超級用戶的權限,入侵者 不僅僅能夠完成上面所說的一系列行為,而且還能夠任意地切換到其他人的身份,甚至不需要任何密碼驗證;能夠隨意地抹去對自己動作的一切審計記錄,讓審計人 員無據可查。當然,超級用戶的存在同樣也使網絡安全人員陷入了一種尴尬的境地。不管采用的防火牆是如何的牢不可破、IDS是如何地明察秋毫、加密算法是如 何的先進,只要入侵者獲得了超級用戶的權限,這一切都形同虛設。

  為了對于上述的種種情況,主機入侵防禦系統在操作系統的層次對超級用戶的特權進行了再分配,並且將所有的用戶都同等對待,使得系統中不再有超級用戶的 概念存在。經過分權後,每一個管理員自能夠在自己的職責範圍內工作,而不具備其它的特權。比如安全管理員能夠對資源進行許可的分配,但是不能夠隨意刪除日 志;安全審計員的職責就是分析日志,發現所有用戶的可疑行為,但是卻不具備其它所有的系統權利。這樣就好像給一個保險箱加了三把鎖一樣,僅僅拿到一把鑰匙 是沒有辦法獲得保險箱裏面的東西的。為了用戶能夠按照自己的意願進行分權,主機入侵防禦系統還提供了權限分配(task delegation)的接口,以供更加細化的配置,讓普通的用戶具有某些超級用戶才能夠執行的權利。經過權力分配和細化後,可以大幅度避免管理員的人為 誤操作,並且防止入侵者一旦獲得一個賬戶的所有權後就能夠橫行無阻的狀況發生。

  為了更加細致准確地跟蹤系統上的活動,主機入侵防禦系統提供了根據原始登錄ID進行審計的功能。也就是說不論登錄者後來通過su切換到哪一個登錄ID 號,在日志中始終以其原始的登錄ID進行活動的跟蹤和記錄,而且入侵者即使獲得了root的口令也無法對日志進行破壞。另外,主機入侵防禦系統將ID的使 用權限也作為一種資源進行管理,也就是說如果一個賬號需要su到另外一個賬號,必須經過主機入侵防禦系統的授權,否則就不能成功。哪怕是root用戶想要 su到其它賬戶也是如此。這樣就大大降低了通過切換ID實現的假冒攻擊行為。

  主機入侵防禦系統基于穩固的安全體系和全新的安全設計理念,具有穩固的運行特性和強大的安全性,為各種UNIX平台以及Windows服務器平台提供 了極大的安全保障,並且同大型機的安全機制兼容。該系統是對關鍵服務器資源進行重點保護的重要安全工具,正在越來越受到用戶的重視。

當然,主機入侵防禦系統提供的保護措施主要是集中在對服務器資源和行為的保護,不能替代所有的安全産品。防火牆、防病毒、網絡入侵檢測系統、VPN等都是 對主機入侵防禦系統的有益補充。只有將關鍵服務器的保護和整體的網絡架構保護合理地結合在一起,才能夠為我們的網絡空間提供最為完善的保障。針對當前的病 毒、蠕蟲、入侵等種種威脅構成的混合型威脅,主機入侵防禦系統無疑會給我們的關鍵資源提供更加主動的防禦方式。

沒有留言: