Slide 1

Slide 1 text

WannaCryの 暗号化・復号のプロセス 身代金の支払い 復号ツール @kitagawa_takuji

Slide 2

Slide 2 text

#ssmjp 2017/10 #1 https://ssmjp.connpass.com/event/68090/ で使用したスライドの一部です

Slide 3

Slide 3 text

身代金を支払えば ファイルは戻るのか?

Slide 4

Slide 4 text

• 3つの固定のビットコインアドレス 115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw 13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94 • $300 を要求、3日経つと $600 に倍増 • 「7日間で支払いを行わないと、ファイルを永久に回復す ることはできません」と脅す • 338件、14万ドル(約1500万円)の支払い (2017年7月時点) WannaCryの身代金の支払い

Slide 5

Slide 5 text

• 通常のランサムウェアは被害者毎に異なるビットコ インアドレスを用いることにより、誰が支払ったか を識別する • 被害者毎に異なるビットコインアドレスを用いるこ とにより追跡を困難にする 通常のランサムウェアは

Slide 6

Slide 6 text

Bitcoinの取引履歴はすべて公開されている 共通のBitcoinアドレスを用いると追跡され易くなる

Slide 7

Slide 7 text

WannaCryには被害者毎に異なるBitcoinアドレスを提供する コードがあるのだが、バグによりハードコードされたBitcoin アドレスが提供される

Slide 8

Slide 8 text

最初の感染の13時間後にはバグを修正したバージョンが配布 されている。だが、殆どの感染はバグのあるバージョン

Slide 9

Slide 9 text

被害者毎のBitcoinアドレスを受け取るコードの呼び出し順序を変更

Slide 10

Slide 10 text

• WannaCryには被害者毎に異なるBitcoin アドレスを提供するコードがあるのだが、 バグによりハードコードされた3つの Bitcoinアドレスの内1つが提供されるよ うになっている • よって、犯人は誰が支払ったかを識別する ことが出来ない

Slide 11

Slide 11 text

WannaCryの 暗号化・復号のプロセス

Slide 12

Slide 12 text

元の ファイル sample.docx WannaCry 暗号化のプロセス

Slide 13

Slide 13 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア sample.docx WannaCry 暗号化のプロセス

Slide 14

Slide 14 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 sample.docx WannaCry 暗号化のプロセス

Slide 15

Slide 15 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 sample.docx WannaCry 暗号化のプロセス

Slide 16

Slide 16 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 sample.docx 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 WannaCry 暗号化のプロセス

Slide 17

Slide 17 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 WannaCry 暗号化のプロセス

Slide 18

Slide 18 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 メモリ上の 鍵ペア破棄 WannaCry 暗号化のプロセス

Slide 19

Slide 19 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaCry 暗号化のプロセス

Slide 20

Slide 20 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaCry 暗号化のプロセス

Slide 21

Slide 21 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaCry 暗号化のプロセス

Slide 22

Slide 22 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaCry 暗号化のプロセス

Slide 23

Slide 23 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaCry 暗号化のプロセス ファイル毎に繰り返し

Slide 24

Slide 24 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY WannaCry 復号のプロセス

Slide 25

Slide 25 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY WannaCry 復号のプロセス 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor)

Slide 26

Slide 26 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 WannaCry 復号のプロセス 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor)

Slide 27

Slide 27 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 WannaCry 復号のプロセス 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 00000000.dky 被害者 RSA-2048 秘密鍵 受信(tor)

Slide 28

Slide 28 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 AES-128 共通鍵 復号 WannaCry 復号のプロセス 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 00000000.dky 被害者 RSA-2048 秘密鍵 受信(tor)

Slide 29

Slide 29 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 AES-128 共通鍵 復号 元の ファイル sample.docx 復号 WannaCry 復号のプロセス 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 00000000.dky 被害者 RSA-2048 秘密鍵 受信(tor)

Slide 30

Slide 30 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 AES-128 共通鍵 復号 元の ファイル sample.docx 復号 WannaCry 復号のプロセス 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 00000000.dky 被害者 RSA-2048 秘密鍵 受信(tor) ファイル毎に繰り返し

Slide 31

Slide 31 text

Bitcoinの支払いと 復号のプロセス

Slide 32

Slide 32 text

C&Cサーバへのアクセス

Slide 33

Slide 33 text

「Contact US」からメッセージを送信

Slide 34

Slide 34 text

