2007年9月8日星期六

HIPS(程序動作攔截器)規則割裂防護體系

HIPS,英文“Host Intrusion Prevent System”的縮寫,國內通常翻譯為“基于主機的入侵防禦系統”,翻譯很拗口,其實HIPS通俗來說就是程序動作(API)攔截器,作用就是對程序運行 中調用的危險API進行攔截,經用戶自行判斷確認後手工選擇阻止或是放行。HIPS的防護一般分為三個防護體系:AD(Application Defend)應用程序防禦體系、RD(Registry Defend)注冊表防禦體系、FD(File Defend)文件防禦體系。它通過可定制的規則對本地的運行程序、注冊表的讀寫操作、以及文件讀寫操作進行判斷並允許或禁止。

正是因為HIPS對程序調用危險的API非常敏感,所以使用HIPS軟件阻止程序調用危險API,可以起到一定程度的安全防護作用。關于行為控制在熊貓燒香肆虐時期的突出表現,就不用多說了,一戰成名。

既然HIPS有這麽多的優點,為什麽只能在少數高端玩家手裏把玩,而沒有向全社會普及推廣呢?很多朋友一談到HIPS的缺點就歸結到易用性上,其實呢,易 用性只是表象。所謂HIPS配置複雜度較高,對用戶要求較高,彈框數量較高的三高問題,核心在于HIPS的監控理念是有缺陷的。前面也提到,HIPS監控 的對象是危險API,所以通過阻止危險API調用就可以保護系統安全。這個HIPS的核心理念,乍一聽是很有道理的,但是如果深入推敲,則發現其核心思想 是存在著嚴重邏輯混亂的。

Win32 API是微軟公司公開提供的應用程序接口,供廣大Windows用戶開發應用程序與系統進行交互操作。所以從本質上講,API並沒有好壞之分,也沒有善惡 之別。而如果單以安全角度來論,亂用某些API可能會對系統安全造成隱患,所以HIPS將這些API定義為“危險API”加以監控並向用戶報警。這裏特別 要注意弄清這些“危險API”的真正含義,大量的病毒木馬經常使用這些危險API,但是使用這些API的程序並不見得就是病毒木馬。危險API和病毒木馬 之間的邏輯關系,屬于必要非充分條件,因為所有的API都是微軟公開提供的,所有程序都可以正常的進行調用。

HIPS正是把危險API和病毒木馬的邏輯關系搞反了,HIPS把所有危險API的調用一律報警,而正常程序也需要調用這些API,所以才造成了上面提到的配置複雜度較高,對用戶要求較高,彈框數量較高的三高問題。

現在,有部分廠商為了提高HIPS的易用性,為了擴大軟件的市場份額,居然用了一種非常極端的方法——為HIPS配置明文規則(白名單),這樣表面上看起 來會使得HIPS的彈框率大幅度下降,但是實際上則使用戶處于非常危險的狀況之下,黑客可以非常輕松地利用明文規則輕易突破HIPS的3D保護!

如果一個網馬,運行後生成A.gho(實為可執行文件),由于規則中允許創建和運行.gho文件,那麽HIPS的防護體系就被輕易突破了……

結論:HIPS本來是安全的,雖然存在著頻繁虛警的問題,但是其對于每一個潛在危險API調用都進行報警攔截,所以整體安全性是很有保證的。但是, HIPS規則(白名單)的使用,則徹底將HIPS的安全基石毀于一旦,在HIPS嚴密的防護體系中硬生生割裂出一條黑客高速公路!

HIPS確實需要改進,但是並不是這種簡單的單一程序動作規則。行為控制安全産品只有將各種程序動作進行綜合監控,即監控一系列確有意義的程序行為,才能 從根本上徹底扭轉其易用性差的問題。不過,如果HIPS增加了複雜的各種動作之間的相關性複合邏輯規則,那就不再是HIPS了,變成了現在大家習慣于叫做 主動防禦型安全産品,比如微點主動防禦軟件、卡巴斯基主動防禦模塊等等。

沒有留言: