TOP > text&download > ウィルスとの戯れ あるいはセキュリティー読本
ウィルスとの戯れ
(本当はXX戦記としたいところなのだが、 ちゃんと戦えているのか・・)
あるいはセキュリティー読本
(C)Y.Utsunomia 2008-2010
 このテキスト内容はあくまで著者、宇都宮泰の個人的奮戦記であり、一般の対策として有効性が証明されているものではありません。この中で述べている対応策や状況は、必ずしもそのとおりになるとは限らないばかりか、場合によってはPCに致命的障害や、マシン寿命の短縮をもたらせるかもしれません。理解のうえ参照下さい。また、これによって引き起こされるいかなる障害や損失に対しても、筆者、サイト管理者は免責されるものとします。


 現在のように社会がインターネットで結ばれ、様々な情報をやり取りしていると、ときおり招かれざるお客と遭遇することがある。積極的に遭遇することは望んでいないのだが、ときにシステムを強引に占拠されていたりする。遭遇することを望んでいないので、自宅にはインターネット回線も無いし、オンラインで作業しなければならないスタジオでも、回線用と作業用はPCそのものが物理隔離されている。
 それでも何重にもめぐらせた防御網をかいくぐり、客はやってくる。ここ2年ほどの間にやってきた訪問者たちのうち、とくに印象に残ったものをいくつか例に、どのようにお迎えしたか、記述してみたい。(ソナエヲツネニ)

*私の両親はおととし相次いで亡くなったが、両方とも優秀な生物学者だったせいで、私も訪問者について生態観察し記録をつけ、できることなら標本化することが習慣化している。

例1)USB拡散ウィルス(autorun.infファイルを伴ったタイプ)
 学校や病院、役場など、USBメモリーでファイルを管理、持ち運びしている事業所で蔓延している。すさまじい感染力で、感染PC→USBデバイス→PC・・・・というサイクルを繰り返す。

 

特徴)
 
光学メディアを除くあらゆるUSBデバイスを媒体とし、差し込んだ瞬間にそれらの感染が起こる。この媒体は単にUSBメモリーだけではなく、USBカードリーダー経由で、あらゆるフラッシュメモリー、ハードディスクなどに感染する。
 LAN経由ではほとんど感染しないようだが、このウィルスは「トロイの木馬」型で、C:のsystem32フォルダなどに「持ち出しパック」を作成し、ころあいを見計らって送信しようとする。
 感染すると多くの対ウィルスソフトが無効で、独特の駆除対策が必要。放置しておくと常にCPU利用率が100%になり、やがてPCが正常起動しなくなる。
 感染発症すると、ウィルスは自分を隠すために不可視属性、システム属性のファイルを表示不能にする。(ウィルスが制御を握っている間は、エクスプローラでウィルスやウィルスの作成するautorun.infを表示することは不可能になる)

 ウィルスが作成するインストーラセットは、y.comなどのインストーラファイルとその補助のautorun.infだが、インストーラファイルはしばしば名称が変更される。名称は変更されるが、その名称はautorun.infに記述されているので、退治するにはこのファイルをメモ帳などで開き(不可視なので容易には開かないが)、名称を把握する。悪魔祓いでもウィルス退治でも、相手の名称把握は基本中の基本だ。相手の名称がわかれば、見えなくてもサーチエンジン(7zipやSGSerchで・・Windows附属のものでは不能)で居所や移動が可能となる。

 この2ファイルはあらゆるパーテション、ドライブ、フラッシュメモリーのルート・ディレクトリに不可視の状態で配置される。
 ウィルス本体は、多くの場合system32フォルダの中にREVOなどの名称で作成されるが、このREVOとルートのインストーラ、メモリーに常駐するプログラムの3っつが連携し、保護しあうので、これらの3点を同時に処分しなければ、無限に復活してくる。
 放置しておくとインターネットを通じて、友達ウィルスを呼び込もうとする。感染した後ではウィルス駆除ソフトの多くは対応できない。

 

