脅威の調査

Exchange Server の脆弱性を悪用する DearCry ランサムウェア

DearCry ランサムウェアがファイルを暗号化する手法は、WannaCry の手法によく似ていますが、それは偶然ではないようです。

Microsoft Exchange Server のオンプレミス版に存在している複数の脆弱性を修正するパッチが先日公開されましたが、これらの脆弱性は 2 か月以上にわたり悪用され続けています。当初中国の国家機関によるものとされていたそのエクスプロイトは、現在ではさまざまなサイバー犯罪に利用されており、最新の攻撃の 1 つは「DearCry」と呼ばれるランサムウェアです。 ソフォスは先日、このエクスプロイトを利用した DearCry 攻撃を検出して阻止し、入手したサンプルを分析しました。

この DearCry ランサムウェアは粗削りで、検出を回避するための工夫がほとんど施されていないことから、作成者は初心者であると思われます。DearCry の最大の特徴は、攻撃したファイルに追加する暗号化ヘッダーが、あの悪名高いランサムウェア「WannaCry」で使用されているヘッダーに似ている点です。

エクスプロイト

エクスプロイトで悪用されている脆弱性 (CVE-2021-26855 と CVE-2021-27065) は、DEVCORE 社のリサーチャーが 12月に発見し、Microsoft 社に報告したものです。1 月 1 日、DEVCORE のリサーチャーはこれらの脆弱性を組み合わせて、認証前のリモートコード実行を可能にするエクスプロイトを作成し、「ProxyLogon」と命名しました。この名前は、脆弱性が Exchange プロキシアーキテクチャとログオンメカニズムに存在していることに由来します。

DEVCORE は 2021 年 1 月 5 日、公開期限を 120 日間に設定したことを、Microsoft Security Response Center (MSRC) ポータルを通じて MSRC に連絡しました。2 月 18 日、MSRC は 3 月 9 日の月例セキュリティ更新プログラムでこの脆弱性を修正することを約束しました。しかし、メモリ解析およびインシデント対応を行う Volexity 社が実環境で攻撃が実行されていることを報告したため、Microsoft は 3 月 3 日にパッチを緊急リリースしました。

Volexity によると、今回実環境で確認された攻撃は、PoC (概念実証) が Microsoft に提出された翌日 (2021 年 1 月 6 日) には開始されていたようです。Volexity は、攻撃者が Web シェル (ASPX ファイル) をディスクに書き込み、認証情報のダンプ、ユーザーアカウントの追加、Active Directory データベースのコピーの窃取、他のシステムや環境への移動などを実行していることを確認しました。Microsoft Threat Intelligence Center (MSTIC) は、被害状況、戦術、手順から判断して、この攻撃が国家の支援を受けた中国の攻撃集団「Hafnium」によるものだと確信しています。

DEVCORE は調査の結果、Volexity が確認した実環境での攻撃は、DEVCORE が Microsoft に提出したものと同じであることを確認しました。エクスプロイト攻撃で使用されたパスは似通っています (/ecp/.js)。また、Web シェルのパスワードは「orange」です (DEVCORE のエクスプロイトを開発した Orange Tsai (@orange_8361) がハードコードしたもの)。

ソフォスは、3 月 13 日にオーストリアのお客様企業のネットワークに対する DearCry 攻撃を初めて検出し、ブロックしました。 その数日前の 3 月 11 日には、同じ Exchange Server が Web シェルで攻撃されましたが、こちらもブロックされています。

DearCry

SophosLabs のランサムウェア対策チームは今回 DearCry の 2 つのサンプルを分析しました。どちらのケースでも、バイナリは署名されておらず、バージョン管理などの開発にまつわる専門的手法がとられている痕跡もありませんでした。これらのバイナリには、ウイルス対策シグネチャへの対抗手段がなく、圧縮も難読化もされていなかったため、ランサムウェアのテキスト文字列はすべて、アナリストやシグネチャベースのマルウェア保護機能によって検出可能な状態になっていました。こうした特徴がないことから、このランサムウェアの作者は初心者であるか、初期のプロトタイプであると考えられます。

