主機入侵防禦系統

主機入侵防禦系統

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

簡介


HIPS是一種能監控你電腦中文件的運行和文件運用了其他的文件以及文件對註冊表的修改,並向你報告請求允許的軟體。如果你阻止了,那麼它將無法運行或者更改。比如你雙擊了一個病毒程序,HIPS軟體跳出來報告而你阻止了,那麼病毒還是沒有運行的。引用一句話:“病毒天天變種天天出新,使得殺軟可能跟不上病毒的腳步,而HIPS能解決這些問題”。 HIPS是以後系統安全發展的一種趨勢,只要你有足夠的專業水平,你可以只用HIPS而不需殺毒軟體。但是HIPS並不能稱為防火牆,最多只能叫做系統防火牆,它不能阻止網路上其他計算機對你計算機的攻擊行為。
因為病毒天天變種天天出新,使得殺軟可能跟不上病毒的腳步,而HIPS能解決這些問題。
我們個人用的HIPS可以分為3D: AD(Application Defend)--應用程序防禦體系、RD(Registry Defend)註冊表防禦體系、FD(File Defend)文件防禦體系。它通過可定製的規則對本地的運行程序、註冊表的讀寫操作、以及文件讀寫操作進行判斷並允許或禁止。

防範保護措施


堆棧溢出防範

這種類型的攻擊赫赫有名,頻頻出現在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等都是對主機入侵防禦系統的有益補充。只有將關鍵伺服器的保護和整體的網路架構保護合理地結合在一起,才能夠為我們的網路空間提供最為完善的保障。針對當前的病毒、蠕蟲、入侵等種種威脅構成的混合型威脅,主機入侵防禦系統無疑會給我們的關鍵資源提供更加主動的防禦方式。

與傳統區別


區別

所謂hips(主機入侵防禦體系),也就是現在大家所說的系統防火牆,它有別於傳統意義上的網路防火牆nips.
二者雖然都是防火牆,但是在功能上其實還是有很大差別的:傳統的nips網路防火牆說白了就是只有在你使用網路的時候能夠用上,通過特定的tcp/ip協議來限定用戶訪問某一ip地址,或者也可以限制網際網路用戶訪問個人用戶和伺服器終端,在不聯網的情況下是沒有什麼用處的;而hips系統防火牆就是限制諸如a進程調用b進程,或者禁止更改或者添加註冊表文件--打個比方說,也就是當某進程或者程序試圖偷偷運行的時候總是會調用系統的一些其他的資源,這個行為就會被hips檢測到然後彈出警告詢問用戶是否允許運行,用戶根據自己的經驗來判斷該行為是否正確安全,是則放行允許運行,否就不使之運行,一般來說,在用戶擁有足夠進程相關方面知識的情況下,裝上一個hips軟體能非常有效的防止木馬或者病毒的偷偷運行,這樣對於個人用戶來說,中毒插馬的可能性就基本上很低很低了。但是,只是裝上個hips也不是最安全的,畢竟--用戶穿上的只是個全透明防彈衣也還是會被某些別有用心的人偷窺去用戶的個人隱私的,所以,選用一款功能強大而小巧的防火牆也是很重要的--起碼有防止DDOS攻擊和防arp欺騙攻擊功能(對內網用戶尤為重要)!

對比

上面是對hips和防火牆作個區別,因為殺軟和這兩類軟體差別比較大,就不拿到這裡來說了,下面我具體介紹一下hips以及常見的幾款hips安全軟體,希望對各位有所裨益!
我們個人用的HIPS可以分為3D:
AD(Application Defend)應用程序防禦體系
RD(Registry Defend)註冊表防禦體系
FD(File Defend)文件防禦體系
它通過可定製的規則對本地的運行程序、註冊表的讀寫操作、以及文件讀寫操作進行判斷並允許或禁止。
常用的HIPS軟體有:
SNS(Safe'n'Sec Personal)--AD+FD+RD,
SSM(System Safety Monitor),
PG(ProcessGuard和Port Explorer)--AD+RD,
GSS(Ghost Security Suite)--AD+RD,
SS(SafeSystem 2006)--FD.
EQSecure(國產的E盾)--AD+FD+RD
其實我覺得這些hips軟體在功能上也大多差不多,更多的我們其實也就是比較一下誰的生命力更頑強(不容易被其他進程幹掉),誰更適合國人所需,誰更簡單易操作,下面我就這些方面做個相對比較簡單的介紹吧!

