Sony DRM Rootkit的威脅與發現

作者: 賴榮樞
http://www.goodman-lai.idv.tw

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

本頁內容

什麼是Rootkit
rootkit的類型、偵測與移除
發現Sony DRM 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的類型、偵測與移除

諸如Windows或UNIX等作業系統都有「使用者模式」(user mode)和「核心模式」(kernel mode)等執行模式,rootkit也根據作業系統的這項特性,分成「應用層」(application level)和「核心層」(kernel level)等兩種;這兩種rootkit程式各以不同的技巧來隱匿自己暗藏於系統的事實。

應用層rootkit程式會以假冒的程式換掉一般的正常程式,或者利用hook等各種方法更改正常程式的功能。核心層rootkit程式會更換或更改系統核心,因此需要利用驅動程式(Windows)或可載入模組(Linux)才能達到目的。相較之下,核心層rootkit程式比應用層rootkit程式難編寫,但也更不易偵測。

rootkit不容易偵測,原因在於rootkit所在的系統或某些程式已經被修改過,也就是說,系統可能已經被rootkit改成會一起欺瞞使用者或偵測程式。例如要列出資料夾裡的檔案或執行中的行程來檢視系統是否有異狀,但如果系統已經被rootkit更改,那麼列出來的檔案和行程可能就不是實際的情形。

無論如何,偵測rootkit程式的方法分成「特徵辨識」(signature-based)和「行為辨識」(behavior-based)兩大類(當然也可以混合使用):特徵辨識是找出已知rootkit程式的一段二進位碼作為辨識特徵,與掃毒程式利用病毒碼辨識病毒的方式類似;行為辨識則是搜尋rootkit程式隱藏的元素,包括檔案或記錄。

如果想要有效偵測rootkit程式,應該是先關閉系統,並且以另一個媒體的系統來開機,例如可以開機並可載入系統的光碟片或USB隨身碟,然後掃描系統所有的磁碟。此外,rootkit偵測程式也可以利用MD5之類的checksum技巧來掃描整個系統的檔案,以確定是否有檔案被動過手腳。

微軟研究院也發表過一項稱為Strider GhostBuster的rootkit偵測技術,這項技術的作法類似上述:先從執行中的系統執行光碟裡的偵測程式(rootkit程式也應該是執行中),偵測程式會結束所有使用者的程式、清空快取記憶體,然後完整的對磁碟裡的檔案做一遍checksum,也掃描一遍登錄資料庫裡會自動執行程式的機碼,然後將這兩項結果記錄下來;這些會是rootkit會了欺瞞而假造的結果。

接著重新以光碟開機,再利用光碟裡的偵測程式重複上述的檔案checksum及登錄資料庫機碼掃描等兩項動作,同樣也記錄結果,但因為rootkit未能執行,因此這結果會是真實的情況。將真實的情況與上述假造的結果相互比對,就能找出rootkit或其他隱身於系統的程式(通常是不懷好意)。其他知名的rootkit偵測程式還包括了RootkitRevealer,這是Windows平台的免費程式,也是以交叉比對的方式找出rootkit或其他隱身於系統的程式。

如果發現系統被植入rootkit程式,最有效率的rootkit移除方式,應該是清除並重新安裝系統(雖然要記得備份資料檔案,不過也要注意rootkit的來源是否就在某一封電子郵件;別備份rootkit程式)。諸如前述,rootkit會更改系統,而且通常會更動很多地方,費心費力的移除rootkit之後,還是得修補被更改的系統,因此不如就清除並重新安裝系統。關於系統的復原,您可以參閱文後延伸閱讀所列的文章。

發現Sony DRM Rootkit的始末

發現Sony DRM Rootkit的不是別人,正是RootkitRevealer的創作者,Mark Russinovich。他是非常知名軟體工程師、講師、顧問和作家,尤其專精於Windows NT的核心模式和驅動程式。從Windows NT開始,他就開發了很多免費的Windows NT工具程式,包括可以從DOS讀寫NTFS檔案系統的程式,直到目前,他仍然致力開發Windows XP和Windows Server 2003的工具程式。

