Officeのマクロ環境は長年にわたりマルウェアの温床となってきた。OfficeアプリケーションでVBA(Visual Basic for Applications)を感染経路とするマクロマルウェアは、ドキュメントを開くと同時に実行されるため、大半のOfficeアプリケーションはマクロの実行に抑制を加えている。

  • Officeアプリケーションのオプションから呼び出す「セキュリティセンター」のマクロ設定

一時期は鳴りを潜めたVBAマルウェアだが、近年は復活の兆しを見せているという。下図に示したのは、Windows Defender ATPによる脆弱性とVBAマクロを用いたマルウェアの検出数だ(出典)。ご覧のように2016年中盤に勢いを増したVBAマクロだが、2017年後期に差し掛かると再び復興し始めた様子が見て取れる。

  • Windows Defender ATPによる脆弱性(青色)とVBAマクロ(橙色)を用いたマルウェアの調査結果(公式ブログより抜粋)

この状況をくつがえすためにMicrosoftは、AMSI(Antimalware Scan Interface)をOfficeアプリケーションから呼び出すことを選択した。AMSI自体は目新しいものではなく、公式ドキュメントのタイムスタンプは2015年5月だ。Windows 10でもWindows PowerShell経由で利用中だ。

AMSIは信頼性の乏しいデータや疑わしきデータをスキャンするためのAPIを用意し、各アプリケーションから呼び出すことで、スクリプトなどによるマルウェアの被害を未然に防ぐというもの。

今回のOffice VBAとAMSIの統合は、VBAマクロの動作を追跡し、疑わしい動作を検出した場合はWindows Defenderなどによるスキャンを実行、そして脅威を検出した場合はマクロを停止する。

  • OfficeアプリケーションからAMSIを呼び出した際のプロセス(公式ブログより抜粋)

さらにPCをMicrosoft Intuneで管理し、Windows Defender ATPウイルス対策クラウドサービスと連携している場合は、Office VBA+AMSIの結果をクラウドにアップロードし、機械学習のモデルとして利用する仕組みも持つ。その結果、疑わしいマクロコードを持つドキュメントを開く際は、PCに対してシグナルを送信するため、リアルタイム保護強化にもつながる。

もちろんマルウェアの検出に完璧はなく、Office VBA+AMSIも、"何もないよりはマシ"程度という見方もあるだろう。だが、マルウェアの攻撃と防御はイタチごっこであり、常に対策を講じなければならない。Microsoftによれば、2018年9月の月次チャネルでOffice VBA+AMSIを展開し、既定で有効になっているという。本機能もセキュリティの高度化を進める一歩となるだろう。

阿久津良和(Cactus)