ユーザ識別情報で被害者のトラッキングが可能 • 「Contact US」、「Check Payment」ともに、 ユーザ識別情報が送信される • ユーザ識別情報 <8byteのID> • 8byteのID • 感染初期時にCryptGenRandomにより生成 • ファイル 00000000.res の先頭8byteに書かれ 永続的に使用

Slide 35

Slide 35 text

本来想定された Bitcoinの支払いと ファイル復号のプロセス

Slide 36

Slide 36 text

VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName C&Cサーバ(.onion) 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 本来想定された動作

Slide 37

Slide 37 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName C&Cサーバ(.onion) 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 本来想定された動作 VictimID

Slide 38

Slide 38 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 C&Cサーバ(.onion) 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID

Slide 39

Slide 39 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 C&Cサーバ(.onion) 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス

Slide 40

Slide 40 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス

Slide 41

Slide 41 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス

Slide 42

Slide 42 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス

Slide 43

Slide 43 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス

Slide 44

Slide 44 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky

Slide 45

Slide 45 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky

Slide 46

Slide 46 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵

Slide 47

Slide 47 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵

Slide 48

Slide 48 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵

Slide 49

Slide 49 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 AES-128 共通鍵 復号 元の ファイル sample.docx 復号 WannaCry ファイルの復号処理 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 00000000.dky 被害者 RSA-2048 秘密鍵 受信(tor) ファイル毎に繰り返し

Slide 50

Slide 50 text

バグによる実際の動作

Slide 51

Slide 51 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス 本来想定された動作 VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵

Slide 52

Slide 52 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵 バグによりこの処理より前に WanaDecryptorが起動 1. 共通のBitcoinアドレスのため誰 の入金か識別が出来ない 2. 00000000.ekyの復号は行われ ない (バグによる)実際の動作 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号

Slide 53

Slide 53 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵 バグによりこの処理より前に WanaDecryptorが起動 c.wnry Bitcoinアドレスは空白 1. 共通のBitcoinアドレスのため誰 の入金か識別が出来ない 2. 00000000.ekyの復号は行われ ない (バグによる)実際の動作 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号

Slide 54

Slide 54 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵 バグによりこの処理より前に WanaDecryptorが起動 c.wnry Bitcoinアドレスは空白 @[email protected] ハードコードされた Bitcoinアドレスを表示 1. 共通のBitcoinアドレスのため誰 の入金か識別が出来ない 2. 00000000.ekyの復号は行われ ない (バグによる)実際の動作 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号

Slide 55

Slide 55 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵 バグによりこの処理より前に WanaDecryptorが起動 c.wnry Bitcoinアドレスは空白 @[email protected] ハードコードされた Bitcoinアドレスを表示 共通のBitcoin アドレス 1. 共通のBitcoinアドレスのため誰 の入金か識別が出来ない 2. 00000000.ekyの復号は行われ ない (バグによる)実際の動作 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号

Slide 56

Slide 56 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵 バグによりこの処理より前に WanaDecryptorが起動 c.wnry Bitcoinアドレスは空白 @[email protected] ハードコードされた Bitcoinアドレスを表示 共通のBitcoin アドレス 1. 共通のBitcoinアドレスのため誰 の入金か識別が出来ない 2. 00000000.ekyの復号は行われ ない (バグによる)実際の動作

Slide 57

Slide 57 text

ユーザ識別子を送信 VictimID • 8-byteのID(CryptGenRandomで生成した乱数) • ComputerName • UserName 被害者毎のBitcoinアドレスを生成 Bitcoinアドレスを c.wnryに保存 1. Bitcoinの入金をチェック 2. 入金が確認できたら、犯人の秘 密鍵で00000000.ekyを復号 c.wnry C&Cより受信したBitcoin アドレス C&Cサーバ(.onion) @[email protected] c.wnryより読み込んだ Bitcoinアドレスを表示 Bitcoinの支払い Check Paymentボタン 00000000.eky 犯人の公開鍵で暗号化され た被害者の秘密鍵 入金 生成 入金チェック 受信した被害者の秘密鍵を 00000000.dkyとして保存 00000000.dky 被害者の秘密鍵 Decryptボタン 復号処理 被害者毎に異る Bitcoinアドレス VictimID Bitcoinアドレス VictimID Bitcoinアドレス 00000000.eky 被害者の秘密鍵 バグによりこの処理より前に WanaDecryptorが起動 Check Paymentを行っても秘密鍵の受取りが出来ないため Decyptボタンを押しても復号されない c.wnry Bitcoinアドレスは空白 @[email protected] ハードコードされた Bitcoinアドレスを表示 共通のBitcoin アドレス 1. 共通のBitcoinアドレスのため誰 の入金か識別が出来ない 2. 00000000.ekyの復号は行われ ない (バグによる)実際の動作

