關於netcut v2 程式



轉 微風
http://bbs.wefong.com/viewthread.php?tid=1713548&pid=23035628&page=1&extra=page%3D1#pid23035628

首先,萊因哈特必須先作兩點聲明,本文內容涉及ARP通訊協定運作原理,倘若您看不懂本文,請先自我充實。其次,本文內容無涉如何反制netcut,有心者請止步。謝謝!




一‧前言

本測試的目的在於觀察netcut v2的運作模式,藉此了解是否在個人電腦上單靠個人防火牆,或是利用arp –s指令鎖住重要的ARP table特定項目內容,即可獲得免疫的效果。


二‧測試環境

攻擊端:Microsoft Windows 2003 SP2主機,在個人防火牆部分,僅啟動系統內建防火牆功能。

被攻擊端1Microsoft Windows 2000 SP4主機,無個人防火牆保護。本機功用在於觀察netcut的行為模式。

被攻擊端2Microsoft Windows XP SP2工作站,個人防火牆採用COMODO Firewall Pro v3.0.14.276。本機功用在於測試個人防火牆能否阻擋netcut攻擊,並作為測試netcut自我防護功能時的攻擊端。

攻擊軟件:netcut v2.08

監聽側錄軟體:Sniffer Portable v4.90.104(MR4)

本測試之基本架構如下圖所示,只是在單純的區域網路上,利用一台Windows 2003主機及一台Windows XP SP2工作站充當攻擊端及被攻擊端,基於測試及側錄netcut封包的目的,萊因哈特在攻擊端及被攻擊端都安裝上netcutSniffer Portable程式


725)this.width=725;" onmousewheel="return imgzoom(this)" border="0">
《圖一》本測試之架構示意圖


三‧測試重點

本測試的觀察重點如下:

1.
觀察netcut的網路行為模式

2.
觀察COMODO對於netcut攻擊的防禦效果

3.
觀察arp –s指令對於netcut攻擊的防禦效果

4. 觀察netcut本身對於同類攻擊的防護效果


四‧測試結果

1. 關於netcut的網路行為模式

首先說明測試的網路環境,攻擊端的IP位址是192.168.1.240,被攻擊端的IP位址為192.168.1.200,至於閘道器的IP位址在192.168.1.254 / 10.1.1.254(因為本身區網分成192.168.1.010.1.1.0個網段,但閘道皆設在同一台路由器上,因此會有兩個閘道器位址)

攻擊方法是在攻擊端的netcut主畫面中,先選擇192.168.1.200為攻擊對象,然後點選上方的切斷按鈕進行攻擊。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖二》在netcut主畫面選擇對象再點選切斷按鈕即可發動攻擊

同時間,萊因哈特利用Sniffer Portablecapture功能在攻擊端擷取所有進出封包進行分析,以下即是所探知的netcut攻擊行為模式:

a. 假造一組實體位址(MAC Address / Physical Address),然後以此位址作為被攻擊端(192.168.1.200)的實體位址,發送一個偽裝的非典型ARP request封包給第一個閘道器(192.168.1.254)。此行為的目的在於欺騙閘道器,使閘道器誤以為真,將本機ARP table上正確的對映位址換成錯誤的對映位址,如此當有封包要傳送給被攻擊端時,都會被送往錯誤的實體位址去,導致被攻擊端不能再收到任何從閘道器送來的封包,直到切斷狀態解除,且ARP table上的對應資料恢復正常為止。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖三》偽裝成被攻擊端(192.168.1.200)向第一個閘道器(192.168.1.254)發送的非典型ARP request封包內容,請注意被Sender’s hardware address是假造的位址

請注意,典型ARP request封包的目的應該是廣播(Broadcast)位址,也就是FF:FF:FF:FF:FF:FF,並非單一主機的實體位址。下圖是正常ARP request的封包截圖,請自行對照與上圖的封包目的位址有何不同。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖四》這是典型ARP request封包的內容,請特別注意目的位址(Dest Address / Destination)欄顯示的是廣播位址,不是單一實體位址

b. 利用該假造位址作為第一個閘道器(192.168.1.254)的實體位址,同樣發送一個偽裝的非典型ARP request封包給被攻擊端(192.168.1.200)。此行為的目的在於欺騙被攻擊端,使被攻擊端信以為真,將本機ARP table上正確的對映位址換成錯誤的對映位址,如此當有封包要傳送給閘道器時,都會被送往錯誤的實體位址去,導致閘道器不能再收到任何從被攻擊端送來的封包,直到切斷狀態解除,且ARP table上的對應資料恢復正常為止。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖五》偽裝成第一個閘道器(192.168.1.254)向被攻擊端(192.168.1.200)發送的非典型ARP request封包內容,請注意Sender’s hardware address是假造的位址

由於在本測試環境中有兩個網段,netcut會依樣畫葫蘆用相同的假位址為被攻擊端(192.168.1.200)的實體位址,發送一個偽裝的非典型ARP request封包欺騙第二個閘道器(10.1.1.254),使被攻擊端不能再收到從第二個閘道器傳來的封包,直到切斷狀態解除,且ARP table上的對應資料恢復正常為止。注意,若是僅有單一網段,則不會出現第三及第四個偽造的ARP request封包。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖六》偽裝成被攻擊端(192.168.1.200)向第二個閘道器(10.1.1.254)發送的非典型ARP request封包內容,請注意Sender’s hardware address是假造的位址

再一次利用相同手法,偽裝成第二個閘道器(10.1.1.254),發送一個非典型ARP request封包給被攻擊端(192.168.1.200),使第二個閘道器不能再收到從被攻擊端傳來的封包,直到切斷狀態解除,且ARP table上的對應資料恢復正常為止。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖七》偽裝成第二個閘道器(10.1.1.254)向被攻擊端(192.168.1.200)發送的非典型ARP request封包內容,請注意Sender’s hardware address是假造的位址

當被欺騙端收到傳來的ARP request封包後,會按照ARP通訊協定的運作原理,將自身的實體位址填入封包,並回傳給發送ARP request封包的主機,這種封包稱為ARP reply。由於上述的ARP request並非由表頭記載的發送端所發送,而且發送端實體位址也是假造的,因此這些ARP reply封包並不會真的傳送到另一方手裡,而是回到netcut攻擊主機手上。以下四個封包都是被欺騙端回傳的ARP reply封包,請恕萊因哈特不再贅言。

這是被攻擊端(192.168.1.200)回傳給第一個閘道器(192.168.1.254)ARP reply封包。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖八》被攻擊端(192.168.1.200)回傳給第一個閘道器(192.168.1.254)ARP reply封包,請注意Target hardware address是假造的位址,代表被攻擊端的ARP table內容已經被篡改

接著是第一個閘道器(192.168.1.254)回傳給被攻擊端(192.168.1.200)ARP reply封包。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖九》第一個閘道器(192.168.1.254)回傳給被攻擊端(192.168.1.200)ARP reply封包,請注意Target hardware address是假造的位址,代表第一個閘道器的ARP table內容已經被篡改

再來是被攻擊端(192.168.1.200)回傳給第二個閘道器(10.1.1.254)ARP reply封包。注意,若是僅有單一網段,則不會出現第三及第四個ARP reply封包。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖十》被攻擊端(192.168.1.200)回傳給第二個閘道器(10.1.1.254)ARP reply封包,請注意Target hardware address是假造的位址,代表被攻擊端的ARP table內容已經被篡改

最後是第二個閘道器(10.1.1.254)回傳給被攻擊端(192.168.1.200)ARP reply封包。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖十一》第二個閘道器(10.1.1.254)回傳給被攻擊端(192.168.1.200)ARP reply封包,請注意Target hardware address是假造的位址,代表被攻擊端的ARP table內容已經被篡改

因此,netcut的攻擊手法就是交互發送偽造的非典型ARP request封包到被攻擊端與閘道器,使兩者的ARP table記錄下錯誤位址而達成截斷兩者間封包傳送的目的,而且萊因哈特發現,netcut會持續變造實體位址,並且不斷發送偽造的ARP request封包,直到netcut使用者下達恢復連線的指令為止。根據相關封包的Relative Time顯示,其變造實體位址並發送偽造ARP request封包的頻率接近每秒一次。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖十二》netcut所發送的偽造ARP request封包一覽,請特別注意Source Address所顯示的位址有何規律性

netcut頻繁更換實體位址的原因何在?個人猜測可能是為了避免網管人員憑藉少數封包就追查到這些假造實體位址的偽造封包來源,並且加以封鎖。不過,經過反覆監聽後發現,其實netcut假造實體位址的法則並非無跡可尋,例如在第一個攻擊封包裡,假造的實體位址是以62開頭,後續的假造位址也將是以62開頭,接著改用636465等等,以此類推,因此只要分析相當數量的攻擊封包,就不難發現它的規律性,此時再利用分段隔離的原則進行監聽過濾,還是可以追查出這些偽造封包的來源。


2. 關於COMODO對於netcut攻擊的防禦效果

首先來看看COMODO Firewall Pro對於ARP Spoofing攻擊有什麼設定選項。在COMODO FirewallPro>Firewall>Advanced>Attack Detection Settings功能設定畫面中,發現有Protect the ARP cacheBlock Gratuitous ARP frames等兩個關於ARP防護的設定項目,由於要測試COMODO Firewall Pro對於ARP Spoofing攻擊的防禦能力,因此萊因哈特把這兩個防禦功能全都啟動。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0">
《圖十三》COMODO Firewall Pro具有Anti-Spoofing的功能選項

