マクロウイルスの脅威

公開日:

更新日:

執筆者:手塚 弘章

マクロウイルス
         

目次

マクロウイルスとは

マクロウイルスに関しては、以前の「マルウェアや攻撃者の侵入経路」で簡単に「WordやExcelなどのMicrosoft Office製品では利便性の為にマクロと言われるアプリケーション操作を自動化したり、自動化の手順を記録したりする機能があり、それを攻撃コード実行に利用するマルウェア」と説明しました。本記事ではより詳細な話をしたいと思います。

マクロウイルス自体は1999年に世間を騒がせたメリッサ(Melissa)が有名ですが、最近ではEMOTETが猛威を振るっていました。

以前の「PPAP回避やテレワークに必須のファイル無害化」にて、「本年1月に、ユーロポール(欧州刑事警察機構)のてんとうむし作戦にて制圧されたと言われている、世間を騒がせたEMOTETは感染者の端末のファイルを暗号化し、お金を奪おうとするランサムウェアです。」と記述しました。

EMOTETは当初トロイの木馬(RAT, Remote Access Tool:攻撃者が侵入できるバックドアを開けるマルウェア)でしたが、色々な機能追加や攻撃者による様々な命令実行をする事で、非常に大規模な被害を出しました。

この進化型EMOTETは、感染者のOUTLOOKのアドレス帳やメールの内容を搾取するとともに、他のシステムやネットワーク経由でランサムウェアを含めたマルウェアファイルをダウンロードし実行します。

EMOTETはOUTLOOKに登録された相手に勝手にメールを発信するだけではなく、受け取ったメールからメッセージを抜き出すことで、返信メールをも作成します。

EMOTETが発信、返信したメールは、

  • 知っている人からきたメールに見せかける
  • 返信メールに見せかける
  • 読みたくなる題名をつける

等により、メールの受信者に添付ファイルを開かせる、あるいはURL(ドライブバイダウンロード)でランサムウェアに感染させつつ、次の人にも同じようにメールを送信することで感染を拡大させるランサムウェアとして有名になりました。
(詳しい解析は、三井物産セキュアディレクション様の記事*1で紹介されています)

以前の「PPAP回避やテレワークに必須のファイル無害化」で説明したとおり、EMOTETはユーロポールにより制圧されたと言われていますが、EMOTETと酷似したマクロウイルスであるIcedIDやBazarCallの被害が増えており、残念ながら安心できる状況ではありません。

防御・検知ができないマクロウイルスの特徴

マクロウイルスの特徴としては、通常のプログラムの様に事前にプロセッサーが実行可能なオブジェクトコード(機械語)を生成するのではなく、実行時にオブジェクトコードを生成するスクリプト言語で書かれている、インタプリタ型のプログラムであるという特徴があります。

WordやExcel利用時に、VBAやVBAから実行されるPowerShellでプログラムやスクリプト言語を実行する為に利用されるプログラムがインタプリタ型のプログラムです。

つまり、インタプリタ型のプログラムは、スクリプトファイルはありますが、オブジェクトは実行時に生成するので、ファイルレスと言えます。

仮にマルウェアがファイルレス形式の場合、

  • 既知の攻撃対策としては有効である「パターンファイル型」のアンチウイルスでは検知出来ない
  • 同じく既知の攻撃パターンベースで検知する「ふるまい検知」「サンドボックス」などでは新しい手法の攻撃が検知出来ない(例えばAI技術などで新規の攻撃が検知できたとしても、マクロウイルスによっては特定の操作を行わないと動かないなど多くの場合見つけられず、無駄に運用負荷が増加する)
  • ホワイトリスト型のセキュリティ対策でもマクロの実行を許可していた場合、Word、Excel、あるいは子プロセスでもWindows標準のPowerShellなどが実行される為に、スクリプトファイルを監視・判定する仕組みがない限りは検知されない

という危険性があります。

一般的なマクロウイルス対策

一般的に、マクロウイルスに感染しないためには、

  • メールの添付ファイルを開かない
  • メールやファイルに記述されているURLをクリックしない
  • Word文書やExcelファイルを開いた時に、マクロやセキュリティに関する警告が表示された場合は、「マクロを有効にする」「コンテンツの有効化」というボタンをクリックしない

などが必要な対策だと言われています。

しかし、そのような利用者に依存した対策方法では、マクロが使えないことにより作業効率が下がってしまう、あるいは、メールがマルウェアによって詐称されたものであった場合、メールを疑わずマルウェアが仕組まれたファイルやURLを開いてしまう可能性があります。

