2007年11月7日 星期三

惡意程式分析課的心得(Afterthought about the Analytic Malware Class)

昨天,筆者下午抽空去參加了某防毒公司(不具名可能比較好)的惡意程式分析的課程,結果發現一件事,就是手動移除病毒這篇為何是多人點閱的?因為...跟上課的內容相差不遠。(害我上到一半就想逃走...~"~)

雖然我先前是為了處理一個棘手的病毒(在防毒軟體還未有效解決方法前),在網路找了一晚,用收集到的資訊跟軟體自己手動來解決病毒。(第一次遇到)

不過,這門課還是有些我自己比較不知道的部份,也就當做我三個小時停車費的收穫吧!(在台北市開車真的是耐心財力的大考驗),我就針對我在這門課聽到的一些內容,做個摘要式的說明吧!其它有關於實作的部份,其實與我在手動移除那篇的方式大同小異...


首先,這門課一開始就先介紹什麼是惡意程式,它應該算是一個比較廣義的字,其中包含了病毒(Viruses)、木馬(Trojan)和蠕蟲(Worms)等,當然還有相關的產物(例:ROOTKITSBACKDOORS),不過最主要上課的重點就是要我們認識每種惡意程式可能帶來的影響以及我們能做應變措施。

這麼說可能有點難理解,其實就是告訴我們,在感染惡意程式時,有那些作為是不會造成更大的損害,例:感染一個會複製自身偵測自己網路環境的惡意程式時,千萬別輕易地透過網芳或其它方式與其它電腦交換資料(最好是斷開網路),反之亦然,如果已知它的行為模式,就可以大膽地從網芳或其它方式獲取工具來協助自己解決問題。

現在惡意程式眾多,而且分類混亂,其實很難去辨識出它可能有什麼樣的危害,尤其當你非常好運地趕在大家感染發作之前...,就算上Google查詢相關資料,能夠得到的也十分有限。所以還是保守一點好!盡可能是在單機下解決惡意程式的問題,不然很有可能野火燒不盡...

再來就是開始跟我們說怎麼收集惡意程式分析行為的方式,這一點我就不多加詳述,因為前文已經寫過了,下面就提供一些我先前沒有的工具及資料連結:

1.檢視系統的各項設定:GetSystemInfo‧官網連結
2.上傳可疑的病毒檔:VirusTotalVirScan
3.其它的程式軟體,如:Process ExplorerHijackthisSREng...等不再多說。

再來它就針對最近惡名昭彰的kavo做了實際的分析與解決之道,不過是在VMWARE(一種虛擬化系統的軟體)裡操作,並且說明了在虛擬化系統裡,有些惡意程式還不見得願意現形(避免被查出感染途徑),由此可見惡意程式的作者真的不好當。(雖然是為了利益取向居多)

最後,它還教了一些登錄檔的更改抑止病毒的手法其中包括:

1.WINSOCK設定檔的手動恢復:或透過WINSOCKXPFIX修復。

 經正常或原電腦機碼匯出/入修復,位置:HKEY_LOCAL_MACHINE\SYSTEM\
 將良好的機碼(例:ControlSet001)覆蓋ControlSet002(被感染)。

2.透過同檔名抑止病毒感染:因為在M$系統中無論是檔案或資料夾皆為物件

 例:感染檔為autorun.inf,在根目錄下(例C:\)建立autorun.inf空資料夾。

其它的比對技巧,就我的感覺看來,大多都跟「經驗」有關,因為可以透過經驗減少許多上Google查詢跟比對的時間,除此之外,遇到每個可疑的感染檔案,都可先透過右鍵-->內容,檢視是否具有版本資訊廠商簽章,如果沒有的話,絕大多數都是有問題的!

不過也有少數是不具備版本或簽章的無害檔案(該說製作程式的廠商偷懶嗎?)

雖然一個三小時的課我學到的東西不算多,但是經驗是無價的!而且能夠多瞭解一下別人的技術與想法,對於自己能力的肯定與進步,我相信都是必要的條件之一。

最後竟然忘了跟一同上課的同學們交換名片(太趕著走了!怕塞死在台北市下班的車陣中),因為人脈有時候是解決問題最快的方式,因為...每個人在工作的環境中其實會遭遇的問題原本就不完全相同呀!

有時別人的一個經驗,就可以省去你埋頭苦幹兩三天想不出解決之道的窘境,雖然經驗真的很不受台灣人所重視,但是我還是很尊敬各位前輩先進們,如有遺漏或指教還請各位不吝賜教。


2017/05/09:有好心人士分享了一篇不錯的文章,有興趣的可以去看看:Complete Guide to Windows Malware Removal and Prevention