対策)
 ありとあらゆるパーテション、ドライブ、フラッシュメモリーに[autorun.inf]と言う名称のダミーフォルダ(中にはメモ帳ファイルで、ダミーである旨の説明などを入れておくと、空フォルダより堅牢になる)を配置しておくと、そのメディアにもウィルスはコピー(感染)されるが、そこから先へはコピーされなくなる。「耳なし芳一」のごとく一つでもダミーフォルダの配置忘れがあると、たちどころにやられてしまう。
 なぜかWindows XP プロフェッショナル・サービスパック1では活動できないようだ。

 

確認方法)
 メモ帳でルートに[autorun.inf]というファイルを作成すると、上書き確認がでて、上書きすると見る見るうちにこのファイルが消滅する、あるいは作成できなくなる。また不可視属性、システム属性のファイルを表示できるように、「フォルダオプション」を設定しても、たちどころに無効化される。

 

特記事項)
 インターネットに接続していないからといって、安心できない。とくに節操無くUSBメモリーなどをあちこちに差し込んでいる人は注意。その他のフラッシュメモリーも同様。とくに自分の所属している会社や学校などにネットゲーマーがいる場合は、感染率が高いようだ。
 アクロニス・トゥルー・イメージやノートンゴーストなどでシステムアーカイブスを作成しシステム保護を行っている場合でも、ウィルスインストーラセットが他のパーテションやフラッシュメモリーカードに残っているとすぐに再発する。

 処方については、学校向けに作成したものを添付します。


例2)VGOD.DLL VCAB.DLL
 おそらくネット経由でインストールされてしまう「トロイの木馬」型ウィルス。非常に強力なファイル属性(スーパー属性)を持ち、C:のあちこちに[desktop.ini]を作成、もともと同名のファイルがある場合には自分の情報をマージする。
 ウィルス本体を消去しようとしてもあらゆる消去コマンドは役に立たず、上書きもできない。
フォルダ属性よりも上位のファイル属性を持ち、移動も暗号化もできない。筆者はED.comという暗号化復号化ソフトを使用し、暗号化し不活性化、標本にしているが、VGOD.DLLではED.comがハングアップしてしまう。上記のシステムアーカイバー、アクロニスやノートンゴーストによる上書きも突破してしまう。
 もちろんウィルス駆除ソフトの多くも、消去できない。ファイル名称が判明すれば、SGSerch.exeで容易に検索できるが、多くの場合はC:\Documents and Settings\ユーザー名\Local Settings\TempにこのVGOD.DLLはいるがそこを開いても表示することはできない。SGSerch.exeはこれらの見えないファイルも検索し表示することができる。
 これらのウィルスの特徴は、使用者から見えないような工夫が施され、タスクマネージャーにもプロセス表示が出ないにもかかわらず、CPU稼働率が異常に高いことである。(TinyMonitorなどでCPU利用率を日ごろから見ることを推奨)

 筆者と遭遇したVGOD.DLLもsystem32フォルダにあるshell32.dllという大変重要なファイルを書き換えることで、スーパー属性を実現しているらしい。また、ほかにも上書きしている重要システムファイルがいくつかあるようで、そのため対象ウィルスを分離削除できてもシステムは元通りには修復できない。元通りに修復するためにはシステムアーカイバーソフトを用いて、定期的に自分のシステムのアーカイブスを作成し、保護を行うしかない(この方法が保護のためにはもっとも有効でかつ、能率的だが、このテキストに出てくる2つの例では、それだけでは不十分のようだ)。

 

