2017年5月22日
SecureWorks Japan株式会社
*当レポートは、2017年5月18日に米国で発表されたレポートの抄訳です。
原文:www.secureworks.com/research/wcry-ransomware-analysis
SecureWorks® Counter Threat Unit ® スレット・インテリジェンス
WCry ランサムウェア詳細解析レポート
概要
2017年5月18日、米国ジョージア州アトランタ発―SecureWorksのリサーチチーム、Counter Threat Unit® (CTU) が、世界中の多くのシステムに影響を及ぼし、広範囲に拡大したWCry (別名:WanaCry、WanaCrypt、またはWana Decrypt0r) ランサムウェアについて詳細解析しました。感染したシステムの中には、国家的に重要なシステムも含まれていました。CTUのリサーチャーは、このランサムウェアが急速に拡大した背景には、Windows Server Message Block (SMB) v1プロトコルの脆弱性を悪用したワーム コンポーネントが使われていることが関係していると報告しています。Microsoft社は2017年3月、SMBv1の脆弱性に対してセキュリティ更新プログラム MS17-010を提供しています。
拡散
今回の攻撃キャンペーンでは、 SMBワームを通じてWCryの感染を拡大することで、被害が広範囲に及びました。しかしながら、本レポート作成時点では、SMBワームの配信方法は不明なままです。SMBワームはまず、www . iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea . comにHTTP接続を試み、接続に成功すると動作を停止するようになっています 。攻撃者は、自動化されたサンドボックスを使ったSMBワームの実行および解析をさせないために、このHTTP接続テストを追加した可能性があります。
このSMBワームでは、4月にShadow Brokersという脅威グループがリリースしたツールに由来するSMBv1エクスプロイトが使用されています。また、本ワームは標的システムにバックドアDoublePulsarが既に存在しているかどうかを確認し、存在しない場合にはEternalblue SMBv1エクスプロイトを用いて侵入します。感染拡大は、2種類のスレッドによって行われています。1つ目のスレッドがローカルネットワークのサブネットを確認すると、そのネットワーク上の先頭IPアドレスから1ずつIPアドレスをずらしながら全体をスキャンします。2つ目のスレッドは、ランダムに選んだ外部IPアドレスをスキャンします。
本ワームは、DLLファイルのペイロードとして感染したシステムに侵入します。DLLが読み込まれPlayGameというエクスポート関数 が実行されると、C:Windowsmssecsvc.exeに元のSMBワームをコピーおよび実行します。続いて、リソースとして抱えている次の実行ファイルを取り出し、C:Windowstasksche.exeとして作成および実行します。SecureWorkのCTUが解析したサンプルでは、この2番目の実行ファイルがWCryランサムウェアであることを確認しています。
感染
ファイルシステムを暗号化した後、WCryは図1のような身代金要求ウィンドウを表示させます。
図1:WCryランサムウェアの身代金要求ウィンドウ(出典:SecureWorks)
WCryはこのウィンドウを継続的に監視しており、ウィンドウが閉じられた場合には再度開いて確認を促します。また、WCryはtaskse.exeと呼ばれる小さなプログラムを起動し、リモート デスクトップ プロトコル (RDP) セッションを列挙すると共に、リモートデスクトップ接続中のユーザが確実にこのウィンドウを見ることができるようにします。さらに、このマルウェアはデスクトップの壁紙を図2のように変更します。
図2:WCryランサムウェアがセットするデスクトップの壁紙(出典:SecureWorks)
WCryは、リソースにパスワード保護されたZIP (パスワードは「WNcry@2ol7」)を抱えています。WCryが実行されると、現在のディレクトリ上でアーカイブが展開され 、以下のファイルが現れます。
-
b.wnry — デスクトップの壁紙として使用されるビットマップ画像 (図2参照)
-
c.wnry — Tor上のコマンド&コントロール (C2) サーバのアドレスやビットコイン アドレスなどのデータを含む設定ファイル
-
r.wnry — 身代金要求文
-
s.wnry — 被害者のシステムにインストールされるTorソフトウェアを含むZIPアーカイブ。TaskDataディレクトリに保存される
-
t.wnry — ファイル暗号化機能を含む暗号化されたDLL
-
u.wnry — WCryランサムウェアのメイン モジュールである復号モジュール
-
taskdl.exe —一時ファイル削除プログラムWNCRYT
-
taskse.exe — RDPセッションに身代金要求ウィンドウを表示するプログラム
-
msg —複数の言語で書かれた身代金要求文のリッチテキスト形式 (RTF) ファイルを含むディレクトリ
さらに、WCryは動作中に以下のファイルも生成します。
-
00000000.pky — RSA-2048公開鍵 (攻撃者が秘密鍵を保持していると考えられる) を含むMicrosoft PUBLICKEYBLOB
-
00000000.res — C2通信用データ
-
00000000.eky — 埋め込まれたRSA公開鍵で暗号化された、被害者ごとに固有のRSA秘密鍵
-
00000000.dky — 身代金が支払われると被害者に送られる、復号済みのRSA秘密鍵
-
f.wnry — WCryが被害者に対してファイルの復号「デモ」を行うための、あらかじめ埋め込まれたRSA秘密鍵で暗号化されたファイルのうちランダムに抽出されたファイルの一覧
-
@WanaDecryptor@.exe —WCryランサムウェアのメイン モジュールである復号モジュール
(u.wnryと全く同じもの) -
@Please_Read_Me@.txt — 身代金要求文(r.wnryと全く同じもの)
WCryマルウェアは、実行されると次の2つのコマンドを実行します。
-
attrib +h .
-
icacls . /grant Everyone:F /T /C /Q
また、WCryは以下のコマンド (読み易いように改行しています) を実行し、システムやデータの復旧を妨げます。WCryが管理者権限で実行されない場合は、「runas」コマンドを用いて以下のコマンドを実行します。
cmd.exe /c vssadmin delete shadows /all /quiet &
wmic shadowcopy delete &
bcdedit /set {default} bootstatuspolicy ignoreallfailures &
bcdedit /set {default} recoveryenabled no &
wbadmin delete catalog -quiet
WCryは、以下のサービスを停止することで、それらのサービスで使用中であったデータも暗号化できるようにします。
-
taskkill.exe /f /im mysqld.exe
-
taskkill.exe /f /im sqlwriter.exe
-
taskkill.exe /f /im sqlserver.exe
-
taskkill.exe /f /im MSExchange*
-
taskkill.exe /f /im Microsoft.Exchange.*
次に、ランダムに生成した整数値(46631494859358.bat、37061494619317.batなど)を使用してバッチ ファイルを作成し、マルウェアへのショートカットを作成します (図3)。
図3:WCryランサムウェアにより実行されるバッチファイル(出典:SecureWorks)
WCryが動作しているディレクトリは、SOFTWAREWanaCrypt0r キーに「wd」という名称の値として保存されます(図4参照)。WCryが管理者権限で動いている場合は、HKEY_LOCAL_MACHINE以下に、管理者権限ではない場合にはHKEY_CURRENT_USER以下にキーが作成されます。
図4:WCryランサムウェアがレジストリに格納したメタデータ(出典:SecureWorks)
WCryは、被害者がコンピュータにログインあるいは再起動した際に、ランサムウェアのウィンドウが表示されるよう、Runキーに自身を登録します (図5参照) 。
図5:WCryランサムウェアが作成したRunキーの値(出典:SecureWorks)
暗号化
WCryは、RSAとAESアルゴリズムを組み合わせたものを用いてファイルを暗号化します。RSAの暗号化やランダムキーの生成にはWindows Crypto APIを使用しますが、AESについてはサードパーティのコードを用いたものが実装されています。CTUのリサーチャーは、実装されている暗号化機能にいかなる欠陥も確認しておらず、WCryが使用している秘密鍵を入手しない限り、ファイルの復号は困難であるとしています。
暗号化する前に、WCryはシステム上で利用できるディスクをすべて列挙します。その中には、ローカルドライブ (ハードディスクなど)、リムーバブルドライブ (USBサムドライブなど)、ネットワークドライブ (マウントされたファイル共有フォルダなど)が含まれます。WCryには、マウントされていないファイル共有フォルダを検索する機能は持っていません。また、ファイルを暗号化する前にGlobalMsWinZonesCacheCounterMutexAという名前のミューテックスの存在を確認し、存在する場合には動作を終了します。
WCryは、文書作成やデータベースアプリケーション、アーカイブ、そしてマルチメディア形式に関連する拡張子を持つファイルを暗号化対象としています(図6参照)。また、ファイルのパスに表1に含まれる文字列が含まれる場合には、暗号化処理をスキップします。
図6:WCryランサムウェアが攻撃対象とするファイル拡張子(出典:SecureWorks)
Content.IE5 |
Temporary Internet Files |
LocalSettingsTemp |
ppDataLocalTemp |
Program Files |
Program Files (x86) |
WINDOWS |
ProgramData |
Intel |
This folder protects against ransomware. Modifying it will reduce protection |
|
|
表1: ホワイトリストに登録されているディレクトリ名の構成
WCryは、感染ごとにRSA-2048の鍵ペアを生成し、RSA公開鍵を使用して暗号化した後に、拡張子.ekyを付けて(例: 0000000.eky)ローカル ディスクに保存します。このRSA暗号鍵は、ファイル毎に生成されたランダムなAES-128暗号鍵を暗号化する際に用いられます。
暗号化対象のファイルは、読み込まれた後メモリ上で暗号化され、WCryが動作しているディレクトリに<ランダムの数字>.WNCRYT というファイル名で保存されます。その後作成されたファイルは、元のファイル名と拡張子.WINCRYが付いたファイル名で、元のファイルが存在するディレクトリに移動されます。マルウェ
アによって起動するtaskdl.exeプロセスにより、WCryが動作しているディレクトリに残った拡張子 .WINCRYTの付いた一時ファイルは定期的に削除されます。WCryは暗号化処理中に元のファイルのデータを直接上書きすることはないため、環境によっては削除されたファイルコンテンツの回復が可能であると考えられます。暗号化されたファイルは、独自のヘッダが付いたファイル形式で暗号化および保存されます (図7参照)。
図7:暗号化ファイル用のWCryファイルヘッダ(ハイライト箇所は暗号化されたAESキー)(出典:SecureWorks)
図8の独自ヘッタに格納されている情報によって、WCryが暗号化前のファイルを正しく復号できるようになっています。
図8:WCryが暗号化したファイルの独自ヘッダ(出典:SecureWorks)
支払い
暗号化処理が終わるとWCryは、タイマーを表示して身代金が増額するまで (4日間)、あるいはファイルが回復不能になるまで(7日間)のカウントダウンを始めます。WCryは身代金の要求額をドルまたはビットコインで自由に設定することが可能で、 CTUのリサーチャーは、300ドルおよび600ドル相当のビットコインを要求するWCryを確認しています。サンプルごとに異なっているとされるビットコインのアドレスは、c.wnry設定ファイルに含まれています。設定ファイルがない場合、マルウェアはハードコードされたビットコイン アドレスを使用します。CTUのリサーチャーは以下のビットコイン アドレスがWCryによって使用されていることを確認しています。
-
13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94 (ハードコードされたもの)
CTU のリサーチャーは、WCryを使用している攻撃者が、身代金を支払った被害者のファイルを復号できるのか、あるいは復号しようとする意図があるのかという証拠を得られていません。多くのランサムウェアは、被害者それぞれに対し個別にビットコインアドレスを割り当てているため、攻撃者は被害者からの支払いをどの感染なのか、使用した暗号鍵はどれかを紐づけることができます。しかし、WCryはこうした機能を実装していないため、攻撃者は被害者とやりとりして暗号鍵との紐づけを行う必要があります。
コマンド&コントロール (C2)
WCryは、動作するディレクトリ内のTaskDataディレクトリに、匿名通信を行うTorをインストールします。Torサーバはtaskhsvc.exeとリネームされ実行されます。TorはTCPポート9050で待ち受けするループバックインターフェース (127.0.0.1) にSOCKS5プロキシサーバを設置します。WCryはこのプロキシに接続して、Torネットワーク上の以下のC2サーバとの通信を試みます。
-
gx7ekbenv2riucmf . onion
-
57g7spgrzlojinas . onion
-
xxlvbrloxvriy2c5 . onion
-
76jdd2ir2embyv47 . onion
-
cwwnhwhlz52maqm7 . onion
C2サーバに接続後、WCryはTor回路を経由し、TCPポート80上で独自の暗号化プロトコルを使用して暗号化鍵を送信することで、被害者が攻撃者とやりとりすることや支払状況の確認を可能にします。なお、WCryが文書ファイルや保存されている認証情報の窃取、あるいは追加の実行ファイルを受信・実行することはありません。
最後に
WCryランサムウェアは、SMBの脆弱性を悪用する感染手法を用いて、急速に感染を拡大しています。
本脅威への対応策として、SecureWorksのCTUのリサーチャーは下記の対策の実施を推奨しています。
-
MS17-010セキュリティ更新プログラムを適用してください。
-
必要でない限り (ホストがWindows XPやWindows 2000のシステムと通信する必要がない限り)、SMBv1を無効にしてください。相互接続されたネットワーク上でSMBv1を許可する必要がある場合は、想定されるリスクと照らし合わせながら慎重に評価してください。
-
パッチ適用できないホストを隔離するためのネットワークセグメントを用意し、SMBv1の通信がそのネットワークから出られないようブロックしてください。
-
SMBワームが侵入経路として使用するバックドアDoublePulsarの存在有無を、Nmapなどのツールを用いて確認してください。
-
ネットワーク監査ツールを使用してネットワークをスキャンし、MS17-010の脆弱性が残っているホストが存在しないか確認してください。
-
実行ファイル、スクリプト、マクロ付き文書など、危険性のあるファイル形式が含まれたEメールをフィルタリングしてください。
-
オフラインのバックアップメディアを使用してバックアップを実施してください。ローカル接続またはネットワーク接続された場所へのバックアップ、あるいはクラウド ストレージへのバックアップについては、ランサムウェアがそれらシステム上にアクセスしてファイルを暗号化する可能性があるので十分なバックアップ方法とはいえません。
インディケータ情報
表2に記載されているインディケータ情報は、WCry関連の活動を検知するのに役立ちます。なお、ドメインには不正コンテンツが含まれる可能性があるため、ブラウザで開く際には、そのリスクを踏まえた上で実行してください。
Indicator |
Type |
Context |
gx7ekbenv2riucmf.onion |
Tor address |
WCry C2 server |
57g7spgrzlojinas.onion |
Tor address |
WCry C2 server |
xxlvbrloxvriy2c5.onion |
Tor address |
WCry C2 server |
76jdd2ir2embyv47.onion |
Tor address |
WCry C2 server |
cwwnhwhlz52maqm7.onion |
Tor address |
WCry C2 server |
Microsoft Security Center (2.0) Service |
Service display name |
WCry SMB worm |
mssecsvc2.0 |
Service name |
WCry SMB worm |
C:Windowsmssecsvc.exe |
Filename |
WCry SMB worm |
C:WindowsTasksche.exe |
Filename |
WCry SMB worm payload |
C:Windowsqeriuwjhrf |
Filename |
WCry SMB worm payload copy |
db349b97c37d22f5ea1d1841e3c89eb4 |
MD5 hash |
WCry SMB worm |
e889544aff85ffaf8b0d0da705105dee7c97fe26 |
SHA1 hash |
WCry SMB worm |
24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c |
SHA256 hash |
WCry SMB worm |
GlobalMsWinZonesCacheCounterMutexW |
Mutex |
WCry exclusion flag |
%PROGRAMDATA%%RAND% 0000000.eky |
Filename |
WCry encryption key |
63fb6dd827559c0ed40c4c3725f7fc0a |
MD5 hash |
WCry encryption key |
8e7211b1455dedfe1f84cc60a7ed593f78dfb6e1 |
SHA1 hash |
WCry encryption key |
24076e8485c72e4f9cf997c1f3670337231e401a043505e489606fff5758150f |
SHA256 hash |
WCry encryption key |
00000000.pky |
Filename |
WCry public key |
f5c0755e5f08dabf1119c193e96539a6 |
MD5 hash |
WCry public key |
5109c0738c126e65db8a92e1ff24f3291837f627 |
SHA1 hash |
WCry public key |
c863b4b4780d6ce53827049d3733863283aaeb4d4ae806fc2c5cfbd9eb236ab8 |
SHA256 hash |
WCry public key |
00000000.res |
Filename |
WCry C2 communication data |
492c258c5bcbdd812fddd99b2427da99 |
MD5 hash |
WCry C2 communication data (00000000.res) |
0c16196d93b076f4648a9b1b027e7735845cab20 |
SHA1 hash |
WCry C2 communication data (00000000.res) |
6fa17600177c2032c3c3a3c06df6cf7d8dba1d32db146d9dd87aecf3f39fb898 |
SHA256 hash |
WCry C2 communication data (00000000.res) |
b.wnry |
Filename |
WCry ransom demand desktop wallpaper |
c17170262312f3be7027bc2ca825bf0c |
MD5 hash |
WCry ransom demand desktop wallpaper (b.wnry) |
f19eceda82973239a1fdc5826bce7691e5dcb4fb |
SHA1 hash |
WCry ransom demand desktop wallpaper (b.wnry) |
d5e0e8694ddc0548d8e6b87c83d50f4ab85c1debadb106d6a6a794c3e746f4fa |
SHA256 hash |
WCry ransom demand desktop wallpaper (b.wnry) |
c.wnry |
Filename |
WCry configuration file |
fa44d43242f0bcc6d64569e4869e4913 |
MD5 hash |
WCry configuration file (c.wnry) |
29da372c816ac0d636657a76ab7712ae8106cb45 |
SHA1 hash |
WCry configuration file (c.wnry) |
3324483d27e716feb408b5d16b82540731faf435b9325497df779d72e7a6b765 |
SHA256 hash |
WCry configuration file (c.wnry) |
f.wnry |
Filename |
WCry decryption demonstration file list |
@Please_Read_Me@.txt |
Filename |
WCry ransom note |
r.wnry |
Filename |
WCry ransom note |
3e0020fc529b1c2a061016dd2469ba96 |
MD5 hash |
WCry ransom note |
c3a91c22b63f6fe709e7c29cafb29a2ee83e6ade |
SHA1 hash |
WCry ransom note |
402751fa49e0cb68fe052cb3db87b05e71c1d950984d339940cf6b29409f2a7c |
SHA256 hash |
WCry ransom note |
s.wnry |
Filename |
WCry ZIP archive containing Tor software |
ad4c9de7c8c40813f200ba1c2fa33083 |
MD5 hash |
WCry ZIP archive containing Tor software |
d1af27518d455d432b62d73c6a1497d032f6120e |
SHA1 hash |
WCry ZIP archive containing Tor software |
e18fdd912dfe5b45776e68d578c3af3547886cf1353d7086c8bee037436dff4b |
SHA256 hash |
WCry ZIP archive containing Tor software |
taskdl.exe |
Filename |
WCry temporary file cleanup program |
4fef5e34143e646dbf9907c4374276f5 |
MD5 hash |
WCry temporary file cleanup program (taskdl.exe) |
47a9ad4125b6bd7c55e4e7da251e23f089407b8f |
SHA1 hash |
WCry temporary file cleanup program (taskdl.exe) |
4a468603fdcb7a2eb5770705898cf9ef37aade532a7964642ecd705a74794b79 |
SHA256 hash |
WCry temporary file cleanup program (taskdl.exe) |
tasksche.exe |
Filename |
WCry installer |
84c82835a5d21bbcf75a61706d8ab549 |
MD5 hash |
WCry installer |
5ff465afaabcbf0150d1a3ab2c2e74f3a4426467 |
SHA1 hash |
WCry installer |
ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa |
SHA256 hash |
WCry installer |
taskse.exe |
Filename |
WCry RDP session decryptor display tool |
8495400f199ac77853c53b5a3f278f3e |
MD5 hash |
WCry RDP session decryptor display tool (taskse.exe) |
be5d6279874da315e3080b06083757aad9b32c23 |
SHA1 hash |
WCry RDP session decryptor display tool (taskse.exe) |
2ca2d550e603d74dedda03156023135b38da3630cb014e3d00b1263358c5f00d |
SHA256 hash |
WCry RDP session decryptor display tool (taskse.exe) |
t.wnry |
Filename |
WCry file encryption DLL |
5dcaac857e695a65f5c3ef1441a73a8f |
MD5 hash |
WCry file encryption DLL |
7b10aaeee05e7a1efb43d9f837e9356ad55c07dd |
SHA1 hash |
WCry file encryption DLL |
97ebce49b14c46bebc9ec2448d00e1e397123b256e2be9eba5140688e7bc0ae6 |
SHA256 hash |
WCry file encryption DLL |
@WanaDecryptor@.exe |
Filename |
WCry decryptor |
u.wnry |
Filename |
WCry decryptor |
7bf2b57f2a205768755c07f238fb32cc |
MD5 hash |
WCry decryptor (u.wnry and @WanaDecryptor@.exe) |
45356a9dd616ed7161a3b9192e2f318d0ab5ad10 |
SHA1 hash |
WCry decryptor (u.wnry and @WanaDecryptor@.exe) |
b9c5d4339809e0ad9a00d4d3dd26fdf44a32819a54abf846bb9b560d81391c25 |
SHA256 hash |
WCry decryptor (u.wnry and @WanaDecryptor@.exe) |
@WanaDecryptor@.exe.lnk |
Filename |
WCry decryptor shortcut |
表2: WCryスレットインジケータ
SecureWorksについて
SecureWorks は、日々深刻化するサイバー上の脅威を初期の段階から把握し警戒を行うことで、企業組織へのサイバー攻撃を素早く予測、防御、検出、そして対応を行うセキュリティ・サービス専業ベンダーです。当社は、独自のカウンター・スレット・プラットフォーム (CTP) において高度なデータ分析および洞察エンジン、そしてカウンター・スレット・ユニット (CTU) のリサーチ結果を統合し導き出した実用的なインテリジェンスを用い、サイバー上の脅威をリアルタイムに可視化し、その対抗策をすべてのサービスに反映させます。
日本を含む世界5カ所のセキュリティ・オペレーション・センター(SOC)を通じてSecureWorksは、お客様のリスクを最小限に抑えるセキュリティ・ソリューションを提供します。
2017年4月10日現在、SecureWorksは61ヶ国の4,400社のお客様企業にサービスを提供しています。www.secureworks.jp/
■ SecureWorksロゴは、米国 SecureWorks Corp の商標または登録商標です。
■ その他の社名および製品名は、各社の商標または登録商標です。
■ 記載内容は、2017年5月22日時点のものです。