マクロウイルス対策の状況

標準のマクロの有効化/無効化に関して、マイクロソフト社はWordやExcelのマクロ実行を無効化する変更をしています。

例えばExcel 2007以降では標準の設定としてマクロが無効化されており、有効化設定をしないとマクロが使えなくなっています(バージョンにより、有効化の方法は違います)。

また、同じくマクロ付きファイルの識別が一目でできるように拡張子を「.xlsx」から「.xlsm」に変更しました。

この様に、マイクロソフト社もマクロを利用したマルウェアを実行させない取り組みをしており、「VBA」で記述されたマクロウイルスを実行させないことにある程度の成果はありました。

しかし、攻撃者が古いマクロ言語である「XLM」*2や、その他のインタプリタのスクリプトを利用した場合では効果がない為に、マイクロソフト社はアプリケーション開発者やマルウェア対策製品ベンダーに対し、正規のプロセスを通じて実行されるJavaScript、VBScript、PowerShellなどのスクリプトを使うメモリでコードを直接実行するプログラムにはAMSI(Anti-Malware Scan Interface)を呼び出す事を推奨*3しています。

マクロウイルスを実行させないためには

デジタル証明書が付いたアプリケーションは、マクロウイルスを含むどんなマルウェアも入っていないと信じられており、セキュリティ製品の中でも無条件に検知対象外としているものがあります。

しかし、2017年に起きた、PCを快適に利用するために不要なファイルやレジストリを削除するCCleanerにマルウェアが混入した事件では、開発環境が攻撃者に侵害され、マルウェアを含むオブジェクトコードにデジタル証明書が付いていた為に検知ができず、多くの感染被害がでました。

一概にデジタル証明書があるからといって、必ずしも安心することは出来ません。

当社では、マクロウイルスを含むマルウェアを防ぐエンドポイント製品Morphisecや、事前にマルウェアを削除するファイル無害化製品ReSecを取り扱っています。因みに、CCleanerのマルウェアを最初に発見したのはMorphisecであり、メーカに伝達することで被害の防止に役立っています。

また、ReSecは、日本のお客様からの要望により、マクロウイルスを削除あるいは、マクロを無効化する機能が追加されています。

また、多重パスワードにも対応していますので、パスワード保護された圧縮ファイルやアプリケーションファイルを無害化することも可能です。

つまり、

  • Morphisecでマルウェアの主力技法になっているメモリテクニックが実行できない環境を作ることで、ファイルレスで実行されるマクロウイルスが脆弱性を突いたり、全く新しい攻撃手法で特権奪取などの処理を実行したりすることを阻害(詳細は、以前の「エンドポイント保護のためのMoving Target Defense 技術」を参照ください)
  • ReSecでファイルを無害化することで、攻撃技法に関係なくメールやクラウドストレージでファイルを受取る際、あるいはWebからファイルをダウンロードする際に、マルウェアの侵入を防止し、かつゼロトラストのポリシーでマクロウイルスを削除
    することで、マクロウイルスを含むマルウェアからの感染を防ぐことが可能です。

マクロウイルス対策のためのゼロトラストアプローチ

具体的にReSecで行っているマクロウイルス対策は、ゼロトラストアプローチによって、マクロに対して、絶対安全とは言えないという判断をします。その上で、ウイルスを削除します。

例えば、ランサムウェアが実行される際には、マクロが次のような動きをします。

  • 別プロセスを生成(PowerShellなどのプロセス生成)
  • 他のファイルへのアクセス
  • 他のネットワークへのアクセス

それに対し、ReSecは上記のようなマクロを検知し、ダウンローダーとしての実行を阻止します。これらの設定は利用状況に応じて個別に有効化/無効化の変更が可能です。

攻撃者は次から次に新手の手法や、ツールで攻撃を行います。特にマクロには、攻撃者が喜びそうな機能がありますので、今後ともマクロウイルスによる攻撃も進化していくと思われますが、攻撃手法を問わず対策可能なMorphisecやReSecは将来とも有効であり続ける製品です。

■ 参考
*01    流行マルウェア「EMOTET」の内部構造を紐解く | MBSD Blog,2021/6/1
*02  マイクロソフト、「Excel」マクロ悪用マルウェア対策を強化 - ZDNet Japan,2021/6/1
*03  AMSI を使用してマルウェアから防御する方法 - Win32 apps | Microsoft Docs,2021/6/1
*03 マルウェア対策スキャン インターフェイス (AMSI) - Win32 apps | Microsoft Docs,2021/6/1