社員が業務メールの添付ファイルを開いた、ただそれだけでPCが乗っ取られた――。マクロウイルスによる被害は今も続いており、「Office書類だから安全」という思い込みが攻撃者に利用されています。
この記事では、マクロウイルスとは何か、どんな手口でシステムに侵入するのか、そして中小企業の情シスが明日から実践できる防御手順まで、現場で使えるレベルで解説します。

マクロウイルスとは?
マクロウイルスとは、MicrosoftのOfficeアプリケーション(Excel・Word・PowerPointなど)に搭載された「マクロ機能(VBA: Visual Basic for Applications)」を悪用するマルウェアの一種です。
マクロとは、複数の操作を自動化するためのプログラムです。売上集計の自動化や請求書の自動作成など業務効率化に広く使われていますが、攻撃者はこの仕組みに悪意のあるコードを埋め込み、実行させます。
マクロウイルスが今も脅威であり続ける理由は、主に3点あります。
・実行トリガーがファイルを「開く」だけ:特定の条件下では、ドキュメントを開いた瞬間にマクロが自動実行されます
・フィッシングとの組み合わせが多い:請求書・契約書・採用応募書類などに偽装され、メール添付で届きます
・暗号化ZIPで検知を回避:パスワード付きZIPで届くことが多く、セキュリティ製品がスキャンできない場合があります
マクロウイルスは1990年代に登場した古い脅威ですが、攻撃手法は進化し続けています。2020年代以降はVBAマクロだけでなく、XLLアドインやXLSBバイナリ形式を悪用した亜種も確認されており、「VBAだけブロックすれば安全」という時代はすでに終わっています。
攻撃の仕組み(敵を知る)
マクロウイルスの典型的な攻撃フローを見ていきましょう。
【ステップ1】フィッシングメールで配送
攻撃者は請求書・発注書・履歴書などに偽装した.xlsm(マクロ有効Excelブック)や.docm(マクロ有効Wordドキュメント)ファイルを作成し、メール添付で送り付けます。「至急ご確認ください」「契約内容を添付します」といった文面で開封を促します。フィッシング詐欺の手口と組み合わせることで、受信者の警戒心を下げるのが常套手段です。
【ステップ2】「コンテンツを有効化」で防御が崩れる
Officeは既定でインターネットから入手したドキュメントを保護ビュー(読み取り専用)で開きます。マクロは実行されない安全な状態です。ところが、「表示を正しくするには『コンテンツを有効化』が必要です」などの偽の案内がドキュメント内に書かれていると、ユーザーがそのボタンを押してしまいます。
この「コンテンツを有効化」のクリックが、マクロウイルスに動く機会を与えます。
【ステップ3】マクロがバックグラウンドで動く
有効化されたVBAマクロは、ユーザーが気づかないうちに次のような処理を実行します。
# VBAマクロが実行する典型的な悪意のある処理(概念的なイメージ) # 1. PowerShellを呼び出してインターネットから追加マルウェアをダウンロード # 2. Windowsのスタートアップに自分を登録して永続化 # 3. 攻撃者のC2(コマンド&コントロール)サーバーに感染を通知 # 4. ネットワーク共有フォルダに自分をコピーして横展開
特に「PowerShellを介したダウンローダー」は非常に多い手口です。VBAマクロが直接ランサムウェアを動かすのではなく、まずダウンローダーとして機能し、本体マルウェアを外部から取得する二段階構造が一般的です。
【最近の亜種】VBAブロック後に広がる手口
2022年にMicrosoftがインターネット由来のOfficeファイルのVBAマクロをデフォルトでブロックしたことで、攻撃者は新しい経路に移行しています。
・XLLアドイン(.xll):ExcelのC/C++製アドインファイルで、VBAとは別の仕組みで動作するため、VBAブロックでは防げません
・XLSBバイナリ形式:バイナリ形式のためコードが解析されにくく、難読化に悪用されます
・OneNoteファイル(.one):ページ内に悪意のある添付ファイルを埋め込む手口が2023年以降に急増しました
具体的な防御手順
1. グループポリシーでOfficeマクロを組織全体でブロックする
最も効果的な対策は、組織全体のポリシーでマクロを制御することです。Active DirectoryのGPO(グループポリシー)またはMicrosoft 365管理センターから設定します。
# グループポリシーでVBAマクロを制御する設定パス(参考) # ユーザーの構成 # → 管理用テンプレート # → Microsoft Excel # → Excel のオプション → セキュリティ → セキュリティ センター # → 「インターネットから入手したOfficeファイルのマクロのブロック」: 有効 # # Word・PowerPoint・Outlookにも同様のポリシーが存在する # 「警告を表示せずにすべてのマクロを無効にする」を全Officeアプリに統一適用する
インターネットゾーンから取得したOfficeファイルには「Mark of the Web(MOTW)」フラグが自動的に付与されます。このフラグ付きファイルのマクロを組織ポリシーで一律ブロックするのが、最も根本的な対策です。
2. 信頼できる場所(Trusted Locations)だけマクロを許可する
業務上マクロを使う必要がある場合は、すべてのマクロを無効化しながら、社内で承認済みのファイルサーバーやSharePointライブラリだけを「信頼できる場所」として登録します。
・ユーザーのデスクトップ・ダウンロードフォルダは信頼できる場所に含めない
・業務用マクロファイルは社内の承認フローを経たものだけをサーバーに配置する
・外部から届いたファイルを信頼できる場所にコピーして開く行為を禁止するルールも整備する
3. メールフィルタリングとEDRを組み合わせた多層防御
ポリシーだけでなく、攻撃の経路と事後の検知もカバーする必要があります。
・メールゲートウェイのファイルタイプフィルタリング:.xlsm・.xlsb・.docm・.xllなどのマクロ有効ファイルを添付として受信できないようにフィルタリングします。業務上必要な場合はSharePointリンク経由への移行を検討します
・EDR(エンドポイント検知・対応):マクロが起動してPowerShellを呼び出すという異常なプロセスチェーンをリアルタイムで検知します。EDRとアンチウイルスの違いと選び方を理解した上で、両方を組み合わせることが重要です
・サンドボックス(動的解析):受信した添付ファイルを隔離環境で自動実行し、不審な動作を検出する機能が主要なメールセキュリティ製品に搭載されています
中小企業でも今日からできること
予算が限られた環境でも、優先度の高い対策から着手できます。
・Officeのマクロ設定をユーザー任せにしない:Officeのセキュリティセンター設定を「警告を表示してすべてのマクロを無効にする」に全PC統一します。グループポリシーがない環境でも、ログオンスクリプトやマニュアル展開で統一できます
・ファイル拡張子の表示を有効にする:Windowsエクスプローラーで拡張子を表示させ、.xlsmや.docmが添付されていた場合に気づけるようにします
・社員へのリテラシー教育:「コンテンツを有効化ボタンは押さない」を業務ルールとして文書化・周知します。フィッシング対策訓練の一環として、マクロウイルスの模擬メール訓練を実施するのも有効です
・Microsoft 365ユーザーはポリシーを確認:Microsoft 365管理センターの「Microsoft 365 Appsの管理」からVBAマクロポリシーを一括設定できます
中小企業のエンドポイントセキュリティ対策チェックリストも合わせて確認することで、マクロ対策を含む端末全体のセキュリティを体系的に整備できます。
よくある誤解と注意点
誤解1:「アンチウイルスが入っているから大丈夫」
アンチウイルスはシグネチャベースの検知が主体のため、新しいマクロウイルスや難読化されたVBAコードは見逃すことがあります。マクロの実行をポリシーでブロックする方が、より根本的な対策です。また、マルウェアの種類と感染手口を把握することで、アンチウイルスだけに頼ることの限界を理解できます。
誤解2:「VBAマクロをブロックすれば安全」
XLLアドインやOneNoteの添付ファイルを悪用した手口は、VBAブロックをすり抜けます。Office全体の添付ファイルポリシーをメールゲートウェイでも制御する多層防御が必要です。
誤解3:「自分の会社は狙われない」
マクロウイルスによる攻撃の多くはばらまき型で、業種や規模を問いません。メールアドレスが知られていれば誰でも標的になります。「うちには狙う価値がない」という思い込みが、準備を後回しにする最大の落とし穴です。
【注意】マクロを業務で使っている場合
「一律禁止すると業務が止まる」という声もあります。その場合は、社内で開発・管理された承認済みマクロファイルだけを信頼できる場所に配置し、外部から届いたファイルは別フォルダで扱う運用設計が現実解です。「すべてのマクロを禁止する」のではなく、「出所が管理されたマクロだけ動かす」という考え方で整理しましょう。

