不定期でお送りしている本ブログのこのシリーズ。今回はこれまでと少し趣向を変えて、特定の単体のマルウェアではなく「Gumblar攻撃」を取り上げます。最近のマルウェアを利用した攻撃は複数のマルウェアを利用することが多いため、一つのマルウェアの動作を詳細に解析しているだけでは起きていることの全貌を明らかにすることができません。そのため解析エンジニアには、個々のマルウェアを詳細に解析する「虫の目」だけでなく、関連するすべてのマルウェアを俯瞰して全体を見通す「鳥の目」も必要になります。そこで今回は、解析エンジニアの鳥の目で「Gumblar攻撃」を眺めて感じたことをお伝えします。 なお、初めにお断りしておきますが、ここで呼ぶ「Gumblar攻撃」とは、昨年末から新聞などを賑わしている多くのWeb改ざんを引き起こしている一連の攻撃(通称Gumblar.8080)のことです。「ガンブラーウイルス」と呼ばれたり「現在の攻撃はGumblarではない」と言われたり、分かりやすくするために付けた名前で逆に混乱を引き起こすなど現象に対する命名の難しさを感じますが、ここでは分かりやすく「不特定多数のWebサイトに同じ種類のスクリプトを追加することによってマルウェアに感染させようとする手口」のことを「Gumblar攻撃」と呼ぶことにします。現在発生している「Gumblar攻撃」では、攻撃者がマルウェアを利用して盗んだFTPアカウント情報をWeb改ざんに悪用するのでWeb改ざんが連鎖的に広がることも特徴と言えますが、注目がFTPアカウントだけに集中することを避けるため、ここではFTPアカウントの盗用は定義に含めません。 それではまず、Gumblar攻撃によって何が起きるのかを整理するため、攻撃を3つの段階に分けて簡単に振り返りましょう。
■第1段階:Webページの改ざん
Gumblar攻撃は、Webページが何らかの方法で改ざんされるところから始まります。これまでに確認されている情報によれば、FTPによってWebコンテンツへの不正アクセスが行なわれているようです。先日、とある改ざんされたWebサイトのFTPアクセスログを見る機会がありましたが、そのログによれば短時間の間にファイル名が「index」「main」「default」で拡張子が「htm*」「php」のファイルがすべて同じサイズだけ増加していました。つまり、それらのファイルには同じ不正スクリプトが機械的に追加されたと考えられます。また、拡張子が「js」のすべてのファイルも書き換えられていました。これらの接続元のほとんどは海外で、しかも異なるIPアドレスが接続元となって同じファイルのダウンロード(RETR)とアップロード(STOR)が行なわれていました。さらには、悪用されたFTPアカウントのパスワードを変更した後に、総当り攻撃によって侵入を試みられている形跡もありました。ユーザ名だけでも判明していれば侵入の試みの半分は成功したも同然ですから、攻撃者としては狙い目なのでしょう。
このようにして改ざんされたファイルには不正サイトへ誘導するための難読化されたJavaScriptが追加されます。改ざんされたファイルは攻撃を受けた時期によって「GNU GPL」、「CODE1」、「LGPL」、「Exception」など検出を逃れることを目的としていると考えられる特徴的なコメントが存在していましたが、その後これらのコメントはなくなりました。最近はスクリプト中で「eval」が使用されているのが特徴と言えましたが、現在はそれも変わってしまったようです。マーカーとして利用されていると思われる末尾のコメントタグの存在が唯一の特徴と言えるでしょうか。このように改ざん内容を変化させるのはウイルス対策製品によるファイル検出を逃れることが目的でしょう。今後も検出とのいたちごっこは続かざるをえないので引き続き警戒が必要です。
■第2段階:file.exeのダウンロード
改ざんされたWebページを閲覧すると何が起きるのでしょうか。結論から述べると、まず行なわれるのは、WindowsやAdobe Reader、JREなど様々な脆弱性を利用した「file.exe」のダウンロードと実行です。この「file.exe」とは、トレンドマイクロ製品で「TROJ_BREDOLAB」ファミリとして検出する高機能なダウンローダーです。「TROJ_BREDOLAB」はGumblar攻撃のみで使われているわけではなく、昨年からスパムメールに添付されてばら撒かれていることが確認されています。この改ざんページ閲覧から「file.exe」のダウンロードまでの動作は既に各所から情報が出ているようなので詳細は割愛しますが、このときに接続されるURLとダウンロードされるファイルのつながりを図にしたものを示しておきます。図中の接続先URLやダウンロードされるファイルの検出名はある一時点のものであり時期によって異なりますが、これまでの調査によれば全体の構成は昨年末から変わっていないようです。
図1 file.exeダウンロードまで |
■第3段階:様々なマルウェアのダウンロード
脆弱性の利用に成功してfile.exe(TROJ_BREDOLAB)がダウンロードされ実行されると、file.exe(TROJ_BREDOLAB)はいくつものファイルをダウンロードします。TROJ_BREDOLABの動作で特筆すべきは、ダウンロードしたファイルをファイルとしては保存せずに直接的にプロセスにインジェクションして実行させることです。ファイルとして保存されないので通常のファイル検索で検出できないのはもちろん、感染環境で何が行なわれたか後から調査することが困難になります。こちらもダウンロードされる内容は時期によって異なりますが、例としてある一時点での状態を調査した内容を図に示します。こちらもダウンロードされるファイルに多少の変化はあるものの、全体の構成は昨年末からほとんど変化していないようです。FTPアカウント情報などの収集や偽セキュリティソフトの他、スパムメール送信を行なうボットなどがインストールされることが確認されています。
図2 file.exe実行後 |
■Gumblar攻撃の特徴
Gumblar攻撃の流れの振り返りが終わったところで、解析エンジニアの「虫の目」「鳥の目」で見たGumblar攻撃の特徴的と思われる部分をご紹介しましょう。全部で10にまとめてみました(順不同。検出名は解析時点での名前です)。あくまで一エンジニアが感じたこととして上に示した図と併せてご覧いただき、わかりにくいGumblar攻撃の全貌を明らかにするための参考となれば幸いです。
- 改ざん内容がランダムに難読化され、方法も随時変化しながら長期に渡って継続している。また改ざんページ閲覧時の接続先サイトはリバースプロキシ(nginx)になっており、一つの名前に対するIPアドレスも複数存在している。
=>検出およびURLフィルタリングによるブロックが困難になる。 - 不正スクリプトによる不正サイトへの接続先URLに正常なドメインの文字列が多数含まれている。
=>URLフィルタリングをすり抜けることがある。 - 不正スクリプトによる不正サイトへの接続は、同じIPアドレスからは初回接続時(または初回接続後のわずかな時間)しか本来の(不正な)応答がされない。
=>マルウェアサンプルの入手が困難になる。 - file.exe(TROJ_BREDOLAB)をダウンロードさせるJavaScriptは一部が別ファイルに分かれている。
=>単体では動作を解析できず解析が困難になる。 - file.exe(TROJ_BREDOLAB)をダウンロードさせるために複数の脆弱性が利用される(JustExploitなどが利用されている模様)。
=>より多くの環境で感染しやすくなる。 - file.exe(TROJ_BREDOLAB)はダウンロードしたファイルデータをファイルとしては作成せずに別プロセスにインジェクションして実行することができる。
=>検出・動作の解析が困難になる。 - TROJ_AGENT.AUQSはSYSファイル内で自身のコードを復号した上で、service.exeにコードをインジェクションして動作させる。また、自身が削除されないように監視する。
=>解析・駆除が困難になる。 - TSPY_DAURSO.CによるFTPクライアントの設定情報からの収集、TSPY_DAURSO.DによるFTPサーバ側での受信内容の監視、TROJ_WALEDACによるネットワークパケットの監視など、いくつもの方法でFTPアカウント情報を収集する。
=>感染コンピュータから見えるFTPアカウント情報を逃さず収集される。 - TROJ_WALEDAC.AYZはFTPアカウントだけでなく、HTTPベーシック認証、POP3、SMTP Authenticationなど平文で流れるパスワード情報を収集する。
=>収集された情報を利用した情報漏えいなど問題が広がる。 - 様々な動作の背後で偽セキュリティソフトをインストールする。
=>注目を集中させるとともに、購入を促すことで攻撃者の安定した資金源になる。
いかがでしょうか。個々のマルウェアの動作を解説していないので、これだけ見ても何のことを言っているのかわかりにくい部分もあるかと思いますが、それぞれの解説は機会があればまたそのときに。なによりダウンロードされる内容は検出を逃れるためか毎日のように変化するので、日々の変化を追って検出用パターン作成など必要な作業を行なうだけでも一仕事です。しかしそんな泣き言を言っている暇もありません。解析エンジニアには今や「虫の目」「鳥の目」だけでなく、流れを読む「魚の目」も必要なのです。そしてもちろん、見たものをわかりやすく伝える「人の目」も。それでは、また次回お会いしましょう!