Slide 58

Slide 58 text

バグを修正したバージョンを配布

Slide 59

Slide 59 text

被害者毎のBitcoinアドレスを受け取るコードの呼び出し順序を変更

Slide 60

Slide 60 text

• WannaCryは被害者毎に異なるBitcoinアドレスを 提供するコードがあるのだが、バグによりハード コードされた3つのBitcoinアドレスの内1つが提 供されるようになっている • よって、犯人は誰が支払ったかを認識することが出 来ない • もし支払ったとしても、個別に犯人と交渉しなけれ ばファイルは戻らない 身代金を支払いをすればファイルは復元出来るのか

Slide 61

Slide 61 text

5/18 すべての感染した端末にメッセージが送信される

Slide 62

Slide 62 text

既に正しい額のビットコインを送信した多くの顧客に復号鍵を送信している。誠実 な顧客には復号を保証する。支払いの1時間前にビットコインアドレスをメッセー ジで送信して欲しい。そうすれば復号鍵をもっと迅速に受け取れるだろう。

Slide 63

Slide 63 text

この手順で支払者の識別が可能か? • 「Contact US」「Check Payment」ともに、ユーザ識別 情報が送信される • 「Contact US」から、事前にBitcoinアドレスを通知 • 通知済みのBitcoinアドレスからの入金を確認できれば、 「Contact US」のユーザ識別情報に対し、支払済とマーク • 「Check Payment」のユーザ識別情報が支払済であれば、 00000000.ekyを復号して秘密鍵を被害者に送信

Slide 64

Slide 64 text

既に支払済の場合、 どうやって支払済であることを証明するのか?

Slide 65

Slide 65 text

Bitcoinの取引情報はすべて公開されている 他人の取引情報を示して「自分の支払いだ」となりすますことも可能

Slide 66

Slide 66 text

被害者 「5/XX X時X分にBitcoinアドレスAAAAから0.16BTCを支払った」 「ファイルを戻して欲しい」 犯人 「 AAAAがお前のものであることを証明するために、 非公開のBitcoinアドレスBBBBに0.00001BTCを送金してくれ!」 被害者 「送金した!」 犯人 「AAAAから非公開のBBBBへの入金を確認した」 「確かにAAAAはお前が所有しており、なりすましではないな」 「よし、復号鍵を送ろう」 既に支払済の者が、 自分の支払いであることを証明する方法(の想定の一例)

Slide 67

Slide 67 text

二人のWannaCry被害者への取材記事 https://qz.com/985093/inside-the-digital-heist-that-terrorized-the-world-and-made-less-than-100k/

Slide 68

Slide 68 text

シアトルの土地測量会社 共同経営者(34歳) (記事では名前、会社名が記載されており、検索すると実在する会社で経営者として名前が出ている) • 5/12経営する会社のサーバのファイルのほぼ全てが暗号化 • 業務がすべて止まる • IT業者に相談するが、何も出来ないと言われる • 5/13にBitcoinで身代金を支払う • 「Check Payment」を押しても「支払いが確認できませ ん」と表示される • 「Contact US」で「支払ったからファイルを戻して欲し い」と毎日、計6,7回メッセージを送信

Slide 69

Slide 69 text

• 5/17に「Check Payment」を押すと、「支払いを受領しま した。復号を開始して下さい」と表示される • 最終的にすべてのファイルを復号することが出来た • 自分のBitcoinアドレスや支払いの証拠を送ることはなかっ たし、それを犯人に要求されることもなかった • ただ「支払ったからファイルを戻して欲しい」というメッ セージを毎日送り続けただけ

Slide 70

Slide 70 text

復号処理中の画面を撮影

Slide 71

Slide 71 text

オンラインエンターテイメント会社に在宅勤務(32歳) クラクフ、ポーランド • 5/12に自宅のPCが感染 • 家族の写真、仕事用ファイル、音楽など、デジタルライフ のすべてが失われる • 身代金を支払う意志はあったが、払っても復元できるとは 信じられなかった • ネットで、支払って復元できたという情報がないかを探し 続けたが見つからなかった • 金額は問題ではなかったが、支払ってもファイルが戻らな かった場合、犯罪者に寄付をすることになるため支払いを ためらった

