Office の COM オブジェクトに関するセキュリティ設定

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

重要: この資料には、Office のセキュリティ設定を制御する方法を示す情報が含まれています。  これらのセキュリティ設定を変更して、セキュリティ体制を強化または緩和することができます。 セキュリティ設定を変更する前に、設定を構成する際に生じる変化に関連するリスクを評価することをお勧めします。  

はじめに


この記事では、エンド ユーザーと IT 管理者が、Microsoft Office Kill Bit リストを使用して COM オブジェクトを読み込む場合とその方法を制御する際に使用できる設定について説明します。   

この機能がベースにしている Windows Internet Explorer Kill Bit 動作の詳細については、「ActiveX コントロールが Internet Explorer で実行されないように設定する方法」を参照してください。ここでは、更新された ActiveX コントロールをロードする AlternateCLSID を設定する方法が説明されています。    
 
このガイダンスは、Microsoft Word、Microsoft Excel、Microsoft PowerPoint、Microsoft Publisher、および Microsoft Visio に適用されます。  

Office COM Kill Bit 

特定の COM オブジェクトが Office ドキュメントから埋め込まれるとき、またはリンクされるときに、そのオブジェクトが実行されないようにするために、セキュリティ更新プログラム MS10-036 に Office COM Kill Bit が導入されました。  

KB3178703 では、インプロセスで Office によって COM オブジェクトが有効化される処理を完全にブロックするように COM Kill Bit 機能が更新されました。   この更新プログラムは、元の動作のスーパーセットです。Office ドキュメントに埋め込まれている、またはリンクされている COM オブジェクトをブロックするだけでなく、アドインなどの他の手段を使用して Office プロセス内に読み込まれている COM オブジェクトのすべてのインスタンスをブロックします。 

これらの特定の COM オブジェクトには、ActiveX コントロールおよび OLE オブジェクトが含まれています。 レジストリを使用すると、Office の使用時にブロックする COM オブジェクトを個別に制御できます。 

: COM オブジェクト用に設定された Kill Bit を削除することはお勧めしません。  これを実行すると、セキュリティが低下する可能性があります。 Kill Bit は通常、重要な場合に設定されるため、ActiveX コントロールの強制終了を取り消す場合は、細心の注意が必要です。    
 
Office COM Kill Bit の適用先である ActiveX コントロールの CLSID に、新しい ActiveX コントロール (この ActiveX はセキュリティの危険性を減らすために修正されました) の CLSID を関連付ける必要がある場合、AlternateCLSID (“フェニックス ビット” とも呼ばれます) を追加できます。   Office では、ActiveX コントロール COM オブジェクトが使用される場合のみ、AlternateCLSID がサポートされています。    
 
: Office Kill Bit リストは Internet Explorer Kill Bit リストよりも優先されます。  たとえば、Office COM Kill Bit および Internet Explorer ActiveX Kill Bit は同じ ActiveX コントロールで設定される可能性があります。 ただし、AlternateCLSID は Internet Explorer のリストにのみ設定されます。   このシナリオでは、2 つの設定間で競合が生じます。 このような場合には、Office COM Kill Bit 設定が優先されるため、コントロールは読み込まれません。 

Office COM Kill Bit の設定

重要: このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。  レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 万一に備えて、編集の前にレジストリをバックアップしてください。 問題が発生した場合でも、レジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。  

322756 Windows でレジストリをバックアップおよび復元する方法   

レジストリ内の Office COM Kill Bit を設定する場所は以下のとおりです。  

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 Kill Bit を有効にするには、次の手順を実行します 

  1. 読み込みをブロックする ActiveX コントロールまたは OLE オブジェクトの CLSID と一緒に、レジストリ サブキーを追加します。  

  1. Compatibility Flags というこのサブキーに REG_DWORD を追加し、その値を 0x00000400 に設定します。   

たとえば、Office 2016 で CLSID が {77061A9C-2F18-4f38-B294-F6BCC8443D24} のオブジェクトに Office COM Kill Bit を設定するには、次の手順を実行します。  

  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. Compatibility Flags というこのサブキーに REG_DWORD を追加し、その値を 0x00000400 に設定します。  

これで、このオブジェクトが Office 内で有効にならないように Office COM Kill Bit が設定されました。 

リンクと埋め込みのシナリオで COM のみをブロックする方法     

前述のように、COM Kill Bit 機能は、指定した COM オブジェクトの Office 内からの有効化がすべてブロックされるように更新されました。  

Office ドキュメント内から埋め込まれた、またはリンクされた COM オブジェクトのみをブロックするには、次の手順を実行します。  

  1. Office Kill Bit の設定」の指示に従って CLSID を COM Kill Bit に追加します (まだ設定されていない場合)  

  1. ブロック対象の CLSID のサブキーに、ActivationFilterOverride という REG_DWORD を追加し、その値を 0x00000001 に設定します    

たとえば、Office 2016 で CLSID が {77061A9C-2F18-4f38-B294-F6BCC8443D24} のオブジェクトの場合、リンクおよび埋め込みのシナリオで COM Kill Bit のみをブロックするように構成するには、次の手順を実行します。    

  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. Compatibility Flags というこのサブキーに REG_DWORD を追加し、その値を 0x00000400 に設定します。  

  4. ActivationFilterOverride というこのサブキーに REG_DWORD を追加し、その値を 0x00000001 に設定します。  

これで、Office ドキュメントにリンクまたは埋め込まれている場合にのみ、この COM オブジェクトをブロックするように Office COM Kill Bit が設定されました。 

既定で有効化がブロックされるコントロール


コントロール

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 Script Language

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

VB Script Language Authoring

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

VBScript Language Encoding

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

VBScript Host Encode

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

Shockwave Flash Object

D27CDB6E-AE6D-11cf-96B8-444553540000

Macromedia Flash Factory Object

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 Document for Popup Window

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

 

: この一覧は、ブロックされ、変更される可能性のあるコントロールのスナップショットです