接著直接來測試netcut攻擊能否突破COMODO Firewall Pro的防護吧!只要執行命令提示字元(也就是所謂的DOS視窗),在發動攻擊前先執行arp –a指令列出正確的ART table內容,待發動攻擊後再執行同樣指令,兩相對照就能看出COMODO Firewall Pro的防護效果如何。在正常狀況下,閘道器的對映位址應該是永恆不變的,可是我們從下圖可以發現,前後兩次所列出的閘道器位址192.168.1.25410.1.1.254,它所對映的實體位址已經被置換,而此時原先持續在PING Yahoo首頁的DOS視窗也變成滿滿的Request timed out訊息,這就證明了COMODO Firewall Pro對於netcut攻擊根本束手無策。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0">
《圖十四》從攻擊前後的ARP table可以看出,COMODO Firewall Pro根本無阻檔netcut篡改對映資料的攻擊手法

其實,打從得知netcut的行為模式開始,萊因哈特就警覺到個人防火牆對於netcut攻擊可能無力抵擋,因為即使個人防火牆可以鎖住本機ARP table的內容不被置換,也無法阻止netcut篡改閘道器上ARP table內容的惡質行為,只要閘道器上的對映位址不正確,造成被攻擊端完全無法再從閘道器收到任何封包,同樣會讓被攻擊端電腦無法正常連網。

很慶幸自己不是用COMODO Firewall Pro嗎?先別高興得太早,因為根據上述原因,不管你用的哪一套個人防火牆,都註定無法在netcut的攻擊下存活,除非你能把閘道器的ARP table內容鎖死不讓修改。


3.
觀察arp –s指令對於netcut攻擊的防禦效果

既然COMODO Firewall Pro無法鎖死ARP record,那麼自行下達arp –s指令鎖住又如何呢?

萊因哈特在本機開啟一個DOS視窗,下了兩行指令鎖住閘道器的對映資料:

arp –s 192.168.1.254 00-09-0f-0a-cd-88

以及

arp –s 10.1.1.254 00-09-0f-0a-cd-88

接著跑一次arp –a指令,確定已經成功加入兩筆型態是staticARP recordARP table中,然後再開一個DOS視窗持續PING Hinet首頁,最後在攻擊端執行netcut對本機發動攻擊。

很顯然,arp –s指令可以成功抵擋住netcut欺騙本機意圖修改ARP table的行為,因為閘道器的記錄始終聞風不動,不過這時已經PING不通Hinet首頁,證明只要閘道器上的ARP table沒有被妥善保護,就依然會發生封包傳輸錯誤的問題而導致連線中斷。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0">
《圖十五》下達arp –s指令後,無論netcut如何攻擊,10.1.1.254192.168.1.254這兩筆閘道器的ARP record絲毫不受影響

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0">
《圖十六》沒有保護好閘道器上的ARP table,依然會發生連線中斷的現象


4. 關於netcut本身對於同類攻擊的防護效果

眼尖的使用者可能會發現,在netcut主畫面的左上方有一個保護我的電腦的功能選項,而且預設就是啟動狀態,那麼是不是只要啟動這項功能就可以保護自身不被同類攻擊造成斷線呢?在回答這個問題以前,我們先來分析一下它究竟在做什麼事情。

在側錄分析這些攻擊封包的時候,萊因哈特發現它同時也會持續發送包含正確實體位址的非典型ARP request封包給閘道器192.168.1.25410.1.1.254,而且發送頻率為固定每秒一次。這種設計的用意,應該是想利用定時為閘道器ARP table更新正確資料的方式,去確保閘道器的封包能夠正確傳送到攻擊端,不過,這只是單一方向的防護措施,是否意味它也會保護本機的ARP table內容不被置換呢?且來測試看看吧!

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖十七》netcut的自我防護功能,採用的依然是發送非典型ARP request封包給閘道器的方法,只是這回封包裡的位址是正確無誤的

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0" width="725">
《圖十八》請注意上圖出現兩筆192.168.1.254的資料,上方實體位址為1E:69:34:45:23:54者為假資料,下方實體位址為00:09:0F:0A:CD:88者為真資料,顯然netcut會將正確的閘道器位址儲存起來,因此儘管其他應用程式被欺騙,netcut卻能將自我保護的ARP request封包傳送到正確的位址去

為了證明它是否具備前述的防護功能,我們改從被攻擊端執行netcut對攻擊端發動切斷攻擊,同時利用arp –a指令觀察攻擊前後的ARP table內容是否會被篡改。很不幸的,netcut根本無法阻擋本機的ARP table內容被置換,因此,即使它依然能夠持續發送包含正確位址的ARP request到閘道器,使閘道器的ARP table內容得以糾正,卻也因為本身的ARP table被篡改,造成netcut以外的應用程式封包都被傳送到錯誤位址去,在這種情況下,原先的攻擊端就變得無法正常連線了。

725)this.width=725;" onmousewheel="return imgzoom(this)" border="0">
《圖十九》請注意攻擊前後10.1.1.254192.168.1.254個位址的Physical Address變化,就算已經啟動自我保護,netcut依然擋不住本機的ARP table被篡改而淪陷

既然netcut主機被別人發動同類攻擊,導致netcut以外的應用程式封包,再也無法將封包傳送到正確的閘道位址,那麼這時netcut主機還能切斷別人的連線嗎?答案是肯定的,因為在預設狀態下,他人的同類攻擊只是截斷netcut主機與閘道器間的封包傳輸,並未切斷netcut主機與同網段其他電腦間的通路,因此,netcut主機的攻擊封包還是可以送達其他電腦,造成這些被攻擊電腦的ARP table對映位址不正確而斷線。


五‧結論

經過前面的一連串測試,我們可以得到以下結論:

1. netcut
的攻擊手法就是交互發送偽造的非典型ARP request封包到被攻擊端與閘道器,使兩者的ARP table記錄下錯誤位址而達成截斷兩者間封包傳送的目的

2. netcut
在發動切斷攻擊時,約莫每秒鐘就會變更一次實體位址並發送欺騙封包進行持久攻擊,直到接獲恢復指令為止。

3.
由於netcut會分別攻擊閘道器及被攻擊端,因此在單一主機上安裝個人防火牆,或在單一主機上利用arp –s指令鎖住ARP table內容,同樣無法阻止連線中斷的情形發生。

4.
即使啟動netcut的自我保護功能,攻擊端電腦一旦遭受同類攻擊,同樣無法抵擋,顯然這是程式作者始料未及的事情。

5.
要追蹤netcut攻擊封包的來源雖非易事,不過也並非天方夜譚,只要分析出實體位址的造假規則,然後利用分段隔離的方法進行追蹤即可;若是使用具備網管功能的高階交換器,管理者甚至能夠利用實體位址的造假規則,直接在交換器上查出攻擊封包的來源並且加以封鎖。

最後,請不要忘記netcut不單可以用來截斷被攻擊端與閘道器間的連線,也可以截斷被攻擊端與DHCP主機、AD主機,甚至與網路上任何一台主機的連線,因此攻擊手法並非只有一種,可別以為只要顧好本機與閘道器就可以高枕無憂。假如你在自動分派IP位址的網路,發生跟DHCP伺服器失連的情形,照樣會讓你氣得七竅生煙的。


Rainbow Hash Table 與密碼破解

跨平台密碼破解器Ophcrack的破解速度簡直是不可思議。到底有多快呢?它能在160秒內破解『Fgpyyih804423』這個密碼。很多人都認為這個密碼已經相當安全了,例如微軟的密碼強度檢查工具認為該密碼的安全級別是

「強」;而Geekwisdom密碼強度測量工具認為該密碼的安全強度是「普通」。

Ophcrack的破解速度為什麼會這麼快呢?這是因為它使用了Rainbow Tables,我說的可不是天上的那種彩虹。


不過,Rainbow Tables也是很美的。


要想理解Rainbow Tables的工作原理,首先你得明白電腦是如何儲存密碼的,不管是在你自己用的桌上型電腦還是在遠端的網路伺服器那裡。


一般而言,密碼決不會儲存在純文字檔案中。至少我們不應該這麼做,除非你用的是世界上最幼稚的程式,而且你的目的就是構建世界上最不安全的系統。實際上,我們應當用雜湊(Hash)函數的輸出值來儲存密碼。雜湊是不可逆(單向)運算,即使攻擊者能夠讀取密碼的雜湊表,他也不可能僅僅透過那個雜湊表來重建密碼。


但是攻擊者可以用Rainbow Hash Tables來攻擊密碼的雜湊表:透過龐大的、針對各種可能的字母組合,預先計算好其雜湊值。雖然攻擊者也可以即時計算雜湊值,但是利用這個預先算好的龐 大雜湊表,顯然能夠使攻擊的速度快上無數倍——假設攻擊機器有足夠的記憶體來載入整個表格(或至少是大部分),這就是個很典型的時間-記憶體取捨問題 (time-memory trade-off),尤其是駭客更傾向於使用這種捷徑。


Rainbow Tables有多龐大呢?Ophcrack的預設安裝畫面會讓你有個大致上的概念:


產生這些龐大的Rainbow Tables需要花很長時間,但是一旦完成,每個發動攻擊的電腦破解密碼能力都將大幅增強。


現有最小Rainbow Tables涵蓋了最基本的英文字母及數字,光這樣它的大小就有388MB。這是Ophcrack開機光碟預設使用的雜湊表。但即使這個最小的表格也具有相當的效力。我曾用它來攻擊一個Windows XP虛擬機器上的密碼,結果如下:



能找到? 花費秒數
Password1!
700
Fgpyyih804423 yes 159
Fgpyyih80442%
700
saMejus9 yes 140
thequickbrownfoxjumpsoverthelazydog
700


