淺談檢測ActiveX控件中的漏洞
出處:維庫電子市場網(wǎng) 發(fā)布于:2023-06-25 11:27:45
1 ActiveX控件
1.1 什么是ActiveX
ActiveX 是一個開放的集成平臺,為開發(fā)人員、 用戶和 Web生產(chǎn)商提供了一個快速而簡便的在 Internet 和 Intranet 創(chuàng)建程序集成和內(nèi)容的方法。 使用 ActiveX, 可輕松方便的在 Web頁中插入 多媒體效果、 交互式對象、以及復(fù)雜程序,創(chuàng)建用戶體驗相當?shù)母哔|(zhì)量多媒體 CD-ROM ?!∥④浂x根據(jù)微軟權(quán)威的軟件開發(fā)指南MSDN(Microsoft Developer Network)的定義,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些軟件組件或?qū)ο?,可以將其插入到WEB網(wǎng)頁或其它應(yīng)用程序中。
以前稱為 OLE 控件或 OCX 控件. 是組件 (或?qū)ο螅?打包,別人編程功能. 以便您可以重用 Web頁或其他程序中插入。 例如, 隨 InternetExplorer 一起提供 ActiveX 控件可用于增強 Web頁具有復(fù)雜格式功能和動畫。ActiveX 控件結(jié)合了Java 程序和 Netscape 插件優(yōu)點,還可以用許多編程語言, 包括所有 Microsoft 編程和在數(shù)據(jù)庫語言編寫程序中使用 ActiveX 控件。
1.2 腳本安全
一個ActiveX控件可以被標注為腳本安全SFS(Safe For Scripting),這意味著IE可以通過腳本語言如或VBScript調(diào)用控件,并設(shè)置或獲得它的屬性。
有兩種方法可以描述一個控件是腳本安全的,種方法是使用組件目錄管理(Component Categories Manager)來在系統(tǒng)注冊表中創(chuàng)建合適的項目??梢酝ㄟ^在這冊表編輯器中查看“HKEY_CLASSES_ROOT\CLSID\
1.3 KillBit
KillBit是注冊表中的一項,用來標識控件使得在IE瀏覽器或者腳本環(huán)境運行時不加載控件。當發(fā)現(xiàn)有漏洞的控件時,可以先通過設(shè)置KillBit來使IE在使用默認設(shè)置時永不調(diào)用ActiveX控件。KillBit是ActiveX控件的兼容性標志DWORD值在注冊表中的特定值0x00000400。針對IE與操作系統(tǒng)的不同,KillBit在注冊表中的位置略有不同[4],可分別表示為:
(1)32位IE/32位Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet
Explorer\ActiveX Compatibility\
(2)64位IE/64位Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet
Explorer\ActiveX Compatibility\
(3)32位IE/64位Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\
Internet Explorer\ActiveX Compatibility\
1.4 控件函數(shù)枚舉
由于ActiveX遵循COM規(guī)范,因此它也像其他的COM控件一樣使用相同的方式實現(xiàn)了COM接口,COM接口中很好地定義了一個COM組件中所實現(xiàn)的方法和屬性。如果控件實現(xiàn)了IDispatch或者IDispatchEx接口,那么可以通過獲得IDispatch接口來枚舉出控件的方法、參數(shù)以及屬性等信息。
2 不安全方法漏洞及檢測
2.1不安全方法漏洞
漏洞是在硬件、軟件、協(xié)議的具體實現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的情況下訪問或破壞系統(tǒng)。具體舉例來說,比如在Intel Pentium芯片中存在的邏輯錯誤,在Sendmail早期版本中的編程錯誤,在NFS協(xié)議中方式上的弱點,在Unix系統(tǒng)管理員設(shè)置匿名Ftp服務(wù)時配置不當?shù)膯栴}都可能被攻擊者使用,威脅到系統(tǒng)的安全。因而這些都可以認為是系統(tǒng)中存在的安全漏洞。
漏洞會影響到很大范圍的軟硬件設(shè)備,包括作系統(tǒng)本身及其支撐軟件,網(wǎng)絡(luò)客戶和服務(wù)器軟件,網(wǎng)絡(luò)路由器和安全防火墻等。換而言之,在這些不同的軟硬件設(shè)備中都可能存在不同的安全漏洞問題。在不同種類的軟、硬件設(shè)備,同種設(shè)備的不同版本之間,由不同設(shè)備構(gòu)成的不同系統(tǒng)之間,以及同種系統(tǒng)在不同的設(shè)置條件下,都會存在各自不同的安全漏洞問題。漏洞問題是與時間緊密相關(guān)的。一個系統(tǒng)從發(fā)布的那一天起,隨著用戶的深入使用,系統(tǒng)中存在的漏洞會被不斷暴露出來,這些早先被發(fā)現(xiàn)的漏洞也會不斷被系統(tǒng)供應(yīng)商發(fā)布的補丁軟件修補,或在以后發(fā)布的新版系統(tǒng)中得以糾正。而在新版系統(tǒng)糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。因而隨著時間的推移,舊的漏洞會不斷消失,新的漏洞會不斷出現(xiàn)。漏洞問題也會長期存在。
如果一個方法被設(shè)計是由IE調(diào)用,那么它應(yīng)該就被標記為腳本安全,微軟在MSDN中提供了編寫一個安全的控件時對于哪些應(yīng)該被標為安全提供了指導(dǎo)。但是由于編程人員在安全性上的疏忽,或者根本就不熟悉ActiveX的調(diào)用機制,一些標記為腳本安全的方法能夠輕易地被遠程調(diào)用者不加任何限制地調(diào)用,或者一些本不應(yīng)該被IE所使用的方法錯誤地被標注上了腳本安全,這些方法給系統(tǒng)帶來很大的安全隱患。這類漏洞往往表現(xiàn)為任意的注冊表讀寫、本地文件系統(tǒng)的讀寫、網(wǎng)絡(luò)端口的開放,執(zhí)行文件、敏感信息的泄漏等。由于這類漏洞的利用一般非常簡單,因此這類漏洞利用門檻很低,危害性極大。
2.2 ActiveX控件的檢測
2.2.1 威脅建模
威脅建模(Threat modeling)是一個過程,軟件開發(fā)人員可以使用它來評估,從而減少控件所面臨的潛在的威脅[6]。威脅建模來自于軟件測試領(lǐng)域,威脅建模的一般步驟是先分解應(yīng)用程序,建立數(shù)據(jù)流圖,然后識別所面臨的威脅,根據(jù)威脅識別潛在的漏洞。對于識別潛在的威脅,可以利用Howard和Leblanc提到的STRIDE威脅目錄[7]。
但是由于威脅建模一般是建立在擁有軟件設(shè)計細節(jié)的基礎(chǔ)上。作為漏洞挖掘工作,常常面臨的只是軟件的二進制文件形式,很難得到軟件設(shè)計的源代碼,構(gòu)建完整的數(shù)據(jù)流圖。因此,基于威脅建模的漏洞挖掘工作,很難建立起準確的威脅模型。
2.2.2 基于STRIDE指導(dǎo)的滲透測試
滲透測試是指測試人員圍繞網(wǎng)絡(luò)或者系統(tǒng)的安全性展開探測,以發(fā)現(xiàn)系統(tǒng)脆弱的環(huán)節(jié)[6]。在不安全方法的測試中,函數(shù)的參數(shù)成為滲透測試的主要入口,分析大量的已公布不安全方法漏洞,發(fā)現(xiàn)從暴露的方法名字中,一般就能推斷出該方法執(zhí)行的操作。因為在代碼編寫時,常常使用有意義的單詞來表示方法和參數(shù)的名字,如下面的一些例子:
LaunchExe(BSTR ExeName)
SaveFile(BSTR FileName,BSTR Url)
Update(BSTR Url,BSTR LocFile)
ExecuteCommand(BSTR Command)
這些函數(shù)及參數(shù)明顯地暗示了函數(shù)的功能以及所需參數(shù)的意義,應(yīng)當首先嘗試使用合適的值來測試這些方法。而利用威脅建模中的STRIDE威脅目錄可以保證測試的全面性。結(jié)合ActiveX控件中常常被用來作為功能擴展的方面,應(yīng)該從表1所列的幾個方面來測試確定該控件是否包含了不安全方法。
2.3 測試的一般步驟
結(jié)合ActiveX控件的特點及其安全方法機制,提出了不安全方法漏洞挖掘的一般步驟。
其中,檢查是否標注為腳本安全一般先看該控件是否實現(xiàn)了IObjectSafety接口,如果沒實現(xiàn)則再檢查注冊表中是否標注腳本安全。函數(shù)調(diào)用中要根據(jù)測試者之前預(yù)測的潛在威脅輸入合適的參數(shù),如果測試結(jié)果符合預(yù)期假設(shè)的威脅,則漏洞分析成功,如果測試結(jié)果沒有實現(xiàn)預(yù)期的威脅,則返回查看是否還有其他的潛在威脅可能存在,循環(huán)進行測試,直到被測函數(shù)被認定不會包含中所具有的威脅為止。
3 實驗及結(jié)果分析
本文選取了三款國產(chǎn)軟件,分別是UUsee2008、暴風(fēng)影音、迅雷看看。將三款軟件安裝到機器后,分別枚舉控件并且檢查每個控件的信息,三款軟件共在機器上安裝新COM控件60個,其中有2個設(shè)置KillBit,10個被標注為腳本安全。詳細信息如表2所示,表中可以看到暴風(fēng)影音沒有被標注為腳本安全的控件,在防范不安全方法漏洞方面做得比較好。
(1)UUSee任意文件漏洞
軟件:UUSee2008
控件名稱:UUUpgrade Control
函數(shù):VARIANT_BOOL Update(BSTRbstrLocalINIFile-
Name,BSTR bstrRemoteINIURL,BSTR bstrDetailURL,short nMode)
根據(jù)函數(shù)名字推測可能具有使用遠程文件更新本地文件的作用,符合威脅列表中條威脅。因此需要編寫測試網(wǎng)頁對該方法進行測試,測試結(jié)果發(fā)現(xiàn)存在之前預(yù)測的威脅。該漏洞為已公布漏洞,已發(fā)布于國內(nèi)綠盟漏洞數(shù)據(jù)庫上[9]。
(2)系統(tǒng)信息暴露漏洞
軟件:UUSee2008
控件名稱:UUUpgrade Control
函數(shù):BSTR GetMacID( )
BSTR GetHDID( )
通過分析函數(shù)的名字可預(yù)測這兩個函數(shù)可能分別能使遠程攻擊者得到本地機器的MAC地址和硬盤ID,存在一定的信息暴露危害,測試結(jié)果顯示符合之前的預(yù)測。兩個方法存在泄露系統(tǒng)信息漏洞。
軟件:迅雷看看
控件名稱:DapCtrl Class
函數(shù):long IsFileExist([in] BSTR filePath)
該函數(shù)能夠根據(jù)攻擊者指定的文件路徑名稱,返回該文件是否存在,返回值為1表示存在,為0表示不存在。這在遠程滲透攻擊中會給遠程攻擊者提供幫助。因此存在信息泄漏的危害。
本文只對ActiveX控件中的不安全方法漏洞的挖掘方法作了介紹,這種漏洞利用難度較易,危害極大。本文
介紹的方法,只能對單個的方法分別進行測試,但是還有一些控件的方法需要調(diào)用屬性信息或者其他方法的結(jié)果,這種方法對造成的漏洞需要先對控件中的方法屬性之間利用數(shù)據(jù)流分析建立起聯(lián)系,這是以后研究中需要進一步完成的工作。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)5G技術(shù)在智能制造中的應(yīng)用與實踐解析2025/12/31 10:57:21
- 工業(yè)以太網(wǎng)交換機選型與現(xiàn)場應(yīng)用技術(shù)指南2025/12/18 10:48:14
- 無線傳輸電路基礎(chǔ),射頻前端設(shè)計、天線匹配與鏈路預(yù)算計算2025/10/27 13:55:50
- ASK 解調(diào)的核心要點與實現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









