WannaCry:暗号化されたファイルに復元の可能性

2017年6月1日

※本記事は、201761日に公開された当社Antimalware Research TeamのAnton Ivanov、Fedor Sinitsyn、Orkhan Mamedovによる記事の日本語版です。

ランサムウェア開発者は、時にコーディングのミスを犯します。こうしたミスから、ランサムウェアの感染によって開けなくなったファイルを元に戻すことが可能になる場合があります。本記事は、ランサムウェアWannaCryの開発者たちが犯したいくつかのミスを簡単に説明したものです。

ファイル削除ロジックのエラー

WannaCryはファイルを暗号化する際に、元のファイルからコンテンツを読み出して暗号化し、「.WNCRYT」という拡張子のファイルとして保存します。暗号化が済むと「.WNCRYT」は「.WNCRY」に変更され、元のファイルは削除されます。ファイル削除のロジックは、ファイルのある場所およびファイルのプロパティによって異なります。

ファイルがシステムドライブにある場合

  • そのファイルが「重要な」フォルダー内にある場合(WannaCry開発者がそのようにみなしたもので、この場合[デスクトップ]および[ドキュメント])、元のファイルはランダムなデータで上書きされてから削除されます。残念ながら、この場合は元のファイルを復元する術がありません。
  • ファイルが「重要な」フォルダーの外にある場合、元のファイルはTEMPフォルダーに移動され、%d.WNCRYTと名付けられます(「%d」は任意の数値)。これらのファイルは、元のデータが上書きされずに残っており、ディスクから削除されるだけです。したがって、データ復元ソフトを使用して元のファイルを復元できる可能性が大いにあります。

TEMPフォルダーに移された、名前変更後の元ファイル

ファイルがその他のドライブ(システムドライブ以外)にある場合

  • WannaCryは[$RECYCLE]というフォルダーを作成し、隠し属性とシステム属性をこのフォルダーに設定します。Windowsの既定の設定では、隠しフォルダーやシステムフォルダーが表示されないようになっているため、このフォルダーはWindowsのエクスプローラー内に表示されません。WannaCryは、暗号化後に元ファイルをこのフォルダーに移動しようとします。

削除前に元ファイルを一時的に保管するフォルダーを決定するプロシージャ

 

  • しかし、WannaCryのコードに同期エラーがあることから、多くの場合、元のファイルは[$RECYCLE]フォルダーには移動されず、そのままの場所に残ります。
  • 元のファイルは削除されますが、確実な形で削除されるわけではありません。このため、削除されたファイルをデータ復元ソフトによって元に戻すことが可能です。

システムドライブ以外の場所にある元のファイル

元のファイルへの一時的なパスを作成するプロシージャ

上記プロシージャを呼び出すコード

 

読み取り専用ファイルの処理エラー

WannaCryの解析を進める中、読み取り専用ファイルの処理に不具合のあることを発見しました。感染マシンに読み取り専用ファイルがある場合、WannaCryはこれらのファイルを暗号化しません。元のファイルの暗号化コピーを作成し、元のファイルに隠し属性を与えるだけです。したがって、この場合、元のファイルを探し出して属性を元に戻すことでファイルを復元できます。

暗号化されずそのままの場所に残っている、元の読み取り専用ファイル

結論

綿密な調査の結果、WannaCryの開発者たちによる数々のミスが明らかとなりました。また、以前にも指摘したとおり、コードの質もかなり低いことが判明しました。

WannaCryに感染した場合でも、データ/ファイル復元ソフトを使って、暗号化されたファイルの多くを復元できる可能性があります。データ/ファイル復元ソフトは、無料で利用できるものがいくつも一般に提供されています。企業システムの場合も同様に、データ/ファイル復元ツールを使った復旧が可能です。