2 つのサンプルに含まれていた、マルウェアバイナリをコンパイルするのに使用されるマシンとソースファイルの PDB 参照は全く同じものでした。

C:\Users\john\Documents\Visual Studio 2008\Projects\EncryptFile -svcV2\Release\EncryptFile.exe.pdb

このバイナリは、この被害者に配信されるように特別に作成されたようです。DearCry は、完全スタンドアロン型の暗号化方式を採用しており、公開鍵はランサムウェアバイナリに埋め込まれているため、C2 サーバーと通信しなくてもファイルの暗号化を開始することができます。調査した 2 つのサンプルは、別々の被害者に送信されたもので、身代金要求メモには固有の識別子が含まれており、使用される鍵も異なっていました。

暗号化の組み合わせ

DearCry はファイルを暗号化する前に、新しいファイルを作成し、攻撃対象のドキュメントの名前に基づいてファイル名を付けますが、この時「.CRYPT」というファイル拡張子を追加します。次に、DearCry は元のファイルのコンテンツの読み取りを開始し、暗号化して .CRYPT ファイルに書き込みます。

DearCry が使用するファイルの暗号化方式は 2 種類あり、AES-256 対称暗号化アルゴリズムを使用するか、ランサムウェアに組み込まれた OpenSSL ライブラリを使用します。

DearCry のバイナリに埋め込まれた OpenSSL のコード

しかし、AES 鍵そのものは、攻撃者が RSA 公開鍵アルゴリズムを使用して暗号化しています。AES 鍵を復号化するための公開鍵はコードに埋め込まれていますが、秘密鍵は攻撃者が持っています。 攻撃者は AES 鍵の RSA 暗号化を使用することで、C2 サーバーと通信して鍵を展開せずに、ランサムウェアを展開できます。また、DearCry の攻撃者は、被害者ごとに固有の公開暗号鍵を使用して、ランサムウェアバイナリを作成することができます。ただし、ソフォスの調査結果によると、攻撃者は同じバイナリを複数の被害者に配信しようとしています。

興味深いのは、DearCry が標的とするファイルタイプのリストが被害者ごとに異なっている点です。たとえば、一般的な画像ファイル (JPG など)、CAD 図面、プログラム (EXE)、ダイナミックリンクライブラリ (DLL) は、サンプル 1 の標的にはなっておらず、コンパイラのタイムスタンプによると、早い段階で配布されたようです。他のランサムウェアの多くは、プログラムや DLL を暗号化の対象から外しています。これは、誤ったファイルを暗号化してしまうと、コンピュータが起動しなくなり、被害者が身代金要求メモを読めなくなってしまうためです。

上図のファイルタイプを見ると、DearCry の標的には ASPX ファイルも含まれています。つまり、攻撃者はリモートからキーボード操作が可能な Exchange の Web シェルを暗号化できるということです。このことから、DearCry は Web シェル経由では展開されていないか、あるいは、攻撃者が Web シェルへのアクセスを保持することに関心がないと考えられます。後者 (サンプル 2) は、インストールされているソフトウェア (EXE ファイル、DLL ファイルなど) も標的としており、マシンは事実上機能しなくなります。

アプリケーションと DLL を暗号化し、実行できないようにする DearCry ランサムウェア

DearCry と WannaCry

興味深いことに、攻撃を受けたファイルに DearCry が追加している暗号化ヘッダーは、2017 年 5 月にサイバーセキュリティ業界を震撼させたランサムウェアワーム WannaCry が使用していたヘッダーに似ています。

The encryption header added by DearCry ransomware to files
DearCry ランサムウェアがファイルに追加した暗号化ヘッダー、ファイルタイプ、サイズコードを・・・
・・・WannaCry ランサムウェアによって暗号化された同じファイルのバージョンと比較