対応)SGSerch.exeで定期的にこのファイルの有無を確認する。
スーパー属性に見えるこのファイルも、セーフモード起動した状態では表示や消去が可能である。アーカイブスの復元はその後でなければ無意味である。(セーフモードでも消去できない場合は、属性以前に、表示か無くともプロセス実行中なら消去できないので、「プロセスを終了」してから消去を行う。

例1のウィルスに関しては学校関係で蔓延していることもあり、独自の対応マニュアルを作成しているので、これを機会に公開するが、ネット上には多くの名手の皆さんの奮戦記やマニュアルが公開されているので、そちらも参照いただきたい。

 


☆筆者がこのような事態に対応するためにとっている備え

1)作業用PCと通信端末PCの物理隔離
 それぞれに最適化したセットアップを行うが、要は使用者がルールを厳格に守るかどうかの方が問題。通信端末PCの最適化とは、システムの徹底した軽量化と定期的なシステムアーカイバーによる書き戻しによる保護など。メール関係もg-mailに変更した結果、端末側での情報保管が一切不要になったおかげで、定期書き戻しがより容易になった。
 作業用PCと通信端末PCの間の情報のやり取りは、原則としてUSBメモリーを経由して行うが、怪しい情報を含んでいる場合や、通信端末が明確に汚染された場合、このような処理に対応するために「エクソシスト」と命名した専用ハード・ソフトのセットを用意し、怪しい情報などはその専用ハード上で開き、安全確認の上作業用PCへ移す。「エクソシスト」については後述。
*筆者の通信端末PCでは年平均数回の来客が確認されている。

 

2)アーキテクチャーの共通化
 普通は新機種(多くは大容量化、高速化、多機能化された・・)に期待をかけ、PCを購入するようだが、筆者はあまりそのようなところには興味が無く、如何に安定で、コスト効果に優れているか、のみで機種選定している。たいていは自動的に法人向けPCのリースバック品になってしまうが、デスクトップ1シリーズ、ラップトップ2シリーズ、計15台(複数の仕事先にそれぞれ配備し、要所は予備機を用意しているため)このような台数になってしまうが、それぞれのシリーズでは共通のアーキテクチャーを持ち、システム(内蔵するハードディスク)やハードパーツを共用化できるようにしている。また、共用化することで管理すべきアーカイブスを単純化することが可能で、またアプリケーションもグループ化モジュール化することで管理が容易になる。なぜなら、アーキテクチャーが異なる様々なマシンがあると、それらについて個別にセッティングの最適化が異なり、何らかの問題が生じても修復に多くの労力が必要となるからだ。(OSや有償ソフトの場合、ライセンスは個別に必要なのだが、予備として控えているハードディスク単体はコンピュータではない)
 また万一問題が発生した場合にも、対応時間が桁違いに早く、原因の究明や再現が容易になる。

 

3)システムアーカイバーによる保護(強く推奨)
 善戦し、ウィルスや障害を排除しても、多くのウィルスはレジストリやシステム上重要なファイルを書き換えてしまう。そのためシステムを元通りにすることが困難なのだが、正常動作しているときのシステム全体がイメージ保存でき、都合に合わせて再現できれば正常化できる。また、特定のソフトウェアでは異なるOS環境が必要な場合もあり、そのような要求のためにシステムアーカイバーと呼ばれるソフトウェアがある。
 動作は、システムが動作しているC:を丸ごとイメージ化し、単一ファイルとして保存・再現を行おうというものである。またそのイメージをLINUXパーテションに暗号化した上で保存する機能なども持つし、イメージを光学メディアなどに保存し、物理隔離しておくこともできる。また保存も再現も極めて短時間で行えるが、このようなソフトがあるおかげで、ネットカフェなどの商売は成立するのである。
 また最近のPCの多くは、専用のシステムアーカイバーほどの機能は持たないものの、必要最低限のリカバリー領域にシステムをイメージ保存している場合も多く、とりあえず修復が可能な場合もある。

 

4)不可視属性やシステム属性のファイル、ファイル拡張子など表示、ファイルサイズの確認などを行うように習慣付ける。また、マシン(CPUの稼働率)の状態も日常的に確認するように習慣付ける。情報工学系の人たちには当たり前の習慣と思うが、音楽制作系のユーザーでは、拡張子もファイルサイズも全く見ない方がいらっしゃるが、いかがなものかと思う。
 ウィルス感染などの異常の発見や、自分の作業ミスなど、このような習慣から発見できることが多い。

 

