EQSysSecure軟件詳細
EQSysSecure
EQSecure 是一款Hips類型的軟件,此類軟件可以通過編制相應的規則來實現對系統各類操作的自由控制,對經過允許的程序和對計算機的各類操作方可執行;對未經允許的程序和對計算機的各類操作不能執行,從而阻止各種有害程序的入侵和運行,達到對計算機系統保護的目的。其與防毒程序的不同在于:防毒程序是通過對已知病毒的查殺來起到保護作用,對新出現的未知病毒沒有作用,具有滯后性;而Hips類軟件是通過對程序操作動作的控制來實現防護作用,不依賴于病毒庫,可以預防未知的病毒等各種有害程序。尤其在各種木馬程序、程序盛行的今天,傳統殺毒軟件顯得蒼白無力,Hips類軟件的防護作用就越來越突出。
EQSysSecure軟件功能
EQSecure 正是這類軟件中功能突出的一款國產軟件。目前包括應用程序控制、注冊表控制和文件控制三個方面。應用程序控制包括應用程序的執行、庫文件加載、驅動程序加載、物理內存訪問、物理磁盤訪問、服務安裝等12個方面的控制,可見控制非常細致;注冊表控制包括對注冊表項及值的修改(新建)、刪除的控制;文件控制包括對文件及文件夾的創建、打開、修改、刪除的控制,控制非常全面。
一個病毒想要達到入侵并運行的目的,首先要能將自身文件復制到計算機的硬盤上,其次要通過寫注冊表等方式實現自動運行,并且在運行時不會受到攔截,其中只要有一個環節不成功,病毒就不能得逞。而EQSecure 的防護是三個環節同時進行的,是三位一體的立體式防護,從理論上講,只要規則設置得夠全面、嚴密,就可以防止一切已知或未知病毒的入侵。
不僅如此,EQSecure 還加入了沙盤的功能,通過開辟一塊兒虛擬空間,使可疑程序對計算機系統的操作只在虛擬的空間里進行,保證程序正常運行的同時,避免實機系統受到病毒破壞。HIPS與沙盤的有機結合,使在安全性和易用性上都提升了一個臺階,這在世界上也是一個。
EQSysSecure軟件發展
EQSecure開始是免費的HIPS,在推廣主動防御軟件方面起到極其重要作用,可以說沒有eq堅實的技術基礎,就沒有智能hips的誕生。但在HIPS還沒有成熟到可以大規模商業化的地步,軟件制作方開始實行收費政策,結果造成大量用戶流失,開發停滯不前。如今的EQSecure,bug解決不掉,WIN7也不支持,軟件作者已放棄升級開發,這款純HIPS老軟件處境艱難。
EQSysSecure關于HIPS
HIPS,全稱是Host Intrusion Prevent System ,翻譯過來是主機入侵防御系統。
我們個人用的HIPS可以分為3D:AD(Application Defend)--應用程序防御體系、RD(Registry Defend)注冊表防御體系、FD(File Defend)文件防御體系。
它和殺毒軟件,殺木馬軟件,殺軟件一樣,都是保護系統安全的。和其它軟件不同的是,它不是先中后殺,而是防患于未然。打個比方,其它安全軟件是藥物,HIPS就是疫苗。和人類使用的疫苗不同的是,它不針對某一種具體的疾病,而是免疫各種各樣的疾病。(要是有用于人體的這種疫苗就好了。)用好HIPS,基本上就和病毒(包括各種惡意軟件)說拜拜了。更難得的是,它對待病毒一視同仁,沒有已知未知之說。這一點是殺軟萬萬不及的。
在它的保護下,操作系統對你不再是個黑匣子,運行的每一個程序,創建的每一個文件,你都是清清楚楚,明明白白的。都是你信任的。病毒的特點是什么?是它的隱蔽性。凡是罪惡的勾當,都是偷偷摸摸的。一旦暴露在光天化日之下,還能有什么戲唱?
再來個比喻吧:沒有裝HIPS的電腦,如同無人把守的院子,任何人都可以隨便出入(當然壞蛋也不例外),安全也就談不上了。裝個HIPS,就像請了個盡職盡責的人給你看門,你告訴他,這是我老婆,這是我兒子,這是我朋友,你要放行,其余的一律報告或阻止。這樣,壞蛋想進入你家就困難了。你也許會說,殺軟不是也有實時監控嗎?不錯,殺軟是有實時監控,但它只檢查進來的人有沒有記錄。這顯然是不行的。即使有人帶著刀來殺你,它也不會管的,因為它不認識。它的病毒庫里沒有。
EQSysSecure使用技巧
EQSecure制定規則靈活方便,只要掌握方法,任何人都能輕輕松松DIY各種各樣需要的規則。方法主要有4種:詢問框、日志、學習模式、手動。學習模式方便,但會生成冗余規則,因為不能自動添加通配符。詢問框、日志創建規則更有針對性。手動最難但又是基本功,要想真正用好EQSecure,必須掌握,下面予以重點講解。
hips的工作原理
Hips中FD的作用就是監控系統對任何文件的讀取,修改,創建,刪除操作;AD監控程序運行,加載,訪問物理內存,操作底層磁盤,鍵盤記錄等等的關鍵操作;RD監控對注冊表的操作。
假設毒入侵電腦:
1 病毒首先會在硬盤上建立病毒實體,這時候就會觸發FD的“創建”規則
2 接著讀取病毒體,觸發FD的“讀取”規則
3 接著運行病毒體,觸發AD的各項規則
4 如果是感染型病毒,在運行過程中還會修改硬盤的文件,例如感染exe文件,觸發FD的“修改”規則;如果是破壞型病毒,運行過程中還會刪除硬盤的文件,例如刪除exe,gho等文件,觸發FD的“刪除”規則
5 接著病毒通常會修改注冊表來達到自啟動或破壞的目的,此時會觸發RD規則;如果病毒連接網絡的話,就會觸發ND規則(也就是防火墻規則,這就在EQSecure范圍之外了)。
從上面可以看到,重要性由高到低的排列:FD的“創建”> FD的“讀取”> AD > FD的“修改,刪除”> ND > RD。前三項是重要的,因為關系到病毒能否成功運行,后面的只是病毒運行之后的補救措施而已。
每次觸發規則,hips就會從規則庫里面查找,如果里面已經有對該操作的規則,就按規則辦;沒有的話,就會詢問使用者。從性能來講,觸發得越頻繁,匹配的規則越多,導致的性能越低下。對觸發頻繁程度由高到低的排列:FD的“讀取”> RD > FD的“修改”> AD > FD的“刪除”> FD的“創建” 。(本排列是在本機的eq上添加監視規則,統計日志得出的。)
要寫出高效的規則,必先了解所用的hips對規則的處理方法。以EQSecure為例,它的規則分3個組。組間優先級從高到低的排列:“黑名單”>“應用程序規則”> “所有程序規則”。在“黑名單”和“所有程序規則”兩個組之中,同組的規則是優先級是從上到下排列。“應用程序規則”是按程序的進程查找匹配,同組的規則沒有優先級之分。
根據以上排列,我們就可以通過調整規則,達到安全性和性能的平衡。將對性能影響很大,但安全性影響不大的規則盡量簡化;將對性能影響不大,但安全性影響很大的規則盡量詳細。
規則與進程的定義
規則其實很簡單,說穿了,一條規則就是一句話:誰能(不能)對誰怎么樣。用語言學術語說就是“主語+謂詞+賓語”,用EQSecure術語就是“父進程+攔截操作+子進程”。所以明白了什么是父子進程以及怎樣添加父子進程,規則就算掌握了大半。
雙擊某個圖標或點擊某個按紐,程序就運行了;用迅雷下載一個東西,硬盤上就多了一個文件。人們通常不去深究其中的奧秘。其實,任何程序都不會自己運行,文件也不會平空出現,背后總有程序在操縱它。那個躲在幕后的神秘程序就是父進程,能夠看到、感覺到的東西就是子進程。當手動打開一個程序時,由于一般是在資源管理器中操作,所以就是“資源管理器”(explorer.exe)運行了“某一個程序”;在IE中右擊某個鏈接,再點“使用迅雷下載”,IE就會啟動迅雷,這時,IE就是父進程,迅雷就是子進程。
在RD中,如果某個程序操作了某個注冊表鍵值,則“某程序”就是父進程,某“注冊表鍵值”就是子進程。同理,在FD中某程序操作了某文件,則前者為父進程,后者為子進程。例如,用winrar解壓文件,winrar就是父進程,解壓出的文件就是子進程。
簡言之,父進程就是動作的發出者,即操作者;子進程就是動作的接受者,即操作對象。A程序操作(運行、終止、修改等)B程序,或A程序操作(創建、修改、刪除等)B文件,A就是父進程,B就是子進程。
在EQSecure的規則體系中,“所有程序規則”即對所有的程序都起作用的規則。比如你在這里添加一個程序,運行設為“阻止”,那么所有的程序都無法運行該程序;在這里設置一個文件禁止被刪除,那么所有的程序都無法刪除該文件;“應用程序規則”就是為具體的應用程序,如瀏覽器、工具、下載工具、看圖程序等等設置的規則,規定它們可以進行哪些操作,不可以進行哪些操作。“高優先規則”和“所有程序規則”一樣,對所有的程序都起作用,但是優先級(優先級下面再說)。
分布如下:“所有程序規則”和“高優先規則”里全部為子進程(父進程為任意程序) ,“應用程序規則”中既有父進程,又有子進程(但是可以不設子進程,此時子進程為所有對象)。 父、子進程在視覺上很容易區分:呈樹狀結構,父進程比組名縮進一格,子進程比父進程縮進一格。
“所有程序規則”對任何程序都起作用,如果有些程序,我們不想讓“所有程序規則”對它起作用,有沒有辦法呢?只需在“其它設置”里面不選中“搜索所有程序規則”即可。這個選項的意思是把“所有程序規則”中的子進程作為自己的子進程。 為了保證“所有程序規則”名副其實,這個地方默認選中。所以,如果不作專門設置,一個父進程的子進程包括兩個部分:“應用程序規則”中該父進程下的子進程和“所有程序規則”中的全部子進程。
規則編寫
編寫規則大致存在以下兩種思路:1,允許所有“安全的”執行,其余全部阻止。2,阻止所有“危險的”執行,其余全部放行。
這兩種思路代表不同的安全性和性能。基于正常電腦里面的文件“安全的”比“危險的”要多這個理論。要允許所有“安全的”比 阻止所有“危險的”所需要的規則多。"1"性能就自然低下,但也相對安全;"2"相反。
編寫規則的原則以下:
原則1:盡量把“允許”的規則寫在前,“拒絕”的規則寫在后。因為在大部分時間都是運行正常程序,這可以減少匹配時間。可能觸發的越頻繁的規則寫在前,冷門的規則在后。將系統進程規則,殺毒軟件規則在前,普通應用軟件規則在后。使用通配符會增加規則匹配的時間,但同時會減少規則的數目,是一把劍。
原則2:能在“應用程序規則”寫的規則,盡量在這里寫。因為這里是直接匹配進程的,效率較高。但過多也不好,能概括的盡量概括。建議不要選上“MD5校驗程序文件”和“搜索所有程序”這兩個參數。
原則3:FD的“讀取”規則放在最前,而且規則數越少越好。因為FD的“讀取”非常頻繁,對性能影響。雖然它對安全性影響很大,但很難用“讀取”規則區分正常程序和病毒。除了autorun型病毒是較容易區分的一種。
原則4:FD的“修改,刪除”規則是用來保護數據的。建議建立一個“保護文件夾”,里面放要保護的所有文件,用規則來防止里面的修改和刪除;再建立一個“臨時下載文件夾”,用來下載的,用規則允許對里面文件的操作。下載完成后再移到“保護文件夾”;另外,對系統頻繁操作的地方相對集中,就是臨時文件夾和ie緩存目錄,允許它們的操作;針對exe感染文件,還可以全盤保護exe;保護系統盤的dll,sys,保護ghost備份文件….。
原則5:FD的“創建”規則,所有規則的精華所在。因為它對性能影響不多,盡量詳細吧!建議編寫的“創建”規則以文件后綴為主,路徑為輔,將危險的后綴全部禁止創建。例如,bat,reg,vbs,scr……有一個特別就是*.js文件,允許它在臨時文件夾和ie緩存目錄創建,但在其他目錄創建的就一定要禁止。
原則6:AD規則,按照個人的使用習慣,把自己的軟件通通打開一遍,全部允許。再把某幾個危險的程序禁止,例如,CMD.exe,format.exe等等。在AD規則中有一個特殊的地方就是“加載庫文件”,就是對應用程序加載dll的監控。它的觸發頻繁度占AD規則的觸發70%以上,但用它很難區分正常程序和病毒。EQ自己默認就是“優先級允許”的。“優先級允許”的意思就是:當一個“加載庫文件”事件觸發的時候,EQ會查找所有的規則,如果都找不到“加載庫文件”相關規則的話,就默認允許“加載庫文件”。一個程序調用一堆dll,如果每個dll都經過“優先級允許”,那效率多低。干脆就在“黑名單”個規則寫上“允許加載所有庫文件”,變成“優先級允許”。
原則7:RD規則,雞肋!作用又不大,又影響性能。盡量減少規則,保留最重要的,其他除去。或者干脆就把它關閉。
規則的優先級與組合
即把規則組合起來,實現更為復雜的控制。比如想禁止任何程序運行IE,但又能手動運行,該怎么做?這就需要兩條規則配合:禁止任何程序運行IE;允許explorer運行IE,然后讓后一條優先執行。這就是優先級的問題,即幾條規則都能匹配的情況下,哪條規則先起作用。優先級是高優先規則>應用程序規則>所有程序規則,同一類規則中,物理位置排在上面的規則優先級大于排在下面的規則。 即優先級從右到左,從上到下遞減。
作用流程如下:
當EQSecure攔截到一個操作后,就會先確定父子進程,然后依次在“高優先規則”→“應用程序規則”→“所有程序規則”中尋找相匹配的規則(在同一類別中又按從上到下的順序尋找),在任何一處找到,即根據設定的參數進行控制,不再向下尋找;找不到則繼續尋找。如果在三者中均找不到相匹配的規則,AD按全局規則,即“主界面→保護模式”處的規則執行,RD、FD直接允許。
“高優先規則”和“所有程序規則”中找的是子進程(因為沒有父進程),“應用程序規則”中則是先找父進程,如果找到,再看其下是否有子進程。如果有,應用此規則控制;如果該父進程下沒有子進程,分兩種情況:如果“其它設置”處選中“搜索所有程序規則”,則在“所有程序規則”中尋找子進程,還找不到則執行父進程的攔截操作;如果沒有選中,則不再理睬“所有程序規則”,直接執行父進程的攔截操作。
以上是說父子進程俱全的情況,還有一種情況,就是在AD中,只有父進程,沒有子進程。比如底層磁盤操作、關閉/重啟系統、修改系統時間、直接操作系統內核等,操作的是系統本身而不是某個對象。這就簡單了,先在“應用程序規則”中找父進程,找到則應用,找不到則按“主界面→保護模式”處的規則執行。
了解規則優先級是非常有用的。常見有人問,我寫了一條規則,怎么不起作用啊?這時候,不光要考慮規則本身是否正確,還要注意是否有優先級更高的規則在起作用。比如,有人在“所有程序規則”中寫了一條規則:*.mp3,禁止刪除,但是還是可以手動刪除。這是因為,在“應用程序規則”中給explorer設了允許刪除的規則,而應用程序規則的優先級比較高,所以能夠刪除。再舉一例:在“所有程序規則”中禁止任何程序結束殺毒軟件的進程,同時在“應用程序規則”中允許任務管理器結束任何進程,這樣用任務管理器可以結束殺毒軟件的進程,其它程序則不能。如果在高優先規則中設置禁止結束,則任何程序均不能結束。