Office 中 COM 物件的安全性設定

適用於: Office 2016 version of Office 365 ProPlusMicrosoft Office 2013 Service Pack 1Microsoft Office 2010 Service Pack 2

重要:本文包含有關如何控制 Office 安全性設定的資訊。 您可以對這些安全性設定進行變更,以提高或降低您的安全性狀態。 在進行這些變更之前,建議您評估與任何設定變更相關聯的風險。

簡介


本文說明可供使用者和 IT 系統管理員使用的設定,以便控制 COM 物件是否要與 Microsoft Office 刪除位元清單一起載入,以及其載入方式。

如需有關此功能所依據之 Windows Internet Explorer 刪除位元行為的詳細資訊,其中包含如何設定 AlternateCLSIDs 以便允許經過更新的 ActiveX 控制項載入,請參閱如何在 Internet Explorer 中停止 ActiveX 控制項執行 (機器翻譯)
 
此指引適用於 Microsoft Word、Microsoft Excel、Microsoft PowerPoint、Microsoft Publisher 和 Microsoft Visio。

Office COM 刪除位元

Office COM 刪除位元是在安全性更新 MS10-036 中引進,可防止內嵌於 Office 文件或從文件中連結的特定 COM 物件執行。

KB3178703 中的 COM 刪除位元功能已經過更新,可徹底防止 COM 物件遭到 Office 的同處理序啟動。 此更新是原始行為的超集,除了封鎖 Office 文件中內嵌或連結的 COM 物件,還能透過增益集等其他方法,防止 Office 處理序內載入 COM 物件的任何執行個體。

這些特定 COM 物件包括 ActiveX 控制項和 OLE 物件。 透過登錄,您可以單獨控制要在使用 Office 時封鎖哪個 COM 物件。

注意:我們不建議您移除為 COM 物件而設定的刪除位元。 如果執行這項操作,可能會造成安全性弱點。 刪除位元通常是因為某個重大原因而設定,因此,在您復原刪除 ActiveX 控制項時,請務必格外謹慎。
 
當您必須將新 ActiveX 控制項的 CLSID (而且這個 ActiveX 控制項已修改以降低安全性威脅) 與套用 Office COM 刪除字元的 ActiveX 控制項的 CLSID 產生關聯時,您可以新增 AlternateCLSID (又稱為「Phoenix 位元」)。 只有當使用 ActiveX 控制項 COM 物件時,Office 才支援 AlternateCLSID。
 
注意:Office 的刪除位元清單優先程度高於 Internet Explorer 的刪除位元清單。 例如,針對相同的 ActiveX 控制項,可能會設定 Office COM 刪除位元和 Internet Explorer ActiveX 刪除位元。 但是,AlternateCLSID 只能設定於 Internet Explorer 的清單之中。 在這個案例中,兩個設定會發生衝突。 在這種情況下,Office COM 刪除位元設定的優先等級較高,因此不會載入控制項。

設定 Office COM 刪除位元

重要 此章節、方法或工作包含有關如何修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為加強保護,請先備份登錄再進行修改。 如果發生問題,您就可以還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請按一下下列文章編號,檢視「Microsoft 知識庫」中的文章:

322756 如何在 Windows 中備份及還原登錄

在登錄中設定 Office COM 刪除字元的位置如下所示:

適用於 Office 2013 和 Office 2010:

  1. 適用於 64 位元 Windows 的 64 位元 Office (或 32 位元 Windows 的 32 位元 Office):

    HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Common\COM Compatibility\{CLSID}

  2. 適用於 64 位元 Windows 的 32 位元 Office:

    HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Office\Common\COM Compatibility\{CLSID}

適用於 Office 2016:

  1. 適用於 64 位元 Windows 的 64 位元 Office (或 32 位元 Windows 的 32 位元 Office):
    HKEY_LOCAL_MACHINE\Software\Microsoft\Office\16.0\Common\COM Compatibility\{CLSID}
  2. 適用於 64 位元 Windows 的 32 位元 Office:
    HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Office\16.0\Common\COM Compatibility\{CLSID}

在這個情況中,CLSID 是 COM 物件的類別識別項。

若要啟用 Office COM 刪除位元,請執行下列步驟:

  1. 新增登錄子機碼,以及您要封鎖載入的 ActiveX 控制項或 OLE 物件的 CLSID。

  1. 將 REG_DWORD 新增到這個名為 Compatibility Flags 的子機碼,並將值設定為 0x00000400

例如,若要在 Office 2016 針對具有 CLSID {77061A9C-2F18-4f38-B294-F6BCC8443D24} 的物件設定 Office COM 刪除位元:

  1. 找出下列登錄機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\COM Compatibility 

  1. 新增值為 {77061A9C-2F18-4f38-B294-F6BCC8443D24} 的子機碼。在這個情況中,產生的路徑如下所示:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\COM Compatibility\{77061A9C-2F18-4f38-B294-F6BCC8443D24} 

  2. 將 REG_DWORD 新增到這個名為 Compatibility Flags 的子機碼,並將值設定為 0x00000400

