Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.
Security Response

Jnanabot の悪用に関する懸念

Created: 18 Jan 2011 11:01:16 GMT • Translations available: English
Harshit Nayyar's picture
0 0 Votes
Login to vote

忘れがちなことですが、マルウェアは、悪質なものであってもソフトウェアアプリケーションには違いありません。悪用の可能な脆弱性が存在する場合があるという点も、他のソフトウェアアプリケーションと同様です。

シマンテックの解析の結果、Trojan.Jnanabot には、いくつかの深刻な脆弱性があることが判明しています。Jnanabot の注目すべき機能のひとつに、カスタムのピアツーピア(P2P)ネットワークプロトコルがあります。つまり、Jnanabot のボットは P2P ネットワークの一部となり、独自に設計されたプロトコルを使って相互通信するように設計されているということです。この機能によって、単一点障害が発生しなくなるうえに、感染源を追跡してボットネットを停止することが困難になります。プロトコルは、ボットネットにある程度の堅ろう性を持たせるように設計されていますが、欠陥もいくつかあり、方法さえ知っていれば誰でも面白半分に、または営利目的でその欠陥を悪用することができます。これらの欠陥を利用すれば、少なくとも、感染したホストについての情報を収集することが可能です。最悪の場合には、フル機能を持つパラレルボットネットを作成したり、既存のボットネットを完全に乗っ取ったりすることもできます。

今回のブログでは、これらの欠陥を取り上げ、その悪用方法について説明します。ハッカーハンドブックのページを参考にすると、悪用に成功するには次の手順が必要なようです。

1.    標的の識別
2.    情報の収集
3.    標的で実行されているネットワークサービスの脆弱性の悪用
4.    別の攻撃の開始

シマンテックの調査で、Jnanabot プロトコルの脆弱性を悪用すると、こうした手順がいとも簡単に実行できることがわかりました。

標的の識別

Jnanabot の P2P 通信に使われるポートは、ハッシュアルゴリズムを使ってピアの IP アドレスから決定されます。ということは、IP アドレスがわかれば、ホストが実際に感染している場合には、Jnanabot の P2P サービスが実行されているポートを特定できるということです。さらに、感染したホストに不正なフォーマットの P2P メッセージを送信すると Jnanabot がエラーメッセージで応答するので、IP アドレスの範囲を指定すれば、その範囲にある感染ホストをスキャンして識別することができます。

情報の収集

Jnanabot の P2P プロトコルには情報漏えいの脆弱性があり、それを悪用するとボットの現在のバージョンと、ボットが実行されている感染ホストのオペレーティングシステムを特定することができます。実際、ボットは現在ログインしているユーザーがアクセスできる任意のファイルに対するアクセスを可能にします。ファイルシステムのアーチファクトから、現在のオペレーティングシステムとそのバージョンを特定するのは簡単です。たとえば次のグラフは、2010 年 12 月の前半に記録された Jnanabot の OS の比率を示したものです。

Windows ホストの場合にはさらに、マルウェアによってキーロガーがインストールされ、システム上の平文テキストファイルにキーストロークが記録されて、リモートの FTP サーバーにそのファイルがアップロードされてしまいます。このファイルには、P2P サービスを介してアクセスできるので、ユーザー名やパスワードなどの個人情報がリモートの不正な攻撃者に漏えいすることになります。

脆弱性の悪用

Jnanabot の P2P プロトコルに存在する脆弱性を利用すると、ユーザーは任意のファイルをホストのファイルシステムのどこにでもアップロードできます。これを悪用すれば、感染したホストで単純なバックドアを実行することも簡単です。たとえば、Windows のスタートアップディレクトリに作成されたファイルは、Windows を再起動するたびに実行されます。攻撃者は、ルートキットをインストールしてその痕跡を隠したりバックドアを隠蔽したりすることもできます。

別の攻撃の開始

Jnanabot の各エージェントは、ピアのリストを保持します。P2P プロトコルには、このリストを更新する機能と、ホストからこのリストを取得する機能があります。しかも、このリストは Jnanabot がインストールされているルートディレクトリに暗号化された形で存在します。そのため、ネットワークの 1 つのピアが判明するだけで、そのピアのリストを使って次の標的を識別でき、さらにそのピアのリストを使って別の標的を識別できるというように広がっていき、悪用できるホストの膨大なリストが完成します。1 つのピアが、いわば Jnanabot ネットワークのさらに奥深くへと飛び込むための飛び込み台になるわけです。各リストには最大 100 個のピアを記録できるので、少なくともそれらのピアの一部にアクセスして悪用できる可能性は非常に高くなります。

結論

以上のような脆弱性の存在に Jnanabot の作者が気づいているかどうかは判断できませんが、冷ややかに無視を決め込んでいるか、単に気づいていないかのどちらかでしょう。悪質なハッカーのコミュニティに、この脆弱性を知っていて悪用している者がいるかどうかもわかりません。いずれにしても、Jnanabot に感染したホストは、大歓迎の看板を掲げてドアを開け放ち、次なる悪用を誘っていることになります。このように、ホストに Jnanabot が存在することは、以前考えられていたよりはるかに深刻な脅威となっています。Jnanabot が複数のプラットフォームに感染できるという事実もあわせて考えると、大きい被害の原因になるでしょう。

Jnanabot は、強力なアルゴリズムによる高度な暗号化技術を使って、安全な言語で記述されているということに注目してください。にもかかわらず、それが実行されているホストの完全な危殆化を許してしまうのです。このことからも、プラットフォームの安全性のみに依存してアプリケーションのセキュリティを確保することが不可能だということは明らかです。ロジック上のバグはプラットフォームに左右されないので、マルウェア自体も含めてあらゆるアプリケーションに影響します。これは、たった 1 つのマルウェアによる感染が次の感染を呼ぶ布石になり、システムやネットワーク全体のセキュリティを脅かすという端的な例でもあります。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。