Microsoft は、Office Visual Basic for Applications (VBA) マクロ プロジェクト署名に脆弱性があることを発見しました。 この脆弱性により、悪意のあるユーザーがデジタル署名を無効にすることなく、署名済み VBA プロジェクトを改ざんできる可能性があります。 したがって、「Microsoft Common Vulnerabilities and Exposures CVE-2020-0760」に記載されているセキュリティ更新プログラムを適用することをお勧めします。
Office VBA マクロ プロジェクト署名のセキュリティを強化するために、Microsoft では、VBA プロジェクト署名パターンのより安全なバージョンである V3 署名を提供しています。 V3 署名は、次の製品で使用できます。
-
現在のチャネルの Microsoft 365 バージョン 2102 (ビルド 16.0.13801.20266) 以降のバージョン
-
ボリューム ライセンス バージョンの Office 2019 バージョン 1808 (ビルド 10372.20060) 以降のバージョン
-
製品版の Office 2016 クイック実行エディションおよび Office 2019 バージョン 2102 (ビルド 16.0.13801.20266) 以降のバージョン
-
次の更新プログラムまたはそれ以降のバージョンの更新プログラムがある Office 2016 の Microsoft インストーラー (.msi) ベースのエディション:
改ざんのリスクを排除するために、組織はすべてのマクロに V3 署名を適用することをお勧めします。
既定では、下位互換性を確保するために、既存の署名を持つ VBA ファイルは引き続き機能し、V3 署名を使用して署名されたファイルは、以前のバージョンの Office または更新されていない Office クライアントで開いて実行できます。 ただし、管理者は、Office を一覧のバージョンにアップグレードした後、できるだけ早く既存の VBA 署名を V3 署名にアップグレードすることをお勧めします。 管理者は、組織との互換性が失われていないことを確認した後、V3 署名を使用する VBA マクロのみを信頼するポリシー設定を有効にすることで、以前の VBA 署名を無効にできます。 このポリシー設定の詳細については、「ポリシー設定: 「V3 署名を使用する VBA マクロのみを信頼する」を有効にする」セクションを参照してください。
署名済み VBA ファイルを V3 署名にアップグレードする
管理者は、次のトピックを使用して、既存の VBA 署名ファイルを V3 署名にアップグレードできます。
VBA エディターを使用して VBA ファイルに再署名する
プライベート証明書がある場合は、Office アプリケーションで提供されている Visual Basic for Applications (VBA) エディターを使用して、VBA ファイルに再署名します。
-
VBA ファイルに再署名するには、ファイル内から Alt+F11 を押して、VBA エディターを開きます。
-
既存の署名を V3 署名に置き換えるには、[ツール] > [デジタル署名] を選択します。 [デジタル署名] ダイアログ ボックスが開きます。
注: VBA プロジェクトに署名するには、秘密キーが正しくインストールされている必要があります。 詳細については、「マクロ プロジェクトにデジタル署名する」を参照してください。
-
[選択] を選択して、VBA プロジェクトの署名に使用する証明書の秘密キーを選択し、[OK] を選択します。
-
新しい署名を生成するには、ファイルを再度保存します。 新しいデジタル署名は、以前の署名に置き換わります。
SignTool を使用して VBA ファイルに再署名する
Windows 10 SDK の SignTool は、コマンド ラインから VBA ファイルに再署名するのに役立ちます。 「署名済み VBA ファイルのインベントリを作成する」セクションで識別されたインベントリ リストに対して再署名作業をバッチ処理するために、SignTool を独自の管理ツールに統合できます。
注: 現在、SignTool は Microsoft Access をサポートしていません。
SignTool を使用して VBA ファイルに再署名するには、次の手順を実行します。
-
Windows 10 SDK をダウンロードしてインストールします。
-
VBA プロジェクトにデジタル署名するための Microsoft Office サブジェクト インターフェイス パッケージから Officesips.exe をダウンロードします。
-
ファイルに署名し、ファイル内の署名を確認するには、Msosip.dll と Msosipx.dll を登録してから、Offsign.bat を実行します。 詳細な手順は、Officesips.exe のインストール フォルダーにある Readme.txt ファイルに含まれています。
注: Offsign.bat を実行するときは、「C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86」フォルダーにある x86 バージョンの SignTool を使用してください。
ポリシー設定: 「V3 署名を使用する VBA マクロのみを信頼する」を有効にする
V3 署名へのアップグレードが完了したら、「V3 署名を使用する VBA マクロのみを信頼する」ポリシー設定を有効にして、V3 署名-署名済みファイルのみが信頼されるようにすることをお勧めします。
このポリシー設定は、グループ ポリシーまたは Office クラウド ポリシー サービスで使用できます。 これは、ユーザーの構成\ポリシー\管理用テンプレート\Microsoft Office 2016\セキュリティ設定\トラスト センターにあります。 この設定が有効になっている場合、Office がファイル内のデジタル署名を検証するときに、V3 署名のみが有効であると見なされます。 VBA ファイルの以前の形式の署名は無視されます。