「セキュリティに対する重要性は理解したけれど、用語が難しくて」という声を聞くことがよくあります。そんな方に、セキュリティの頻出用語を解説します。今回は、「マクロウイルス」についてです。
1990年代、MS Officeの世界的な浸透とともに、WordやExcelなどのマクロ機能を利用した「Melissa」やW「M.Concept」などのマクロウイルスが猛威を振るいました。その後、対策が進んだことで、その脅威は下火となりましたが、「McAfee Labs 脅威レポート2015年11月(PDF)」によると、2015年から再びマクロウイルスが、急増しています。
本ブログでは、特別な断りがない場合、マクロウイルスは、MS Officeに搭載された標準機能であるマクロを悪用したソフトウェアを対象として記述します。
マクロウイルスは、「マクロ」+「ウイルス」が組み合わさった用語です。では、マクロとは、どういうものでしょうか?
マイクロソフトは、Office製品の標準機能として、スクリプト言語 Office VBA (Visual Basic for Applications) をサポートしています。マクロは、このVBAを利用して、複数の手順を記憶して、自動的に実行させる機能のことです。マクロは、非常に便利な機能のため、Office製品と一緒に多くの企業や組織で利用されています。
このマクロの仕組みを悪用して、自己増殖や破壊活動を行うよう設計したマクロをマクロウイルスといいます。攻撃者は、ユーザーに気づかれないようにWordファイルやExcelファイルなどに埋め込み、そのファイルを開くだけでウイルスに感染させるようにします。
90年代と違う点では、最近のマクロウイルスはPowerShellなどの新しいWindows機能を利用し、高度化していることです。さらに、簡単には理解できない難読性の高いソースコードを組むことで、一見してウイルスであるということをわかりにくくしている場合も増えています。
Office製品は、Windows OS上だけでなく、MacOSやiOS上でも稼働するため、マクロを実行できる環境があれば、OSを問わずに感染します。さらに、電子メールの添付ファイルやウェブサイト上でのダウンロードファイルとして展開することで、広範囲に感染させることが可能です。そのため、複数のOS、複数のサイトで大規模に感染する場合があります。ネットワーク経由での感染ではなく、USBファイルを通じて、ファイルを交換することで広がっていくこともよく見られます。
マクロは構造が単純でコーディングも簡単なため、攻撃やマルウェアの拡散手段として長年にわたり利用されてきました。
ソーシャルエンジニアリングを利用して、例えば、メールを「請求書」や「送別会のお知らせ」といった開きたくなるようなサブジェクトを付けて、送信し、マクロウイルスを含んだWordファイルを添付することで、間違ってファイルを開くといった、いくつかの手法を組み合わせて、攻撃をしかけることが増えています。
さらに、不正な活動を行った後に正常な文書と同じ振る舞いをするものがあり、検出されないケースも増えています。不正なマクロは、他のマルウェアがシステムに侵入し、不正な活動を行うための手段として利用されます。次の図は、最初の接触から悪質なペイロードの散布までの感染の流れを表しています。
- オペレーティングシステムを最新の状態に保ち、パッチを適用して既知の脆弱性を解決する。
- Microsoft Officeを最新バージョンに保つ。
- ウイルス対策ソフトウェアを最新バージョンに保つ。
といった活動に加えて、スパムメールや発信元が不明なメッセージは開かないこと、怪しいURLをクリックしないこと、不審に思ったらクリックする前に確認が可能ならば、発信元の人に確認するなど、日頃の注意が必要です。