よく使われているプログラミング言語といえばC、C++、Java、JavaScriptなどを思い浮かべるだろう。だが、MicrosoftのVBA(Visual Basic for Applications)を忘れるべきではないと、セキュリティベンダーのソフォスは指摘している。
VBAはBASICの方言のようなものだ。BASICは簡単に学習して利用できるプログラミング言語で、初心者から熟練者まで幅広い利用者がいる。Microsoftの多数のアプリケーションがこれを利用しており、その1つが「Microsoft Office」だ。
VBAを使ってドキュメントやスプレッドシート内のさまざまなタスクを自動化できるため、会計や監査担当からソフトウェア開発者、システム管理者まで、さまざまな用途で利用されている。
もちろん、VBAコードをWordドキュメントに加えると、ファイルは"ただのデータ"ではなくなる。BASICプログラムを内包するためだ。
exeファイルは絶対ダブルクリックしないというユーザーでも、.doc、.docxファイルは開いてしまう、ということが多い。そして、この中には予想しないようなVBAプログラムが仕組まれていることがある。
Sophosは約1年前にVBAを含むウイルスが復活していることを報告した。すでに作成済みのVBAコードを利用したマルウェアテンプレートがあるため、VBAを学ばなくてもマルウェアが作成できる。
実際にこの数ヶ月、テンプレートを利用したVBAマルウェアは増加傾向にあり、毎日50?100の新しいVBAマルウェアサンプルが登場している。VBAマルウェアはそれ自身では展開できず、ダウンローダーが必要だ。
VBAは、オンライン状態になるとあなたが知らない間に悪意ある人の管理下にあるサーバーに接続し、悪意ある.exeファイルをフェッチする。
このところの傾向として、これまであまり一般的ではなかったドキュメントファイルフォーマットに切り替えるなど、多様化しているので注意が必要だ。
たとえば、少し前にOffie 2003 XMLフォーマットが利用されている。