標的型メールは見抜くことが難しい。は誤りです

PowerPointの仕組みを利用した、新たなマルウェア実行の手口

【注意!】この手口は、ファイルの拡張子だけでは見分けがつきません

2017年5月下旬、「PowerPoint」のハイパーリンク(正しくはハイパーリンクではなく、PowerPointの「動作」の機能)を使い、マウスオーバーのみで悪意のあるプログラムが実行され、ウィルスに感染させられる。という手口のメール攻撃があったことが報告されています。

「PowerPoint」のハイパーリンクを使うマルウェア登場、マウスオーバーのみで感染(ZDNet Japanの記事にリンクします)
PowerPoint マウスオーバー操作を悪用するマルウェア – デイリーセキュリティバイト(WatchGuard社のサイトにリンクします)
マウスオーバとマクロを利用、PowerPoint文書閲覧時に感染させる攻撃手法に注意(トレンドマイクロ社のサイトにリンクします)

この手口は目新しいということはあるものの、Microsoft Officeのセキュリティ機構により、ほとんどの場合は実行が阻害されることから、どのサイトの記事を見ても、脅威の程度としてはあまり重要視されていないように見受けられます。

しかし、この手口には、ほとんどのサイトで触れらていない重要なポイントがあるので、本ページではこの点について解説します。

ZoneIDが欠落しているとマウスオーバーの機能が実行できる

「PowerPoint」のマウスオーバーを使うマルウェアでは、PowerPointスライドショー形式(*.ppsxや*.pps)のファイルが使われます。
しかし、インターネットから取得したファイルには、Windowsの機能によりZoneIDという識別情報が付加されるため、ZoneIDが付加されたPowerPointスライドショー形式のファイルについては、開くことはできても、Microsoft Officeのセキュリティ機能により、編集を有効にしない限り、マウスオーバーの機能は有効になりません。

※ZoneIDについては、古い記事ながら、@ITの記事「Windows XP SP2のZoneIdとは?」が参考になります。

つまり、マルウェアが含まれているPowerPointスライドショー形式のファイルをうっかり開いてしまったとしても、ZoneIDが付加されていれば編集は無効化された状態でスライドショーが実行されるので、マウスオーバーの機能は有効にならず、マルウェアに感染することもない。ということになります。

しかしながら、ZoneIDが付加されていないPowerPointスライドショー形式のファイルを開く場合は編集が有効な状態として起動されるため、マウスオーバーの機能が有効な状態となってしまいます。

つまり、ファイルにZoneIDが付加されているかどうかによって、開いた時の挙動が変わってしまうため、まずはこの点に注意する必要があります。

ZoneIDが欠落してしまうケースは幾つかありますが、代表的な例としては、以下のようなケースです。

・Zipファイルとして送られてきた添付ファイルを解凍し、ダブルクリックして開くようなケース
・社内ネットワークなど、インターネットゾーンとして設定されていないところから送られてくるメールを受信するようなケース

マウスオーバーの機能が実行されても、プログラムの実行を許可しなければ感染はしないが・・・

マウスオーバーを使うマルウェアでは、PowerPointの「動作」の機能を利用しています。PowerPointをお持ちの方であれば、PowerPointの「挿入」メニューに「動作」を設定できるボタンがあることが確認できるはずです。

この「動作」の機能に、「マウスの通過」(つまりマウスオーバー)に連動してプログラムの実行を設定できる項目があり、実行するプログラムとしてマルウェアに感染させるためのスクリプトを設定しておくことにより、マウスオーバーと連動してマルウェアに感染させることができる。というわけです。

しかしながら、マウスオーバーしたからといって、即プログラムが実行されるわけではなく、マウスオーバーするとプログラムを実行するかどうかを尋ねるダイアログが表示されますので、ここでプログラムの実行を許可したりしなければ、マルウェアに感染してしまうようなことはありません。

ZoneIDによって保護ビューが働き、
1.編集が有効化されなければマウスオーバーが機能しない

もし、編集が有効化されてしまったとしても、
2.プログラムの実行を有効にするボタンを押さなければプログラムは実行されない。

ということで、通常は二重の抑止が働くので、一般的に考えれば、マルウェアに感染させられる可能性は低いと考えられます。

しかし、・・・

「動作」の機能には、ユーザーが気づくことができない、犯罪者にとって有利な機能が存在する

PowerPointの「挿入」メニューにある「動作」の設定を実際に使ってみて頂ければわかることですが、「動作」の設定ダイアログで設定する事ができるプログラムの長さは255文字までに制限されています。

つまり、255文字以上のスクリプトはダイアログでは設定できないのですが、実際にはInternet Explorerで設定できるURLの長さと同様、2038文字まで設定することができます。なので、短いプログラムであれば、この機能を使って動かすことができてしまうということになります。

そして、ここからが問題なのですが、「動作」として設定したプログラムは、PowerPoint上では255文字分までしか見ることができない。という欠点が存在します。

これはすなわち、255文字を超える部分のプログラムは、見た目には何が設定されているのか、全く分からない。ということです。

もし、見える部分には、誰が見ても差し障りのない文章が書かれていて、255文字を超える部分にマルウェアに感染させるためのスクリプトが書かれていたらどうなるでしょうか?

PowerPointの仕組みを利用した手口については、マウスオーバーだけで感染してしまう。という点に注目が集まっていますが、実際に注目すべきは、見た目にはわからない部分にプログラムを隠すことができてしまう。という点にあります。

