ウイルスの姿

朝日新聞2012/10/28の記事に、「これがウイルスの姿。記号と数字、英単語からなるプログラムだ。」と称するぼかし付きの画像(カスペルスキー社提供)が出ている。

ウイルスの全ソースではなく、その一部分である。表示されている画像はその一部分を切り取ってきたもので、画像の右端より後の部分は途切れている(次の行に続いているわけではない)。

この画像に見えている部分を取り出すと次のようなものになる。画像では改行やインデントもなく、文字が密集しているが、以下ではそれを見やすいように配置を変えているが、文字は変えていない(そのままである)。

資料 return '***.swf' } function getBlockSize() { return 1024 } function getAllocCount() { return 300 } function getFillBytes() { var a='%u'+'0c ★以下途切れ (1) { return "%u4141%u4141%u8366%ufce4%uebfc%u5810%uc931%u8166%u4fe9 ★以下同様のパターンが5行続くが省略(さらにその後に伏字の数行がある) ★「%u8366」などはUNICODEだが日本語ではないようである。 ★(1)は何かの関数(前半不明)の引数が1であること。 } function spl5() { var ver1=flashver[0]; var ver2=flashver[1]; var ver2= ★以下途切れ >40)||((ver1==10&&ver2>0)&&(ver1==10&&ver2<2)))||(ver1==10&&ver2== ★以下途切れ

こういうふうにして見ると、これはJavaScriptであることが明白になってくる。省略できる記号やスペースはカットして、サイズを小さくしていることがよくわかる。

Windowsでは、JavaScriptやWSHやHTAなどのような単純なスクリプトで簡単にプログラム的な動作をさせることができるようになっている。そして、電源投入後に読み込まれるファイルやデータは決まっているから、そこにちょっと細工をすればウイルス的な動作をさせることができるわけである。

ウイルス的な動作はプログラミング的には単純なものだが、それが「気がつかない所」で実行されていることが問題なのである。それで作成者側にとっては「あやしい」動作をやりたい放題にできるということになる。

ところで、この記事に出ている「これがウイルスの姿」というときの、この「ウイルス」だけでは動作はしない。このウイルスを起動させる契機が必要になる。これをトリガーという。そのトリガーは通常はパソコン内にある膨大な量のレジストリ領域のどこか数ヶ所に埋め込まれている(隠されている)はずである。

また、この「ウイルス」を見つけて削除しただけでは問題は解決しない。削除した場合はインターネット上のどこかから取得するという付随的な情報もその数ヶ所に書き込まれているからである。これを付随記述部分という。そのため「その」ウイルスを削除しても、いくらでも別のウイルスを再生してしまうのである。

重要なのは、ウイルスそのものではなく、トリガーと付随記述部分の方なのである。極端にいえば、ウイルスは残っていてもトリガーと付随記述部分がなければ、ウイルスは動作しない。「死んだ」ことと同じなのである。

したがって、ウイルスとそのトリガーになる部分と付随的な記述部分とを「虱潰し」に探していけば、手動でウイルスの動作を止めようと思えば止められるのである。しかし、それを細大漏らさず調べていくことは面倒である。また、複数個のファイルが一組になってウイルス的動作をしていればその面倒さはもっと大きくなる。

メモ
  1. 不審を感じたらその時間の前後にダウンロードされたりインストールされたファイルを調べ、ウイルス本体のファイル名を探す。
  2. レジストリの中からそのファイル名を起動させている記述を探したり、本体内から別ファイル(これもウイルス)を呼び込んでいないかなども調べる。
  3. また、同じ時間に似たような複数個のファイルがインストールされていないかなどもチェックする。
  4. ウイルスが書き込んだと思われるレジストリ(これがトリガーになる)を削除する。

これはその昔、某会社で、ウイルスに感染したパソコンの修復を手動でやったときに実際に使っていた方法である。それでほぼ修復はできた。もっとも、「言うは易く、行うは難し」だったが。



通常よく使われる単純なJavaScriptは安全無害である。しかし、これが通常の形態を取らない場合はウイルス的な動作をさせることが可能になる。こういうパターンはもう15~6年前からあるパターンである。昔はそれで「ちょっとした悪さ」をするだけというのが多かった。

こういう「動作」が金銭的被害に結びついたのは、インターネット接続でダイアルアップが普通だったころ、アクセスポイントの市内電話の番号を国際電話に変えてしまうという動作をしたときだった。ウイルス作成者はその国際電話会社から「斡旋料」をもらう。ウイルス感染者は電話料の請求がいつもは3000~4000円程度なのに、10万円を超す異常な高額の請求がきて感染に気がついたというわけである。

- 2012/10/28 -