web-dev-qa-db-ja.com

CryptoLockerマスターキー

TeslaCryptランサムウェアによって暗号化されたファイルを 作成者が提供したマスターキー を使用して復号化する方法を理解するのに苦労しています。

私の知る限り、ランサムウェアは対称暗号システムを使用してファイルを暗号化し、次に非対称暗号化スキームを使用してキーを暗号化します。マスターキーを持つことにより、影響を受けるファイルをどのように復号化しますか?

6
Vlad Calin

非常に抽象的なレベル:ファイルの暗号化に使用される暗号化されたAESキーに加えて、各被害者のマシン上のマルウェアは、それらを解読するために必要な秘密キーの暗号化されたコピーを保存します。このコピー自体は攻撃者の公開鍵で暗号化されており、攻撃者の秘密鍵(記事では「マスターキー」と呼ばれます)で復号化できます。

Kasperskyの記事 CryptoWallに偽装されたTeslaCrypt 2. をより冗長な方法で言い換えます。

簡単にするために、各ファイルを異なるAESキーでエンコードできるという事実は省略します。また、実際の実装は異なる場合があります(特に、より多くのデータが攻撃者に送信される可能性があり、一部のステップが攻撃者の側で実行されます)。とにかく、答えはマスターパスワードスキームがどのように機能するかを説明することを目的としています:


最初、被害者はattacker-public-key(マルウェアに埋め込まれている)のみを持っています。
攻撃者はattacker-private-keyを持っています。

  1. マルウェアは、victim1-BTC-public-key(BTCを送信するため)およびBTC-private-key(BTCを撤回するため)を使用して新しいBTCアドレスを作成します
  2. マルウェアはattacker-public-keyおよびvictim1-BTC-private-keyをECDHへの入力として使用し、encryption-key-1を生成します
  3. マルウェアXOR victim1-BTC-private-keyencryption-key-1、結果をencrypted-victim1-BTC-private-keyとして保存し、encryption-key-1を忘れる
  4. マルウェアはvictim1-BTC-private-keyを攻撃者に送信して削除します

被害者の所有者:attacker-public-keyvictim1-BTC-public-keyencrypted-victim1-BTC-private-key
攻撃者が所有するもの:attacker-private-keyvictim1-BTC-private-key

次のマルウェアはファイルの暗号化を開始します:

  1. マルウェアはキーペアを生成し、秘密キーをAES暗号化キーとして使用するため、ペアはvictim1-AES-keyvictim1-keypair-private-key)とvictim1-keypair-public-keyで構成されます
  2. マルウェアはvictim1-BTC-public-keyを生成するECDHへの入力としてvictim1-AES-keyおよびencryption-key-2を使用します
  3. マルウェアXOR AES-keyencryption-key-2、結果を暗号化AESキーとして保存し、暗号化キー2を忘れる

被害者が所有するもの:attacker-public-keyvictim1-BTC-public-keyencrypted-victim1-BTC-private-keyvictim1-keypair-public-keyencrypted-victim1-AES-key
攻撃者が所有するもの:attacker-private-keyBTC-victim1-private-key


犠牲者は身代金を支払い、攻撃者はファイルを復号化するためのキーを解放します。

  1. 攻撃者はBTC-victim1-private-keyを明らかにします
  2. マルウェアはBTC-victim1-private-keyを計算するECDHへの入力としてvictim1-keypair-public-keyおよびencryption-key-2を使用します(上記と同じ)
  3. マルウェアXOR encrypted-victim1-AES-keyencryption-key-2を組み合わせたvictim1-AES-key
  4. マルウェアはvictim1-AES-keyでファイルを復号化します

他の被害者はBTC-victim1-private-keyを使用して何もできません。


攻撃者はマスターキーを解放することを決定します。

  1. 攻撃者はattacker-private-keyを明らかにします
  2. マルウェアはattacker-private-keyを生成するECDHへの入力としてvictim1-BTC-public-keyおよびencryption-key-1を使用します(上記と同じ)
  3. マルウェアXOR encrypted-victim1-BTC-private-keyencryption-key-1、結果をvictim1-BTC-private-keyとして保存
  4. マルウェアはBTC-victim1-private-keyvictim1-keypair-public-keyをECDHへの入力として使用し、encryption-key-2を計算します
  5. マルウェアXOR encrypted-victim1-AES-keyencryption-key-2を組み合わせたvictim1-AES-key
  6. マルウェアはvictim1-AES-keyでファイルを復号化します

後者のシナリオでは、被害者は最初にattacker-private-keyを使用してvictim*-BTC-private-keyを導出し、次にvictim*-AES-keyを導出できます。

6
techraf