當然,用這種最小的Rainbow Tables無法破解那種帶有特殊字元的密碼(比如%&^$#),因為表格里根本沒有包含這些字元。你可能也注意到了那些passphrase (我特別鍾愛使用它們),由於本身的長度關係,passphrase對此項技術是免疫的。但是,話又說回來了,該攻擊可以在11分鍾內破解所有14位元數 字及英文字密碼組合中的99.9%,這還是用了最小的Rainbow Tables。表格越大、越完整,攻擊破解能力越強。Ophcrack檔案描述了它所能使用的Rainbow Tables之間的差異:


數字及英文字母表格(10k) 388MB 包含所有英文字母及數字混合密碼中99.9%的LanManager表,由於LanManager會將密碼拆成兩組7個字元的設計,長度1~14個字的密 碼都可以用這個表格破解,而且LanManager的雜湊不分大小寫,這個表格中所含的800億個雜湊值可用以破解2的83次方種密碼組合)。


數字及英文字母表格(5k) 720MB 包含所有英文字母及數字組合的密碼中99.9%的LanManager表。但是,由於表格變成2倍大,如果你的電腦有1GB以上的記憶體空間的話,它的破解速度是前一個的4倍。


延伸表格 7.5GB 包含最長14個大小寫字母、數字以及下列33個特殊字元(!"#$%&'()*+,-./:;<=>?@[\]^_`{|} ~)組成的LanManager雜湊表中的96%密碼。該表格中大約有7兆種的組合,可以涵蓋5*10的12次方(或2的92次方)種密碼。


NT 8.5 GB 當LanManager雜湊被停用時,我們可以使用此表格來破解電腦上的NT雜湊表。該表包含了以下組合中的90%密碼:

•長度1~6,由大小寫字母、數字以及33個特殊字元組合的密碼
•長度為7,由大小寫字母及數字組成的密碼
•長度為8,由小寫字母及數字組成的密碼


該表格包含7兆種組合,亦對應7兆種密碼(NT雜湊表不存在LanManager雜湊表的弱點)。


需要注意的是,所有這些Rainbow Tables都有其特定適用的密碼長度和字母組合。太長的密碼,或者用了表格中沒有的字元,那麼用Rainbow Tables就無法破解。


不幸的是,由於舊式LanManager雜湊表不可原諒的缺點,Windows伺服器特別容易被Rainbow Tables攻擊。令我吃驚的是,Windows Server 2003在預設狀態下竟然還支援那些舊式Lan Manager雜湊表。我強烈建議大家停用Lan Manager雜湊表,尤其是在那些儲存所有使用者認證的伺服器上(如 DC)。雖然這將對你的Windows 98使用者造成很大的不便,但是我覺得為了提高安全性,這麼做是值得的。


我聽說明年發佈的Windows Server 2008會將LanManager雜湊表去掉。Windows Vista已經不支援持這些過時的雜湊表了。在Vista系統中執行OphCrack的話結果請看下列對話方塊:


All LM hashes are empty. Please use NT hash tables to crack the remaining hashes.


對某些人而言,Ophcrack可能彈性不足,像是它不允許你自己產生Rainbow Tables,因此,你得用Project Rainbow Crack, 該工具能用來破解幾乎所有字母組合以及任何雜湊演算法。但你得當心,Rainbow Tables攻擊最近才盛行的原因是由於電腦的2~4GB記憶體最近才降到了讓人能接受的價格。我想說的是這些表格很龐大,對於攻擊安全性更高的NT雜湊 表所需的Rainbow Tables大小如下:


字元集 長度 表格大小
ABCDEFGHIJKLMNOPQRSTUVWXYZ
14

0.6 GB
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
14

3 GB
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=
14

24 GB
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/

14

64 GB



用Rainbow Tables對付桌上型電腦有點殺雞用牛刀,如果駭客能接觸實體主機,那麼就沒有任何安全性可言了,這是不變的10項電腦安全法則中的第3條。一旦駭客可以存取實體主機,那麼他可以用很多工具來重設密碼。


但是如果駭客從遠端伺服器或資料庫獲得大量密碼雜湊表,我們就有麻煩了,這種情況下,遭受Rainbow Tables攻擊的風險非常大。因此你決不能只依靠雜湊技術——你必須給雜湊表加些花樣(Salting),這樣得到的雜湊值就與眾不同了。給雜湊表加花 樣,聽起來很複雜,但其實很簡單。在產生雜湊表之前,給密碼加個唯一的值即可:


hash = md5('deliciously-salty-' + password)


這樣,攻擊者就無法用Rainbow Tables來攻擊你了——「密碼」和「deliciously-salty」產生的雜湊結果是不匹配的。除非駭客能知道你所選用的值,即使真的知道,他 也得專門針對你的機器產生一個專屬的Rainbow Tables。(編輯:資安之眼)


資安專家 Thomas Ptacek 針對這篇文章提出了更多深入的探討,我推薦大家能前往閱讀。



出處:
Jeff Atwood, Coding Horror


清除「頑固不化」病毒進程的小技巧


閱讀提示:筆者在這裡為大家提供兩則小技巧,以便幫你強行殺死「頑固不化」的病毒進程。
筆者在這裡為大家提供兩則小技巧,以便幫你強行殺死「頑固不化」的病毒進程。

根據進程名查殺

這種方法是通過WinXP系統下的taskkill命令來實現的,在使用該方法之前,首先需要打開系統的進程列表界面,找到病毒進程所對應的具體進程名。

接 著依次單擊「開始→運行」命令,在彈出的系統運行框中,運行「cmd」命令;再在DOS命令行中輸入「taskkill /im aaa」格式的字符串命令,單擊回車鍵後,頑固的病毒進程「aaa」就被強行殺死了。比方說,要強行殺死「conime.exe」病毒進程,只要在命令提 示符下執行


taskkill /im conime.exe



命令,要不了多久,系統就會自動返回結果。
根據進程號查殺

上 面的方法,只對部分病毒進程有效,遇到一些更「頑固」的病毒進程,可能就無濟於事了。此時你可以通過Win2000以上系統的內置命令——ntsd,來強 行殺死一切病毒進程,因為該命令除System進程、SMSS.EXE進程、CSRSS.EXE進程不能「對付」外,基本可以對付其它一切進程。但是在使 用該命令殺死病毒進程之前,需要先查找到對應病毒進程的具體進程號。

考慮到系統進程列表界面在默認狀態下,是不顯示具體進程號的,因 此你可以首先打開系統任務管理器窗口,再單擊「查看」菜單項下面的「選擇列」命令,在彈出的設置框中,將「PID(進程標誌符)」選項選中,單擊「確定」 按鈕。返回到系統進程列表頁面中後,你就能查看到對應病毒進程的具體PID了。

接著打開系統運行對話框,在其中運行「cmd」命令,在命令提示符狀態下輸入


ntsd -c q -p PID



命令,就可以強行將指定PID的病毒進程殺死了。例如,發現某個病毒進程的PID為「444」,那麼可以執行

ntsd -c q -p 444



命令,來殺死這個病毒進程。

轉自賽迪網

認識使用 Rootkit 技術的木馬

自從大陸的"廣外幽靈"開創了dll木馬時代的先河以來,現在採用執行程序注射的dll木馬和惡意程式已經隨處可見了,除了普遍被採用的另行編寫 dll載入器程式躲在啟動項目裡運行載入dll主體之外,著名"求職信"病毒還帶來了一種比較少見的通過註冊表"hkey_local_machine\ software\microsoft\windows nt\currentversion\windows\appinit_dlls"項目載入自身dll的啟動方法,而相對於以上幾種早期方法,現在更有一 種直接利用系統服務啟動自身的木馬程式,這才是真正的難纏!



系統"服務"是windows系統的一大核心部分,在NT/2000/2003/XP架構系統中,服務是指執行指定系統功能的程式、例行程序,以便支援其他程式,尤其是底層核心(接近硬體)程式。




而通過網路提供服務時,服務可以在Active Directory(AD)中發佈,從而促進了以服務為中心的管理和使用。


服務是一種應用程式類型,它在後端運行。服務應用程式通常可以在本地和通過網路的用戶端提供一些功能,例如:客戶端/伺服器架構下的應用程式、web伺服器、資料庫伺服器以及其它基於伺服器的應用程式。




" 服務"自身也是一種程式,由於使用的領域和作用不同,服務程式也有兩種形式:exe和dll,採用dll 形式的服務是因為 dll 能實現hook,這是一些服務必需的資料交換行為,而NT架構系統採用一個被稱為"svchost.exe"的程式來執行dll 的載入過程,所有服務dll都統一由這個程式根據特定分組載入記憶體,然而,如今越來越多病毒作者看上了這個系統自動運作的載入程序,因為它永遠也不能被 防毒軟體查殺。


病毒作者將木馬主體寫成一個符合微軟開發文件規範的服務性質稱為:dll 的模組文件,然 後通過一段安裝程式,將木馬dll放入系統目錄,並在服務管理器(SCM)裡註冊自身為通過"svchost.exe"載入的服務 dll 元件之一,為了提高隱蔽性,病毒作者甚至直接替換系統裡某些不太重要而預設開啟的服務載入代碼,如:distributed link tracking client,其預設的啟動語法是"svchost -k netsvcs",如果有個病毒替換了啟動語法為自己建立的 分組"netsvsc",即"svchost -k netsvsc",在這種旁門左道加社會工程學的攻勢下,即使是具備一般解毒經驗的使用者也難以在第一時間內察覺到問題出自服務的啟動項目,於是病毒得以 成功逃離各種防毒軟體的查殺。


目前被發現使用此方法的木馬已經出現,其中一個Process名為"ad1.exe"的廣告程式就是典型例 子,它通過替換"distributed link tracking client"服務的 svchost 啟動項目來躲過一般的手工查殺,同時它自身還是個病毒下載器,一旦系統感染了這個惡意程式,各種木馬都有可能光臨你的機器。


要清理dll木馬,可以借助於第三方管理工具[ process explorer ],利用它的"find handle or dll"功能,能迅速搜索到某個dll依附的Process資訊並終結,讓dll失去載體後就能成功刪除,而dll木馬的文件名為了避免和系統 dll 發生衝突,一般不會起得太專業,甚至有 safaf.dll 、est.dll 這樣的命名出現,或者在某些系統下根本不會出現的文件名,如 kernel.dll、rundll32.dll 等。除了使用[ process explorer ]搜尋並終止進程以外,還可以用 icesword 強行卸載某個Process裡的dll 模組來達到效果。


對 於服務性質的dll,我們仍然使用[ process explorer ]進行查殺,由於它的層次結構,用戶可以很直覺的看到Process的啟動連結,如果一台機器感染了殺不掉的頑固木馬,有經驗的使用者做的第一件事情就是 禁止掉不相關或者不重要的程式和服務在開機時運行,然後使用[ process explorer ]觀察各個進程的情況,通過svchost.exe 啟動的 dll木馬 雖然狡猾,但是它釋放出exe運行時,一切都暴露了:一個svchost.exe 服務進程執行了一個 ad1.exe,還有比這更明顯的嗎?


svchost 的分組資訊位於註冊表的"hkey_local_machine\software\microsoft\windows nt\currentversion\svchost"項目,這是svchost載入dll 時的分組依據,如果用戶發現了一個奇怪的分組資訊,那就要提高警覺了。


隱藏技術發展的顛峰:Rootkit 木馬


隨 著安全技術的發展和電腦用戶群的技術提高,一般的木馬後門越來越難生存,於是一部分有能力的後門作者把眼光投向了系統底層:ring 0。位於ring 0層的是系統核心模組和各種驅動程式模組,所以位於這一層的木馬也是以驅動的形式生存的,而不是一般的exe。後門作者把後門寫成符合wdm規範 (windows driver model)的驅動程式模組,把自身添加進註冊表的驅動程式載入入口,便實現了「無啟動項」運行。一般的Process查看器都只能列舉可執行文件exe 的資訊,所以通過驅動模組和執行文件結合的後門程式便得以生存下來,由於它運行在ring 0級別,擁有與系統核心同等級的許可權,因此它可以更輕易的把自己隱藏起來,無論是進程資訊還是文件體,甚至通訊的端口和流量也能被隱藏起來,在如此強大 的隱藏技術面前,無論是任務管理器還是系統配置實用程式,甚至系統自帶的註冊表工具都失去了效果,這種木馬,就是讓人問之色變的Rootkit。


要 瞭解 Rootkit 木馬的原理,就必須從系統原理說起,我們知道,作業系統是由內核(kernel)和外殼(shell)兩部分組成的,內核負責一切實際的工作,包括cpu 任務調度、記憶體分配管理、設備管理、文件操作等,外殼是基於內核提供的交互功能而存在的介面,它負責指令傳遞和解釋。由於內核和外殼負責的任務不同,它 們的處理環境也不同,因此處理器提供了多個不同的處理環境,把它們稱為運行級別(ring),ring讓程式指令能訪問的電腦資源依次逐級遞減,目的在於 保護電腦遭受意外損害--內核運行於ring 0級別,擁有最完全最底層的管理功能,而到了外殼部分,它只能擁有ring 3級別,這個級別能操作的功能極少,幾乎所有指令都需要傳遞給內核來決定能否執行,一旦發現有可能對系統造成破壞的指令傳遞(例如超越指定範圍的記憶體讀 寫),內核便返回一個「非法越權」標誌,發送這個指令的程式就有可能被終止運行,這就是大部分常見的「非法操作」的由來,這樣做的目的是為了保護電腦免遭 破壞,如果外殼和內核的運行級別一樣,用戶一個不經意的點擊都有可能破壞整個系統。


由於 ring 的存在,除了由系統內核載入的程式以外,由外殼調用執行的一般程式都只能運行在ring 3級別,也就是說,它們的操作指令全部依賴於內核授權的功能,一般的進程查看工具和殺毒軟體也不例外,由於這層機制的存在,我們能看到的進程其實是內核 「看到」並通過相關介面指令(還記得api嗎?)反饋到應用程式的,這樣就不可避免的存在一條數據通道,雖然在一般情況下它是難以被篡改的,但是不能避免 意外的發生,Rootkit正是「製造」這種意外的程式。簡單的說,Rootkit實質是一種「越權執行」的應用程式,它設法讓自己達到和內核一樣的運行 級別,甚至進入內核空間,這樣它就擁有了和內核一樣的訪問許可權,因而可以對內核指令進行修改,最常見的是修改內核枚舉進程的api,讓它們返回的數據始 終「遺漏」Rootkit自身進程的資訊,一般的進程工具自然就「看」不到Rootkit了。更高級的Rootkit還篡改更多api,這樣,用戶就看不 到進程(進程api被攔截),看不到文件(文件讀寫api被攔截),看不到被打開的端口(網路組件sock api被攔截),更攔截不到相關的網路數據包(網路組件ndis api被攔截)了,我們使用的系統是在內核功能支援下運作的,如果內核變得不可信任了,依賴它運行的程式還能信任嗎?


但即使是Rootkit這一類恐怖的寄生蟲,它們也並非所向無敵的,要知道,既然Rootkit是利用內核和ring 0配合的欺騙,那麼我們同樣也能使用可以「越權」的檢查程式,繞過api提供的數據,直接從內核領域裡讀取Process列表,因為所有Process在這裡都不可能把自己隱藏,除非它已經不想運行了。也就是說,內核始終擁有最真實的進程列表和主宰權,只要能讀取這個原始的進程列表,再和進程api枚舉的進程列表對比,便能發現Rootkit進程,由於這類工具也「越權」了,因而對Rootkit進行查殺也就不再是難事,而Rootkit進程一旦被清除,它隱藏自身的措施也就不復存在,內核就能把它「供」出來了,用戶會突然發現那個一直「找不到」的Rootkit程式文件已經老實的呆在文件管理器的視圖裡了。這類工具現在已經很多,例如icesword、patchfinder、gdb等。


道高一尺,魔高一丈,因為目前的主流 Rootkit 檢測工具已經能檢測出許多Rootkit木馬的存在,因此一部分Rootkit作者轉而研究 Rootkit 檢測工具的運行檢測演算法機制,從而製作出新一代更難被檢測到的木馬:futo Rootkit。


優秀檢測工具icesword在futo面前敗下陣來,因為futo編寫者研究的檢測工具原型就是一款與之類似的black & light,所以我們只能換用另一款Rootkit檢測工具darkspy,並開啟「強力模式」,方可正常查殺Rootkit。


但 是由於檢測機制的變化,darkspy要檢測到futo的存在,就必須保證自己的驅動比futo提前載入運行,這就涉及到優先級的問題,也是讓業界感覺不 太滿意的一種方式,因為這樣做的後果會導致系統運行效率下降,不到緊急關頭,都不要輕易採用這種方法,然而現在的瑞星卡卡助手所推廣的「破甲」技術,實現 原理是與之類似的,它也會對系統造成一定影響,因而,這個介於安全和效率之間的選擇,唯有留給用戶自己思考了。


註:一旦木馬利用了Rootkit 技術,就變得十分難以辨認清除。


轉自網路攻防戰




識別及移除惡意程式




查找及移除的免費工具列表


1.檔案完整性檢查:MD5 , Tripwire


2.Process監控:ProcessExplorer , Process Quick Access,KillBox


3.Registry監控:Regmon


4.開機監控:Autoruns , Autostart Viewer


5.File監控:Filemon , FileDate Changer


6.Port監控:TCPView , TDIMon , Fport


7.Network監控:Ethereal , myNetMon , MRTG , NetTools


8.Rootkit偵測:Icesword , RootkitRevealer, F-Secure BlackLight


9.Windows Live CD:WinPE , BartPE


10.多合一檢測工具:Hijackthis , InstallRite


如何識別惡意程式的流程.JPG


如何清除惡意程式的流程.JPG


識別及移除惡意程式其原則與注意事項


1.如果防毒軟體有更新過新的病毒碼就先使用新的病毒碼再掃過一遍


2.關閉WinME,WinXP的系統還原功能


3.在「安全模式」可以刪除病毒及綁架程式,但無法刪除在Boot Mode(出現Logo時)就載入啟動的惡意程式


4.儘量不要馬上刪容易引起當機的系統程式(例如:winlogon.exe,svchost.exe,explorer.exe,lsass.exe, services.exe)萬一真的被注入DLL Injection請使用Live CD(WinPE)光碟開機後再去刪DLL檔案


5.所謂的清除成功是指「開機後沒再出現」其要Disable惡意程式的行為使其不能運作,而不是一定要刪除中毒的所有檔案。 (太花時間)


參考資料:


惡意程式論壇 http://www.malware-test.com/


愛克索夫實驗室 http://x-solve.com/blog


惡意程式最常修改的地方


http://malware-test.com/smf/index.php?topic=1117.0


工具:


1.http://www.microsoft.com/technet/sysinternals/default.mspx


2.http://www.sysinternals.com/SecurityUtilities.html


3.http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=/resources/freetools.htm





4.http://www.spywareinfo.com/~merijn/programs.php





轉自網路攻防戰




病毒加殼技術與脫殼殺毒方法





註:以下文章非本人撰寫為中國大陸網路轉載文章,但因找不到原著作人只能於這特此感謝,如能聯絡上會再加以標註原出處,如著作人覺得不妥請來信告知。


殼是什麼?脫殼又是什麼?這是很多經常感到迷惑和經常提出的問題,其實這個問題一點也不幼稚。當你想聽說脫殼這個名詞並試著去瞭解的時候,說明你已經在各個安全站點很有了一段日子了。下面,我們進入「殼」的世界吧。



一、金蟬脫殼的故事

我 先想講個故事吧。那就是金蟬脫殼。金蟬脫殼屬於三十六計中的混戰計。金蟬脫殼的本意是:寒蟬在蛻變時,本體脫離皮殼而走,只留下蟬蛻還掛在枝頭。此計用於 軍事,是指通過偽裝擺脫敵人,撤退或轉移,以實現我方的戰略目標的謀略。穩住對方,撤退或轉移,決不是驚慌失措,消極逃跑,而是保留形式,抽走內容,穩 住對方,使自己脫離險境達到己方戰略目標,己方常常可用巧妙分兵轉移的機會出擊另一部分敵人。三國時期,諸葛亮六出祁山,北伐中原,但一直未能成功,終於 在第六次北伐時,積勞成疾,在五丈原病死於軍中。 維遵照諸葛亮的吩咐,在諸葛亮死後,秘不發喪,對外嚴密封鎖消息。他帶著靈柩,秘密率部撤退。司馬懿派部隊跟蹤追擊蜀軍。姜維命工匠仿諸葛亮摸樣,雕了一 個木人,羽扇綸巾,穩坐車中。並派楊儀率領部分人馬大張旗鼓,向魏軍發動進攻。魏軍遠望蜀軍,軍容整齊,旗鼓大張,又見諸葛亮穩坐車中,指揮若定,不知蜀 軍又耍什麼花招,不敢輕舉妄動。司馬懿一向知道諸葛亮「詭計多端」,又懷疑此次退兵乃是誘敵之計,於是命令部隊後撤,觀察蜀軍動向。姜維趁司馬懿退兵的大 好時機,馬上指揮主力部隊,迅速安全轉移,撤回漢中。等司馬懿得知諸葛亮已死,再進兵追擊,為時已晚。相信這個故事,大家在大型連續劇《三國演義》裡已經 看過了。呵呵,只是沒有理解得這麼深入罷了!而在駭客入侵技術中,金蟬脫殼則是指:刪除系統運行日誌攻擊者攻破系統後,常刪除系統運行日誌,隱藏自己的痕 跡...呵呵。



二、殼,脫殼,加殼

在自然界中,我想大家對 殼這東西應該都不會陌生了,由上述故事,我們也可見一斑。自然界中植物用它來保護種子,動物用它來保護身體等等。同樣,在一些計算機軟件裡也有一段專門負 責保護軟件不被非法修改或反編譯的程式。它們一般都是先於程式運行,拿到控制權,然後完成它們保護軟件的任務。就像動植物的殼一般 都是在身體外面一樣理所當然(但後來也出現了所謂的「殼中帶籽」的殼)。由於這段程式和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這 樣的程式稱為「殼」了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。 從功能上抽像,軟件的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是一段執行於原始程式前的代碼。原始程式的代碼在加 殼的過程中可能被壓縮、加密……。當加殼後的檔執行時,殼-這段代碼先於原始程式運行,他把壓縮、加密後的代碼還原成原始程式代碼,然後再把執行權交還給 原始代碼。 軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程式真正的OEP(入口點,防止被破解)。關於「殼」以及相關軟件的發展歷史請參閱吳朝相先生的《一切從「殼」開始》。

(一)殼的概念

作 者編好軟件後,編譯成exe可執行文件。 1.有一些版權資訊需要保護起來,不想讓別人隨便改動,如作者的姓名,即為了保護軟件不被破解,通常都是採用加殼來進行保護。 2.需要把程式搞的小一點,從而方便使用。於是,需要用到一些軟件,它們能將exe可執行文件壓縮, 3.在駭客界給木馬等軟件加殼脫殼以躲避殺毒軟件。實現上述功能,這些軟件稱為加殼軟件。

(二)加殼軟件最常見的加殼軟件

ASPACK ,UPX,PEcompact 不常用的加殼軟件WWPACK32;PE-PACK ;PETITE NEOLITE

(三)偵測殼和軟件所用編寫語言的軟件

因為脫殼之前要查他的殼的類型。


1.偵測殼的軟件fileinfo.exe 簡稱fi.exe(偵測殼的能力極強)。


2.偵測殼和軟件所用編寫語言的軟件language.exe(兩個功能合為一體,很棒),推薦language2000中文版(專門檢測加殼類型)。


3.軟件常用編寫語言Delphi,VisualBasic(VB)---最難破,VisualC(VC)。

(四)脫殼軟件

軟 件加殼是作者寫完軟件後,為了保護自己的代碼或維護軟件產權等利益所常用到的手段。目前有很多加殼工具,當然有盾,自然就有矛,只要我們收集全常用脫殼工 具,那就不怕他加殼了。軟件脫殼有手動脫和自動脫殼之分,下麵我們先介紹自動脫殼,因為手動脫殼需要運用彙編語言,要跟蹤斷點等,不適合初學者,但我們 在後邊將稍作介紹。


加殼一般屬於軟件加密,現在越來越多的軟件經過壓縮處理,給漢化帶來許多不便,軟件漢化愛好者也不得不學習掌握這種技能。現在 脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水準要求,涉及到很多彙編語言和軟件調試方面 的知識。而自動就是用專門的 脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要 UNASPACK對付,好處是簡單,缺點是版本更新了就沒用了。另外脫殼就是用專門的脫殼工具來對付,最流行的是PROCDUMP v1.62 ,可對付目前各種壓縮軟件的壓縮檔。在這裡介紹的是一些通用的方法和工具,希望對大家有幫助。我們知道檔的加密方式,就可以使用不同的工具、不同的方法進 行脫殼。下面是我們常常會碰到的加殼方式及簡單的脫殼措施,供大家參考: 脫殼的基本原則就是單步跟蹤,只能往前,不能往後。脫殼的一般流程是:查殼->尋找OEP->Dump->修復 找OEP的一般思路如下: 先看殼是加密殼還是壓縮殼,壓縮殼相對來說容易些,一般是沒有異常,找到對應的popad後就能到入口,跳到入口的方式一般為。 我們知道文件被一些壓縮加殼軟件加密,下一步我們就要分析加密軟件的名稱、版本。因為不同軟件甚至不同版本加的殼,脫殼處理的方法都不相同。



常用脫殼工具:


1、文件分析工具(偵測殼的類型):Fi,GetTyp,peid,pe-scan。


2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid 。


3、dump工具:IceDump,TRW,PEditor,ProcDump32,LordPE。


4、PE文件編輯工具PEditor,ProcDump32,LordPE。


5、重建Import Table工具:ImportREC,ReVirgin。


6、ASProtect脫殼專用工具:Caspr(ASPr V1.1-V1.2有效),Rad(只對ASPr V1.1有效),loader,peid 。


(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脫殼就行了。


(2)ASProtect+aspack:次之,國外的軟件多用它加殼,脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業知識,但最新版現在暫時沒有辦法。


(3)Upx: 可以用UPX本身來脫殼,但要注意版本是否一致,用-D 參數。


(4)Armadill: 可以用SOFTICE+ICEDUMP脫殼,比較煩。


(5)Dbpe: 國內比較好的加密軟件,新版本暫時不能脫,但可以破解。


(6)NeoLite: 可以用自己來脫殼。


(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE來脫殼。


(8)Pecompat: 用SOFTICE配合PEDUMP32來脫殼,但不要專業知識。


(9)Petite: 有一部分的老版本可以用PEDUMP32直接脫殼,新版本脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業知識。


(10)WWpack32: 和PECOMPACT一樣其實有一部分的老版本可以用PEDUMP32直接脫殼,不過有時候資源無法修改,也就無法漢化,所以最好還是用SOFTICE配合 PEDUMP32脫殼。



我 們通常都會使用Procdump32這個通用脫殼軟件,它是一個強大的脫殼軟件,他可以解開絕大部分的加密外殼,還有腳本功能可以使用腳本輕鬆解開特定外 殼的加密文件。另外很多時候我們要用到exe可執行文件編輯軟件ultraedit。我們可以下載它的漢化註冊版本,它的註冊機可從網上搜到。 ultraedit打開一個中文軟件,若加殼,許多漢字不能被認出 ultraedit打開一個中文軟件,若未加殼或已經脫殼,許多漢字能被認出 ultraedit可用來檢驗殼是否脫掉,以後它的用處還很多,請熟練掌握例如,可用它的替換功能替換作者的姓名為你的姓名注意字節必須相等,兩個漢字替 兩個,三個替三個,不足處在ultraedit編輯器左邊用00補。


常見的殼脫法:


(一) aspack殼 脫殼可用unaspack或caspr 1.unaspack ,使用方法類似lanuage,傻瓜式軟件,運行後選取待脫殼的軟件即可. 缺點:只能脫aspack早些時候版本的殼,不能脫高版本的殼 2.caspr第一種:待脫殼的軟件(如aa.exe)和caspr.exe位於同一目錄下,執行windows起始菜單的運行,鍵入 caspr aa.exe脫殼後的文件為aa.ex_,刪掉原來的aa.exe,將aa.ex_改名為aa.exe即可。使用方法類似fi 優點:可以脫aspack任何版本的殼,脫殼能力極強缺點:Dos介面。第二種:將aa.exe的圖標拖到caspr.exe的圖標上***若已偵測出是 aspack殼,用unaspack脫殼出錯,說明是aspack高版本的殼,用caspr脫即可。


(二)upx殼 脫殼可用upx待脫殼的軟件(如aa.exe)和upx.exe位於同一目錄下,執行windows起始菜單的運行,鍵入upx -d aa.exe。


(三)PEcompact殼 脫殼用unpecompact 使用方法類似lanuage傻瓜式軟件,運行後選取待脫殼的軟件即可。


(四)procdump 萬能脫殼但不精,一般不要用 使用方法:運行後,先指定殼的名稱,再選定欲脫殼軟件,確定即可脫殼後的檔大於原文件由於脫殼軟件很成熟,手動脫殼一般用不到。


三、壓縮與脫殼

現 在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水準要求。而自動就稍好些,用專門的脫殼 工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要 UNASPACK對付。很多檔使用了一些壓縮加殼軟件加密過,這就需要對檔進行解壓脫殼處理後,才能漢化。這種壓縮與我們平時接觸的壓縮工具如 winzip,winrar等壓縮不同,winzip和winrar等壓縮後的檔不能直接執行,而這種 EXE 壓縮軟件,EXE檔壓縮後,仍可以運行。這種壓縮工具把檔壓縮後,會在檔開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過 這些都是在內存中完成的,由於微機速度快,我們基本感覺不出有什麼不同。這樣的程式很多,如 The bat,Acdsee,Winxfile等等。


要脫殼就應先瞭解常用壓縮工具有哪些,這樣知己知彼,如今越來越多的軟件商喜歡用壓縮方式發行自己的產品,如The bat!用UPX壓縮,ACDSEE3.0用ASPACK壓縮等。


它有以下因素:

一是: 微 機性能越來越好,執行過程中解壓使人感覺不出來,用戶能接受(給軟件加殼,類似WINZIP 的效果,只不過這個加殼壓縮之後的檔,可以獨立運行,解壓過程完全隱蔽,都在內存中完成。解壓原理,是加殼工具在檔頭裡加了一段指令,告訴CPU,怎 麼才能解壓自己。現在的CPU都很快,所以這個解壓過程你看不出什麼異常。因為軟件一下子就打開了,只有你機器配置非常差,才會感覺到不加殼和加殼後的軟 件運行速度的差別。)。 

二是: 壓縮後軟件體積縮小,便於網絡傳輸。

三是: 增 加破解的難度。首先,加殼軟件不同於一般的winzip,winrar等壓縮軟件.它是壓縮exe可執行檔的,壓縮後的檔可以直接運行.而 winzip,winrar等壓縮軟件可壓縮任何檔,但壓縮後不能直接運行。很多站點不允許上傳可執行檔,而只能上傳壓縮的檔,一方面處於速度考慮,也是 為了安全性考慮。用加殼軟件壓縮的檔就是體積縮小,別的性質沒改變。還是EXE文件,仍可執行,只是運行過程和以前不一樣了。壓縮工具把檔壓縮後,在檔開 頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過這些都是在內存中完成的,由於微機速度快,我們基本感覺不出 有什麼不同。



四﹑加殼與木馬

木 馬危害無窮,但是隨著人們對各種木馬知識的瞭解,殺毒和專殺工具的特殊照顧,使得很多木馬無藏身之地,但很多高手到處賣馬,號稱不會被查殺。它們究竟是如 何躲在我們的系統中的呢? 其實無非對木馬進行「加/脫殼」。對於駭客來說,加/脫殼技術被淋漓盡致地應用到了偽裝木馬客戶端上,目的是為了防止被殺毒軟件反跟蹤查殺和被跟蹤調試, 同時也防止演算法程式被別人靜態分析。最基本的隱藏:不可見窗體+隱藏文件。木馬程式


採用「進程隱藏」技術: 第一代進程隱藏技術:Windows 98的後門 。第二代進程隱藏技術:進程插入,以及其後的Hook技術之外就是跟殺毒軟件對著幹:反殺毒軟件外殼技術了。木馬再狡猾,可是一旦被殺毒軟件定義了特徵 碼,在運行前就被攔截了。要躲過殺毒軟件的追殺,很多木馬就被加了殼,相當於給木馬穿了件衣服,這樣殺毒軟件就認不出來了,但有部分殺毒軟件會嘗試對常用 殼進行脫殼,然後再查殺(小樣,別以為穿 上件馬夾我就不認識你了)。除了被動的隱藏外,最近還發現了能夠主動和殺毒軟件對著幹的殼,木馬在加了這種殼之後,一旦運行,則外殼先得到程式控制權,由 其通過各種手段對系統中安裝的殺毒軟件進行破壞,最後在確認安全(殺毒軟件的保護已被瓦解)後由殼釋放包裹在自己「體內」的木馬體並執行之。對付這種木馬 的方法是使用具有脫殼能力的殺毒軟件對系統進行保護。殼能夠將檔(比如EXE)包住,然後在檔被運行時,首先由殼獲得控制權,然後釋放並運行包裹著的 文件體。很多殼能對自己包住的檔體進行加密,這樣就可以防止殺毒軟件的查殺。比如原先殺毒軟件定義的該木馬的特徵是「12345」,如果發現某檔中含 有這個特徵,就認為該檔是木馬,而帶有加密功能的殼則會對檔體進行加密(如:原先的特徵是「12345」,加密後變成了「54321」,這樣殺毒軟件 當然不能靠檔特徵進行檢查了)。脫殼指的就是將檔外邊的殼去除,恢覆文件沒有加殼前的狀態。


雖然很多殺毒軟件的文件監控都會使程式首次運行時速度 很慢。這是因為:殺毒軟件對壓縮加殼的exe文件監控掃瞄時,都要先「脫殼」。一般壓縮加殼程式,可加密壓縮可執行檔的代碼、數據、輸入表、重定位表、資 源段。通常壓縮後的檔大小隻有原來的50%-70%,但不影響程式的正常使用和所有功能,目的是保護檔不被跟蹤分析,反彙編,脫殼等。所以有時候使用某軟 件給木馬脫殼會失敗,但可換個軟件試下。脫殼後重新加殼或者使用不同加殼的軟件給木馬加多層 殼,均有可能欺騙殺毒軟件,但在經過複雜的多重加殼後,檢測出的結果就不一定準確了,此時就需要「adv.scan」高級掃瞄, pe-scan會分析出被各種加殼工具加殼的可能性。



五﹑加殼與病毒

病 毒要想生存,除了增加自身的變形能力以外,還可與程式加殼壓縮聯繫起來。我們先來看看病毒變形的目的,因為現在的反病毒軟件,基於特徵碼檢測,增加變形能 力,使得特徵碼檢測方法更加困難。那麼,如果再和程式加殼技術結合起來,那麼將使的單單通過添加特徵碼方法解毒徹底失效,解毒時,必須同時更新掃瞄引 擎,而現在並沒有通用的解殼方法。因此加殼壓縮和變形結合起來,將使得反病毒廠商手忙腳亂,也使得反病毒軟件用戶痛苦不堪,頻繁的更新,除了特徵碼,還有 掃瞄引擎。給平常的病毒加個殼,比如用upx,現在通常反病毒軟件,對於常用的加密加殼壓縮程式,都有相應的解殼程式。效果並不好,所以如果病毒本是既是 一好的變形加密加殼壓縮程式,那麼,目的是強迫更新掃瞄引擎,當然也是可以被動態解壓檢測出來的,只是增加瞭解毒的很多工作量。實際上加殼技術不僅僅用於 軟件保護,也可用於好的病毒。好的病毒不一定要非常快的傳播速度,難於檢測,難於查殺更重要一些,就像現在殺毒界的虛擬機技術,也不過是個雛形,有很多的 功能並不能完全虛擬化,同時若加殼代碼本身可變形,同時有多種加殼演算法可供隨機選擇,那麼就很難找出其中的規律以及關係。總之,好的殺毒軟件至少應該具 有 的技術功能之一就是要具備壓縮還原技術:對Pklite、Diet、Exepack、Com2exe、Lzexe、Cpav等幾百種壓縮加殼軟件自動還 原,徹底解除隱藏較深的病毒,避免病毒死灰復燃。


參考引用連結:




安全基礎病毒加殼技術與脫殼殺毒方法


轉自網路攻防戰




Anti-Rootkits 工具整理包




這本書是瞭解 Rootkits 必讀的聖經:

Rootkits: Subverting the Windows Kernel

Rootkit 的定義:

A rootkit is a tool that is designed to hide itself and other processes、 data and/or activity on a system。

引用於此: The definition of a rootkit

維基百科上的解釋:

A rootkit is a set of software tools intended to conceal running processes, files or system data from the operating system。Rootkits have their origin in benign applications, but in recent years have been used increasingly by malware to help intruders maintain access to systems while avoiding detection。

引用於此:Rootkit

什麼是 Rootkit:

Rootkit 由來已久,它源自於UNIX電腦系統,原本是一組指令,是一種可以獲得電腦系統root存取權限的軟體工具組(kit),因此稱為rootkit(也可以 稱為root kit);root是UNIX系統權限最高的帳號,也就是系統管理者帳號的名稱(因此為了安全起見,管理者應該要會關閉root帳號,另外建立權限相當的 帳號)。

通常只有攻擊者者才會想要獲得電腦系統的root存取權限,因此rootkit還有另一個重要的特性,就是必須想盡一切辦法隱 匿攻擊者的所有行為,不能被發現已經被植入或正在執行rootkit;因為只要被發現,管理者當然就會想盡辦法要移除rootkit,攻擊者就無法遂行目 的。

rootkit沒有病毒或蠕蟲的傳染(也就是自我複製並傳播)特性,而是攻擊者伺機將rootkit程式偷偷的裝進目標系統並暗中 啟動rootkit程式,因此攻擊者會採用任何可以達成這種攻擊目的的手法,例如利用開啟的通訊埠等系統弱點,或者暴力破解密碼、甚至利用木馬程式將 rootkit程式挾帶進入系統。

rootkit都被歸類在惡意軟體(malicious software,malware)的範疇,原因之一,是攻擊者會合併使用rootkit和其他惡意軟體,例如結合後門程式,就可以在目標系統留下後門,以便後續還能控制目標系統,或者竊取目標系統裡的資料。

rootkit 程式會用盡所有的技術或技巧來隱藏自己和所挾帶的惡意軟體,讓使用者不知道也找不到電腦裡的rootkit程式,而這往往也使得rootkit很難被移 除,因此如果電腦被植入rootkit,大多建議清除並重新安裝系統,因為敵暗我明,很難確定是不是已經將所有的rootkit程式檔案都清除乾淨,而且 系統檔案也可能已經遭到rootkit修改。

雖然源自於UNIX系統,但是包括Windows在內的電腦系統也已漸漸出現數種 rootkit,因此現在的rootkit也不必然得是指令,只要能獲得、執行系統高權限使用者帳號,而且不被發現的軟體工具組,或沿用相同概念而撰寫的 程式,都稱為rootkit。尤其近期的rootkit,都特別著重在隱身的技巧,而已經有越來越多的間諜軟體、病毒、蠕蟲、後門等惡意軟體,也開始加入 rootkit的隱身功能。

Rootkit 最有名的案例:

Sony DRM Rootkit 的威脅與發現

唱 片業者Sony BMG的音樂光碟防拷功能竟然採用了rootkit技術;Windows系統專家Mark Russinovich在無意中發現自己購買的Sony BMG音樂光碟卻隱藏著rootkit,同時也發現Sony BMG所使用的這項技術也可能遭到其他惡意軟體利用。Sony BMG的作法在美國引發了相當的爭議,也因此讓更多人知道或注意到rootkit所可能帶來的資安威脅。

Sony又被抓到在產品中使用Rootkit程式

資安業者F-Secure在近日提出警告,指出Sony採用類似rootkit技術,其MicroVault USB隨身碟驅動程式會在Windows內建立隱藏檔案,可能被駭客用來藏匿惡意程式。F-Secure安全研究人員Mika Tolvanen在部落格中 指出,當使用者買了Sony的MicroVault USB隨身碟後,該隨身碟提供指紋辨識功能,並含在驅動程式中,一旦使用者安裝了該驅動程式,就會在視窗中建立一個隱藏目錄及檔案,假設駭客知道該檔名, 就能透過Command Prompt進入該目錄,並建立一個新的隱藏檔,而且可以執行其中的檔案。

Rootkits 列表:

Stealth Malware List

--------------------------------------------------------------------

Anti-Rootkits 工具整裡包:

針對 Linux 環境:

Rootkit Hunter

chkrootkit

針對 Windows 環境:

偵測用免費工具:

Windows Sysinternals RootkitRevealer

System Virginity Verifier (SVV)

Rootkit Unhooker

ThreatFire

GMER

防毒軟體廠商的免費工具:

TrendMicro Rootkit Buster

McAfee Rootkit Detective

Sophos Anti-Rootkit

Panda Anti-Rootkit

F-Secure BlackLight

中國大陸的免費工具:

冰刃 IceSword

DarkSpy Anti-Rootkit

其他族繁不及備載的工具:

Rootkit Detection & Removal Software

--------------------------------------------------------------------

相關網站:

Rootkit .com

Sony DRM Rootkit的威脅與發現

Windows rootkits of 2005, part one

Windows rootkits of 2005, part two

Windows rootkits of 2005, part three

The Benchmark of Anti-rootkit Software?

Re:The Benchmark of Anti-rootkit Software?

Sony 又有Rootkit問題?

Sony隨身碟軟體存在漏洞,讓電腦易遭駭客攻擊

Sony又被抓到在產品中使用Rootkit程式

免費[線上掃毒]的網址與可疑檔案上傳分析整理包




[線上掃毒]是作為與原有裝置在單機上的防毒軟體交叉比對之用,但並不是拿來取代單機上的防毒軟體。


線上掃毒的優點



  • 拿來與原有的防毒軟體做是否中毒的交叉比對。

  • 評估該防毒軟體掃毒的偵測率。


線上掃毒的缺點



  • 名為[ 線上 ]所以絕大多數必須要在網路有通的情況下才能使用。

  • 線上掃毒掃瞄時的效能相較於該軟體的單機版較差。

  • 所需要耗費的掃瞄時間相較於該軟體的單機版較久。

  • 線上掃毒必須依賴瀏覽器,如果該瀏覽器掛了,則掃毒的process也會隨著停止。


註1:使用線上掃毒時,如果原本的防毒軟體出現異常警告,應屬正常現象。如不放心那再換其它家線上掃毒使用。


註2:絕大多數線上掃毒會要求你安裝[ ActiveX 控制項 ]元件,安裝太多可能會造成[ IE 瀏覽器當機 ],所以請斟酌使用。


--------------------------------------------------------------------


可疑檔案上傳分析:


利用各家防毒軟毒軟體的掃瞄引擎,同時對單一一個檔案,作是否為病毒、木馬檔案的分析可協助檢測確認檔案本身是否異常。


VirusTotal 免費線上病毒和惡意軟體掃瞄


http://www.virustotal.com/zh-tw/


VirSCAN.org-線上防毒引擎掃瞄網站 v1.00 目前支援 36 款防毒引擎


http://www.virscan.org/


Online malware scan


http://virusscan.jotti.org/


--------------------------------------------------------------------


趨勢科技 HouseCall™ 線上掃毒


http://www.trendmicro.com/hc_intro/default.asp


http://www.trendsecure.com/portal/zh-TW/tools/security_tools/housecall


http://housecall.trendmicro.com/us/index.html


賽門鐵克 諾頓


http://security.symantec.com/sscv6/default.asp?productid=symhome&langid=ch&venid=sym


McAfee 邁克菲


http://tw.mcafee.com/root/mfs/default.asp?cid=16943


http://us.mcafee.com/root/catalog.asp?catid=free


卡巴斯基


http://kaspersky.kl.edu.tw/webscan/index.html


http://www.kaspersky.com/virusscanner


CA eTrust PestScan


http://www3.ca.com/securityadvisor/virusinfo/scan.aspx


CA eTrust Scan


http://www3.ca.com/securityadvisor/pestscan/


F-Secure


http://support.f-secure.com/enu/home/ols.shtml


Panda 熊貓


http://www.pandasoftware.com.tw/html/activescan.htm


TrojanScan


http://www.windowsecurity.com/trojanscan/


EarthLink Spyware Scan


http://www.earthlink.net/software/nmfree/spyscan/


金山毒霸


http://shadu.kingsoft.com/index1.htm?sid=0&uid=2801&adid=410


江民在線


http://online.jiangmin.com/index.asp


瑞星 免費查毒


http://online.rising.com.cn/free/index.htm


微軟 Windows Live OneCare 安全掃瞄


http://onecare.live.com/site/zh-tw/default.htm


Free online Trojan Scanner


http://www.windowsecurity.com/trojanscan/


BitDefender


http://www.bitdefender.com/scan8/ie.html


http://www.bitdefender.com/scan-online/index.html


a-squared Web Malware Scanner


http://www.emsisoft.com/en/software/ax/?scan=1


Webroot Software Spy Sweeper Free Scan


http://www.webroot.com/En_US/land-spysweeper-freescan.html


SpywareInfo Online Spyware Detection


http://www.spywareinfo.com/xscan.php




轉自網路攻防戰




免費[網站惡意程式]線上掃瞄與監控



免費服務網址:

阿碼科技 HackAlert 企業網站免費24小時監控!

服務說明:

HackAlert™ is a site monitoring service that identifies malicious code injection on web applications. It is a 100 percent non-intrusive solution that provides real-time application risk assessment and let's you know instantly about hijacking attempts.

HackAlert_01.jpg

該服務的網頁。

HackAlert_02.jpg

如果你沒有檢測用的帳號的話,首先你必須先註冊一個來使用。

註:E-mail 要確實填好,必須透過該mail 來作帳號啟用的確認,以及收到掃瞄報告。

HackAlert_03.jpg

使用檢測用的帳號登入後,請點選[ Add URL(s) ],來新增一個需要檢測的網址。

HackAlert_04.jpg

在這個地方輸入網址的URL,免費服務的帳號最多可以輸入二個檢測的網址URL。

註:該網址輸入時必須將[ http:// 或 https:// ]這個輸入在網址前面才接受。

HackAlert_05.jpg

確認後按[ Next ]。

HackAlert_06.jpg

輸入檢測的[ 日期、時間 ]。

註:如果你的網站很大很多網頁,請選個離峰時間比較不會影響網站的效能。

HackAlert_07.jpg

完成後就等時間到囉。

HackAlert_08.jpg

最後報告


轉自網路攻防戰



certcities.com 證照排行榜



#10: Linux Professional Institute Certification, Level 2 (LPIC 2)
Vendor: Linux Professional Institute
Reader Interest Score (out of 20): 10
Buzz Score (out of 10): 5
Total: 15

#9: Systems Security Certified Practitioner (SSCP)
Vendor: (ISC)2
Reader Interest Score (out of 20): 13
Buzz Score (out of 10): 4
Total: 17

#8: MCSE: Security
Vendor: Microsoft
Reader Interest Score (out of 20): 12
Buzz Score (out of 10): 6
Total: 18

#7 Cisco Certified Network Professional
Vendor: Cisco
Reader Interest Score (out of 20): 12
Buzz Score (out of 10): 7
Total: 19

#6: Cisco Certified Internetwork Expert
Vendor: Cisco
Reader Interest Score (out of 20): 11
Buzz Score (out of 10): 9
Total: 20

#4 (TIE): Cisco Certified Security Professional (CCSP), Project Management Professional (PMP)
Vendors: Cisco, Project Management Institute
Reader Interest Score (out of 20): 13, 14
Buzz Score (out of 10): 8, 7
Total: 21

#3: Microsoft Certified Architect
Vendor: Microsoft
Reader Interest Score (out of 20): 15
Buzz Score (out of 10): 7
Total: 22

#2: Microsoft Certified Technical Specialist: SQL & .NET
Vendor: Microsoft
Reader Interest Score (out of 20): 18
Buzz Score (out of 10): 5
Total: 23

#1: Red Hat Certified Engineer
Vendor: Red Hat
Reader Interest Score (out of 20): 17
Buzz Score (out of 10): 8
Total: 25

恭喜RHCE,怎麼沒有2007、2008的排行??

Top 15 薪情證照排行榜



1. PMI Project Management Professional (PMP)

With an average annual salary of $101,695, the PMP certification from the Project Management Institute (PMI) organization tops the list of highest paying certifications for the current year.

2. PMI Certified Associate in Project Management (CAPM)

Next highest on the list of highest paying certifications is PMI's Certified Associate in Project Management (CAPM). The average annual salary for CAPM holders that were surveyed is $101,103.

3. ITIL v2 - Foundations

With an annual average salary of $95,415 the ITIL v2 Foundations certification came up third on the list of highest paying certifications. ITIL stands for the IT Infrastructure Library. The ITIL certification is designed to show expertise in ITIL service support and service delivery.

4. Certified Information Systems Security Professional (CISSP)

Coming in at a close 4th on the list of highest paying certifications is the Certified Information Systems Security Professional or CISSP certification from (ISC)2. The average annual reported salary was $94,018.

5. Cisco CCIE Routing and Switching

At $93,500 per year average annual salary, the Cisco CCIE Routing and Switching certification came in 5th on the list of highest paying certifications in the technology industry.

6. Cisco CCVP - Certified Voice Professional

Number six on the list of the highest paying certifications is the Cisco CCVP or Cisco Certified Voice Professional. The average annual salary of CCVP respondents was $88,824.

7. ITIL v3 - ITIL Master

The ITIL v3 certification - the ITIL Master - came in 7th on the list of the highest paying technical certifications. The average annual salary for ITIL Master certification holders was $86,600.

8. MCSD - Microsoft Certified Solution Developer

The MCSD or Microsoft Certified Solution Developer certification pays an average of $84,522. This puts the MCSD certification at number 8 on the list of highest paying certifications in technology.

9. Cisco CCNP - Cisco Certified Network Professional

Cisco Certified Network professional or CCNP certification is number 9 on the list of highest paying technical certifications. The average annual salary reported by CCNP holders is $84,161.

10. Red Hat Certified Engineer

The Red Hat Certified Engineer (RGCE) came in at number 10 on the list of highest paying certifications. The average annual salary reported by Red Hat Certified Engineers is $83,692.

11. MCITP - Microsoft Certified IT Professional (Enterpeise)

The MCIPT certification (Enterprise), or Microsoft Certified IT Professional - Enterprise Support comes in at number 11 on the list of highest paying technical certifications. (The MCITP Database is number 14, see below). The average MCITP Enterprise salary reported was $82,941.

12. Cisco CCSP - Cisco Certified Security Professional

Coming in at number 12 on the list of the highest paying technical certifications is the Cisco CCSP or Cisco Certified Security Professional. The average annual salary reported by CCSP holders is $80,000.

13. MCAD - Microsoft Certified Applications Developer

With an average annual salary of $79,444, the MCAD certification, or Microsoft Certified Application Developer certification, is number 13 on the list of highest paying certifications in technology.

14. MCITP - Microsoft Certified IT Professional (Database)

The MCIPT certification (Database), or Microsoft Certified IT Professional - Database comes in at number 14 on the list of highest paying technical certifications. (The MCITP Enterprise Support is number 11, above). The average MCITP Database salary reported was $77,000.

15. MCDBA - Microsoft Certified Database Administrator

The Microsoft Certified Database Administrator, or MCDBA, comes in at number 15 on the list of highest paying technical certifications. The average annual salary reported by MCDBA respondents is $76,960.



行為偵測技術已成防毒軟體防護技術主流



概述

最近這幾年,已經很少看見大規模的惡意程式感染或傳播,取而代之的是目標式攻擊(Target Attack)的惡意程式,而且大部分是以賺取金錢為目的。那惡意程式的數量減少了嗎?其實並沒有,反而增加了非常多,多到令防毒軟體公司疲於更新惡意程 式特徵碼,但也無法有效地或即時地保護他們的客戶免於中毒。

各位會發現今年新版本的防毒軟體多了一個主要的功能 — 行為偵測防護。大約四、五年前,就有人提出這個構想,但防毒軟體公司認為這個技術太容易造成誤判和干擾使用者行為,但為什麼四、五年後,防毒軟體公司會將此技術加入防毒軟體中呢?因為傳統偵測方式已經無法有效處理大量的惡意程式樣本和未知惡意程式樣本

現今防毒軟體的困境

現今防毒軟體有下面幾個主要的難題,使得防毒軟體都無法有效地偵測到這些惡意程式:

  • 惡意檔案被一種或多種加殼程式(Packer Program)壓縮過
  • 惡意程式產生器所生成的檔案
  • 惡意程式使用隱匿技術 (Rootkit Technique)
  • 惡意程式使用DLL injection的技術
  • 目標式攻擊的惡意程式樣本收集不易
  • 無法有效清除已感染惡意程式的系統 (大部分的防毒軟體都無法有效清除惡意程式)
  • 編過碼的惡意Script (如JavaScript, VBScript等)
  • 傳統的偵測方式(特徵碼)已無法有效處理每日收集到的惡意程式樣本數量(亦即很多樣本都沒有時間建立特徵碼)

防毒軟體偵測率的迷思

大部分的人應該都認為防毒軟體的偵測率越高越好,所以,當選擇防毒軟體時,只看此項目,而忽視了其他項目(或其背後所隱藏的含意),其實,這是種迷思:

  • 所有防毒軟體測試機構所使用的測試樣本都是已知的惡意程式(除非有一種比較好的方法),其中包含許多N年前的老舊樣本或Zoo病毒。我們無法估計 到底有多少未知的惡意程式存在網際網路上,所以,這裡所說的偵測率只能當成一種參考(或是說防毒軟體公司提供惡意程式特徵碼的速度,也許有人會反對此說 法)。

  • 到底是被特徵碼偵測到的,還是被啟發式掃瞄的特徵碼偵測到的呢?這很重要,因為它所隱含的意義是高或低誤判率。如果是被啟發式掃瞄偵測到的,根據其設定值,會出現不同的誤判率(誤判率不可能為零)。
  • 防毒軟體測試機構技術能力不足,所以,只能提供此測試報告。只要能收集到大量的惡意程式樣本,任何人便可以進行此項測試。

惡意程式感染生命週期

傳統惡意程式偵測方式,往往必須收集到樣本,才能建立特徵碼,然後,經由病毒碼更新後,才能保護客戶系統或網路之安全,但從收集樣本至病毒碼更新期間是一段空窗期,亦即,你的系統或網路無法有效防禦此惡意程式的攻擊,所以,如何縮短此空窗期,也是一個很重要的課題。

什麼是行為偵測技術

簡單地說,就是監控系統任何活動,包含檔案/註冊碼/系統服務之新增/刪除/修改、執行程序之新增/終止等等。當惡意程式/正常應用程式執行時,使得系統產生變化,防毒軟體行為偵測防護就會根據其預設規則做相對應之處理動作(下圖是一個例子)。

行為偵測技術可以實作在系統使用者模式或核心模式,其中以系統核心模式的防護功效較佳,相對地,如果所撰寫的程式碼品質不佳,很容易造成系統死當或出現死亡的藍色畫面(BSOD),通常必須經過一段很長時間的測試驗證,才能穩定其程式碼品質。

大部分的防毒軟體行為偵測技術皆實作在系統核心模式(這也就是為什麼防毒軟體公司不敢隨便提供此技術給他們客戶的原因,因為必須確保其品質),但大部分的反間諜軟體皆實作在系統使用者模式(已經有些反間諜軟體變更至系統核心模式),這也就是為什麼防毒軟體的防護能力比反間諜軟體較佳的原因之一。

惡意程式攔截點及服務產業分佈情形

根據趨勢科技的統計(期間:7/31/2006~6/30/2007,地區:台灣,電腦數目:35萬台,病毒記錄:123,050,171 筆),大部分惡意程式攔截點發生在用戶端及伺服器端,佔了96%,此數字讓人覺得驚訝,難道,他們都沒有安裝閘道端的防毒軟體嗎?

行為偵測技術適合哪類的防毒軟體

基本上,行為偵測技術較適合加入用戶端的防毒軟體,因為行為偵測技術是根據惡意程式/正常應用程式執行時,對系統產生的變化做相對應之處理動


轉自大砲開講