月曜、Flashbackトロイの木馬によってMacに障害が起きない方法をご紹介した。今日はFlashback感染を見つける方法に関する情報を提供する。

  以下のステップをより良く理解するには、Flashbackについても多少している方が良いだろう。これはOS Xマルウェアファミリで、Webブラウザにより表示されるコンテンツを修正する。そのために、同マルウェアはMacのブラウザが使用する機能を利用する。乗っ取られる機能は亜種ごとに異なるが、一般にCFReadStreamReadおよびCFWriteStreamWriteが含まれる:



  標的とされるWebページと変更は、リモートサーバから読み出されるコンフィギュレーションに基づいて決定される。以下はコンフィギュレーション・データの例だ:



  デコードすると、標的とされたWebページ(赤)とインジェクトされたコンテンツ(黄)が分かるだろう:



  こうした能力は事実上、これをある種のバックドアにする。このことと、同マルウェアが最初、Flash Playerインストーラのふりをしてユーザをだまそうとした事実から、Flashbackと呼ばれている。しかし、以降それは進化しており、最近の亜種では拡散するためエクスプロイトを組み込み始めた。私が見たケースすべてで、少なくともGoogleを標的としており、これは実際Mac QHostの次の進化形ではないかと考えるに到った。

  介入機能を利用して、Flashbackが次に行うのはブラウザにそれをロードさせることだ。

  これはDYLD_INSERT_LIBRARIES環境変数が役立つところだ:



  一般に感染には2種類ある。第1の感染は、同マルウェアが管理権限を持つ際に生じる。第2の亜種「Flashback.B」もしくは上のスクリーンショットが例だ。このタイプの感染では、DYLD_INSERT_LIBRARIES環境変数が標的とされたアプリケーション、特にブラウザのコンテクストにのみ追加される。初期の亜種はSafariとFirefoxを標的としている。最近の亜種ではSafariのみが標的だ。この種の感染にユーザが気づくのは、より難しい可能性がある。感染したシステムがより安定しているためだ。

  感染の第2のタイプは、同マルウェアに管理権限の無い時に生じる。最初の亜種「Flashback.A」がその例だ。このタイプの感染では、DYLD_INSERT_LIBRARIES環境変数が感染したユーザのコンテクストに追加される。これは同マルウェアが感染したユーザが起動する全てのアプリケーションにロードされるということを意味している。その際、互換性のないアプリケーションに起因するクラッシュが増えるので、感染したシステムははるかに不安定になる。これを解決するため、最近の亜種は新しいフィルタコンポーネントを導入している:



  上記の例では、フィルタコンポーネントはプロセスがSafariである場合、メインコンポーネントをロードするのみだ(スクリーンショットで「WebPo」を無視すること。これはおそらく、Safariであれば一部であるWebProcessを、マルウェア作者がタイプミスしただけだろう)。

  では、このケースではどのように感染を特定するのか? 最も簡単なのは、ブラウザのDYLD_INSERT_LIBRARIES環境変数のチェックだ。Terminalで以下のコマンドを使用すれば良い:

  •  defaults read /Applications/%browser%.app/Contents/Info LSEnvironment



  上記の例は、Firefoxがクリーンであることを意味している。感染していれば、下のようなものを見る事になるだろう:



  赤で囲まれたDYLD_INSERT_LIBRARIESの値に注意して欲しい。フィルタコンポーネントである場合、メインコンポーネントを特定するのにそれが必要だ。

  •  grep -a -o '__ldpath__[ -~]*' %path_from_previous_step%



  赤で囲まれたファイルはFlashbackファイルなので、注意して欲しい。ほとんどのユーザにDYLD_INSERT_LIBRARIES環境変数は無いと思う。

  グレップで結果が得られなければ、それはあなたのシステムの亜種は、フィルタコンポーネントを有していないことを意味している。

  皆さんが次にチェックしたいのは、第2のタイプの感染が起きていた場合、あなたのユーザのDYLD_INSERT_LIBRARIES環境変数をチェックするということだろう:

  •  defaults read ~/.MacOSX/environment DYLD_INSERT_LIBRARIES



  結果が得られなければ、このタイプの感染は起きていないことを意味している。

  フィルタコンポーネントがあれば、メインコンポーネントを見つけるのに、また以下のコマンドを使用すれば良い:

  •  grep -a -o ' __ldpath__[ -~]*' %path_from_previous_step%



  サンプルはどうするか? 我々に送って欲しい。そうして頂ければ、他のAVベンダとサンプル共有を手配するので、コミュニティの助けにもなる。

  システムからサンプルを削除する際、DYLD_INSERT_LIBRARIES環境変数も必ず削除すること。さもないと、ブラウザもしくは更に悪いことには全アカウントが、次回、ロードされないかもしれない。

  第1のタイプの感染では以下を使用して欲しい:

  •  sudo defaults delete /Applications/%browser%.app/Contents/Info LSEnvironment
  •  sudo chmod 644 /Applications/%browser%.app/Contents/Info.plist



  第2のタイプの感染では以下を使用すること:

  •  defaults delete ~/.MacOSX/environment DYLD_INSERT_LIBRARIES
  •  launchctl unsetenv DYLD_INSERT_LIBRARIES



  より最近のFlashback亜種に関する詳細は、我々のTrojan-Downloader:OSX/Flashback.Iの解説でチェックできる。

では。
Brod