This post is also available in: English (英語)
概要
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 サイトが侵害されて、ファイルが再コンパイルされた悪意のあるバージョンに置き換えられた可能性がありますが、この感染がどのようにして起こったのかは確認できていません。
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 日の朝に生成、署名されたことを突き止めました。
私たちは、General.rtf を UPX でアンパックした後、その主要な動作がユーザーファイルを暗号化して、これを身代金要求の元にすることを発見しました。
KeRanger は初回実行時に、 “.kernel_pid”、“.kernel_time”、“.kernel_complete” の 3 つのファイルを ~/Library ディレクトリの下に生成し、現在の時刻を “.kernel_time” に書き込みます。それから 3 日間待機します。KeRanger の別のサンプルでは、やはり 3 日間待機するものの、5 分間隔で C2 サーバーに要求を出しているので注意が必要です。
General.rtfは、感染したMacのモデル名とUUIDを収集し、その情報をC2サーバの1つにアップロードします。これらのサーバのドメインはすべて、onion[.]linkドメインまたはonion[.]nuドメインのサブドメインです。これら2つのドメインは、Torネットワークを介してのみアクセス可能なサーバをホストしています。
実行可能ファイルはエンコードされた2行のデータで応答できるまで、C2サーバへの接続を試行し続けます。Base64を使用して、2行がデコードされると、1行目にはRSA公開鍵が含まれており、2行目は「README_FOR_DECRYPT.txt」という名前のファイルに書き込まれます。
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
KeRangerは、mbed TLS (以前のPolarSSL)という名前のオープン ソース暗号化ライブラリを静的にリンクしています。
KeRangerが個々のファイル(例えばTest.docx)を暗号化する際、最初に暗号化拡張子を使用して暗号化されたバージョンを作成します(例:Test.docx.encrypted)。ファイルを暗号化するために、KeRangerは、まず乱数(RN)を生成し、C2サーバから取得したRSA鍵を使用してRSAアルゴリズムでそのRNを暗号化します。次に暗号化されたRNを結果ファイルの先頭に格納します。そして、元ファイルのコンテンツを使用して、 初期設定ベクトル(IV)を生成し、そのIVを結果ファイル内に格納します。その後で、RNとIVを組み合わせて、AES暗号鍵を生成します。最後に、元ファイルのコンテンツに対してこのAES鍵を使用し、暗号化されたすべてのデータを結果ファイルに書き込みます。
緩和策
弊社は、この問題を検出して即時に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を特定し削除するために下記の手順に従い操作し、ファイルを人質にされないよう保持することをお勧めします。
- TerminalまたはFinderのいずれかを使い、/Applications/Transmission.app/Contents/Resources/ General.rtfまたは/Volumes/Transmission/Transmission.app/Contents/Resources/ General.rtfが存在するか確認します。これらのいずれかが存在する場合、Transmissionアプリケーションは感染していますのでこのバージョンのTransmissionの削除をお勧めします。
- OS X にプリインストールされている"Activity Monitor"を使い、"kernel_service"という名前のプロセスがひとつでも稼働していないか確認します。みつかった場合、このプロセスを再確認し"Open Files and Ports"を選択します。さらに"/Users//Library/kernel_service"のようなファイル名が存在するか確認します(図12)。存在する場合、そのプロセスはKeRangerのメイン プロセスです。KeRangerのメイン プロセスを"Quit -> Force Qui"により終了させます。
- 以上の手順を踏んだ後、".kernel_pid"、".kernel_time"、".kernel_complet"または"kernel_service"というファイルが~/Libraryディレクトリ内に存在するか確認することをお勧めします。こうしたファイルが存在する場合は削除してください。
謝辞
KeRangerを分析し、タイミング良くお客様を保護するお手伝いをしていただいたYi Ren、Yuchen Zhou、Jack Wang、Jun Wangの皆様にパロアルトネットワークスから大変感謝申し上げます。分析や報告書作成をする間、この方たちのお手伝いをしていただいたことでRichard Wartell、Ryan OlsonおよびChad Berndtsonの皆様に感謝いたします。
IOC
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