全2258文字
PR

ウイルスのようなマクロを自作する

 今回はEmotetを参考にして、ウイルスのような振る舞いを行うマクロを作成し、それをウイルス対策ソフトが検知するかどうかを確認する。自作であってもウイルスのような振る舞いをするマクロを検知してくれれば、新種のマクロウイルスも検知してもらえる可能性が高まる。

 まずEmotetの主な動きを確認しよう。

  1. 文書ファイルのマクロを利用して、Emotet本体をインターネットからダウンロードする
  2. パソコンでEmotetを実行し、感染範囲を拡大させるためメールを送信する
  3. 認証情報を外部のサーバーに送信する

 これを参考にして、「ウイルスのような振る舞い」として以下の処理をマクロで実行させることにした。

(1)Windows標準のアプリを実行する
(2)外部からファイルをダウンロードして実行する
(3)メールを送信する
(4)ファイルを外部にアップロードする
(5)上記4つの処理をすべて実行する

 これらの処理をWindowsのコマンドだけ利用するものと、「PowerShell」を利用するものの2パターンを用意した。PowerShellはウイルスに悪用されることが多いWindows標準のシェルプログラムである。

 こうして作成した10種類のマクロを、多数のウイルス対策ソフトで検査できるWebサイト「VirusTotal」を利用してどれくらいのウイルス対策ソフトが検知するかを調べた。

VirusTotalにファイルをアップロードすると、テストに利用したウイルス対策ソフトの本数と検知したソフトの本数が表示される
VirusTotalにファイルをアップロードすると、テストに利用したウイルス対策ソフトの本数と検知したソフトの本数が表示される
(出所:VirusTotal)
[画像のクリックで拡大表示]

 結果は、Windowsのコマンドだけを利用したマクロでは「(3)メールを送信する」が最も高く12.5%で、ほかは10%以下だった。一方、PowerShellを利用するマクロはどの処理でも40%台で差は小さかった。

自作マクロの検知率の比較
分母はテストに利用されたウイルス対策ソフトの本数、分子が検知したソフトの本数。
Windowsのコマンドだけを利用PowerShellを利用
(1)Windows標準のアプリを実行する5/63(7.9%)25/61(41%)
(2)外部からファイルをダウンロードして実行する4/64(6.3%)26/61(42.6%)
(3)メールを送信する8/64(12.5%)28/61(45.9%)
(4)ファイルを外部にアップロードする5/64(7.8%)27/61(44.3%)
(5)上記4つの処理をすべて実行する6/64(9.4%)28/61(45.9%)

 作成したマクロはウイルスの振る舞いをまねただけで、パソコンに不具合を起こすような不正な処理を含んでいなかった。このため、検知しないほうがウイルス対策ソフトとしてはある意味正しいといえる。

 ただ、多くのマクロウイルスは不正な処理を検知されないように工夫を施している。実験で試したような振る舞いが検知されないので、「マクロウイルスがすり抜けやすい」というのは仕方ないことだろう。

 ユーザーができるマクロウイルス対策は不審なメールの添付ファイルを開かないこと。添付ファイルを開いてしまっても、「コンテンツの有効化」ボタンをクリックしないこと。これだけでもウイルス感染のリスクを大きく抑えられる。マクロを利用しないのであれば、マクロ機能をあらかじめ無効にしておくことが有効である。