Office COM 刪除位元現在已設定為封鎖這個物件在 Office 內啟動。

如何只封鎖連結和內嵌案例中的 COM

如前面所述,COM 刪除位元功能已經過更新,可封鎖從 Office 內啟動所有指定的 COM 物件。

若只要封鎖 Office 文件中內嵌或連結的 COM 物件,請執行下列步驟:

  1. 依照<設定 Office COM 刪除位元>下的指示,將 CLSID 新增到 COM 刪除位元 (若尚未列於清單中)

  1. 在要封鎖的 CLSID 的子機碼底下,新增名為 ActivationFilterOverride 的 REG_DWORD 並將值設定為 0x00000001

例如,若要將 COM 刪除位元設定為只在 Office 2016 封鎖連結和內嵌案例中,具有 CLSID {77061A9C-2F18-4f38-B294-F6BCC8443D24} 的物件:

  1. 找出下列登錄機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\COM Compatibility 

  2. 新增值為 {77061A9C-2F18-4f38-B294-F6BCC8443D24} 的子機碼。在這個情況中,產生的路徑如下所示:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\COM Compatibility\{77061A9C-2F18-4f38-B294-F6BCC8443D24} 

  3. 將 REG_DWORD 新增到這個名為 Compatibility Flags 的子機碼,並將值設定為 0x00000400

  4. 將 REG_DWORD 新增到這個名為 ActivationFilterOverride 的子機碼,並將值設定為 0x00000001

Office COM 刪除位元現在已設定為只在這個 COM 物件連結或內嵌於 Office 文件時加以封鎖。

預設為封鎖啟動的控制項


控制項

CLSID

ScriptMoniker

06290BD3-48AA-11D2-8432-006008C3FBFC

SoapActivator

ECABAFD0-7F19-11D2-978E-0000F8757E2A

SoapMoniker

ECABB0C7-7F19-11D2-978E-0000F8757E2A

PartitionMoniker

ECABB0C5-7F19-11D2-978E-0000F8757E2A

QueueMoniker

ECABAFC7-7F19-11D2-978E-0000F8757E2A

HTMLApplication

3050F4D8-98B5-11CF-BB82-00AA00BDCE0B

ScripletContext

06290BD0-48AA-11D2-8432-006008C3FBFC

ScripletConstructor

06290BD1-48AA-11D2-8432-006008C3FBFC

ScripletFactory

06290BD2-48AA-11D2-8432-006008C3FBFC

ScripletHostEncode

06290BD4-48AA-11D2-8432-006008C3FBFC

ScripletTypeLib

06290BD5-48AA-11D2-8432-006008C3FBFC

ScripletHandler_Automation

06290BD8-48AA-11D2-8432-006008C3FBFC

ScripletHandler_Event

06290BD9-48AA-11D2-8432-006008C3FBFC

ScripletHandler_ASP

06290BDA-48AA-11D2-8432-006008C3FBFC

ScripletHandler_Behavior

06290BDB-48AA-11D2-8432-006008C3FBFC

XMLFeed

528D46B3-3A4B-4B13-BF74-D9CBD7306E07

Scriptlet

AE24FDAE-03C6-11D1-8B76-0080C744F389

HtmlFile_FullWindowEmbed

25336921-03F9-11CF-8FD0-00AA00686F13

Mhtmlfile

3050F3D9-98B5-11CF-BB82-00AA00BDCE0B

Microsoft HTA Document 6.0

3050F5C8-98B5-11CF-BB82-00AA00BDCE0B

DHTMLEdit.DHTMLEdit.1

2D360200-FFF5-11D1-8D03-00A0C959BC0A

DHTMLSafe.DHTMLSafe.1

2D360201-FFF5-11D1-8D03-00A0C959BC0A

VB 指令碼語言

B54F3741-5B07-11cf-A4B0-00AA004A55E8

VB 指令碼語言編寫

B54F3742-5B07-11cf-A4B0-00AA004A55E8

VBScript 語言編碼

B54F3743-5B07-11cf-A4B0-00AA004A55E8

VBScript Host Encode

85131631-480C-11D2-B1F9-00C04F86C324

Shockwave Flash 物件

D27CDB6E-AE6D-11cf-96B8-444553540000

Macromedia Flash Factory 物件

D27CDB70-AE6D-11cf-96B8-444553540000

Microsoft Silverlight

DFEAF541-F3E1-4c24-ACAC-99C30715084A

Adobe Shockwave Player

233C1507-6A77-46A4-9443-F871F945D258

預設為封鎖內嵌的控制項


控制項

CLSID

Shell.Explorer.2

8856F961-340A-11D0-A96B-00C04FD705A2

Htmlfile

25336920-03F9-11CF-8FD0-00AA00686F13

適用於快顯視窗的 Microsoft HTML 文件

3050F67D-98B5-11CF-BB82-00AA00BDCE0B

 

注意:這個清單是已封鎖的控制項快照集,可能隨時變更