Office 2010 で ActiveX コントロールのセキュリティ設定を計画する
適用先: Office 2010
トピックの最終更新日: 2016-11-29
ActiveX コントロールの設定を変更することによって、Microsoft Office 2010 での Microsoft ActiveX コントロールの動作を変更できます。
この記事の内容
ActiveX コントロールの設定の計画
ActiveX コントロールを無効にする
ActiveX コントロールの初期化方法を変更する
関連する ActiveX コントロールの設定
ActiveX コントロールの設定の計画
Office 2010 には、ActiveX コントロールの動作と、安全でない可能性のある ActiveX コントロールをユーザーに通知する方法を制御するいくつかの設定が用意されています。これらの設定を構成すると、以下の操作を行うことができます。
ActiveX コントロールを無効にする。
セーフ モードのパラメーターと SFI (初期化しても安全) および UFI (初期化すると危険) パラメーターに基づいて、ActiveX コントロールの初期化の方法を変更する。
Office カスタマイズ ツール (OCT) と Office 2010 の管理テンプレートでセキュリティ設定を構成する方法については、「Office 2010 のセキュリティを構成する」を参照してください。
既定では、信頼できる ActiveX コントロールは、保持された値を使用してセーフ モードで読み込まれ、ActiveX コントロールが読み込まれたことはユーザーに通知されません。信頼できる ActiveX コントロールとは、信頼できる発行元によって署名された ActiveX コントロールか、信頼できる場所から開いたドキュメントまたは信頼できるドキュメントと見なされるドキュメントに含まれている ActiveX コントロールです。信頼できない ActiveX コントロールの読み込みは、そのコントロールがどのようにマークされているか、およびそのコントロールに付随するファイルに VBA プロジェクトが存在するかどうかによって動作が異なります。信頼できない ActiveX コントロールの既定の動作は、以下のようになっています。
ActiveX コントロールが、安全な初期化 (SFI) としてマークされていて、VBA プロジェクトが含まれないドキュメントに含まれている場合、その ActiveX コントロールは、保持された値を使用してセーフ モードで読み込まれます。メッセージ バーは表示されず、その ActiveX コントロールの存在はユーザーに通知されません。このような動作になるには、ドキュメント内のすべての ActiveX コントロールが SFI としてマークされている必要があります。
ActiveX コントロールが、安全でない初期化 (UFI) としてマークされていて、VBA プロジェクトが含まれないドキュメントに含まれている場合、ActiveX コントロールが無効になっていることがメッセージ バーで通知されます。ただし、ユーザーは、メッセージ バーをクリックしてその ActiveX コントロールを有効にすることもできます。ユーザーが ActiveX コントロールを有効にすると、すべての ActiveX コントロール (UFI と SFI の両方) が、保持された値を使用してセーフ モードで読み込まれます。
UFI または SFI としてマークされている ActiveX コントロールが、VBA プロジェクトも含まれるドキュメントに含まれている場合、ActiveX コントロールが無効になっていることがメッセージ バーで通知されます。ただし、ユーザーは、メッセージ バーをクリックしてその ActiveX コントロールを有効にすることもできます。ユーザーが ActiveX コントロールを有効にすると、すべての ActiveX コントロール (SFI と UFI の両方) が、保持された値を使用してセーフ モードで読み込まれます。
重要
レジストリでキル ビットが設定されている ActiveX コントロールは読み込まれず、どのような状況でも読み込めません。また、メッセージ バーは表示されず、その ActiveX コントロールの存在はユーザーに通知されません。
ActiveX コントロールを無効にする
Office 2010 には、ActiveX コントロールを無効にする設定があります。ActiveX コントロールを無効にすると、ファイルを開いたときに、ファイル内のすべての ActiveX コントロールの初期化 (読み込み) は行われません。また、ユーザーがドキュメントに ActiveX コントロールを追加することもできなくなります。無効な ActiveX コントロールが、ファイル内で赤い X 印などの記号で表示されることがあります。しかし、そのコントロールは無効にされていて、ユーザーが記号をクリックしても動作は起こりません。また、ActiveX コントロールを無効にしても、ActiveX コントロールが無効にされていることはユーザーに通知されません。
ActiveX コントロールを無効にするかどうかは、以下のガイドラインに従って決定してください。
設定名: すべての ActiveX を無効にする
説明: この設定は、Office 2010 で ActiveX コントロールを無効にするかどうかを制御します。これはグローバルな設定であり、アプリケーション単位で構成することはできません。
影響: この設定を有効にした場合、ActiveX コントロールは初期化されず、ActiveX コントロールが無効なことはユーザーに通知されません。また、ユーザーがドキュメントに ActiveX コントロールを挿入することも許可されません。ActiveX コントロールはドキュメントで追加的な機能を提供していることがあります。したがって、それを無効にすると、ユーザーが利用できる機能が少なくなります。ActiveX コントロールが無効なことはアプリケーションから通知されないので、この設定が有効になっていることをユーザーに知らせるようにしてください。この設定を有効にする前に、業務に欠かせない機能を ActiveX コントロールで提供するかどうかを決めることも重要です。
ガイドライン: セキュリティ環境の制限が厳しい組織では、通常、この設定を有効にします。
注意
この設定を有効にすると、信頼できる場所に保存したファイル内の ActiveX コントロールは無効になります。
Office 2010 で導入された Office COM キル ビットを使用して、ActiveX コントロールなどの特定の COM オブジェクトを Office 2010 アプリケーションで実行されないようにすることもできます。この機能は 2007 Office system で利用できました。しかし、これは Internet Explorer の ActiveX キル ビットの設定に依存していました。現在、Office 2010 では、どの COM オブジェクトを Office 2010 で使えなくするかを、レジストリで独立に制御できます。たとえば、同じ ActiveX コントロールに対して両方の場所 (Office と Internet Explorer) でキル ビットが設定されていて、この 2 つの設定が矛盾する場合は、Office COM キル ビットが優先されます。Office COM キル ビットが設定されるのは、マイクロソフト セキュリティ情報に掲載された更新プログラムを適用して Office 2010 の特定のセキュリティ問題を解決するような場合です。
警告
COM オブジェクトの unkilling (キル動作を取り消すこと) はお勧めしません。これを行うと、セキュリティの脆弱性が生じる可能性があります。キル ビットは、通常、非常に重要な理由で設定されるので、ActiveX コントロールのキルを取り消すときは最大限の注意を払う必要があります。
セキュリティ上の脅威を軽減するように修正された新しい ActiveX コントロールの CLSID と Office COM キル ビットが適用された ActiveX コントロールの CLSID とを相互に関連付ける必要があるとき、AlternateCLSID ("フェニックス ビット" とも呼ばれます) を追加することもできます。Office 2010 は、ActiveX コントロールの COM オブジェクトでのみ AlternateCLSID の使用をサポートしています。AlternateCLSID も含め、キル ビットの動作の詳細については、「Internet Explorer で ActiveX コントロールの動作を停止する方法 (英語)」(https://go.microsoft.com/fwlink/?linkid=183124\&clcid=0x411) (英語) を参照してください。
以下の操作手順は高度に専門的なので、特に慣れていない場合以外は行わないでください。
重要
ここで説明する操作にはレジストリの変更を指示する手順が含まれています。しかし、レジストリを誤って変更すると、重大な問題が生じる可能性があります。したがって、これらの手順は慎重に実行してください。追加的な保護措置として、レジストリをバックアップしてから変更することをお勧めします。そうすれば、問題が生じてもレジストリを復元できます。
レジストリ内の Office COM キル ビットの設定に関係する場所は、HKLM/Software/Microsoft/Office/Common/COM Compatibility/{CLSID} です。ここで、CLSID は COM オブジェクトのクラス識別子です。Office COM キル ビットを有効にするには、レジストリ キー (ActiveX コントロールの CLSID を含む) を追加し、さらに値 0x00000400 を Compatibility Flags REG_DWORD に追加する必要があります。
注意
キル ビット (Internet Explorer と Office COM の両方) の動作は、Office 2010 の COM の分類に影響されます。詳細については、「Office 2010 の COM オブジェクトの分類を計画する」を参照してください。
Office の拒否リストに配置できるコントロール
Microsoft HTA Document 6.0 - 3050F5C8-98B5-11CF-BB82-00AA00BDCE0B
htmlfile - 25336920-03F9-11CF-8FD0-00AA00686F13
htmlfile_FullWindowEmbed - 25336921-03F9-11CF-8FD0-00AA00686F13
mhtmlfile - 3050F3D9-98B5-11CF-BB82-00AA00BDCE0B
Web ブラウザー コントロール - 8856F961-340A-11D0-A96B-00C04FD705A2
DHTMLEdit - 2D360200-FFF5-11d1-8d03-00a0c959bc0a
ActiveX コントロールの初期化方法を変更する
Office 2010 には、SFI、UFI、およびセーフ モードのパラメーターに基づいて ActiveX コントロールの初期化の方法を制御する設定が用意されています。SFI、UFI、およびセーフ モードは、開発者が ActiveX コントロールを作成するときに構成できるパラメーターです。SFI としてマークされた ActiveX コントロールは、セーフ データ ソースを使用して初期化します。セーフ データ ソースとは、信頼できる既知の、セキュリティ違反の原因とならないデータ ソースです。SFI としてマークされていないコントロールは UFI であると見なされます。
セーフ モードは、ActiveX コントロールの安全性を確実にするために開発者が使用できるもう 1 つのセキュリティ機構です。開発者がセーフ モードを実装する ActiveX コントロールを作成すると、そのコントロールはセーフ モードと非セーフ モードの 2 つの方法で初期化できます。ActiveX コントロールがセーフ モードで初期化された場合は、機能を制限する特定の制限がコントロールに適用されます。逆に、ActiveX コントロールが非セーフ モードで初期化された場合は、その機能は制限されません。たとえば、ファイルの読み取り/書き込みを行う ActiveX コントロールでは、セーフ モードで初期化された場合はファイルの読み取りのみを許可し、非セーフ モードで初期化された場合は読み取りと書き込みを許可します。セーフ モードでは、SFI である ActiveX コントロールのみを初期化できます。UFI である ActiveX コントロールは、常に非セーフ モードで初期化されます。
ActiveX コントロールの既定の初期化が組織の条件を満たしていないが、ActiveX コントロールを無効にしたくない場合は、以下のガイドラインに従って、ActiveX コントロールの初期化をどう変更するかを決定してください。
設定名: ActiveX コントロールの初期化
説明: この設定は、Office 2010 のすべてのアプリケーションについて、ActiveX コントロールの初期化の方法を指定します。これはグローバルな設定であり、アプリケーション単位で構成することはできません。この設定では、初期化に関する次の 6 種類のセキュリティ レベルのいずれかを選択できます。セキュリティ レベル 1 どのようにマークされていても、コントロールを読み込み、保持されている値があればそれを使用します。この設定ではユーザーへの確認が禁止されます。
セキュリティ レベル 2 SFI とマークされている場合、コントロールをセーフ モードで読み込み、保持されている値があればそれを使用します。SFI とマークされていない場合は、非セーフ モードで読み込み、保持されている値があればそれを使用します。あるいは、既定の (初回に初期化された) 設定を使用します。このレベルは既定の構成と似ていますが、既定の構成とは異なり、ユーザーへの通知が禁止されます。
セキュリティ レベル 3 SFI とマークされている場合、コントロールを非セーフ モードで読み込み、保持されている値があればそれを使用します。SFI とマークされていない場合は、安全でないとマークされたコントロールであることをユーザーに知らせます。この確認に応えて、ユーザーがこれを使わないと決めたときは、コントロールを読み込みません。そうでなければ、既定の (初回に初期化された) 設定で読み込みます。
セキュリティ レベル 4 SFI とマークされている場合、コントロールをセーフ モードで読み込み、保持されている値があればそれを使用します。SFI とマークされていない場合は、安全でないとマークされたコントロールであることをユーザーに知らせます。この確認に応えて、ユーザーがこれを使わないと決めたときは、コントロールを読み込みません。そうでなければ、既定の (初回に初期化された) 設定で読み込みます。
セキュリティ レベル 5 SFI とマークされている場合、コントロールを非セーフ モードで読み込み、保持されている値があればそれを使用します。SFI とマークされていない場合は、安全でないとマークされたコントロールであることをユーザーに知らせます。この確認に応えて、ユーザーがこれを使わないと決めたときは、コントロールを読み込みません。そうでなければ、読み込んで保持されている値を使用します。
セキュリティ レベル 6 SFI とマークされている場合、コントロールをセーフ モードで読み込み、保持されている値があればそれを使用します。SFI とマークされていない場合は、安全でないとマークされたコントロールであることをユーザーに知らせます。この確認に応えて、ユーザーがこれを使わないと決めたときは、コントロールを読み込みません。そうでなければ、読み込んで保持されている値を使用します。
影響: SFI とマークされていないコントロールは、コンピューターに悪影響を及ぼす可能性があります。つまり、開発者がコントロールをあらゆる状況でテストしていないので、今後、それが問題を起こすかどうかはわかりません。また、ActiveX コントロールの中にはセーフ モードのレジストリ設定に対応していないものもあるので、この設定を ActiveX コントロールがセーフ モードで初期化されるように構成しても、保持されている値が読み込まれる場合があります。この設定を有効にし、セキュリティ レベル 2、4、または 6 を選択したときだけ、的確に SFI とマークされた ActiveX コントロールのセキュリティが向上します。悪意のあるコードや適切に設計されていないコードを含む状況では、ActiveX コントロールが誤って SFI とマークされる可能性があります。
ガイドライン: ほとんどの組織は、この設定を有効にし、セキュリティ レベル 2 を選択します。これで、既定の構成と同じ初期化基準が使用されますが、メッセージ バーでのユーザーへの通知は行われません。セキュリティの制限を厳しく設定する組織は、通常、この設定を無効にします。これが既定の構成です。
関連する ActiveX コントロールの設定
Office 2010 のアプリケーションに対する ActiveX コントロールの作用を変更する設定が、このほかにもいくつかあります。セキュリティ環境が特殊なために ActiveX コントロールの設定を変更する場合は、次の設定の評価が必要になることがあります。
Forms3 でコントロールを読み込む この設定は、UserForm での ActiveX コントロールの初期化の方法を決定します。
セキュリティの問題に関するセキュリティ バーの通知をすべて無効にする この設定は、安全でない ActiveX コントロールに関する警告も含め、ユーザーのメッセージ バーに警告を表示しないようにします。
注意
ポリシー設定に関する最新情報は、Microsoft Excel 2010 ブック Office2010GroupPolicyAndOCTSettings_Reference.xls を参照してください。このブックは、「Office 2010 Administrative Template files (ADM, ADMX, ADML) and Office Customization Tool (英語)」(https://go.microsoft.com/fwlink/?linkid=189316&clcid=0x411) (英語) ダウンロード ページの [Files in this Download] セクションから入手できます。