本記事のまとめ
マクロウイルスは、Office書類という「信頼されやすいもの」を武器にする攻撃です。仕組みを正しく理解することで、「コンテンツを有効化ボタンを押してはいけない」という行動規範が根付き、被害を大きく減らせます。
| 対策レイヤー | 具体的な手順 | 効果 |
|---|---|---|
| ポリシー設定 | GPO・M365管理センターでVBAマクロをブロック | 高(根本的な実行防止) |
| メールフィルタ | .xlsm/.docm/.xll添付を受信拒否 | 高(入口遮断) |
| EDR | VBA→PowerShellの異常プロセス連鎖を検知 | 中(実行後の封じ込め) |
| 社員教育 | 「コンテンツを有効化」を押さないルールの周知 | 中(ヒューマンエラー抑止) |
| 拡張子表示 | Windowsエクスプローラーで拡張子を表示させる | 低~中(気づきの入口) |
マクロウイルスの手口は「VBAだけブロックすれば終わり」という段階を過ぎています。多層防御の考え方で、入口(メールフィルタ)・実行(ポリシー)・検知(EDR)の3層をそれぞれ固めていきましょう。
PR
詳解 インシデントレスポンス(Steve Anson/石川朝久訳)
マクロウイルス感染後の初動対応・封じ込め・証拠保全・復旧まで、インシデントレスポンスの全フェーズを体系的に解説。現場のエンジニアがすぐ実践できる手順と考え方が詰まった一冊です。
