認証プロキシに対応したPoisonIvy(2015-07-08)

PoisonIvyと呼ばれるマルウエアが存在します。このマルウエアは、2013年頃まで標的型攻撃で多く使われていました。それ以降は、使われる例が減少してきており、機能拡張のような変化も最近まで見られませんでした。しかし、通信機能の拡張がされたPoisonIvyを、最近、複数の攻撃事例において確認しました。


今回は、PoisonIvyにおける通信機能の拡張について紹介します。


従来のPoisonIvyの通信機能
これまでのPoisonIvyは、独自のプロトコルでC&Cサーバと通信していました。また、プロキシが設置された組織内では、プロキシサーバ情報があらかじめPoisonIvyに設定されているか、Internet Explorerからプロキシ情報を取得する設定が有効になっていれば、CONNECTメソッドまたはSOCKS(バージョン4)を使用して、プロキシ経由でC&Cサーバにデータの送信を試みていました。図1にCONNECT メソッドを利用したPoisonIvyの通信の例を示します。  

図 1: CONNECT メソッドを利用したPoisonIvyの通信

しかしながら、認証プロキシに対応していないため、プロキシ接続に認証が必要な場合には、PoisonIvyが外部のC&Cサーバと通信することはできませんでした。


HTTP通信への移行
最近見つかったPoisonIvyでは、独自プロトコルではなくHTTPプロトコルをC&Cサーバへの接続に使用するように変更されています。すなわち、C&Cサーバへ送信するデータをbody部に含めた、図2のようなPOSTリクエストを送信するようになっています。

図 2: PoisonIvyの通信
(Cookieタグの“id=”以降にはMACアドレスとホスト名からなる文字列が入る)

新種のPoisonIvyのコードを、以前のPoisonIvyと比較すると、図3のように通信機能が大幅に変更されていることを確認できます。独自通信のためのコードはすべて、HTTP通信を行うコードに書き換えられています。 

図 3: PoisonIvyの通信部分のコードの変化(左:以前のPoisonIvy 右:機能拡張されたPoisonIvy)

認証プロキシへの対応
さらに、このPoisonIvyは認証プロキシにも対応しています。プロキシ経由でC&Cサーバに接続を試みて、認証プロキシからエラー(HTTPステータス・コード407)が返ってきた場合、PoisonIvyはプロミスキャスモードで通信の盗聴を行います。盗聴した通信内に“Proxy-Authorization: Basic”の文字列が含まれている場合、その文字列を、次のレジストリエントリに書き込みます。

  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\BJ\STATIC\MessageFile

図 4は、実際に盗聴されレジストリに保存された情報の例です。 

図 4: Basic認証の情報が書き込まれたレジストリエントリ


その後プロキシ経由でC&Cサーバに接続する際は、図5のように、レジストリエントリに書き込まれている文字列をHTTPヘッダに追加して、認証プロキシの通過を試みます。なお、このPoisonIvyがプロキシ認証通信を行うためには管理者権限が必要です。上記のレジストリエントリを作成できず、認証情報を利用して通信できないためです。 

図 5: 認証情報を追加したPoisonIvyの通信

おわりに
このところ少なくなっていたPoisonIvyを利用した攻撃ですが、今回紹介した亜種の登場により、再び増加するかもしれないため、注意が必要です。

また、今回紹介したPoisonIvyの他にも、認証プロキシに対応したマルウエアは多数存在します。以前取り上げたPlugXもその1つです。今後は、さらに多くのマルウエアが認証プロキシに対応していくものと考えられます。


分析センター 朝長 秀誠


Appendix 検体のSHA-256ハッシュ値

  • d1aa00b6b11fbefd2dda3b458d9fb5e975865b564bf1c289a6f464b14ad748cc
≪ 前へ
トップに戻る
次へ ≫