Slide 72

Slide 72 text

• 5/13 「Contact US」から「支払いを行ったのでファイル を戻して欲しい」というメッセージを送信 • ネットで支払ってファイルを復元できたという情報を探し 続けたが、見つからなかったので、支払いをすることはな かった • 毎日「Contact US」から「支払った」というメッセージを 送信し、「Check Payment」を押すことを続けた

Slide 73

Slide 73 text

• 5/18 「Check Payment」を押すと、「支払いが確認で きました」と表示された • 結局、身代金の支払いをすることなく、ファイルを復元で きた

Slide 74

Slide 74 text

「Contact US」から 何回かメッセージを送れば 支払済であることを証明することなく 復号鍵を受け取れた!

Slide 75

Slide 75 text

支払済を証明する必要がないということは 身代金を払わなくても 何度かメッセージを送れば 復号鍵を受け取れた!

Slide 76

Slide 76 text

WannaCryには 誰が支払ったかを識別出来ない バグがあったためで 他のランサムウェアにも 通用する訳ではない

Slide 77

Slide 77 text

他人の支払いのなりすましは想定していたが 支払い情報を送らなくても復号できるのは想定外だった

Slide 78

Slide 78 text

5/15 Mikko Hypponen(F-Secure Chief Research Officer) 身代金の支払いを行ったWannaCry被害者の内 何名かがファイルを復元できたことを確認

Slide 79

Slide 79 text

マニュアル(Contact usのフォームから連絡して)で復号鍵を入手

Slide 80

Slide 80 text

https://www.reddit.com/r/AskNetsec/comments/6b5868/has_anyone_actually_recovered_his_files_by_paying/dhq3j3r/ 5/18 redditでもファイルを復元出来たという投稿

Slide 81

Slide 81 text

5/26 BleepingComputerのWannaCry掲示板 「Contact US」から支払情報を何度も送信してファイルを復元出来た https://www.bleepingcomputer.com/forums/t/646476/wannacry-wncry-wanacrypt0r-wana-decrypt0r-ransomware-help-support-topic/page-15

Slide 82

Slide 82 text

5/14に「支払ったが何も起こらない。誰か復号鍵を受け取った人は いますか?」と投稿。その後、何度も質問を繰り返し、最終的に ファイルを復号出来たと報告。

Slide 83

Slide 83 text

6月にはWannaCryのC&CサーバがDownしたため 犯人から復号鍵を受け取ることが出来なくなる

Slide 84

Slide 84 text

8/3 WannaCryの3つのBitcoinワレットから 全額(約14万ドル 1500万円)が引き出されMoneroに交換される

Slide 85

Slide 85 text

No content

Slide 86

Slide 86 text

https://bitinfocharts.com/bitcoin/wallet/WannaCry-wallet

Slide 87

Slide 87 text

No content

Slide 88

Slide 88 text

• WannaCryが3つの固定のBitcoinアドレスを使用している のは意図されたものではなくバグである • 13時間後にはバグを修正したバージョンが配布されている • 事前にBitcoinアドレスを通知すれば早く復号鍵を受取れる などのメッセージが送信されている • 個別に犯人とコンタクトしてファイルを復号できたケース が複数報告されている • 最終的にはBitcoinがすべて引き出されている • これらのことから金銭目的である可能性が高い(それも含 めた偽装工作の可能性もあるが) WannaCryは破壊活動を目的にしたものと言う識者が多いが

Slide 89

Slide 89 text

Bitcoinの入金チェックは自動で出来るはずだが? 「支払いのチェックに最適な時間は、月曜から金曜の9AM-11AM(GMT)です。」

Slide 90

Slide 90 text

「Check Payment」を押した後にも同じ表示

Slide 91

Slide 91 text

• 「支払いの確認に最適な時間は、月曜から金曜の9 AM-11AM(GMT)です」の表示 • Bitcoinコインは、24時間365日取引可能 • バッチ処理で入金チェックするにしても、土日を休 む理由がない • もしかして、人力でチェックしている? • ここまでの大量感染を想定していなかった可能性? Bitcoinの入金チェックは自動で出来るはずだが?

Slide 92

Slide 92 text

復号ツール

Slide 93

Slide 93 text

