昨年、Linuxで書かれたランサムウエアが登場したとお伝えしました。ランサムウエアとはファイルを勝手に暗号化して、復号化に金銭を要求するマルウエア(コンピュータウイルス)です。前回は設計が不備があり、暗号鍵の場所が判別できたので解読ツールがすぐに提供されましが、今回のランサムウエアはJavaScriptで動作し、もっと高度な設計になっています。
JavaScriptは通常の利用では直接ファイルシステムにはアクセスできません。しかし、今回はNode.jsというサーバサイドでJavaScriptを動かすモジュールが同梱されています。これにより、直接ローカルファイルにアクセスできるようになっています。
さらにやっかいなことに、暗号鍵を匿名通信ネットーワークであるTorを利用して取得し、ファイルをAESで暗号化します。つまり、今回のランサムウエアの作者は暗号技術における暗号鍵の保管場所の重要性を理解しており、外部サーバから暗号鍵を取得する方法を採用しているのです。
こうなってしまうと、攻撃者にお金を払っても元に戻る保証はないわけですから、バックアップファイルを頼るしかありません。通常の暗号化の運用でも、暗号化したファイルが壊れて元に戻せなくなることはありますので、普段からバックアップとリストアの手順を確実なものにしていただければと思います。