マウスオーバーでプログラムが実行される手口は、マウスオーバーによって、「動作」に設定されているプログラムが見えてしまうことを防げるというメリットもあってのことかと思いますが、マウスオーバーによるマルウェア実行の手口が公になったことで、今後はマウスオーバーによる実行は警戒されるようになる事が予想されます。

そこで、マウスオーバーによる実行ではなく、マウスクリックによる実行という形にして、マウスオーバーで見える部分には差しさわりのない文言を設定することで、マウスクリックによって実行されるのは、無害なサイトへのアクセスなどであるかのように装う手口が登場することが予想されます。

このような手口が使われた場合、PowerPointのスライドショーを実行し、マウスオーバーした際に表示される部分にはリンク先のサイトを開くだけの表示しか見えなければ、知識のない人はごく普通のリンクだと思ってクリックしてしまうであろうことは想像に難くありません。

実際にはプログラムを有効にするかどうかを尋ねるダイアログが表示されるので、ここでおかしいと気づいて実行を許可しなければ事なきを得られますが、マウスオーバーをした際には怪しいプログラムのようなものは全く見えないので、ソーシャルエンジニアリングによって巧みに誘導されれば、怪しいプログラムだとは思わずに実行を許可してしまう可能性は十分にあると考えられます。

マウスオーバーするだけで実行されてしまうという手口ももちろん怖いものではあるのですが、それ以上に怖いのは、見かけ上、悪意のあるプログラムなど設定されていないかのように見せることができてしまうという点であり、見えない部分に悪意のあるプログラムを隠すことができるということを知らなければ、マルウェアが仕込まれているなどとは、恐らくは想像すらつかないでしょう。

プレゼンテーション形式ファイルを悪用したマルウェアはウィルス対策ソフトでは検出できない

PowerPointのプレゼンテーション形式ファイル(拡張子が.ppsもしくは.ppsxのファイル)を悪用したマルウェアについて、最新のウィルス対策ソフトがこれをマルウェアとして検出するのかどうかを試したのですが、2017年6月の時点では「安全なファイル」として判定されてしまいました。

PowerPointのプレゼンテーション形式ファイルはWord文書ファイルなどに埋め込んで配布することもできるため、ソーシャルエンジニアリングのテクニックと組み合わされて配布された場合、無害なファイルであると思い込まされて、マルウェアの実行を許してしまう可能性は十分に考えられます。

「怪しいファイルは開くな!」とは言うものの、

・メールの本文は全く怪しくない。
・添付されているファイルも拡張子が.docxのファイルであるなど、マクロ付きのファイルには見えない。
・ウィルス対策ソフトによって添付ファイルのチェックを行っても安全なファイルであると判定されてしまう。

とあっては、ソーシャルエンジニアリングによって警告自体が誤検知と思い込まされてしまえばそれまでです。

経験することこそ、予見力を鍛える一番の早道

従来の標的型メールと言えば、拡張子がexeのファイルなど、見るべきところを見れば、すぐに不審である、もしくは不審そうだとわかるものがほとんどでしたが、今回のケースのように、表面的にはマルウェアかどうかわからないようなケースが登場してくると、「怪しいファイルは開くな!」というかけ声だけでは到底防ぎきれないであろうことは容易に想像がつきます。

セキュリティベンダーの売り文句だと、「だからシステムで防御しないとダメなんですよ」と言って、高額なセキュリティ対策機器や、高額な監視サービスの導入を勧められるところですが、高額なセキュリティ対策機器も監視サービスも、それが有効に機能しなければそれまでです。

高額な機器やサービスなら、どんな脅威もたちどころに検知・排除してくれるだろうと思ったら大間違いで、どんな機器やサービスにも得手・不得手はあり、払える金額によっては、肝心なところで対応してもらえない。といったこともありがちです。

セキュリティ対策機器や監視サービスなどを「転ばぬ先の杖」として利用することは良い事だと思いますが、他力本願的にすべてをお任せする。という姿勢は自社の生殺与奪を他社に委ねる事と同義となり、お奨めできるものではありません。

従業員の目の前でDOS窓が開き、Powershellによるマルウェアが実行されているのに、知識が無いばかりにそれと知らずにパソコンの利用を続け、監視サービスから不正な通信が行われているようだと連絡があった時には、時既に遅し。重要なデータは外部に流出し、パソコンのデータはランサムウェアによって暗号化され、ワームの機能によって他のパソコンにも感染が広がり、業務に支障が発生してしまう。

このようなシナリオは現実にあり得ることです。

では、そのようなシナリオが現実のものとならないためにはどうすべきか?それは、従業員全員に、犯罪者の手口を教え、実際に経験してもらう事です。

実際にマルウェアが実行されたらどうなるのか?これを実際に体験し、経験値として覚えてもらえば、似たようなことを目にしたとき、「これはもしかして?」という予見力が働くことになります。

従業員一人一人が予見力を働かせ、「もしかして?」と思うことができれば、万一の時も、いち早い対応が可能になります。

自分の目の前でDOS窓が開き、Powershellによるマルウェアが実行されているのに、それを見ても誰も「あれ?」と思わない。これは例えて言うなら、オレオレ詐欺に引っかかって大金を騙し取られようとしているのに、全くそれと気づかない。というような事と同じことです。少なくとも、そんな間の抜けたことが自社で起きてしまうような事だけは無いようにしたいと思いませんか?

←前の記事へ(
→次の記事へ(