如何挖掘殺毒軟件的漏洞

光刃 (用什么頭像好呢?) | 2014-12-13 18:57

A:“聽說你大學的專業是信息安全?”

B:“是的,領導。”

A:“那好,去幫安裝一個殺毒軟件。”

B:“領導,請你尊重這門專業,信息安全是……”

A:“請你說一下如何發現殺毒軟件的安全漏洞?”

B:“領導,安裝哪個殺軟 ?”

問題來了:如何挖掘殺毒引擎的漏洞?

曾經做了3年多的病毒分析,從來沒有發過和殺毒引擎有關的文章。今天就發一篇吧。思想混亂,大神勿噴。

每天打開qq,各種qq群都在說如何過xxxx殺毒軟件?如何做免殺?有人說:殺毒軟件就是一把激光槍,而病毒就是一個一個的敵人。通殺就是激光槍的掃描軌跡,而免殺就是病毒的逃逸軌跡了。好的通殺可以殺掉一大片敵人,而好的免殺則是讓敵人穿上了一層隱身衣,躲過激光槍的傷害。當然有時候激光槍也會傷害一些好人。總之,激光槍是有傷害人的能力的 ,是傷害好人還是壞人,這就是激光槍的問題了。其實遇到問題,有時候躲并不是好辦法。尤其是對于好人而言。如果有這樣一件衣服,他不是隱身的,而是一面鏡子。當激光槍掃描他的時候,激光就會返回,然后激光就會自毀。那這樣的裝備就比較有意思了。

殺毒引擎是殺毒軟件的核心,復雜度可想而知。在殺毒公司只有最高級的人員才可以充當引擎開發人員。可惜本人不才,在殺毒領域混了3年,仍然沒有接觸到引擎層次。因此這篇文章可能在某些人眼里是班門弄斧了。但愿不被噴。

殺毒軟件除了pe格式以外,還可以處理各種文件格式的程序。比如殺毒軟件在查殺漏洞樣本的時候,會涉及到office文件。Flash文件。各種圖片,聲音等文件的解析。在解析過程中有可能存在邏輯缺陷。此外殺毒軟件在查殺加殼程序時,會先對程序進行脫殼。在遇到安裝包程序時,會對各種安裝包壓縮包文件進行解析。在進行感染性修復的時候,會對感染性病毒進行判斷和修改。在處理各種腳本木馬的時候,會對腳本進行解析和信息讀取。。。。。。總之,殺毒軟件會處理各種各樣的文件格式。在文件格式處理過程中,會不會出現漏洞呢?

所以,完全可以在這些文件格式入手, 構造足夠畸形的樣本,讓殺毒軟件攻擊我們的時候出現錯誤。導致崩潰。

如何選擇攻擊目標呢?

首先,應該選擇比較偏僻的文件格式。常用的文件格式不應該作為選擇目標。對于常用的文件格式,殺毒軟件廠商的研究已經非常深入。代碼也相對健全,找到一個漏洞不是一件輕易的事情。

其次,可以選擇在新上來的功能上進行挖掘,由于新上來的功能測試力度可能不夠,出現問題的概率更高。

最后,在各種漏洞樣本上進行fuzz,可能效果更好。尤其是新公開的漏洞。尤其是這種漏洞的專殺工具,他們的問題可能更多一些。

WooYun: 360安全衛士處理lnk文件內存破壞漏洞(可導致殺毒主程序崩潰)