介紹

首先是SSM(System Safety Monitor) --因為我比較喜歡這款:商業版免費版 註冊表監視:高級 基本過程監視:高級 基本底層磁碟訪問控制:有 無底層鍵盤訪問控制:有 無 NT服務監視:高級 基本 IE設置跟蹤:高級 基本用戶程序友好對話:有 無優先支持:高 低開發優先:高 低 Win9x支持:無 有
SSM在聲譽上面是相當不錯的,而且也相對很穩定--雖然能被ICEword幹掉,不過其他的hips類好像也都是能被幹掉的,這個不是重點,因為在冰刃要幹掉他們之前,hips軟體已經會報警詢問是否允許該項操作,雖然說確了個FD功能,不過我覺得對個人用戶來說已經相當足夠,起碼我已經有半年時間未中毒插馬了--當然,如果你還是不放心,再裝上個SS補足3D功能也是可以的,最關鍵的是SSM商業版已經被成功破解了(該軟體有簡體中文版),唯一覺得不爽的可能就是早期使用比較繁瑣,畢竟什麼東西的運行都要選擇允許還是禁止也是一件頭疼事,所以一般在剛裝上的時候,我個人建議還是先全部運行一遍所有的你要經常用到的東西就可以了,佔用資源也還可以,一般是一個進程10M左右,cpu基本沒感覺。我給SSM打90分
其次是SNS(Safe'n'Sec Personal) --他是唯一3D的哦,它建立在行為分析的基礎上,有最先進的預先偵查系統,可以防止病毒滲透計算機,破壞信息,對計算機多了一層保護,在計算機保護方面實現重大突破。同時,快速安裝,易於操作的界面,和反病毒軟體和個人防火牆極好的兼容性,智能的決策技術,最強的保護和對系統運行的最小影響等特點更增加了Safe'n'sec的魅力--汗,這個是官方介紹,我自己覺得是相當的牛了,不過我自己還沒有用過--這是全英文版本英語太菜,而且沒有破解(專業加密公司出品,想破解難度好大的),在網上看過測評,據說是比GSS+SS還要牛的。我給SNS打95分
再下來就是GSS(Ghost Security Suite) ,其實用的時間並不是很長,可能沒有多大發言權,不過我個人不是很喜歡這款,因為貌似不太穩定,在運行大型遊戲的時候,似乎CPU容易飆升,這個不少人如此,不知道是不是此軟體本來就是如此,但是GSS還是相當不錯的--簡單明了,有自己的操作模式,不如SSM來的細緻繁瑣,但是也是相當安全,特別是在配合SS使用之下。不過最不爽的是容易被任務管理器幹掉,我昏,而且長時間沒有更新了,不知道搞什麼!不過話說回來,現在網路廣泛流傳的GSS亞爾迪破解版還是很不錯的。我給GSS打88分,GSS+SS打92分
最後簡單說下PG和SS,SS規則完善但不夠穩定,PG簡單穩定,大致上PG感覺和SSM以及GSS差不多,就看用戶個人喜好了~~~
最後還提一款hips軟體--Winpooch(因為沒有用過,所以就只能借用別人的話來說了),相對GSS而言,無疑,GSS的穩定性比Winpooch略強,但是GSS的規則添加到500條左右的時候就會變得很慢,而且GSS只能監控註冊表,但是,Winpooch不只可以監控註冊表,還可以監控文件的讀取、寫入,還可以監控網路連接,而且目前Winpooch已經有600多條規則了,對系統的影響還是很小,軟體推薦給你了,好不好用還得你自己測試才最實際。
用了hips軟體,基本上,殺軟可以卸載了,呵呵,但是防火牆還是一定得要的. 至於每款軟體的具體教程,網上有很多,我這裡也就不一一贅述了,感興趣的人,我們倒是可以一起探討,呵呵!另外說句,這類hips軟體和殺軟以及防火牆的選用一樣,沒有所謂的最好,只有對你個人而言的更好,所以,怎麼選擇,全看你自己。