主機入侵防禦系統

Host Intrusion Prevent System 主機入侵防禦系統,簡稱HIPS。


網路的互連是為了實現信息的方便共享和傳輸。但是幾乎自從有了網路的存在,入侵行為也就同時出現了。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攻擊行為。美國G0vernment法律規定由於某台計算機的安全問題直接導致的其它聯網計算機的入侵事件,這台具有安全問題的計算機的所有人是需要負責任的。目前其它國家也正在陸續出台相關的規定。所以,在網路上僅僅採取明哲保身的自保策略是不夠的。為了避免被植入木馬的伺服器成為入侵者的跳板和傀儡,主機入侵防禦系統還具備了網路訪問控制的作用。網路訪問控制規則不僅僅能夠定義哪些人能夠在什麼時間從哪裡訪問本機的哪些服務,而且更為重要的是,它還能夠定義從本機能夠發出什麼類型的網路連線。這樣,凡是不符合規則的連結將不能夠從本機發出。舉例來說,在紅色代碼泛濫的時候,許多運行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等都是對主機入侵防禦系統的有益補充。只有將關鍵伺服器的保護和整體的網路架構保護合理地結合在一起,才能夠為我們的網路空間提供最為完善的保障。針對當前的病毒、蠕蟲、入侵等種種威脅構成的混合型威脅,主機入侵防禦系統無疑會給我們的關鍵資源提供更加主動的防禦方式。(作者單位 浙江省Federa1 Agent廳)

相關詞條

相關搜尋

熱門詞條

聯絡我們