見出し画像

VBA・マクロが既定でブロックされました

2022年4月にMicrosoft OfficeのVBAおよびマクロの実行に関して、2013〜のバージョン全てに対して、既定でブロックするアプデが配信されています。結果、これまで社内で普通に利用できていたVBAとマクロが、突如として動作しなくなります。

ことの発端は、Emotetが流行しいよいよMicrosoftも現状の改善に踏み出した結果なのですが、かといって完全動作しないでは困ります。実際今回の対処は、完全封鎖の為ではなく、より一層のセキュリティの強化の為であり、VBAとマクロを動かす運用方法が変わっています。

手順

マクロセキュリティの変更

VBAの設定は、セキュリティセンターを開き、マクロの設定にて「デジタル署名されたマクロを除き、すべてのマクロを無効にする」を選択し、会社内の担当部署が、動作許可を与えるVBA込みのファイルに対して、生成もしくは購入した証明書を持って、署名をするように運用方法変更が必要です。

署名付きならば動作許可すればバランスが取れる

証明書の作成

元々、VBAに備わっていた「秘密鍵の証明書で署名」「公開鍵の証明書が入ってるPCで動作許可」の仕組みで、通常社内では運用をオススメします。次項の信頼できる場所への追加は、動作はしますが、ウイルスも遠慮なく動作してしまいます。

PowerShellおよびOpenSSLの2つで自己署名証明書は作成可能ですが、外部企業からコード署名用の証明書を導入して運用するほうが尚良いでしょう。

PowerShellの場合、証明書の生成は管理者権限で実行し、以下のコマンドで作成する事が可能です。この際に生成された秘密鍵を持って、コード署名をし、クライアント側には公開鍵を配布してインストールしておきます。

New-SelfSignedCertificate -DnsName ここに適当な名称 -Type CodeSigning -CertStoreLocation cert:\CurrentUser\My -KeyLength 4096 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(5)

信頼できる場所への追加

Accessなどはコード署名が出来ません。よって、このアプリを動かしたい場合は、極めて限定的に許可したフォルダに対してだけ、信頼できる場所として追加し、そこにaccdbファイルを配置することで動作するようになります。

Accessだけはこのような処置が必要

詳細や応用編はこちら

より詳細な証明書の作成法や運用方法は以下のエントリーに記載しています。

#VBA #証明書 #PowerShell #OpenSSL #Emotet #マクロ

いいなと思ったら応援しよう!