手っ取り早く、結論から述べましょう。WannaCryの身代金要求には応えるべきではありません。

特に今回の場合、理由は以下のとおりです。

WannaCryの身代金支払いに関係する3つのBitcoinアカウントは、本稿の執筆時点で、すでに3万3,000ドルを超える金銭の支払いを受けています。しかしそれにもかかわらず、ファイルの暗号化を解除できたという報告は1件も上がっていません。

WannaCryの復号化プロセスは、控えめに言って疑わしいものです。

他の多くのランサムウェアと異なり、WannaCryは、身代金の支払い処理と、支払いを行ったユーザの関連付けを正しく管理できていないように見えます。例えばCerberは、感染被害者ごとに個別のIDとBitcoinウォレットを用意し、復号鍵を送信すべきユーザをしっかりと把握しています。一方、WannaCryは、支払いを要求するだけで後は何の音沙汰もありません。「Check Payment」ボタンをクリックしても、現時点では、次のようなメッセージが表示されるだけです。

主要なランサムウェアは、「カスタマー・サポート」に力を入れており、ほとんどの場合、極めて容易に連絡を取ることができます。しかしWannaCryはそうではありません。マルウェア作成者と連絡を取る唯一の手段は、画面の[Contact Us]ボタンを使用することですが、私たちが何度問い合わせても返事はありませんでした。

また、これまでのコード分析の結果も、WannaCryのファイル復元能力に強い疑念を抱かせるものとなっています。WannaCryは、暗号化/復号化の処理に2種類のルーチンを使用します。一方のルーチンは、大部分のファイルをそれぞれ異なる一意の鍵で暗号化し、マルウェア作成者のRSA秘密鍵でファイルを復号化します(この鍵は、マルウェア作成者から「.dky」ファイルとして提供されることになっています)。

他方のルーチンは、「無償デモ」として10個のファイルを復号化するために使用されます(このデモは、ファイルが実際に復号化可能であることを示し、ユーザに身代金を支払わせることを目的としています)。10個のファイルは、暗号化の際に無作為に選び出され、やはりファイルごとに異なる鍵で暗号化されます。ただし、1つ目の暗号化/復号化ルーチンと異なり、対応するRSA秘密鍵はユーザのコンピュータに保存されています。次の図をご覧ください。

(図A: メインの復号化関数)
(図A: メインの復号化関数)

(図B: デモ用の復号化関数)
(図B: デモ用の復号化関数)

図Aに示したメインの復号化関数は、RSA秘密鍵を格納する「.dky」ファイルを呼び出し、コンピュータ上のすべてのファイルを復号化します。一方、図Bのデモ用の復号化関数は、暗号化モジュールがドロップした「f.wnry」ファイル(デモ・ファイルのリストを含むファイル)を呼び出します。復号化に使用するRSA秘密鍵は、モジュールにハードコードされています。どちらの関数も、図Cのimport_RSA_keyモジュールを呼び出しますが、メインの関数は引数として「.dky」ファイルへのパスを渡し、デモ用の関数はnullを渡すという違いがあります。

(図C: 2つのルーチンで使用されるimport_RSA_key関数)
(図C: 2つのルーチンで使用されるimport_RSA_key関数)

以上、ファイルを「復号化できた」という報告がない点、身代金の支払いや復号化のシステムに問題がある点、そして復号化のデモに欺瞞がある点から、WannaCryが本当にファイルを復号化できるのかという点については、疑問が残ると言わざるを得ません。

それとも、メッセージにあるように、彼らの「勤務時間帯」である午前9~11時(グリニッジ標準時)に何かが起きるのでしょうか?

チェック・ポイントの脅威情報およびマルウェア・リサーチ・チームは、今後もWannaCryの調査を継続します。また、Incident Responseチームでは、WannaCryの動向を注視しつつ、お客様への支援を提供します。

1つ前のブログでは、WannaCryによる攻撃の分析、レポート、防御に、チェック・ポイントの各ソリューションをどのように利用できるかを紹介しています。ランサムウェア全般の詳細については、こちらをご覧ください。