Russinovich除了是Windows IT Pro雜誌的專欄作家、微軟PDC講師,也是多本技術書籍的作家,包括Inside Windows 2000第三版和Microsoft Windows Internals第四版(這兩本書的出版商都是微軟出版社,同樣由微軟出版的套書Windows Server 2003 Resource Kit,也收錄Windows Internals一起銷售)。過去Russinovich最著名的一件事,就是在1996年發現了Windows NT Server版和Workstation版的核心程式其實是相同的,差異只在登錄機碼的不同。

Russinovich在今年十月底測試自己創作的RootkitRevealer時,赫然發現自己的其中一部電腦竟然藏著rootkit程式,但在確定電腦所安裝的程式來源無誤,也找不出rootkit程式來源,Russinovich開始懷疑是不是RootkitRevealer有問題。在不得其解的情況下,Russinovich另以能夠列出行程和開機自動執行程式的Process Explorer和Autoruns工具程式(也是他所編寫),想要循得蛛絲馬跡,但是一無所獲。

Russinovich又改用另一個自己設計的工具程式,LiveKd,這支程式可以利用微軟的核心除錯器瀏覽系統的核心。Russinovich知道rootkit程式在使用者模式透過程式用來存取系統物件的行程修改Windows API,就可以達到隱匿的效果,在核心模式藉由攔截相關的核心模式API,也可以隱藏,而後者常用的方法,就是修改核心的系統服務表,這個方法也是Russinovich在1996年首先提出;因此Russinovich知道,如果有驅動程式換掉了這個表格裡的記錄,而系統核心啟動了這個驅動程式,這個驅動程式就能控制表格記錄所指向的API。

為了查證,Russinovich就以LiveKd列出這個表格的內容,果然發現有好幾個指向API的記錄遭到修改。接著Russinovich列出了其中一個攔截的API,發現這個API是Aries.sys驅動程式的一部份,而這個驅動程式則是\Windows\System32\$sys$filesystem資料夾裡的檔案之一。至此,情況已經開始明朗了。

既然找到資料夾和程式,Russinovich也試著以慣用的反組譯程式IDA Pro載入Aries.sys,然後試著理解這支程式的行為。端詳之後,Russinovich確定這支驅動程式會以系統服務表修改好幾個API,並且也看到驅動程式用來隱藏任何名稱以$sys$開頭的檔案、資料夾、登錄機碼或行程(也發現這個驅動程式的設計功力並不高明)。為了再次確定,Russinovich複製了系統的記事本程式,並且將檔名改成$sys$notepad.exe,果然就能達到隱藏的效果。

Russinovich原本並不期待能從找到的這些檔案發現版本資訊,因為駭客通常不會留下這類的資料,但沒想到竟然能以自己設計的版本列印工具,Sigcheck,從中找到了公司名稱:First 4 Internet。這家公司的網站資訊甚少,只知道這家公司提供一種稱為XCP的內容保護技術,直到用Google查詢才得知,有好幾家唱片公司都採用了這家公司的XCP技術,作為音樂光碟的數位版權管理,而Sony BMG也是採用XCP的唱片公司之一。Russinovich最近才從亞馬遜網站買了一張Sony BMG發行的音樂光碟,演唱者是Van Zant,專輯名稱是Get Right with the Man。

接下來,Russinovich必須找出rootkit程式與這張光碟有直接相關的證據。這張光碟在電腦上只能以光碟內建的程式播放,而且限制只能複製三次。Russinovich以Process Explorer檢視光碟內建的程式播放,發現程式是來自Macromedia,但是當開始播放音樂之後,$sys$DRMServer.exe的CPU使用率就越來越高,而這支程式就是之前找到的rootkit所附帶的程式,不過這還不能算是直接證據。

