プレイバックPart.II:シフトした脅威の中でセキュリティ対策の「ある視点」(13)(2/4 ページ)

» 2008年10月24日 00時00分 公開

パッキング――実行可能なまま圧縮

 パッキング(Packing)とは、実行ファイルに対して、実行可能な状態で圧縮を行う技術のことを指す。UPX(The Ultimate Packer for eXecutables)などがそれに当たる。既知のコンピュータウイルスに、このパッキングを行うと、ウイルス対策ソフトの検出を回避できることがしばしばある。

図4 TrojanToWorm 図4 TrojanToWorm

 ここで1つ、悪意のある(であろう)パッカー「T2W(TrojanToWorm)v2」を紹介しよう。このツールの発見は、2008年6月と比較的新しいものである。主とする機能は、AutoRun.infを利用して、実行ファイルをネットワークドライブや外部メディアなどからの感染を自動的に行うよう変換するというものなのだが、それ以外にもパッキング(UPX)などのさまざまな機能が実装されている。

 少し余談となるが、このツールにはそれ以外にも、正規のファイルに見せ掛けるためのアイコン変更機能や、実行時のエラー(に見せ掛けた)メッセージへの追加機能がある。これらは、ウイルス対策ソフトではなく、人の目を欺くための機能であるといえる【注】

【注】

パッキングという技術そのものは悪意のあるものではない。システム内に保存する際の使用領域の削減のためであったり、リバースエンジニアリングを阻止する目的で使用されてきたものである。


 ここで、このパッカーによるウイルス対策ソフトの検出回避の実験を行ってみよう。筆者の自己紹介にもあるように、筆者は社内外を問わず、ハニーポットの運用を行っており、そこでコンピュータウイルスの捕獲も行っている。そこで、捕獲したコンピュータウイルスをとあるパッカーを用いて加工を行う前と後で「Virus Total」の結果の差異を見てみよう。

図5 パッキング前後でのウイルス対策ソフトの検出率の変化 図5 パッキング前後でのウイルス対策ソフトの検出率の変化

 パッキング前では、36のウイルス対策エンジン中36がコンピュータウイルスであると検出しているのに対して、パッキング後では、22のウイルス対策エンジンしかコンピュータウイルスであると検出しなかった。

 ここでいいたいのは、ウイルス対策エンジンを欺くことが容易であるということではない。攻撃者はコンピュータウイルスを加工し、世に散布する前に、こういったサービスを利用して、事前に調べることが可能であるということである。ウイルスを散布する前に、ウイルス対策ソフトで検出されないことを調べたうえで行動に移すということにも利用され、散布する側が有利であるという脅威を知っていただきたかったのである。

シーケンシャル攻撃――続けて攻撃することの意味

 この攻撃手法は、昨今増加傾向にある手法である。前述したような回避手法を使うわけではなく、読んで字のごとく、コンピュータウイルスをターゲットに連続して忍び込ませる攻撃手法である。

 不正なサイトを設置し、メールで誘導するなどの何らかの方法でユーザーのコンピュータにコンピュータウイルスAを忍び込ませ、その後にコンピュータウイルスAは、別の経路、別のサイトからコンピュータウイルスBをダウンロードさせる。そして、コンピュータウイルスC、D……といったことを延々と繰り返すのである。検知と感染のいたちごっこというわけだ。

 これにより、ウイルス対策ソフトによって完全にクリーンな状態にされる前に、次のコンピュータウイルスを忍ばせるということを行い不正な活動を続けさせるのである。中には、感染の第一歩となるコンピュータウイルスAの段階では、できるだけウイルス対策ソフトに検知されることを防ぐために、直接的に不正な活動を行わないものを忍ばせるということもしばしば行われる。

 このように、コンピュータウイルスは、常に天敵である「ウイルス対策ソフト対策」を行い、機能の進化とともに、生存をかけ、知恵を付けてきたのである。正確には、コンピュータウイルスを道具として使い始めた者が進化させ、知恵を付けさせてきたといえるだろう。