• Adrien Guinet氏によりWannaCryに感染したPCよりRSA 秘密鍵を取り出すツールWannaKeyが公開 • Benjamin Delpy氏がWannaKeyの手法を用いてWannaCry で暗号化されたファイルを復元させるツール wanakiwi を 公開 • Windows Crypto APIがRSA鍵ペアを生成する時に使われ た素数をメモリ上から正しく破棄していないため • 犯人のミスではなくCrypto APIの問題。Windows 10では 完全に破棄されている • 感染後、再起動されていないことが条件 WannaCryの復号ツール

Slide 94

Slide 94 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 WannaKeyによる 秘密鍵の復元

Slide 95

Slide 95 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaKeyによる 秘密鍵の復元

Slide 96

Slide 96 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaKeyによる 秘密鍵の復元 素数

Slide 97

Slide 97 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaKeyによる 秘密鍵の復元 素数 WannaKey

Slide 98

Slide 98 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaKeyによる 秘密鍵の復元 素数 素数 RSA鍵ペア生成時の素数を メモリ上から抜き出す WannaKey

Slide 99

Slide 99 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 元の ファイル 暗号化された AES-128 共通鍵 暗号化 暗号化された ファイル 暗号化 犯人の公開鍵ペア 犯人 RSA-2048 公開鍵 マルウェアにハードコー ドされた犯人の公開鍵 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵 メモリ上で 被害者の公開鍵ペア生成 暗号化 暗号化された 被害者 RSA-2048 秘密鍵 00000000.eky sample.docx sample.docx.WNCRY 被害者 RSA-2048 公開鍵 00000000.pky 公開鍵をファイルに保存 AES-128 共通鍵 ファイル毎に異る 共通鍵生成 メモリ上の 鍵ペア破棄 WannaKeyによる 秘密鍵の復元 素数 素数 RSA鍵ペア生成時の素数を メモリ上から抜き出す 鍵ペア生成 WannaKey 被害者 RSA-2048 公開鍵 被害者 RSA-2048 秘密鍵

Slide 100

Slide 100 text

AES-128 共通鍵 元の ファイル AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 sample.docx sample.docx.WNCRY 被害者 RSA-2048 秘密鍵 復号 復号 WannaKeyで秘密鍵を取り出せれば ファイルを復号出来る ファイル毎に繰り返し

Slide 101

Slide 101 text

WannaCryに感染したPCより秘密鍵を取り出すツール WannaKeyを公開

Slide 102

Slide 102 text

WannaKeyの手法を用いて生成した秘密鍵で ファイルを復号するツールwanakiwiを公開

Slide 103

Slide 103 text

• WannaCryのメモリ内の鍵ペアは初期の段階で破棄される。その後に大 量のファイルの暗号化処理が走るとそれでメモリが上書きされる • 感染後時間が経っていると何も作業していなくてもバックグラウンドで 様々なプロセスが動いており、メモリが上書きされる • 復号ツール(Wanakiwi)のインストール(コピー)でもメモリが上書き される • 実験環境で、予め復号ツールをインストールし、少数のファイルのみ暗 号化された状態で、感染直後に実行した場合でも、成功率は60%程度 との報告 • 実環境で大量のファイルが暗号化され、感染後から時間が経っている場 合には、ファイル復元の可能性はかなり低い WannaCryの復号ツール

Slide 104

Slide 104 text

Symantec Nortonがwanakiwiのgithubをブロック

Slide 105

Slide 105 text

その他の復号方法

Slide 106

Slide 106 text

5/15 BleepingComputerのWannaCry掲示板 削除ファイルの復元ツールRecuvaで復元できたという報告

Slide 107

Slide 107 text

No content

Slide 108

Slide 108 text

5/15 デスクトップ、マイドキュメントの暗号前のファイルはランダムな文 字列で上書き後、消去されるが、それ以外の場所の暗号前のファイルは単純に 消去されるだけなので、復元ツールで回復可能

Slide 109

Slide 109 text

6/1 ほぼ同様なことをKasperskyも発表

Slide 110

Slide 110 text

WannaCry感染端末でRecuvaを実行

Slide 111

Slide 111 text

サンプルピクチャを復元出来た

Slide 112

Slide 112 text

