2017年7月3日
株式会社Doctor Web Pacific
では、なぜ、アンチウィルス企業は暗号化ランサムウェアによって複雑に暗号化されたファイルを元に戻すことができ、どうやって複合化しているのでしょうか?今回はこの点を取り上げていきたいと思います。
まず、暗号化アルゴリズム(プログラムまたはライブラリではなくルーチン)が関係してきます。あらゆるアルゴリズムによって、暗号解読にどれだけ耐性があるかを決定するためのテストをします。
Trojan.Encoder.398 は、最大18の異なる暗号化アルゴリズムで動作します。
もうこれは記録的な数字と言えますが、特定のアルゴリズムがソフトウェアコードでどのように実装されているかが重要で、暗号化ランサムウェアの作成者が最初の間違いを犯す可能性のある場所でもあります。ですが残念ながら、最近は、オペレーティングシステムですぐに利用できる独自のライブラリや暗号化ツールを使用する傾向があります。そういった場合には、アルゴリズム実装時に間違いを起こす可能性はほぼゼロになります。
さらに、暗号化アルゴリズムには、共通鍵暗号アルゴリズム(対称鍵)と公開鍵暗号アルゴリズム(非対称鍵)が存在します。たとえば、共通鍵暗号方式の一つであるAES(Advanced Encryption Standard)では、対称キー(暗号化と復号化に同じキー)を使用します。明らかに1つのキーしかない場合、それを取得してデータの復号に使用することができます。
公開鍵暗号方式の一つ、RSAなどは、より良い選択肢と言えます。この方式を使用するには、公開鍵と秘密鍵を生成し、公開鍵をデータの暗号化に使用、秘密鍵を復号化に使用します。キーは、通常攻撃者のサーバー上に作成され、公開キーのみが対象となる被害者のマシン上で終了します。攻撃者のサーバーへのアクセスがブロックされていると、秘密鍵を取得できない可能性があり、データを回復できません。
公開鍵暗号アルゴリズムは、犯罪者にとって明らかに魅力的です。ですが、ルーチンを実行するにはさらに多くのリソースが必要になり、悪意のあるアクティビティが検出されてしまう可能性があります。そのため、暗号化ランサムウェアの作者は、それぞれ異なる手法を用意しています。たとえば、公開RSA鍵は、あらかじめローカルで作成されたAES鍵の暗号化にのみ使用でき、RSAで暗号化されたAESキーは、パーミッションとAES初期化ベクトルとともに、暗号化された各ファイルの先頭に追加されます。
WannaCryは、AES-128(128はキーの長さ)を使用してファイルを暗号化し、テストおよび標準の暗号化モードを使用します。
CryptGenKeyルーチンはRSAキーペアを生成します。公開鍵はファイル00000000.pkyに保存され、秘密鍵は作成者の公開鍵で暗号化し、ファイル00000000.ekyに保存されます。暗号化ファイルごとに、CryptGenRandom関数を使用してキーが生成されます。
テストモードでは、トロイの木馬でハードコードされた2番目のRSAキーを使用して暗号化が実行されます。暗号化の過程で、テストモードで解読可能なファイルのリストが作成されます。これはf.wnryに保存されます。そのため、テストモードで暗号化されたファイルを復元することができます。
キーの長さ:キーが短いと、ブルートフォース攻撃でクラックすることがあります。
キーの生成:攻撃された各マシンで異なるキーを使用する必要があることは明らかです。そして、ここで攻撃者は多くの間違いを犯します。鍵がランダムに生成されるように、ランダムな素数を使用します。また、キー生成ルーチンが分かっている場合は、番号を使用してファイルを再生成することができるため、これらの数値はキーと同じように安全に保存する必要があります。そのため、WannaCryで暗号化されたファイルの複合が可能になりました。
操作の過程で、WannaCryは素数を使用して、感染したシステムの暗号化キーを生成します。ユーザーが秘密鍵にアクセスするのを防ぎ、侵害されたファイルを個別に解読するために、トロイの木馬はシステム内の鍵を削除します。しかし、暗号鍵を生成するために使用される2つの素数は、メモリから消去されず、wcry.exeプロセスのメモリ領域で見つけることができます。
このキー回復の手法は、Windows XP、Vista、Server 2003および2008では、次の条件の場合にのみ機能します。
- 感染が発生した後、コンピュータは再起動していない
- メモリ領域が割り当てられていないか、別のプロセスによってクリーニングされていない
この方法は必ずしも成功するとは限らず、ある程度の運が必要と言えます。
最後に、この方法はQuarkslabのフランスの情報セキュリティ研究者、Adrien Guinet氏によって発見されたものです。
また、興味がある方は1億ダウンロードの実績のあるアンチウイルス「Dr.Web」の製品ページも是非ご覧ください。
https://products.drweb.co.jp/biz/business_products/
#Trojan.Encoder #Windows #payment #ransom #extortion #Data_Loss_Prevention #cryptography #support #decryption #Trojan #Dr.Web_technologies #encryption_ransomware #encryption
Tell us what you think
To ask Doctor Web’s site administration about a news item, enter @admin at the beginning of your comment. If your question is for the author of one of the comments, put @ before their names.
Other comments