ウイルスの歴史に見る、目的と手段のシフト

 さて、コンピュータウイルスが道具とはどういうことだろうか。

 筆者は、過去と現在でコンピュータウイルスの位置付けが変わってきていると感じている。第12回で紹介したウイルスの歴史、つまり2003年までのコンピュータウイルスが生み出された目的を見てみよう。これまでのコンピュータウイルスの動作は以下のようなものが多いといえる。

  • メッセージ表示を行う
  • システム内で破壊活動を行う
  • 単なる拡散を行う
  • Webサイトの改ざんを行う

 まとめると、感染を広げることそのものが目的であり、その原動力は、自己顕示、えん恨、好奇心やいたずら心であったと考えられる。しかし、これらの目的や原動力は、ある方向へ徐々にシフトしていったのである。

 ではウイルスの歴史に話を戻し、2004年以降のコンピュータウイルスを例に現在の目的を探っていこう。

ボットによる被害の増大

 2004年ころから、それまでのコンピュータウイルスのような、メールや脆弱性利用により拡散することよりも、感染したコンピュータを悪用することを目的とするようなものが主となり始めた。ボットと呼ばれるコンピュータウイルスである。

 ボットとは、感染すると外部からの命令を待ち受け、その命令に従った動作を行うもののことである。また、このボットと命令を下すサーバ(C&Cサーバ)は、n対1の関係である場合がほとんどであり、このように構成されたネットワークをボットネットワークと呼ぶ。

 具体的な操作例としては、

  • 新たなコンピュータウイルスのダウンロード
  • スパムメールの送信
  • 特定サーバへのDoS攻撃
  • 感染システムからの情報の窃取

などである。

 さて、外部からの命令を受けて操作されるボットだが、いまやネットワークセキュリティを考えるうえで当たり前となったファイアウォールでブロックされないのか? という疑問がある。

 ボットは、感染すると自身から命令を下すための外部のサーバへと接続を行う。ファイアウォールは、基本的に外部から内部への不要な通信はブロックしているのだが、内部から外部への通信は比較的寛容に設定されている場合が多い。ボットの通信は、内部から外部へと行われるため、ファイアウォールの影響を受けない場合が多いのである。

 また、最近のボットの中には、多くの場合、許可されているであろうポート(例えばtcp80番ポート)を使用するものも存在している。

このようなボットはファイアウォールだけでは防ぐことができず、プロキシなどを経由しなければ外部との通信ができないようにする、もしくは、そもそもサーバ自身からの外部への通信は許可しないなどといった対策を行うこととなる。

 接続を確立した後は双方向に通信を行うことができるため、命令を受け付ける状態となるのである。

図6 ボットがファイアウォールを通過する理由 図6 ボットがファイアウォールを通過する理由

 さて、ボットの具体的な操作例で紹介した「新たなコンピュータウイルスのダウンロード」は、ウイルス対策ソフトから逃れるため、もしくは、新たな機能をターゲットに組み込むためなのだが、スパムメールの送信やDoS攻撃、感染システムからの情報の窃取は、何のために使われているのだろうか。

 ここが、コンピュータウイルスが道具となった目的のシフトを表しているのである。

 スパムメールの送信では、自身の商売のための宣伝を行うことができ、DoS攻撃では、商売敵のサーバに負荷をかけ、ダウンさせる。そして感染システムからの情報の窃取では、特定のサイト、例えば銀行やクレジットカード決済など金銭を扱うための情報を入力する際のキー入力などを盗むといったことを行うのである。また、昨今ではRMT(Real Money Trade)を狙い、オンラインゲームのアカウントをクラッキングする目的でも利用されている。しかし、ボットを道具として利用する者が、このような機能、情報を必要とし、使いきれるとは限らない。

 ここまで説明すれば、勘の良い方ならピンときただろう。これらのシステムや窃取した情報を第三者に売るのである。アンダーグラウンドの世界では、ボットネットワークをレンタルします、といった商売まで存在する。そして、それらをなりわいとする組織も存在するのである。

図7 ボットネット・オン・デマンドともいうべき、ボットネットレンタルサイト 図7 ボットネット・オン・デマンドともいうべき、ボットネットレンタルサイト

 これらの事実が示すとおり、目的は「お金」へとシフトしたのである。

 ここでも、携帯電話のことを思い出してほしい。さまざまな機能が実装されて、多くの人が持つことになった携帯電話は、便利な道具としてではなく、「振り込め詐欺」「架空請求」「ワンギリ」などにも利用され、悪しき金もうけの道具として利用されるようになった。それと同じように、コンピュータウイルスも犯罪の道具として利用されるようになったのである。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。