04 新手のウィルス(1) - マクロウィルス
旧々猿頁から収録。
日付を管理していなかったので、正確な記述日時がわかりません。
ので、サイト「猿頁」開設日としました。御了承ください。
冒頭でもお話ししましたが、コンピュータウィルスはプログラムです。
ので、感染しちゃってるプログラムを自分のパソコンの中にコピーしただけでは、ウィルスプログラムは動作しません。
そのプログラムを実行して初めてウィルスも起動し、悪さを開始します。
でもねぇ。
ウィルスプログラムファイルが目の前にごーんとあって、「このプログラムを実行するとウィルスが起動します」ってわかってたら、誰もそんなプログラム実行しませんよ。
ですからウィルス作者たちは、「いかにウィルスと気づかせずについうっかり実行させてしまうか」ってゅう工夫を一所懸命するんです。
ほかのまともなプログラムファイルの中に紛れ込んで、そのプログラムといっしょに起動するといぅウィルスプログラムのそもそもの特徴も、「気づかずに実行させてしまおう」という目的で実現されているものです。
でもまぁこれ、「Windows用プログラムでは技術的にムズカしい」とかいろんな理由がありまして、新しい「気づかずに実行させてしまう」手法を持ったウィルスが登場してきました。
まずはWindows時代の新しいウィルスの草分け、マクロウィルスからお話ししていきましょう。
Windowsでもっともたくさん売れているワープロソフト・表計算ソフトと言えば、やはりMicrosoft Word・Excelといぅことになるでしょう。Macintosh版もあり、こちらもけっこぅ普及しているよぅです。
この手のソフトをマイクロソフトでは「Office製品」といぅグループとして扱っています。実際に、これらを1パックセットにしたMicrosoft Officeなんて製品もありますね。
さて、たとえばExcelなんかを使っているときに、なんべんも同じ操作をすることがよくあります。
帳票のタイトルを作るときに「大見出しはMSゴシック24ポイントにして、その右下にある小見出しはMSゴシック16ポイントにする」とか。
こーいぅよく使う一連の操作をExcelに記憶させて、ボタン一発でワンセット全部やってくれたらどんなに楽だろぅか、とか思いませんか?
で、この「一連の操作を記憶させておく」機能ってのが、実際にありまして。これを、マクロ機能と呼びます。
実際には、Office製品はかなり複雑なことができる高性能なマクロ機能を持っていて、マイクロソフトでは「これはすでにマクロではなく、プログラミング言語だ」とか主張して、VBA(Visual Basic for Application)なんて名前を付けてしまっていますけれども。
世間様はやっぱり未だに「マクロ」と呼んじゃっていることも多いですね。
ここではマクロウィルスプログラムに話を持っていきたいわけですから、私も「マクロ」と呼ぶことにします。
Officeのマクロ(VBA)は、ちょー強力です。
WordやExcelと無関係な、今までプログラミング言語でなければできなかったことまでかなりできます。
その気になれば、簡単なゲームくらい作れてしまうほどです。
このマクロは、きちんと記録してキーボードのキーやメニューに割り当てれば、ホントにボタン一発とかクリック二発とかで実行できます。
が、欲ってのはとめどがないもので、今度は「Excelでデータを読み込んだ瞬間に、ボタン0発で自動的にマクロ実行してほしい」なんて希望あり。→ので実現。
ってことで、この「データ読み込み時に自動的に実行するマクロ」、自動実行マクロって機能もできました。
これ、自動実行マクロが含まれていることを知らない人には、マクロが実行されているかどぅかわかりません。
データファイルを開いただけのつもりでも、裏でこっそり自動実行マクロが起動・実行されます。
ここまでのお話で、ピンと来た方もいらっしゃるかもしれませんが。この状況は、
- プログラムとほぼ同じことができる強力なマクロ
- 使っている人に気づかれずに起動・実行ができる
加えて、従来のウィルスプログラムよりも作るのが簡単だったりもしたもんですから、そのうち誰か作っちゃぅんだろぅなぁと思っていたら、やっぱり出ましたマクロウィルス。とほほ。
マクロウィルスは、Excelなどのデータファイルの中に自動実行マクロとして埋め込まれています。
で、このデータファイルを開くとマクロウィルスが自動的に実行されてしまいます。
このウィルスの感染先は、新規ワークシートファイルを作るときの雛形です。ので、一度感染してしまうと、その後新規に作成したすべてのデータファイルがマクロウィルス付きになってしまいます。
このマクロウィルス、実は伝搬力があまり強くありません。ほかのマシンへ伝搬するためには、人から人へマクロウィルス付きデータファイルをコピーして渡してもらわなければならないからです。
会社のネットワークとかで、みんなが共通して使う帳票データファイルの雛形に感染していたとしても、一次伝搬範囲はその会社内にとどまります。
また、もっとも普及しているとはいっても、必ずしもすべてのマシンにOfficeがインストールされているわけではありません。
マクロウィルスは、そのマクロ機能を持つソフトがあって初めて動作しますので、ソフトがなければ動作しません。
マイクロソフトも、その後のOfficeの新バージョンでは、マクロウィルスへの対抗策を講じました。
オプション設定の中に、「マクロウィルスから保護する」というチェックボックスができたんですね。
これは、Office製品をインストールした時点でオンになっています。
…とはいぅものの、この機能は実際には、「このデータには自動実行マクロが含まれていますよ」といぅ警告を出すものでしかありません。
マクロウィルスではない自動実行マクロであっても警告は出ちゃいますし、警告に対して「マクロを有効にする」と答えると、マクロウィルスであっても実行してしまいますし。
マクロに詳しくない人がこんな警告を出されても不安になるだけで、どぅしていいのかはよくわからないのではないでしょうか。
また、うっかり「マクロを有効にする」と答えちゃったら感染されちゃうのは今までどおりです。
このへん、どぅもマイクロソフトの「ウチは警告出したからね。それでも『実行する』って選択したのはお客さんでしょ、ウチのせいじゃないからね」って言い逃れのための機能でしかないよぅな気がするのは私だけ?
このマクロウィルスに対しても、前述したワクチンソフトは有効です。ちゃんとWordの文書ファイルやExcelのワークシートファイルもチェック/駆除してくれますよ。