*本内容は、2015年3月6日(米国時間)に米国Palo Alto Networksが公開したブログポストを元にしています。

3 月 4 日、OS X用のBitTorrentクライアントTransmission インストーラー がランサムウェアに侵害されているのを発見しました。インストーラーが配布されてからわずか数時間後です。私たちはこのランサムウェアを「KeRanger」と名付けました。
OS X についてこれまで確認されているランサムウェアは、2014 年に Kaspersky Lab で発見された FileCoder だけでした。発見当時、FileCoder は不完全だったため、KeRanger が OS X プラットフォームで発見された初めての完全に機能するランサムウェアです。

攻撃者は、Transmission バージョン 2.90 の 2 つのインストーラーを 3 月 4 日の朝に侵害しました。
私たちがこの問題を特定したとき、感染した DMG ファイルは Transmission サイトからまだ、ダウンロードできる状態でした (https://download.transmissionbt.com/files/Transmission-2.90.dmg)。Transmission はオープン ソース プロジェクトです。 Transmission の公式 Web サイトが侵害されて、ファイルが再コンパイルされた悪意のあるバージョンに置き換えられた可能性がありますが、この感染がどのようにして起こったのかは確認できていません。

 

図 1 Transmission の公式 Web サイトで KeRanger 発見    
 

KeRanger アプリケーションは、有効な Mac アプリ開発証明書で署名されており、Apple の Gatekeeper をバイパスできました。ユーザーが感染したアプリをインストールすると、組み込まれた実行ファイルがシステムで実行されます。KeRanger は 3 日間待機してから、Tor 匿名ネットワーク経由でコマンド アンド コントロール (C2) サーバに接続します。その後、システム上の特定タイプのドキュメントとデータファイルを暗号化します。暗号化プロセスを完了後、KeRanger は、ファイルを回復したければ、特定アドレスに 1 ビットコイン (約 400 ドル) を支払うよう被害者に要求します。また、KeRanger は今も積極的な開発途上にあるらしく、被害者がバックアップ データの回復をできないようにするために、Time Machine バックアップ ファイルの暗号化も試みています。

パロアルトネットワークスは、このランサムウェア問題を Transmission Project と Apple に 3 月4 日に報告しました。Apple は、悪用された証明書を無効にし、XProtect ウイルス対策シグネチャを更新しました。Transmission Project は悪意のあるインストーラを Web サイトから削除しました。パロアルトネットワークスも URL フィルタリングと脅威防御を更新して、KeRanger がシステムに影響を及ぼさないように対処済みです。

技術分析

KeRanger に侵害された 2 つの Transmission インストーラーは Apple が発行した正規の証明書で署名されていました。この証明書の開発者 ID は「POLISAN BOYA SANAYI VE TICARET ANONIM SIRKETI (Z7276PX673)」で、前のバージョンの Transmission インストーラーの開発者 ID とは異なっていました。コード署名情報から、これらのインストーラーは 3 月 4 日の朝に生成、署名されたことを突き止めました。

図 2 KeRanger のコード署名情報
 

KeRanger に侵害された Transmission インストーラーには Transmission.app/Contents/Resources ディレクトリの General.rtf という余分なファイルが含まれていました。これは通常の RTF ファイルに似たアイコンを使用していますが、実際は UPX 3.91 でパックされた入った Mach-O 形式の実行ファイルです。ユーザーがこれらの感染したアプリをクリックすると、バンドル実行ファイル Transmission.app/Content/MacOS/Transmission がこの General.rtf ファイルを ~/Library/kernel_service にコピーし、ユーザー インターフェイスが表示される前にこの「kernel_service」を実行します。

図 3 悪意のある実行ファイルが RTF ドキュメントのふりをする
 

図 4 KeRanger が余分の General.rtf ファイルを実行する
 

私たちは、General.rtf を UPX でアンパックした後、その主要な動作がユーザーファイルを暗号化して、これを身代金要求の元にすることを発見しました。

KeRanger は初回実行時に、 “.kernel_pid”、“.kernel_time”、“.kernel_complete”  の 3 つのファイルを ~/Library ディレクトリの下に生成し、現在の時刻を “.kernel_time” に書き込みます。それから 3 日間待機します。KeRanger の別のサンプルでは、やはり 3 日間待機するものの、5 分間隔で C2 サーバーに要求を出しているので注意が必要です。

 

図 5 KeRanger は 3 日間待機してから本格的に実行する
 

General.rtfは、感染したMacのモデル名とUUIDを収集し、その情報をC2サーバの1つにアップロードします。これらのサーバのドメインはすべて、onion[.]linkドメインまたはonion[.]nuドメインのサブドメインです。これら2つのドメインは、Torネットワークを介してのみアクセス可能なサーバをホストしています。

実行可能ファイルはエンコードされた2行のデータで応答できるまで、C2サーバへの接続を試行し続けます。Base64を使用して、2行がデコードされると、1行目にはRSA公開鍵が含まれており、2行目は「README_FOR_DECRYPT.txt」という名前のファイルに書き込まれます。

 

図6 C2サーバに接続して命令を取得   
 
弊社がサンプルを分析した時点では、C2サーバは、以下に示す内容のREADME_FOR_DECRYPT.txtでデータを返していました。このファイルは、被害者ユーザーに対して、指定したTorネットワークWebサイトを介して、1ビットコイン(約$400)を支払ってファイルを復号するように求めます。該当のWebサイトは被害者ユーザーに任意の場所でビットコインを購入し、1PGAUBqHNcwSHYKnpHgzCrPkyxNxvsmEofのアドレスにいる攻撃者に送金するように誘導します。
 

図7 被害者ユーザーにビットコインを支払うように求めるREADMEファイル
 

図8 ビットコインを送金して復号パックを取得するように求めるTor Webサイト   
 

C2サーバに接続して暗号鍵を取得した後、実行可能ファイルは、/Usersディレクトリおよび/Volumesディレクトリを探索して、/Usersディレクトリにあるすべてのファイル、また/Volumesディレクトリにある、特定のファイル拡張子を持つすべてのファイルを暗号化します。

マルウェアによって指定された対象の拡張子は約300存在します。以下に例を挙げます。

  • ドキュメント:.doc、.docx、.docm、.dot、.dotm、.ppt、.pptx、.pptm、.pot、.potx、.potm、.
    pps、.ppsm、.ppsx、.xls、.xlsx、.xlsm、.xlt、.xltm、.xltx、.txt、.csv、.rtf、.tex
  • イメージ:.jpg、.jpeg
  • 音声および動画:.mp3、.mp4、.avi、.mpg、.wav、.flac
  • アーカイブ:.zip、.rar、tar、.gzip
  • ソース コード:.cpp、.asp、.csh、.class、.java、.lua
  • データベース:.db、.sql
  • 電子メール:.eml
  • 証明書:.pem
 

図9 /Usersディレクトリにあるすべてのファイル、および/Volumesディレクトリにある特定のすべてのファイルを暗号化
 

KeRangerは、mbed TLS (以前のPolarSSL)という名前のオープン ソース暗号化ライブラリを静的にリンクしています。

KeRangerが個々のファイル(例えばTest.docx)を暗号化する際、最初に暗号化拡張子を使用して暗号化されたバージョンを作成します(例:Test.docx.encrypted)。ファイルを暗号化するために、KeRangerは、まず乱数(RN)を生成し、C2サーバから取得したRSA鍵を使用してRSAアルゴリズムでそのRNを暗号化します。次に暗号化されたRNを結果ファイルの先頭に格納します。そして、元ファイルのコンテンツを使用して、 初期設定ベクトル(IV)を生成し、そのIVを結果ファイル内に格納します。その後で、RNとIVを組み合わせて、AES暗号鍵を生成します。最後に、元ファイルのコンテンツに対してこのAES鍵を使用し、暗号化されたすべてのデータを結果ファイルに書き込みます。

 

図10 AESによる個々のファイル コンテンツの暗号化   
 
KeRangerには、この動作以外に、さらに開発中の機能があると考えられます。“_create_tcp_socket”、“_execute_cmd”および“_encrypt_timemachine”という名前の関数が明らかに存在しています。これらの関数の一部は既に完成していますが、現在のサンプルでは使用されていません。 弊社の分析によれば、攻撃者はバックドア機能を開発し、Time Machineバックアップ ファイルの暗号化を企てていると考えられます。 これらのバックアップ ファイルが暗号化されてしまうと、被害者ユーザーは、Time Machineを使用して被害にあったファイルを復旧することができなくなります。
 

図11 “_encrypt_timemachine” 関数は実装済みだが未使用    
 

緩和策

弊社は、この問題を検出して即時にTransmission Projectおよび Appleに対してレポートしました。Appleは、悪用された証明書を無効にし、現在はGatekeeperが悪意のあるインストーラをブロックしています。またAppleは、製品ファミリー全体をカバーするようにXProtectシグネチャを更新済みで、シグネチャは、現在すべてのMacコンピュータに対して自動的に更新されるようになっています。 3月5日時点、Transmission Projectは、悪意のあるインストーラを同Webサイトから排除済みです。

また、弊社もURLフィルタリングと脅威防御を更新して、KeRangerがパロアルトネットワークスの顧客に影響を及ぼさないように対処済みです。

 

防御方法

2016年3月4日午前11:00 (太平洋標準時)過ぎから2016年3月5日午後7:00 (太平洋標準時)の前までにTransmissionインストーラーを公式ウェブサイトから直接ダウンロードしたユーザーは、KeRangerに感染しているおそれがあります。Transmissionインストーラーを上記の時間帯よりも早くダウンロードした場合または任意のサードパーティのウェブサイトからダウンロードした場合、以下のセキュリティ確認を実施することもお勧めします。旧バージョンのTransmissionは現時点で影響を受けていない模様です。

KeRangerを特定し削除するために下記の手順に従い操作し、ファイルを人質にされないよう保持することをお勧めします。

  1. TerminalまたはFinderのいずれかを使い、/Applications/Transmission.app/Contents/Resources/ General.rtfまたは/Volumes/Transmission/Transmission.app/Contents/Resources/ General.rtfが存在するか確認します。これらのいずれかが存在する場合、Transmissionアプリケーションは感染していますのでこのバージョンのTransmissionの削除をお勧めします。
  2. OS X にプリインストールされている"Activity Monitor"を使い、"kernel_service"という名前のプロセスがひとつでも稼働していないか確認します。みつかった場合、このプロセスを再確認し"Open Files and Ports"を選択します。さらに"/Users/<username>/Library/kernel_service"のようなファイル名が存在するか確認します(図12)。存在する場合、そのプロセスはKeRangerのメイン プロセスです。KeRangerのメイン プロセスを"Quit -> Force Qui"により終了させます。
  3. 以上の手順を踏んだ後、".kernel_pid"、".kernel_time"、".kernel_complet"または"kernel_service"というファイルが~/Libraryディレクトリ内に存在するか確認することをお勧めします。こうしたファイルが存在する場合は削除してください。
 

図12 悪意のある"kernel_service"プロセス   
 
アップルは悪用された証明書をすでに無効にし、XProtect署名を更新していますので、ユーザーが既知の感染したバージョンのTransmissionを開こうとした場合、次のような文言の警告ダイアログが表示されます。「Transmissionアプリケーションはお使いのコンピューターに損害を与えます。ゴミ箱に捨ててください。」または「Transmissionを開くことができません。ディスク イメージをイジェクトしてください。」いずれにせよ、これらのメッセージを目にした場合、アップルの指示に従って感染を避けてください。
 

図13 感染したインストーラーが開かれるのがOS X システムにより阻止される
 
 
 

謝辞

KeRangerを分析し、タイミング良くお客様を保護するお手伝いをしていただいたYi Ren、Yuchen Zhou、Jack Wang、Jun Wangの皆様にパロアルトネットワークスから大変感謝申し上げます。分析や報告書作成をする間、この方たちのお手伝いをしていただいたことでRichard Wartell、Ryan OlsonおよびChad Berndtsonの皆様に感謝いたします。

IOCs

Ransomware.OSX.KeRangerのサンプル
d1ac55a4e610380f0ab239fcc1c5f5a42722e8ee1554cba8074bbae4a5f6dbe1 Transmission-2.90.dmg
e3ad733cea9eba29e86610050c1a15592e6c77820927b9edeb77310975393574 Transmission
31b6adb633cff2a0f34cefd2a218097f3a9a8176c9363cc70fe41fe02af810b9 General.rtf
d7d765b1ddd235a57a2d13bd065f293a7469594c7e13ea7700e55501206a09b5 Transmission
2.90.dmg
ddc3dbee2a8ea9d8ed93f0843400653a89350612f2914868485476a847c6484a Transmission
6061a554f5997a43c91f49f8aaf40c80a3f547fc6187bee57cd5573641fcf153 General.rtf

ドメイン
lclebb6kvohlkcml.onion[.]link
lclebb6kvohlkcml.onion[.]nu
bmacyzmea723xyaz.onion[.]link
bmacyzmea723xyaz.onion[.]nu
nejdtkok7oz5kjoc.onion[.]link
nejdtkok7oz5kjoc.onion[.]nu