上の 2 つの画像は、暗号化されたファイル Desert.jpg を比較したもので、デフォルトの Windows 7 マシンからのサンプル画像です。DearCry も WannaCry も、ファイルの先頭に自身の名前を挿入しています。さらに、WannaCry のハイライト表示された部分は、暗号化されていない元のファイルのファイルタイプとサイズを表しています。ファイルタイプはオフセット 0x010C に、ファイルサイズはオフセット 0x0110 にあります。

WannaCry と似た形式でヘッダーを書き込む DearCryのコード (分かりやすくするためコメントを追加)

ハイブリッドな暗号化

ランサムウェア対策の観点で DearCry のファイルシステムの動作を見ると、さらに興味深いことがわかってきます。次の表は、DearCry が攻撃するファイルごとの動作を示しています (プロセスモニターで確認)。

DearCryのファイルシステムの動作。ステップ 8 = コピー。ステップ 10 = インプレース。

この動作から、DearCry が「コピー型」ランサムウェアと呼ばれるものであることがわかります。このランサムウェアは、ファイルのコピーを作成して暗号化し、元のファイルを削除します。これにより、暗号化されたファイルは別々の論理セクターに保存されるため、通常被害者は、解放された論理セクターを Windows が再利用するかどうかに応じて、ある程度はデータを回復することができます。

DearCry と比較した場合、人間が操作する Ryuk、REvil、BitPaymer、Maze、Clop などのランサムウェアは「インプレース型」ランサムウェアと呼ばれます。インプレース型では、攻撃によって即座に暗号化されたファイルが元のドキュメントと論理的に同じセクターに保存されるため、ファイル復旧ツールによる復元は不可能です。

しかし、DearCry には、復元を不可能にするための仕掛けが追加されています。DearCry は、元のドキュメントを削除する前と暗号化されたコピーを閉じた後に、元のドキュメントも上書きしてしまいます。つまり、DearCry は、コピー型とインプレース型の両方の暗号化を行うというハイブリッドな暗号化手法を採用しています。

暗号化されたコピーを作成した後、元のドキュメントを上書きする DearCry
DearCry によって上書きされた元の Desert.jpg

これは一般的な手法ではありません。同じくハイブリッドなアプローチを採用しているランサムウェアとして思い浮かぶのは、WannaCry だけです。WannaCry も、最初に暗号化されたコピーを作成し、その後で元のファイルを上書きして復旧を妨害します。

WannaCry のファイルシステムの動作。ステップ 8 = コピー。ステップ 13 = インプレース。

WannaCry をはじめとする悪名高いランサムウェアのファイルシステムの動作については、ソフォスのホワイトペーパー「How Ransomware Attacks (英語)」で詳しく解説しています。

これらの属性は、DearCry と WannaCry の作者を直接結びつけるものではありません。DearCry のコード、アプローチ、および能力は、WannaCry とは大きく異なります。DearCry は C2 (C&C) サーバーを使用せず、RSA 暗号鍵が埋め込まれており、タイマー付きのユーザーインターフェースが表示されることもありません。そして、何よりも重要なのは、ネットワーク上の他のマシンに拡散しない点です。 また、DearCry ランサムウェアのバイナリ自体は、ボリュームシャドウコピーを削除しません。

身代金要求メモ

何が起きて、誰に連絡しなければならないのかを被害者に知らせるために、「desktop」という単語が含まれるすべてのフォルダとシステムディスクのルートフォルダに「readme.txt」というファイルがドロップされます。この身代金要求メモには、2 つの電子メールアドレスとハッシュが記載されています。このハッシュは、特定の攻撃にどの復号鍵が関係しているのかを攻撃者が把握するための識別子です。

DearCry の身代金要求メモ。

検出

ソフォスのお客様の環境では、DearCry が Troj/Ransom-GFE として検出されます。状況によっては、感染した Exchange Server にインストールされているエンドポイント保護ツールが、ランサムウェアの数日前にドロップされた Web シェルを検出したこともあります。これらのコンポーネントは Troj/WShell-A として報告されます。

本記事で紹介したサンプルの IoC については、SophosLabs Github で公開していますので、そちらをご覧ください。

謝辞

SophosLabs は、Alex Vermaning と Fraser Howard の本記事への協力に謝意を表します。