Russinovich繼續以Process Explorer觀察$sys$DRMServer.exe和光碟內建播放程式的每一個行程,根據這些行程的具名資料通道代碼(named pipe handle),Russinovich懷疑發現$sys$DRMServer.exe和光碟內建播放程式是透過具名資料通道溝通。於是Russinovich利用Filemon(也是Russinovich設計的檔案監控工具程式),檢查具名資料通道之後,終於證實兩支程式的確利用具名資料通道互通訊息,而這也證明這兩支程式真有關聯。

微軟及資安廠商的應變

這起事件引發了相當多的效應,除了隱私權和電腦控制權之外,系統管理者可能又得多擔心一項資安威脅的入侵管道:原本非常單純的播放音樂光碟,沒想到竟然可以植入rootkit程式。大家都希望這只是單一特例,但或許還是有系統管理者會因此禁止使用者以公司的電腦播放音樂光碟,或者關閉Windows的自動播放功能。

但無論如何,微軟和資安廠商都已經將Sony DRM Rootkit視為潛在安全風險的資安威脅,因為這個rootkit會隱藏任何名稱是$sys$開頭的行程、檔案、資料夾或登錄資料庫機碼,而目前也已經出現利用這個rootkit達到隱藏效果的惡意軟體。因此Sony BMG也正與這些公司合作,希望能協助處理音樂光碟裡的rootkit程式。資安廠商也紛紛推出能夠偵測、移除Sony DRM Rootkit的工具產品都將提供偵測。賽門鐵克將此威脅命名為SecurityRisk.First4DRM,並且提供偵測和移除工具;而CA和趨勢科技也提供相關工具。

微軟也已經將Sony DRM Rootkit視為資安威脅,根據微軟Anti-Malware Engineering Team的部落格表示,工作小組已經分析過Sony DRM Rootkit,並且會讓Windows Defender(之前稱為Windows AntiSpyware,目前仍為測試版本)、12月發行的惡意軟體移除工具和微軟的線上掃描網站Windows Live Safety Center提供這個rootkit程式的偵測和移除功能,以保護Windows系統的安全。

參考資料

  • Mike Danseglio與Tony Bailey,Rootkits: The Obscure Hacker Attack:https://www.microsoft.com/technet/community/columns/sectip/st1005.mspx

  • Rootkit,Wikipedia:http://en.wikipedia.org/wiki/Rootkit

  • Strider GhostBuster Rootkit Detection:https://research.microsoft.com/rootkit/

  • Sony, Rootkits and Digital Rights Management Gone Too Far:https://www.sysinternals.com/blog/2005/10/sony-rootkits-and-digital-rights.html

  • Anti-Malware Engineering Team的部落格:Sony DRM Rootkit,https://blogs.technet.com/antimalware/archive/2005/11/12/414299.aspx

延伸閱讀

  • 疫情控制與修復:https://www.microsoft.com/taiwan/technet/security/guidance/avdind_4.mspx

  • 救命:我被駭客入侵了。現在我該怎麼辦?續篇:https://www.microsoft.com/taiwan/technet/community/columns/secmgmt/sm0704.mspx

  • 防毒措施深入探索指南:https://www.microsoft.com/taiwan/technet/security/guidance/avdind_0.mspx

  • Rootkit:http://www.rootkit.com/

  • RootkitRevealer v1.56:https://www.sysinternals.com/Utilities/RootkitRevealer.html

  • Sony BMG:http://cp.sonybmg.com/xcp/english/updates.html

  • 賽門鐵克,SecurityRisk.First4DRM:http://securityresponse.symantec.com/avcenter/venc/data/securityrisk.aries.html

  • CA,XCP.Sony.Rootkit:http://www3.ca.com/securityadvisor/pest/pest.aspx?id=453096362

  • 趨勢科技,RTKT_XCP.A:http://www.trendmicro.com/vinfo/grayware/ve_graywareDetails.asp?GNAME=RTKT_XCP.A

  • Windows Live Safety Center:http://safety.live.com/