Cerbeの名で知られているランサムウェアは、夏に入ってますます活動が増してきています。cryptolockerのファイルサイズは約244〜292KBで、新しいビルドは、エンタープライズを対象にして偽のメールを送ったりするスピアフィッシングキャンペーンを行い拡散しています。最新のランサムウェアCerberは、従来の防御を簡単に回避します。分析されたCerberのサンプル(MD5:cfd2d6f189b04d42618007fc9c540352)は、Virustotalへ最初に提出された64種類のウイルス対策ソフトウェアのうち9製品しか疑わしい悪質な物として検出しませんでした。検出率が低いことは、cryptolockerが多型暗号化装置とAPIコールの難読化を使用して、そのコピーをアンチウイルスによって検出されないように保護するということで説明できます。 スタティック解析 PE EXEファイルには、偽のタイムスタンプ、インポートアドレステーブル、さらにエクスポートアドレステーブルがあります。 エクスポートアドレステーブル ペイロードを隠す Cerberのコードの最新のビルドは、APIコールの難読化によってさらに保護されています。実際のインポートを非表示にするには、実行時にCerberがロードします。 実際のインポートアドレステーブルは次のようになります。 構成データの復号化 JSONデータのコンフィギュレーションは暗号化され、RCDATA(置換可能文字データ)としてリソースセクションに格納されます。 設定データを復号化するには、Cerberは 次の手順を実行します。 1. ハード・コーディングされたRC4 128ビット・キーを、28バイトのBLOBデータからインポートします。
2. 復号化後、メモリから128ビットの暗号化キーをゼロで消去します。 3. CryptEncrypt()関数を呼び出して、サイズが107 171バイトのJSONコンフィグを復号化します。 コンフィギュレーションパラメータ Cerber設定には、次の情報が含まれています。
Global RSA 2048-bit public key:
ハードディスク上のトレース 解凍されると、CerberはTempフォルダ内のMachine GUIDの最初の部分を使用して命名されたサブフォルダに一時データと暗号化キーを保存します。 例えば:%Temp%\ c36ab9c2 暗号化 Cerberは、暗号化にRC4アルゴリズム とRSAアルゴリズムを使用します。すべてのファイルは、ユニークな128ビットキーを持つRC4アルゴリズムを使用して暗号化されています。ファイルのRC4キーは、被害にあったマシンで生成された公開セッションキーRSA-880を使用して暗号化されています。公開セッションキーRSA-880を計算するために使用される素数(pおよびq)は、cryptolockerのファイルに埋め込まれた構成データで提供されるRSA-2048マスター公開キーを使用して暗号化されます。 プライベートキー指数(d)を、拡張ユークリッドアルゴリズムを使用して計算することにより、RSA-2048マスタキーで素数を復号化して、RSA-880セッションプライベートキーを復元することができます。 新しいファイルには、このファイルの暗号化に使用される暗号化されたRC4キーと、暗号化された元のファイルのデータ、元のファイル名、および特定の順序で格納されたチェックサムが含まれています。 またCerberは、ランダムに生成されたデータの60バイトのブロックをファイルの中央に追加して、暗号化されたファイル構造をさらに複雑にします。 キーの暗号化 はじめに構成ファイルからのRSA-2048 公開キーがBase64からPEM形式にデーコードされ、次にPUBLICKEYBLOBにデコードされます。 一度デコードされると、CERT_PUBLIC_KEY_INFO構造体には、公開キーとそのアルゴリズム(OID_RSA_RSA "1.2.840.113549.1.1.1" - RSAはコンテンツの暗号化と署名の両方に使用されます)が含まれています。 RSA-2048公開キーは PUBLICKEYBLOBとしてインポートされます。
次に、Cerberは880ビットのモジュラスで別のRSA公開キーを作成し、それを一時ファイルに保存します。 RSA-2048公開キーは、各ブロック '37003700'のサイズを指定したRC4キーと、4バイトヘッダーを暗号化するために使用されるRSA-880公開鍵用に生成された2つの素数(各55バイト)からなる114バイトのデータブロックを暗号化するために使用されます。 暗号化されたブロックは、%TEMP%フォル ダ内のtmpファイルに格納され、すべての暗号化ファイルの末尾に追加されます。 ファイルの暗号化 Cerberは、暗号化されるすべてのファイルに対して生成された128ビットのキーを使用して、RC4アルゴリズムを使用してファイルを暗号化します。 暗号化の後、ファイルには次のデータブロックが含まれます。
暗号化されたデータを含むファイルの名前は、次のように変更されます。
ランソムノート 身代金メモは、暗号化されたファイルと一緒にフォルダに保存され、次の形式で名前が付けられます。
暗号化が終了するとcryptolockerは、おなじみのCerberスタイルの壁紙を設定します。 壁紙のビットマップは、構成データに記載されているパラメータに基づいて生成されます。
コミュニケーション Cerber CIDRで指定されたIPの6893ポートに接続します。
通信パケットは、マシンGUID: {MD5_KEY}と{PARTNER_ID} {OS} {IS_X64} {IS_ADMIN} {COUNT_FILES} {STOP_REASON} {STATUS}で終わるハッシュで始まります。 たとえばCerberは、被害者のマシンIDを送信して、構成データで指定された範囲からリモートサーバーへの接続を開始しようとします。 デクリプタ Decryption Serviceは、Torのhttp://xpcx6erilkjced3j.onion/<MACHINE_ID>から入手できます。 例:http://xpcx6erilkjced3j.onion/AA8A-60D2-7EC2-0446-A314 CAPTCHAを解決する必要があります 5日間で0.045ビットコインの支払いが必要です。さもなければ価格は2倍になります。 支払い 攻撃に使用されたBitcoinAddressは、まだトランザクションを受け取っていません。 まとめ • Cerberは企業を対象としたスピアフィッシングメールキャンペーンを通じて広がっています。 • Cerberは、ポリモーフィックな暗号化とAPIコールによる難読化を使用して、ウイルス対策保護を回避します。 • 以前のバージョンと同様に、JSON形式で格納された暗号化された構成データを使用します。 • マスターRSA-2048キー→セッションRSA-880→RC4-128の暗号化方式を使用します。 • マスタープライベートRSA-2048キーを知らなくてもファイルを解読することはできません。 • Cerberは、暗号化統計情報を送信するために、構成データで指定されたIPを使用してC&Cに接続しようとします。 Acronis True Image 2018 Betaは、Cerberをブロックします Acronis True Image 2018 Beta(英語サイト、日本発表時期未定)一部であるAcronis Active Protectionの新しいバージョンは、Cerberのランサムウェアを検出し、影響を受けたファイルを直ちに復元します。 Acronis Active Protectionは、システム上のデータファイルの変更パターンを常に監視します。 例えば、あるふるまいは典型的な動作であると予想する一方で、別の振る舞いについては、疑わしいプロセスにファイルに対して敵対的な行動をとることを通知します。Acronisのアプローチは、これらのふるまいを調べて、 悪意のある行動パターンと比較します。このアプローチは、まだ報告されていないランサムウェアの亜種であっても、ランサムウェア攻撃を識別する際に非常に有効です。
アクロニスについて
アクロニスは2003年にシンガポールで設立されたスイス企業です。アクロニスは、世界15か所のオフィスと50カ国以上で拠点を擁しており、Acronis Cyber Protectソリューションは150カ国に26言語で提供され、2万社を超えるサービスプロバイダーで利用されており75万社を超える企業を保護しています。