5)複数のマシン間で、相互に修復のための準備をしておく。
 ウィルスの感染や、誤った処置(ウィルスと誤認し、必須ファイルを削除してしまうことなど・・マヌケだ)を行うと起動すらできなくなってしまうが、そのような場合に、異常PCのハードディスクを取り外し、正常PCで修理することになるが、そのときに相互にアーカイブスなどを保有していれば(あるいはアーカイブスばかりを集めた修復専用の外付けドライブ)、容易に作業を進めることができる。
 アクロニス・トゥルー・イメージには、Windowsが起動できなくなったときのための、LINUXベースの修復システムが附属しているが、これもアーキテクチャーの問題で使用できない場合があるので、相互救済の準備は必要である。

 

6)危険物処理専用機「エクソシスト」
 しばしば重篤な状態のPCを、正常なPCでリモート修理しなければならない。筆者の所有PCのリモート修理は今のところ出動例は無いが(ほとんどはダウンロードしたファイルの安全確認と、メール添付ファイルを開くときくらい)、アルバイト教員という仕事上、学生のPCの修復や設備PCの修復をしなければならないことがよくある。
 ときに感染したと勘違いして持ち込まれる場合もあるが、多くは重篤で、しかもシステムアーカイブが無い場合がほとんどだ。このような場合、ウィルスを排除することから始めなければならないが、その感染したマシンからはウィルスも見えず、また支援プログラムを送り込もうにもUSBアクセスが拒絶される場合もあり、LAN接続や「Sugoi-cable(TM)」によるPC to PCの直接接続で、検索・排除を行うが、ときにそれらの接続を遡り、感染してしまうことがある。
 このような用途専用に、超軽量化、複数OSの自由選択(アーカイブスの選択で)、単一パーテション、隅々までファイル配置とファイルサイズ、全レジストリの比較、相違の抽出ができるように最適化し、ハード的にはBIOS(S-RAM領域)の一発消去スイッチなどの装備を行った上、アーカイバーによるサンドボックス・モードで対応できるようにしたPCを用意している。
 またハードディスクドライブも、いつでも破棄できるように、小容量の再生品を用い、予備を常備している。幸いなことに、破棄に至ったことはこれまで一度もない。

 

7)シナリオの想定(最重要)
 常に修復や排除ができるわけではない・・という想定をもとに、複数のシナリオをあらかじめ準備し、それにしたがって作業をすすめる。
 これまで数例しかないが、例えばマッキントッシュ上のエミュレーションWindowsなどの場合では、アクセスそのものが拒絶され、修復はおろかデータのサルベージも困難を極めた。
 例えば、システムのアーカイブスが無く、データのサルベージができたら、最悪の場合、システムの修復そのものはあきらめ、OSのインストールからやり直すなど。(その場合でも、S-RAMに取り付いたウィルスや、USBメモリーや各フラッシュメモリーにウィルスが残っている場合、何度OSをインストールし直しても無意味なので、そちらの処方、シナリオ)
 システムアーカイブスがある場合でも、そのまま書き戻すのではなく、一旦アーカイブスを外部にコピーし、ドライブそのものは交換するか、あるいはハードデュプリケーターなどで、物理フォーマット、あるいは強制的に0を上書き、または新品ドライブをセクターコピーするなど。しかしハードディスクコントロール基盤にある、フラッシュメモリー(通常はファームウェアが書き込まれている)領域はそのまま残る・・・など。

 

8)ハード・デュプリケーター
 ハードディスクドライブそのもののフォーマットをWindowsから行う場合でも、Windowsからアクセスできない領域があり、その部分の情報はそのまま残ってしまう。例えば、マッキントッシュ上で設定した、ハードディスクへのパスワード領域は簡単には書き換えることができない。(この設定が残っているとアクセスはもちろん、フォーマットすることすらできないが、もしそのような領域にウィルスがのこっていると)
 このような場合に対応するには(とくに中古のハードディスクドライブを再利用するような場合には)ハードディスク・デュプリケーターという便利なハードウェアがある。この実機の機能を利用し、新品ハードディスクの「データ」をコピーする、正常動作しているハードディスクをコピーする、全てのセクターに0を書き込むなどを実行することで、安心確実度が向上する。(実際にこの方法以外では正常にOSのインストールができなかったことが、中古のドライブでは時折見られる)
 
「USB拡散ウィルス」対応処方へつづく