特洛伊木馬比任何其他惡意代碼都要危險,要保障安全,最好的辦法就是熟悉特洛伊木馬的類型、工作原理,掌握如何檢測和預(yù)防這些不懷好意的代碼。
一、初識特洛伊木馬
特洛伊木馬是一種惡意程序,它們悄悄地在宿主機(jī)器上運(yùn)行,就在用戶毫無察覺的情況下,讓攻擊者獲得了遠(yuǎn)程訪問和控制系統(tǒng)的權(quán)限。一般而言,大多數(shù)特洛伊木馬都模仿一些正規(guī)的遠(yuǎn)程控制軟件的功能,如Symantec的pcAnywhere,但特洛伊木馬也有一些明顯的特點(diǎn),例如它的安裝和操作都是在隱蔽之中完成。攻擊者經(jīng)常把特洛伊木馬隱藏在一些游戲或小軟件之中,誘使粗心的用戶在自己的機(jī)器上運(yùn)行。最常見的情況是,上當(dāng)?shù)挠脩粢磸牟徽?guī)的網(wǎng)站下載和運(yùn)行了帶惡意代碼的軟件,要么不小心點(diǎn)擊了帶惡意代碼的郵件附件。
特洛伊木馬攻擊者既可以隨心所欲地查看已被入侵的機(jī)器,也可以用廣播方式發(fā)布命令,指示所有在他控制之下的特洛伊木馬一起行動,或者向更廣泛的范圍傳播,或者做其他危險的事情。實際上,只要用一個預(yù)先定義好的關(guān)鍵詞,就可以讓所有被入侵的機(jī)器格式化自己的硬盤,或者向另一臺主機(jī)發(fā)起攻擊。攻擊者經(jīng)常會用特洛伊木馬侵占大量的機(jī)器,然后針對某一要害主機(jī)發(fā)起分布式拒絕服務(wù)攻擊(Denial of Service,即DoS),當(dāng)受害者覺察到網(wǎng)絡(luò)要被異乎尋常的通信量淹沒,試圖找出攻擊者時,他只能追蹤到大批懵然不知、同樣也是受害者的DSL或線纜調(diào)制解調(diào)器用戶,真正的攻擊者早就溜之大吉。
二、極度危險的惡意程序
對于大多數(shù)惡意程序,只要把它們刪除,危險就算過去,威脅也不再存在,但特洛伊木馬有些特殊。特洛伊木馬和病毒、蠕蟲之類的惡意程序一樣,也會刪除或修改文件、格式化硬盤、上傳和下載文件、騷擾用戶、驅(qū)逐其他惡意程序,例如,經(jīng)??梢钥吹焦粽甙哉急蝗肭謾C(jī)器來保存游戲或攻擊工具,用戶所有的磁盤空間幾乎都被侵占殆盡,但除此之外,特洛伊木馬還有其獨(dú)一無二的特點(diǎn)——竊取內(nèi)容,遠(yuǎn)程控制——這使得它們成為最危險的惡意軟件。
首先,特洛伊木馬具有捕獲每一個用戶屏幕、每一次鍵擊事件的能力,這意味著攻擊者能夠輕松地竊取用戶的密碼、目錄路徑、驅(qū)動器映射,甚至醫(yī)療記錄、銀行帳戶和信用卡、個人通信方面的信息。如果PC帶有一個麥克風(fēng),特洛伊木馬能夠竊聽談話內(nèi)容。如果PC帶有攝像頭,許多特洛伊木馬能夠把它打開,捕獲視頻內(nèi)容——在惡意代碼的世界中,目前還沒有比特洛伊木馬更威脅用戶隱私的,凡是你在PC前所說、所做的一切,都有可能被記錄。
一些特洛伊木馬帶有包嗅探器,它能夠捕獲和分析流經(jīng)網(wǎng)卡的每一個數(shù)據(jù)包。攻擊者可以利用特洛伊木馬竊取的信息設(shè)置后門,即使木馬后來被清除了,攻擊者仍可以利用以前留下的后門方便地闖入。
常見的特洛伊木馬,例如Back Orifice和SubSeven等,都是多用途的攻擊工具包,功能非常全面,包括捕獲屏幕、聲音、視頻內(nèi)容的功能。這些特洛伊木馬可以當(dāng)作鍵記錄器、遠(yuǎn)程控制器、FTP服務(wù)器、HTTP服務(wù)器、Telnet服務(wù)器,還能夠?qū)ふ液透`取密碼。攻擊者可以配置特洛伊木馬監(jiān)聽的端口、運(yùn)行方式,以及木馬是否通過email、IRC或其他通信手段聯(lián)系發(fā)起攻擊的人。一些危害大的特洛伊木馬還有一定的反偵測能力,能夠采取各種方式隱藏自身,加密通信,甚至提供了專業(yè)級的API供其它攻擊者開發(fā)附加的功能。由于功能全面,所以這些特洛伊木馬的體積也往往較大,通常達(dá)到100 KB至300 KB,相對而言,要把它們安裝到用戶機(jī)器上而不引起任何人注意的難度也較大。
對于功能比較單一的特洛伊木馬,攻擊者會力圖使它保持較小的體積,通常是10 KB到30 KB,以便快速激活而不引起注意。這些木馬通常作為鍵記錄器使用,它們把受害用戶的每一個鍵擊事件記錄下來,保存到某個隱藏的文件,這樣攻擊者就可以下載文件分析用戶的操作了。還有一些特洛伊木馬具有FTP、Web或聊天服務(wù)器的功能。通常,這些微型的木馬只用來竊取難以獲得的初始遠(yuǎn)程控制能力,保障最初入侵行動的安全,以便在不太可能引起注意的適當(dāng)時機(jī)上載和安裝一個功能全面的大型特洛伊木馬。
隨便找一個Internet搜索網(wǎng)站,搜索一下關(guān)鍵詞Remote Access Trojan,很快就可以得到數(shù)百種特洛伊木馬——種類如此繁多,以至于大多數(shù)專門收集特洛伊木馬的Web網(wǎng)站不得不按照字母順序進(jìn)行排列,每一個字母下有數(shù)打甚至一百多個木馬。下面我們就來看看兩種最流行的特洛伊木馬:Back Orifice和SubSeven。
■ Back Orifice
1998年,Cult of the Dead Cow開發(fā)了Back Orifice。這個程序很快在特洛伊木馬領(lǐng)域出盡風(fēng)頭,它不僅有一個可編程的API,還有許多其他新型的功能,令許多正規(guī)的遠(yuǎn)程控制軟件也相形失色。Back Orifice 2000(即BO2K)按照GNU GPL(General Public License)發(fā)行,希望能夠吸引一批正規(guī)用戶,以此與老牌的遠(yuǎn)程控制軟件如pcAnywhere展開競爭。
但是,它默認(rèn)的隱蔽操作模式和明顯帶有攻擊色彩的意圖使得許多用戶不太可能在短時間內(nèi)接受。攻擊者可以利用BO2K的服務(wù)器配置工具可以配置許多服務(wù)器參數(shù),包括TCP或UDP、端口號、加密類型、秘密激活(在Windows 9x機(jī)器上運(yùn)行得較好,在Windows NT機(jī)器上則略遜一籌)、密碼、插件等。
默認(rèn)的bo_peep.dll插件允許攻擊者遠(yuǎn)程控制機(jī)器的鍵盤和鼠標(biāo)。就實際應(yīng)用方面而言,Back Orifice對錯誤的輸入命令非常敏感,經(jīng)驗不足的新手可能會使它頻繁地崩潰,不過到了經(jīng)驗豐富的老手那里,它又會變得馴服而又強(qiáng)悍。
■ SubSeven
SubSeven可能比Back Orifice還要受歡迎,這個特洛伊木馬一直處于各大反病毒軟件廠商的感染統(tǒng)計榜前列。SubSeven可以作為鍵記錄器、包嗅探器使用,還具有端口重定向、注冊表修改、麥克風(fēng)和攝像頭記錄的功能。圖二顯示了一部分SubSeven的客戶端命令和服務(wù)器配置選項。
SubSeven具有許多令受害者難堪的功能:攻擊者可以遠(yuǎn)程交換鼠標(biāo)按鍵,關(guān)閉/打開Caps Lock、Num Lock和Scroll Lock,禁用Ctrl+Alt+Del組合鍵,注銷用戶,打開和關(guān)閉CD-ROM驅(qū)動器,關(guān)閉和打開監(jiān)視器,翻轉(zhuǎn)屏幕顯示,關(guān)閉和重新啟動計算機(jī),等等。
如果一個企業(yè)網(wǎng)絡(luò)曾經(jīng)遭受病毒和Email蠕蟲的肆虐,那么這個網(wǎng)絡(luò)很可能也是特洛伊木馬的首選攻擊目標(biāo)。由于木馬會被綁定程序和攻擊者加密,因此對于常規(guī)的反病毒軟件來說,查找木馬要比查找蠕蟲和病毒困難得多。另一方面,特洛伊木馬造成的損害卻可能遠(yuǎn)遠(yuǎn)高于普通的蠕蟲和病毒。因此,檢測和清除特洛伊木馬是系統(tǒng)管理員的首要任務(wù)。
要反擊惡意代碼,最佳的武器是最新的、成熟的病毒掃描工具。掃描工具能夠檢測出大多數(shù)特洛伊木馬,并盡可能地使清理過程自動化。許多管理員過分依賴某些專門針對特洛伊木馬的工具來檢測和清除木馬,但某些工具的效果令人懷疑,至少不值得完全信任。不過,Agnitum的Tauscan確實稱得上頂級的掃描軟件,過去幾年的成功已經(jīng)證明了它的效果。
特洛伊木馬入侵的一個明顯證據(jù)是受害機(jī)器上意外地打開了某個端口,特別地,如果這個端口正好是特洛伊木馬常用的端口,木馬入侵的證據(jù)就更加肯定了。一旦發(fā)現(xiàn)有木馬入侵的證據(jù),應(yīng)當(dāng)盡快切斷該機(jī)器的網(wǎng)絡(luò)連接,減少攻擊者探測和進(jìn)一步攻擊的機(jī)會。打開任務(wù)管理器,關(guān)閉所有連接到Internet的程序,例如Email程序、IM程序等,從系統(tǒng)托盤上關(guān)閉所有正在運(yùn)行的程序。注意暫時不要啟動到安全模式,啟動到安全模式通常會阻止特洛伊木馬裝入內(nèi)存,為檢測木馬帶來困難。
大多數(shù)操作系統(tǒng),當(dāng)然包括Windows,都帶有檢測IP網(wǎng)絡(luò)狀態(tài)的Netstat工具,它能夠顯示出本地機(jī)器上所有活動的監(jiān)聽端口(包括UDP和TCP)。打開一個命令行窗口,執(zhí)行“Netstat -a”命令就可以顯示出本地機(jī)器上所有打開的IP端口,注意一下是否存在意外打開的端口(當(dāng)然,這要求對端口的概念和常用程序所用的端口有一定的了解)。
圖三顯示了一次Netstat檢測的例子,檢測結(jié)果表明一個Back Orifice使用的端口(即31337)已經(jīng)被激活,木馬客戶程序使用的是遠(yuǎn)程機(jī)器(ROGERLAP)上的1216端口。除了已知的木馬常用端口之外,另外還要特別留意未知的FTP服務(wù)器(端口21)和Web服務(wù)器(端口80)。
Netstat命令和端口枚舉工具非常適合于檢測一臺機(jī)器,但如果要檢測的是整個網(wǎng)絡(luò),又該怎么辦?大多數(shù)入侵檢測系統(tǒng)(Intrusion Detection System,IDS)都具有在常規(guī)通信中捕獲常見特洛伊木馬數(shù)據(jù)包的能力。FTP和HTTP數(shù)據(jù)具有可識別的特殊數(shù)據(jù)結(jié)構(gòu),特洛伊木馬數(shù)據(jù)包也一樣。只要正確配置和經(jīng)常更新IDS,它甚至能夠可靠地檢測出經(jīng)過加密處理的Back Orifice和SubSeven通信。請參見http://www.snort.org,了解常見的源代碼開放IDS工具。
五、處理遺留問題
檢測和清除了特洛伊木馬之后,另一個重要的問題浮現(xiàn)了:遠(yuǎn)程攻擊者是否已經(jīng)竊取了某些敏感信息?危害程度多大?要給出確切的答案很困難,但你可以通過下列問題確定危害程度。首先,特洛伊木馬存在多長時間了?文件創(chuàng)建日期不一定值得完全信賴,但可資參考。利用Windows資源管理器查看特洛伊木馬執(zhí)行文件的創(chuàng)建日期和最近訪問日期,如果執(zhí)行文件的創(chuàng)建日期很早,最近訪問日期卻很近,那么攻擊者利用該木馬可能已經(jīng)有相當(dāng)長的時間了。
其次,攻擊者在入侵機(jī)器之后有哪些行動?攻擊者訪問了機(jī)密數(shù)據(jù)庫、發(fā)送Email、訪問其他遠(yuǎn)程網(wǎng)絡(luò)或共享目錄了嗎?攻擊者獲取管理員權(quán)限了嗎?仔細(xì)檢查被入侵的機(jī)器尋找線索,例如文件和程序的訪問日期是否在用戶的辦公時間之外?
在安全要求較低的環(huán)境中,大多數(shù)用戶可以在清除特洛伊木馬之后恢復(fù)正常工作,只要日后努力防止遠(yuǎn)程攻擊者再次得逞就可以了。至于安全性要求一般的場合,最好能夠修改一下所有的密碼,以及其他比較敏感的信息(例如信用卡號碼等)。
在安全性要求較高的場合,任何未知的潛在風(fēng)險都是不可忍受的,必要時應(yīng)當(dāng)調(diào)整管理員或網(wǎng)絡(luò)安全的負(fù)責(zé)人,徹底檢測整個網(wǎng)絡(luò),修改所有密碼,在此基礎(chǔ)上再執(zhí)行后繼風(fēng)險分析。對于被入侵的機(jī)器,重新進(jìn)行徹底的格式化和安裝。
特洛伊木馬造成的危害可能是非常驚人的,由于它具有遠(yuǎn)程控制機(jī)器以及捕獲屏幕、鍵擊、音頻、視頻的能力,所以其危害程度要遠(yuǎn)遠(yuǎn)超過普通的病毒和蠕蟲。深入了解特洛伊木馬的運(yùn)行原理,在此基礎(chǔ)上采取正確的防衛(wèi)措施,只有這樣才能有效減少特洛伊木馬帶來的危害。