深度研究微点主动防御
生活随笔
收集整理的這篇文章主要介紹了
深度研究微点主动防御
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文鏈接:http://bbs.deepin.org/read.php?tid=257824
(注:該文部分內容是辯駁性文章,但可以加深對微點的了解)
1.已知病毒和未知病毒有什么不同?
2.質疑微點行為判斷的邏輯完全講不通,除非微點的病毒收集能力高出卡巴上百倍。
3.為什么總要帶有色眼鏡歧視微點?為什么就不能一碗水端平?
4.什么是主動,什么是被動
5.黑箱行為規則特征更重要的是保證用戶安全,而不單是為了防止競爭。
6.簡析微點殺毒原理,微點為什么可以未卜先知查殺明天的病毒?
7.微點和HIPS的區別
1.已知病毒和未知病毒究竟有什么不同?
以微點的這篇病毒快報為例:
http://bbs.micropoint.com.cn/showthread.asp?tid=14430
已知病毒命名:Trojan.Win32.VB.bjs
未知病毒命名:Trojan.genus(未知***)
我想問問大家,如果不看上面那份病毒快告的具體內容,單從名字上判斷,誰能去分出已知***和未知***有什么不同?
相同點在于:已知和未知都明確說明了是***程序
不同點在于:已知命名詳細說明了這個***是VB編寫的Win32程序,序號是bjs
VB編寫的Win32程序,序號是bjs,這兩點真的很有用么?顯然不是,因為我們更關心的是這個程序是不是***!
所以,其實微點報已知和報未知對于用戶來講感受是基本一樣的。至于lsyer提到的“見到未知就心煩”,完全屬于其個人的心理作用。因為已知命名并沒有比未知命名更多出什么有用的信息,難道說微點報警“未知***<?XML:NAMESPACE PREFIX = ST1 />.007”,加上個序號看著就爽了么?
當然,我也很理解lsyer對于“未知”這個提法的反感,因為“未知”一詞,在心理上確會給人一種比較茫然的感覺。但是要注意,對于“未知”提法的修改應屬于建議性質,而不是反對性質。歡迎大家一起來討論出一個更好的提法,譬如說叫“新病毒”、“新***”好不好?
2.質疑微點行為判斷的邏輯完全講不通,除非微點的病毒收集能力高出卡巴上百倍!
像lsyer質疑的,微點為了凸顯行為監控,故意對已知病毒報未知病毒,乍一聽好像很符合微點的商業利益,是有可能的。但是從邏輯上一分析則是完全講不通的,就像carsbus舉的例子那樣。微點和卡巴在樣本區的表現是有目共睹的,樣本區有很多樣本卡巴不報警(也就是說卡巴還沒收集到),但是微點報未知。
如果按照lsyer的邏輯,微點故意對已知病毒報未知病毒,那就推論出微點居然可以收集到大量卡巴斯基還沒收集到的樣本。結論是微點的病毒收集能力比卡巴要強百倍!!!
說微點的病毒收集能力比卡巴要強百倍,有人會相信么?顯然大家都知道這太不現實了,至少今天沒有人會去相信。所以lsyer的質疑是無法成立的。
理論上講目前只有卡巴這種病毒收集能力超強,而且還有主動防御功能的產品,才具備上述作弊的可能。但是目前主動防御并不是卡巴當前首要突出的重點,所以卡巴也沒有理由去做這種事。
呵呵,不過在以后主動防御市場競爭到白熱化階段的時候,并不排除某些無良廠商會用這種作弊手法來展現產品效果。
3.為什么總要帶有色眼鏡歧視微點?為什么就不能一碗水端平?
特征碼掃描的時候,沒有一個人去質詢具體的特征拾取方案,沒有一個人說某某殺軟要是不公布特征碼偏移量,不公布特征碼方案,我就不承認你是特征碼掃描~!大家只是在夸某某殺軟病毒庫巨大,升級速度快。
掃描引擎脫殼的時候,沒有一個人會去質詢具體的脫殼方案,沒有一個人說某某殺軟要是不公布他的脫殼算法,不公布他的虛擬機設計方案,我就不承認你是脫殼引擎~!大家只是在夸某某殺軟的掃描引擎強大,拖殼能力強。
啟發式掃描的時候,沒有一個人會去質詢具體的啟發式設計方案,沒有一個人說某某殺軟要是不公布他的啟發式算法,不公布他的虛擬機設計方案,我就不承認你是啟發式引擎~!大家只是在夸某某殺軟的啟發式引擎功能強大。
而事情換成了微點呢,有人會去質詢具體的行為分析設計方案,有人會說微點你要是不公布你的監控點,不公布你的行為分析設計方案,我就不承認你是行為分析,我就認為你是胡亂報警,我就認為你是用已知特征作弊,我就認為你用黑白名單……
啟發式報警“suspicious Trojan/Worm”,就叫有名字?就叫準確報警?就叫光明正大的報?就叫真材實料?
那微點報警“Spyware.genus”(未知間諜)、“Trojan.genus”(未知***),和啟發式的報警結果有什么不同?
難道說,報洋文就叫準確報出病毒名稱,報中文就是騙子?
反正我是完全理解不了上面的現象,為什么事情到了微點這里就會完全變味兒,為什么微點就要被歧視?為什么微點就要被特殊化?為什么就不能一碗水端平?
可能是我太偏激了吧,可能是大家都非常關注微點這個新一代的安全產品,可能是微點在樣本區的表現讓很多人和廠商紅了眼。
有人片面引用霏凡PETER的話,來為自己做例證。我想問問,為什么不去引用霏凡syst分析歸納的微點邏輯架構圖呢?為什么不去引用在突破主動防御上很有研究的flo和xyzreg的話呢?
不要拿霏凡來忽悠人,不才在下也可以登錄霏凡查閱原帖;
不要再給霏凡兩個字抹黑了,出自霏凡的那篇所謂世界上只有五大殺毒引擎的文章,誤導了多少人?!其實原作者早已在霏凡公開致歉的。隨便說兩個例子,除了那所謂的五大,至少NOD32和瑞星是自己開發的掃描引擎。
4.什么是主動,什么是被動?
從字面意思來講,主動是一種積極的態度,形勢由我們自己掌控,一切盡在掌握;被動是一種消極的態度,形勢不由我們掌控,未來前景叵測。隨便舉個生活中的例子,如果我們要保護一個倉庫的安全,在忽略費用問題和其他因素的情況下,安裝最好的防盜門和雇最好的保安哪個安全性更高呢?答案是顯而易見的,當然是保安比防盜門要安全得多,因為再好的防盜門也不過是一種被動防護,早晚要被攻破;而優秀的保安會去主動巡邏主動盤查可疑進出人員。
反病毒技術的發展,我覺得也是一個不斷從被動轉為主動的過程。
第一代較為成熟的反病毒軟件,主要技術為特征碼識別,主要形態是掃描。掃描是一個完全被動的防護過程,我只有給殺毒軟件下達了掃描命令,殺毒軟件才會去掃描。換個角度講,如果我們在掃描的時候,查出了病毒,那么很遺憾,已經確認您被病毒肆虐過了,請注意即時檢查各種帳號是否丟失……
有些網友認為我手工去掃描是一種主動行為啊,怎么會是被動呢?我們談到的主動和被動是從安全防護的角度出發的,先中毒,后殺毒,所以掃描是一種被動防御。
既然掃描有這么多的缺點,那么為什么早期的大多數殺毒軟件都采用掃描作為主要殺毒手段呢?我認為這和早期的病毒環境有關,早期的病毒以感染型病毒為主,一個病毒會使得全盤的可執行文件都被感染,而掃描在批量處理方面有著其他技術無法比擬的優勢,所以掃描理所當然的就成為了早期最重要的殺毒手段。
隨著時代的發展,病毒越來越多,用戶越來越不堪病毒的煩擾,被動的掃描越來越被用戶所詬病——很可能一次掃描還沒有結束,幾分鐘前剛被掃描完的文件就又被感染了。。。
一個很理所當然的想法就出現了——如果每時每刻都在不間斷的做掃描,那豈不是可以把安全系數提高很多?!實時監控就這么出現了。
PS:具體我沒有考證,據說實時監控技術是Norton首先開始應用的。
實時監控是具有劃時代的意義的,每時每刻都在監控系統中當前正在被使用或即將被訪問(使用)的文件,以保證磁盤中所有文件的安全。相對于被動掃描來說,實時監控就是一種主動掃描。所以,我們說安全的發展就是一個不斷從被動轉向主動的過程。
上面一直在提特征碼,特征碼究竟是什么意思?其實特征碼就相當于我們生活中的通緝令,犯罪分子作案潛逃,警察偵查后公安部發布通緝令,全國各地的警察協助查找具有某些特征(性別、身材、相貌、衣著等)的人。特征碼殺毒也是一樣,有人先中毒了,聯系反病毒公司提交病毒樣本,反病毒公司分析病毒樣本組織升級,全國的用戶升級后檢查自己的電腦是否中毒。
特征碼最大的缺點就是命運交由他人,電腦的安全并不因我安裝了殺毒軟件就可以得到控制,而是完全受制于殺毒軟件公司。可能有時候我已經感覺到電腦很不正常,QQ密碼也丟失了,但無論是掃描還是實時監控都沒有報告出任何問題,為什么呢?因為控制這我命運的殺毒軟件公司沒有能收集到樣本……
雖然實時監控是一種非常好的技術理念,本意也是為了奪回電腦安全的控制權,但是由于其本質上仍然要特征碼整體被動性的困擾,所以在當前病毒數量大幅度爆發,病毒日益***化的時期,實時監控日益遭受用戶的白眼。在這種形勢下,特征碼最具優勢的批量掃描逐漸失去了優勢。因為***只有很少幾個文件,不會做全盤感染,用掃描引擎試圖在諾大的硬盤上查找幾個文件,費時費力,效果還不甚理想。
但實時監控的精神是非常好的,只有實時控制才能有效保證系統的整體安全。所以下一代的安全軟件,仍然會以實時監控為主要表現形勢。但是監控的要點或者說根本,由病毒特征碼的比對轉為了病毒的行為判斷了。行為判斷的代表,應該是2005年微點提出的主動防御。大家還記得IT168做的評測么?對付熊貓燒香這么一個完全沒有技術含量的病毒,特征碼完敗,主動防御完勝。
http://publish.it168.com/2007/0131/20070131002301.shtml
為什么主動防御的產品會完勝特征碼?道理很簡單,其實還是主動和被動的問題。特征碼的被動根源在于其冗長的操作環節:要有人先中毒,聯系反病毒公司提交病毒樣本,反病毒公司分析病毒樣本組織升級,全國的用戶升級后才能檢查自己的電腦是否中毒。主動防御對病毒的分析由程序自動在本地完成,省去了樣本提交和后續升級的過程,計算機的運行速度是很快的,整個主動防御的過程瞬間完成,時差可以忽略不計,再次把被動變為了主動。所以主動防御的安全效果必然要強于特征碼。
特征碼相當于門口的保安,遇到陌生人只要通緝令上沒有的一律放行。而主動防御就相當于私人保鏢,實時保護在主人四周,無論大門口放進來的是強盜還是小偷,只要危害到主人利益就會挺身而出。某種程度上說,雖然主動防御形式上是更新換代的安全軟件,但是其安全理念更返璞歸真了,更關注安全最本源的東西。
5.黑箱行為規則更重要的是保證用戶安全,而不單是為了防止競爭。
偷個懶,借用一篇文章,自己可以少打點字哈:
HIPS(程序動作攔截器)規則割裂防護體系
http://network.ccidnet.com/art/1099/20070807/1170171_1.html
我個人認為這個文章的精神是很對的,但是講得過于隱晦,所以很多人都無法理解HIPS把規則公開會對于整體系統安全所帶來的巨大隱患,包括部分論壇的反饋也是這樣:有的論壇甚至有網友說可以用md5校驗來保證規則的安全性。我覺得這種回復是很典型的對HIPS對行為監控缺乏理念理解造成的。
HIPS監控的雖是一個動作點,但是其真正意義是封鎖基于這個動作(API)的整個一類(無限多種)的程序調用,結果是試圖阻止整個一類(無限多種)程序的惡意方式。正是因此,HIPS雖然只監控了系統中病毒最常用的一些API,但在全拒絕狀態確實可以有效保證系統的安全。不過,全拒絕狀態完全沒辦法應用,比如說為了安裝一個新軟件必須先把HIPS停掉,誰都知道安裝新軟件恰恰是最危險的時候,在最危險的時候HIPS居然先要被手工停止,這從安全理念上講完全是混蛋邏輯,無異于主動伸出脖子來任人宰割。
正因為全拒絕無法正常使用電腦,HIPS使用了每個程序動作(API)都做詢問的機制來兼顧安全性和正常使用。但是呢,正如原作者所說“Win32 API是微軟公司公開提供的應用程序接口,供廣大Windows用戶開發應用程序與系統進行交互操作。所以從本質上講,API并沒有好壞之分,也沒有善惡之別。”HIPS報警的那些所謂的危險API,實際上很多正常程序也在使用的,所以HIPS最典型的情況就是報警頻繁,并且報警的內容以無意義的虛警居多。
針對海量的虛警情況,對單一確切程序的點規則是意義不大的,除非我們有能力徹底確認一個程序的安全性,有耐心針對系統中的每一個應用程序都做若干條規則(3D防護),并且要對系統中不斷安裝更新的新軟件不斷分析確認安全性并不斷地補充規則。那請問,海量的需要不斷擴充維護的點規則有普遍可操作性么?答案顯然是否定的。而且對于新建文件這種情況,因為新建文件本身就是未知的,所以FD防護不可能完全使用帶有md5校驗的點規則來完成。現實中的真實情況,就是大量點規則配合部分類規則來使用,以達到最大限度減少虛警的目的。
點規則的安全性是有保證的,HIPS的安全性隱患恰恰出在了類規則的身上。因為類規則針對的是一類動作(無限多種),既然是無限多種具體的實際應用,那么被惡意利用的可能肯定是必然存在的。比如說原文作者提到了.gho案例,我理解就是一個典型的類規則產生的安全隱患。允許生成*.gho,這種規則就是FD系統最典型的類規則,他針對的是一類(無限多個)程序調用——允許隨便一個進程都可以隨意生成任意內容、任意文件名、任意數量的.gho文件。不管怎么說,利用.gho規則,***就已經輕松寫入到硬盤當中,至于后續如何隱蔽地激活***,則要看其他規則的具體設置了。
上面說了這么多,其實孫武子怹老人家用一句話就全概括了:正所謂“知彼知己者,百戰不殆”,病毒***的作者既然可以得到網絡上大范圍傳播的HIPS規則,他怎么可能不去主動研究利用呢?HIPS規則結構上的缺陷,對于其原本很安全的防護體系來說就是最致命的威脅。
所以說,我覺得微點采用黑箱行為規則,不是一個簡單為了保護自己產品利益的行為,因為從整體結構看,黑箱行為規則對于最大限度保證用戶安全是非常必要的。而且安全產品對自身核心部分采用黑箱機制是一貫的傳統,比如說沒有一家殺軟公布他們的特征碼拾取方案,沒有一家殺軟公布他們的虛擬機,沒有一家殺軟公布他們的啟發式規則。保護產品是一方面,但更重要的是對安全檢測技術的保密,可以有效提高病毒***的編寫技術門檻,增加他們的開發難度,從而在整體上盡可能地保護用戶的系統安全。
PS:黑箱就是指不公開、保密的意思。白箱與之相對。
當然,同樣作為一名信息安全技術的愛好者,我對上述的這些保密技術也是非常感興趣的。反匯編徹底分析軟件結構,難度太大,離我們太遙遠。大家要注意到,我們網友間為了研究分析安全軟件,出了一些很有意思的小工具,比如說針對特征碼掃描的分析工具CCL特征碼定位器等。我想,既然大家對微點的行為分析這么有興趣,為什么沒有人去做一個行為探測器呢?目前還沒有看到類似的工具,但應該是不遠了~!
6.簡析微點殺毒原理,微點為什么可以未卜先知查殺明天的病毒?
(略,見上文)
7.微點和HIPS的區別
一、先看表象:
1.定義
HIPS:程序動作攔截器,作用就是對HIPS所監控的API攔截報警,安裝用戶的要求阻止或放行。作用相當于一個動態的系統分析器,告訴使用者系統當前有哪些變化。
微點:主動防御軟件,主要依據程序行為判定新病毒,輔以特征碼、狀態檢測防火墻等技術的綜合性安全軟件。作用相當于殺毒軟件+防火墻。
2.軟件結構
HIPS:監控
微點:監控+分析+清除
我沒有要貶低HIPS的意思,但是從結構來看,微點的軟件規模要遠大于HIPS,復雜度要遠大于HIPS,開發難度、工作量、代碼數量都要遠大于HIPS。
延伸一個問題,不知道朋友們是否想過單就微點和HIPS重合的這一個點——“監控”來說,誰的監控更靈敏呢?換句話說也就是誰的API監控得更多呢?
答案可能出乎很多人預料,實際上微點監控的API要遠多于HIPS的。
道理很簡單,Windows API的數量太多了,HIPS為了提高其易用性,監控的API越少越好,所以只監控與安全相關的一些API,其余的一律放任不理。
而微點的監控則要BT很多,除了HIPS監控的那些眾所周知的安全性API,微點還監控了很多和安全有可能有關的API。有誰會想到微點竟然會監控程序被改名!根據網友提供的資料,我測試了一下,微點確實監控程序被改名,在程序生成日志中也有體現。原因也很好解釋,如果不監控程序改名,那么微點根據程序生成日志向上追殺***源的時候就有可能會被誤導造成殺毒不徹底。微點究竟還有哪些BT的監控項,我是沒能力分析,歡迎大牛們逆向一下,列個清單出來大家一同分析總結。
PS:
《揭秘行為殺毒》里有較詳細的介紹,遺憾的是貼圖沒能找到。
http://www.ixpub.net/thread-678163-1-1.html
二、分析內因
談談我的看法,微點和HIPS究竟有什么區別呢?我的意見是實在沒有必要非分出個誰強誰弱,兩個軟件的設計目的完全不一樣,最終表現出來的軟件形態也是天壤之別。如果非要定性的話,只能說微點和HIPS是兩類軟件,不能簡單做比較。
大家想過HIPS為什么要去監控程序API動作?因為HIPS是程序動作攔截器,它的使命就是告訴使用者系統當前有哪些變化(API調用)。然后呢?HIPS監控了API之后會去做什么?答案是然后什么也不干,因為HIPS的使命已經完成了。
大家想過微點為什么要去監控程序API動作么?
因為微點要對一系列動作進行行為分析,需要監控點提供足夠的信息。
為什么微點要進行行為分析?
因為微點要判斷出程序是否有害。
微點判斷程序有害是為了什么?
因為微點是一款綜合性安全軟件,它的使命是保護系統安全,殺毒殺***殺后門殺蠕蟲……
微點發現程序有害之后會怎么辦?
根據日志中的記錄,逆向操作中止有害進程、刪文件、刪注冊表……
至此,微點的使命得以實現。也就是說微點前面所有工作的努力都是為了徹底清除有害程序這最終的目的。
微點雖然比HIPS多了很多東西,但是你絕不能簡單地說微點比HIPS NB多少多少,這樣是不客觀的,因為不同類軟件,不能簡單地直接做對比。HIPS完成了它的設計使命,所以HIPS是稱職的。微點完成了它的設計使命,所以微點也不錯。
篇外:
over,本章到此理應結束。我很歡迎朋友們來積極熱烈參與討論,在深度這種技術性討論社區,大家應以技術、邏輯、以理服人。嘿嘿,不過從私心來講,我對某些朋友混淆概念,搞文字游戲的把戲還是很有興趣的,稍微摻和幾句,權當調節氣氛了。
以微點和HIPS都具有監控模塊,而論證出微點是高級HIPS的結論,還是很站不住腳的。莫忘了除了監控和分析模塊,微點還有最重要的清除模塊呢。對微點來說,監控是手段,分析是方法,清除才是最核心最重要的目的。完全忽略主體,而只談某一個過程,就有點兒太矯情了……
誠然HIPS雖沒有清除能力,但使用動作阻攔也可以達到一定的安全防護作用。但如果我以鉗子和六軸精密數控車床都可以加工金屬部件為由,非說車床==高級鉗子,我想問問有人能接受么?呵呵,實際上,鉗子歸屬五金類,而車床歸屬機械類,完全是兩類產品,不能在一塊簡單作比較的。使鉗子(當然不止鉗子咯)的高手叫鉗工,使床子的高手叫車工,高級鉗工和高級車工都是優秀的高級人才,并沒有高下之分。。。
答案就是這么簡單。
哈哈,想起上學時的金工實習了,師傅指著車床一聲“上床”~!然后我們就都想歪了。。。
車銑刨磨鉗鑄,數控、線切割,懷念哦……
(注:該文部分內容是辯駁性文章,但可以加深對微點的了解)
1.已知病毒和未知病毒有什么不同?
2.質疑微點行為判斷的邏輯完全講不通,除非微點的病毒收集能力高出卡巴上百倍。
3.為什么總要帶有色眼鏡歧視微點?為什么就不能一碗水端平?
4.什么是主動,什么是被動
5.黑箱行為規則特征更重要的是保證用戶安全,而不單是為了防止競爭。
6.簡析微點殺毒原理,微點為什么可以未卜先知查殺明天的病毒?
7.微點和HIPS的區別
1.已知病毒和未知病毒究竟有什么不同?
以微點的這篇病毒快報為例:
http://bbs.micropoint.com.cn/showthread.asp?tid=14430
已知病毒命名:Trojan.Win32.VB.bjs
未知病毒命名:Trojan.genus(未知***)
我想問問大家,如果不看上面那份病毒快告的具體內容,單從名字上判斷,誰能去分出已知***和未知***有什么不同?
相同點在于:已知和未知都明確說明了是***程序
不同點在于:已知命名詳細說明了這個***是VB編寫的Win32程序,序號是bjs
VB編寫的Win32程序,序號是bjs,這兩點真的很有用么?顯然不是,因為我們更關心的是這個程序是不是***!
所以,其實微點報已知和報未知對于用戶來講感受是基本一樣的。至于lsyer提到的“見到未知就心煩”,完全屬于其個人的心理作用。因為已知命名并沒有比未知命名更多出什么有用的信息,難道說微點報警“未知***<?XML:NAMESPACE PREFIX = ST1 />.007”,加上個序號看著就爽了么?
當然,我也很理解lsyer對于“未知”這個提法的反感,因為“未知”一詞,在心理上確會給人一種比較茫然的感覺。但是要注意,對于“未知”提法的修改應屬于建議性質,而不是反對性質。歡迎大家一起來討論出一個更好的提法,譬如說叫“新病毒”、“新***”好不好?
2.質疑微點行為判斷的邏輯完全講不通,除非微點的病毒收集能力高出卡巴上百倍!
像lsyer質疑的,微點為了凸顯行為監控,故意對已知病毒報未知病毒,乍一聽好像很符合微點的商業利益,是有可能的。但是從邏輯上一分析則是完全講不通的,就像carsbus舉的例子那樣。微點和卡巴在樣本區的表現是有目共睹的,樣本區有很多樣本卡巴不報警(也就是說卡巴還沒收集到),但是微點報未知。
如果按照lsyer的邏輯,微點故意對已知病毒報未知病毒,那就推論出微點居然可以收集到大量卡巴斯基還沒收集到的樣本。結論是微點的病毒收集能力比卡巴要強百倍!!!
說微點的病毒收集能力比卡巴要強百倍,有人會相信么?顯然大家都知道這太不現實了,至少今天沒有人會去相信。所以lsyer的質疑是無法成立的。
理論上講目前只有卡巴這種病毒收集能力超強,而且還有主動防御功能的產品,才具備上述作弊的可能。但是目前主動防御并不是卡巴當前首要突出的重點,所以卡巴也沒有理由去做這種事。
呵呵,不過在以后主動防御市場競爭到白熱化階段的時候,并不排除某些無良廠商會用這種作弊手法來展現產品效果。
3.為什么總要帶有色眼鏡歧視微點?為什么就不能一碗水端平?
特征碼掃描的時候,沒有一個人去質詢具體的特征拾取方案,沒有一個人說某某殺軟要是不公布特征碼偏移量,不公布特征碼方案,我就不承認你是特征碼掃描~!大家只是在夸某某殺軟病毒庫巨大,升級速度快。
掃描引擎脫殼的時候,沒有一個人會去質詢具體的脫殼方案,沒有一個人說某某殺軟要是不公布他的脫殼算法,不公布他的虛擬機設計方案,我就不承認你是脫殼引擎~!大家只是在夸某某殺軟的掃描引擎強大,拖殼能力強。
啟發式掃描的時候,沒有一個人會去質詢具體的啟發式設計方案,沒有一個人說某某殺軟要是不公布他的啟發式算法,不公布他的虛擬機設計方案,我就不承認你是啟發式引擎~!大家只是在夸某某殺軟的啟發式引擎功能強大。
而事情換成了微點呢,有人會去質詢具體的行為分析設計方案,有人會說微點你要是不公布你的監控點,不公布你的行為分析設計方案,我就不承認你是行為分析,我就認為你是胡亂報警,我就認為你是用已知特征作弊,我就認為你用黑白名單……
啟發式報警“suspicious Trojan/Worm”,就叫有名字?就叫準確報警?就叫光明正大的報?就叫真材實料?
那微點報警“Spyware.genus”(未知間諜)、“Trojan.genus”(未知***),和啟發式的報警結果有什么不同?
難道說,報洋文就叫準確報出病毒名稱,報中文就是騙子?
反正我是完全理解不了上面的現象,為什么事情到了微點這里就會完全變味兒,為什么微點就要被歧視?為什么微點就要被特殊化?為什么就不能一碗水端平?
可能是我太偏激了吧,可能是大家都非常關注微點這個新一代的安全產品,可能是微點在樣本區的表現讓很多人和廠商紅了眼。
有人片面引用霏凡PETER的話,來為自己做例證。我想問問,為什么不去引用霏凡syst分析歸納的微點邏輯架構圖呢?為什么不去引用在突破主動防御上很有研究的flo和xyzreg的話呢?
不要拿霏凡來忽悠人,不才在下也可以登錄霏凡查閱原帖;
不要再給霏凡兩個字抹黑了,出自霏凡的那篇所謂世界上只有五大殺毒引擎的文章,誤導了多少人?!其實原作者早已在霏凡公開致歉的。隨便說兩個例子,除了那所謂的五大,至少NOD32和瑞星是自己開發的掃描引擎。
4.什么是主動,什么是被動?
從字面意思來講,主動是一種積極的態度,形勢由我們自己掌控,一切盡在掌握;被動是一種消極的態度,形勢不由我們掌控,未來前景叵測。隨便舉個生活中的例子,如果我們要保護一個倉庫的安全,在忽略費用問題和其他因素的情況下,安裝最好的防盜門和雇最好的保安哪個安全性更高呢?答案是顯而易見的,當然是保安比防盜門要安全得多,因為再好的防盜門也不過是一種被動防護,早晚要被攻破;而優秀的保安會去主動巡邏主動盤查可疑進出人員。
反病毒技術的發展,我覺得也是一個不斷從被動轉為主動的過程。
第一代較為成熟的反病毒軟件,主要技術為特征碼識別,主要形態是掃描。掃描是一個完全被動的防護過程,我只有給殺毒軟件下達了掃描命令,殺毒軟件才會去掃描。換個角度講,如果我們在掃描的時候,查出了病毒,那么很遺憾,已經確認您被病毒肆虐過了,請注意即時檢查各種帳號是否丟失……
有些網友認為我手工去掃描是一種主動行為啊,怎么會是被動呢?我們談到的主動和被動是從安全防護的角度出發的,先中毒,后殺毒,所以掃描是一種被動防御。
既然掃描有這么多的缺點,那么為什么早期的大多數殺毒軟件都采用掃描作為主要殺毒手段呢?我認為這和早期的病毒環境有關,早期的病毒以感染型病毒為主,一個病毒會使得全盤的可執行文件都被感染,而掃描在批量處理方面有著其他技術無法比擬的優勢,所以掃描理所當然的就成為了早期最重要的殺毒手段。
隨著時代的發展,病毒越來越多,用戶越來越不堪病毒的煩擾,被動的掃描越來越被用戶所詬病——很可能一次掃描還沒有結束,幾分鐘前剛被掃描完的文件就又被感染了。。。
一個很理所當然的想法就出現了——如果每時每刻都在不間斷的做掃描,那豈不是可以把安全系數提高很多?!實時監控就這么出現了。
PS:具體我沒有考證,據說實時監控技術是Norton首先開始應用的。
實時監控是具有劃時代的意義的,每時每刻都在監控系統中當前正在被使用或即將被訪問(使用)的文件,以保證磁盤中所有文件的安全。相對于被動掃描來說,實時監控就是一種主動掃描。所以,我們說安全的發展就是一個不斷從被動轉向主動的過程。
上面一直在提特征碼,特征碼究竟是什么意思?其實特征碼就相當于我們生活中的通緝令,犯罪分子作案潛逃,警察偵查后公安部發布通緝令,全國各地的警察協助查找具有某些特征(性別、身材、相貌、衣著等)的人。特征碼殺毒也是一樣,有人先中毒了,聯系反病毒公司提交病毒樣本,反病毒公司分析病毒樣本組織升級,全國的用戶升級后檢查自己的電腦是否中毒。
特征碼最大的缺點就是命運交由他人,電腦的安全并不因我安裝了殺毒軟件就可以得到控制,而是完全受制于殺毒軟件公司。可能有時候我已經感覺到電腦很不正常,QQ密碼也丟失了,但無論是掃描還是實時監控都沒有報告出任何問題,為什么呢?因為控制這我命運的殺毒軟件公司沒有能收集到樣本……
雖然實時監控是一種非常好的技術理念,本意也是為了奪回電腦安全的控制權,但是由于其本質上仍然要特征碼整體被動性的困擾,所以在當前病毒數量大幅度爆發,病毒日益***化的時期,實時監控日益遭受用戶的白眼。在這種形勢下,特征碼最具優勢的批量掃描逐漸失去了優勢。因為***只有很少幾個文件,不會做全盤感染,用掃描引擎試圖在諾大的硬盤上查找幾個文件,費時費力,效果還不甚理想。
但實時監控的精神是非常好的,只有實時控制才能有效保證系統的整體安全。所以下一代的安全軟件,仍然會以實時監控為主要表現形勢。但是監控的要點或者說根本,由病毒特征碼的比對轉為了病毒的行為判斷了。行為判斷的代表,應該是2005年微點提出的主動防御。大家還記得IT168做的評測么?對付熊貓燒香這么一個完全沒有技術含量的病毒,特征碼完敗,主動防御完勝。
http://publish.it168.com/2007/0131/20070131002301.shtml
為什么主動防御的產品會完勝特征碼?道理很簡單,其實還是主動和被動的問題。特征碼的被動根源在于其冗長的操作環節:要有人先中毒,聯系反病毒公司提交病毒樣本,反病毒公司分析病毒樣本組織升級,全國的用戶升級后才能檢查自己的電腦是否中毒。主動防御對病毒的分析由程序自動在本地完成,省去了樣本提交和后續升級的過程,計算機的運行速度是很快的,整個主動防御的過程瞬間完成,時差可以忽略不計,再次把被動變為了主動。所以主動防御的安全效果必然要強于特征碼。
特征碼相當于門口的保安,遇到陌生人只要通緝令上沒有的一律放行。而主動防御就相當于私人保鏢,實時保護在主人四周,無論大門口放進來的是強盜還是小偷,只要危害到主人利益就會挺身而出。某種程度上說,雖然主動防御形式上是更新換代的安全軟件,但是其安全理念更返璞歸真了,更關注安全最本源的東西。
5.黑箱行為規則更重要的是保證用戶安全,而不單是為了防止競爭。
偷個懶,借用一篇文章,自己可以少打點字哈:
HIPS(程序動作攔截器)規則割裂防護體系
http://network.ccidnet.com/art/1099/20070807/1170171_1.html
我個人認為這個文章的精神是很對的,但是講得過于隱晦,所以很多人都無法理解HIPS把規則公開會對于整體系統安全所帶來的巨大隱患,包括部分論壇的反饋也是這樣:有的論壇甚至有網友說可以用md5校驗來保證規則的安全性。我覺得這種回復是很典型的對HIPS對行為監控缺乏理念理解造成的。
HIPS監控的雖是一個動作點,但是其真正意義是封鎖基于這個動作(API)的整個一類(無限多種)的程序調用,結果是試圖阻止整個一類(無限多種)程序的惡意方式。正是因此,HIPS雖然只監控了系統中病毒最常用的一些API,但在全拒絕狀態確實可以有效保證系統的安全。不過,全拒絕狀態完全沒辦法應用,比如說為了安裝一個新軟件必須先把HIPS停掉,誰都知道安裝新軟件恰恰是最危險的時候,在最危險的時候HIPS居然先要被手工停止,這從安全理念上講完全是混蛋邏輯,無異于主動伸出脖子來任人宰割。
正因為全拒絕無法正常使用電腦,HIPS使用了每個程序動作(API)都做詢問的機制來兼顧安全性和正常使用。但是呢,正如原作者所說“Win32 API是微軟公司公開提供的應用程序接口,供廣大Windows用戶開發應用程序與系統進行交互操作。所以從本質上講,API并沒有好壞之分,也沒有善惡之別。”HIPS報警的那些所謂的危險API,實際上很多正常程序也在使用的,所以HIPS最典型的情況就是報警頻繁,并且報警的內容以無意義的虛警居多。
針對海量的虛警情況,對單一確切程序的點規則是意義不大的,除非我們有能力徹底確認一個程序的安全性,有耐心針對系統中的每一個應用程序都做若干條規則(3D防護),并且要對系統中不斷安裝更新的新軟件不斷分析確認安全性并不斷地補充規則。那請問,海量的需要不斷擴充維護的點規則有普遍可操作性么?答案顯然是否定的。而且對于新建文件這種情況,因為新建文件本身就是未知的,所以FD防護不可能完全使用帶有md5校驗的點規則來完成。現實中的真實情況,就是大量點規則配合部分類規則來使用,以達到最大限度減少虛警的目的。
點規則的安全性是有保證的,HIPS的安全性隱患恰恰出在了類規則的身上。因為類規則針對的是一類動作(無限多種),既然是無限多種具體的實際應用,那么被惡意利用的可能肯定是必然存在的。比如說原文作者提到了.gho案例,我理解就是一個典型的類規則產生的安全隱患。允許生成*.gho,這種規則就是FD系統最典型的類規則,他針對的是一類(無限多個)程序調用——允許隨便一個進程都可以隨意生成任意內容、任意文件名、任意數量的.gho文件。不管怎么說,利用.gho規則,***就已經輕松寫入到硬盤當中,至于后續如何隱蔽地激活***,則要看其他規則的具體設置了。
上面說了這么多,其實孫武子怹老人家用一句話就全概括了:正所謂“知彼知己者,百戰不殆”,病毒***的作者既然可以得到網絡上大范圍傳播的HIPS規則,他怎么可能不去主動研究利用呢?HIPS規則結構上的缺陷,對于其原本很安全的防護體系來說就是最致命的威脅。
所以說,我覺得微點采用黑箱行為規則,不是一個簡單為了保護自己產品利益的行為,因為從整體結構看,黑箱行為規則對于最大限度保證用戶安全是非常必要的。而且安全產品對自身核心部分采用黑箱機制是一貫的傳統,比如說沒有一家殺軟公布他們的特征碼拾取方案,沒有一家殺軟公布他們的虛擬機,沒有一家殺軟公布他們的啟發式規則。保護產品是一方面,但更重要的是對安全檢測技術的保密,可以有效提高病毒***的編寫技術門檻,增加他們的開發難度,從而在整體上盡可能地保護用戶的系統安全。
PS:黑箱就是指不公開、保密的意思。白箱與之相對。
當然,同樣作為一名信息安全技術的愛好者,我對上述的這些保密技術也是非常感興趣的。反匯編徹底分析軟件結構,難度太大,離我們太遙遠。大家要注意到,我們網友間為了研究分析安全軟件,出了一些很有意思的小工具,比如說針對特征碼掃描的分析工具CCL特征碼定位器等。我想,既然大家對微點的行為分析這么有興趣,為什么沒有人去做一個行為探測器呢?目前還沒有看到類似的工具,但應該是不遠了~!
6.簡析微點殺毒原理,微點為什么可以未卜先知查殺明天的病毒?
(略,見上文)
7.微點和HIPS的區別
一、先看表象:
1.定義
HIPS:程序動作攔截器,作用就是對HIPS所監控的API攔截報警,安裝用戶的要求阻止或放行。作用相當于一個動態的系統分析器,告訴使用者系統當前有哪些變化。
微點:主動防御軟件,主要依據程序行為判定新病毒,輔以特征碼、狀態檢測防火墻等技術的綜合性安全軟件。作用相當于殺毒軟件+防火墻。
2.軟件結構
HIPS:監控
微點:監控+分析+清除
我沒有要貶低HIPS的意思,但是從結構來看,微點的軟件規模要遠大于HIPS,復雜度要遠大于HIPS,開發難度、工作量、代碼數量都要遠大于HIPS。
延伸一個問題,不知道朋友們是否想過單就微點和HIPS重合的這一個點——“監控”來說,誰的監控更靈敏呢?換句話說也就是誰的API監控得更多呢?
答案可能出乎很多人預料,實際上微點監控的API要遠多于HIPS的。
道理很簡單,Windows API的數量太多了,HIPS為了提高其易用性,監控的API越少越好,所以只監控與安全相關的一些API,其余的一律放任不理。
而微點的監控則要BT很多,除了HIPS監控的那些眾所周知的安全性API,微點還監控了很多和安全有可能有關的API。有誰會想到微點竟然會監控程序被改名!根據網友提供的資料,我測試了一下,微點確實監控程序被改名,在程序生成日志中也有體現。原因也很好解釋,如果不監控程序改名,那么微點根據程序生成日志向上追殺***源的時候就有可能會被誤導造成殺毒不徹底。微點究竟還有哪些BT的監控項,我是沒能力分析,歡迎大牛們逆向一下,列個清單出來大家一同分析總結。
PS:
《揭秘行為殺毒》里有較詳細的介紹,遺憾的是貼圖沒能找到。
http://www.ixpub.net/thread-678163-1-1.html
二、分析內因
談談我的看法,微點和HIPS究竟有什么區別呢?我的意見是實在沒有必要非分出個誰強誰弱,兩個軟件的設計目的完全不一樣,最終表現出來的軟件形態也是天壤之別。如果非要定性的話,只能說微點和HIPS是兩類軟件,不能簡單做比較。
大家想過HIPS為什么要去監控程序API動作?因為HIPS是程序動作攔截器,它的使命就是告訴使用者系統當前有哪些變化(API調用)。然后呢?HIPS監控了API之后會去做什么?答案是然后什么也不干,因為HIPS的使命已經完成了。
大家想過微點為什么要去監控程序API動作么?
因為微點要對一系列動作進行行為分析,需要監控點提供足夠的信息。
為什么微點要進行行為分析?
因為微點要判斷出程序是否有害。
微點判斷程序有害是為了什么?
因為微點是一款綜合性安全軟件,它的使命是保護系統安全,殺毒殺***殺后門殺蠕蟲……
微點發現程序有害之后會怎么辦?
根據日志中的記錄,逆向操作中止有害進程、刪文件、刪注冊表……
至此,微點的使命得以實現。也就是說微點前面所有工作的努力都是為了徹底清除有害程序這最終的目的。
微點雖然比HIPS多了很多東西,但是你絕不能簡單地說微點比HIPS NB多少多少,這樣是不客觀的,因為不同類軟件,不能簡單地直接做對比。HIPS完成了它的設計使命,所以HIPS是稱職的。微點完成了它的設計使命,所以微點也不錯。
篇外:
over,本章到此理應結束。我很歡迎朋友們來積極熱烈參與討論,在深度這種技術性討論社區,大家應以技術、邏輯、以理服人。嘿嘿,不過從私心來講,我對某些朋友混淆概念,搞文字游戲的把戲還是很有興趣的,稍微摻和幾句,權當調節氣氛了。
以微點和HIPS都具有監控模塊,而論證出微點是高級HIPS的結論,還是很站不住腳的。莫忘了除了監控和分析模塊,微點還有最重要的清除模塊呢。對微點來說,監控是手段,分析是方法,清除才是最核心最重要的目的。完全忽略主體,而只談某一個過程,就有點兒太矯情了……
誠然HIPS雖沒有清除能力,但使用動作阻攔也可以達到一定的安全防護作用。但如果我以鉗子和六軸精密數控車床都可以加工金屬部件為由,非說車床==高級鉗子,我想問問有人能接受么?呵呵,實際上,鉗子歸屬五金類,而車床歸屬機械類,完全是兩類產品,不能在一塊簡單作比較的。使鉗子(當然不止鉗子咯)的高手叫鉗工,使床子的高手叫車工,高級鉗工和高級車工都是優秀的高級人才,并沒有高下之分。。。
答案就是這么簡單。
哈哈,想起上學時的金工實習了,師傅指著車床一聲“上床”~!然后我們就都想歪了。。。
車銑刨磨鉗鑄,數控、線切割,懷念哦……
轉載于:https://blog.51cto.com/rootkit/239425
總結
以上是生活随笔為你收集整理的深度研究微点主动防御的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代机械设计极简笔记(8):解析法
- 下一篇: java格斗代码_一款Java网络格斗游