• 復号ツール(WannaKey,WanaKiwi)は、実環境で大 量のファイルが暗号化され、感染後から時間が経っ ている場合には、ファイル復元の可能性は低い • 試してみる価値はあるが、過度な期待は出来ない • デスクトップ、マイドキュメント以外のファイルは、 上書き完全消去されていないので、Recuvaなどの ファイル復元ソフトで復元できる可能性 • 再起動後であっても可能。ただし、ファイルの書き 込み操作などを行うと削除領域が上書きされ、復元 出来ない可能性 復号ツール

Slide 113

Slide 113 text

• 復号ツール(WannaKey,WanaKiwi)では、メモリ上 に残された素数の一部でも上書きされていればファ イルの復元の可能性はない。ゼロかイチ • ファイル復元ソフト(Recuvaなど)での復元は、削 除領域の全てが上書きされていることはまずないの で、一部のファイルだけでも復元できる可能性 • 但し、デスクトップ、マイドキュメントのファイル は上書き完全消去されているので、ファイル復元ソ フトでは復元出来ない 復号ツール

Slide 114

Slide 114 text

ファイルの復号を諦めて PCをリセットする場合の 注意事項

Slide 115

Slide 115 text

「将来、犯人の秘密鍵がリリースされる場合も あるので、感染したPCを初期化、OSの再インス トールする場合は、暗号化されたファイルの バックアップを取っておくように」 と言われるが

Slide 116

Slide 116 text

• 犯人自身が公開 • TeslaCrypt、AES-NI、BTCWare、Crysis、 Dharma、 Petya(オリジナルの方。NotPetyaではない) • 競合グループにより公開 • Chimera • 犯人逮捕により公開 • CoinVault ランサムウェアのマスター鍵がリリースされた例

Slide 117

Slide 117 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵 元の ファイル AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky 00000000.dky sample.docx sample.docx.WNCRY 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 被害者 RSA-2048 秘密鍵 復号 被害者 RSA-2048 秘密鍵 受信(tor) 復号 復号 WannaCry 復号のプロセス

Slide 118

Slide 118 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵 元の ファイル AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky 00000000.dky sample.docx sample.docx.WNCRY 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 被害者 RSA-2048 秘密鍵 復号 被害者 RSA-2048 秘密鍵 受信(tor) 復号 復号 WannaCry 復号のプロセス 犯人の秘密鍵がリリース されたとしても

Slide 119

Slide 119 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵 元の ファイル AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky 00000000.dky sample.docx sample.docx.WNCRY 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 被害者 RSA-2048 秘密鍵 復号 被害者 RSA-2048 秘密鍵 受信(tor) 復号 復号 WannaCry 復号のプロセス 犯人の秘密鍵がリリース されたとしても 00000000.ekyがないと ファイルを復号出来ない

Slide 120

Slide 120 text

犯人 RSA-2048 公開鍵 犯人 RSA-2048 秘密鍵 犯人の公開鍵で 暗号化された 被害者の秘密鍵 AES-128 共通鍵 元の ファイル AES-128 共通鍵で 暗号化された ファイル 被害者の公開鍵で 暗号化された AES-128 共通鍵 犯人の公開鍵ペア 00000000.eky 00000000.dky sample.docx sample.docx.WNCRY 犯人の公開鍵で 暗号化された 被害者の秘密鍵 送信(tor) 被害者 RSA-2048 秘密鍵 復号 被害者 RSA-2048 秘密鍵 受信(tor) 復号 復号 WannaCry 復号のプロセス 犯人の秘密鍵がリリース されたとしても 00000000.ekyがないと ファイルを復号出来ない .WNCRYをバックアップするだけ では不十分

Slide 121

Slide 121 text

00000000.eky は %ALLUSERSPROFILE% の下のランダムな文字列 のフォルダに作成される Windows7だと C:¥ProgramData¥<ランダムな文字列>¥00000000.eky 「暗号化されたファイルのバックアップを取るよう に」だけじゃ、指示が不十分

Slide 122

Slide 122 text

No content

Slide 123

Slide 123 text

No content

Slide 124

Slide 124 text

Inside the digital heist that terrorized the world—and only made $100k https://qz.com/985093/inside-the-digital-heist-that- terrorized-the-world-and-made-less-than-100k/ Is WannaCry Really Ransomware? https://securingtomorrow.mcafee.com/executive- perspectives/wannacry-really-ransomware/ WannaCry|WannaDecrypt0r NSA-Cyberweapon-Powered Ransomware Worm https://gist.github.com/rain- 1/989428fa5504f378b993ee6efbc0b168 参考資料