新種のLockyの出現

Lockyはプロフェッショナルレベルのランサムウェアで、しばらく前から多くのユーザーの金銭を奪い続けています。Lockyはドキュメントベースのマクロを使用してランサムウェアを配布し、ユーザーのコンピュータに保存されているファイルを暗号化して、拡張子「.locky」を追加します。このランサムウェアがLockyと呼ばれるのはそのためです。Lockyはプロフェッショナルによって作成されたランサムウェアで広く拡散しており、一旦感染すると金銭的被害が発生します。また、その最大の特徴は進化を続けている点です。最近になってメジャーアップグレードされるまでのこの1年間に利用されていたバージョンは、極めて安定したランサムウェアでしたが、先週初めにフォーティネットのVEXシステムによってLockyの新しい亜種が検出されました。この亜種は、これまでとは全く異なる方法でネットワークトラフィックを暗号化します。また、通信ではIPは同じでも異なるURIが使用されます。

同じIPでも異なるURI

Lockyのサンプルには、ドメイン名の代わりにハードコーディングされたIPアドレスが3~6個含まれており、URLの構築に使用されます。以下に示したように、古い亜種は完全なURLの一部として/submit.phpを含むハードコーディングされたIPに対して、POST要求を送信します。これは、RSA鍵を要求するなどボットと通信して、ユーザーマシンに関する情報や感染ステータスなど収集した情報を一般的な「key=value」形式で送信することが目的です。


図1. 古い亜種のPOST /submit.php

以下は、復号の後に送信されるPOSTメッセージです。ご覧のように、Lockyはユーザーのマシンに関して収集した情報と一緒に鍵を要求するという方法を用いて、C&Cサーバーと通信します。

しかし、先日フォーティネットが発見した新しい亜種では、URIが /userinfo.php と結合したハードコーディングされたIPアドレスに変更されていました。


図2. 新しい亜種のPOST /submit.php

新たな暗号化アルゴリズム

上記の変更点を見ただけではLockyの新しい亜種だと思わない方も、次の変更箇所を見れば考えが変わるはずです。当然ながら通信は平文ではなく、ラッピングされ暗号化されています。送受信どちらの通信も、同様の暗号化ロジックを用いています。古い亜種のLockyは収集したメッセージを構築し、データ確認の1つの手段としてメッセージの16バイトのMD5ハッシュ値を文字列の先頭に挿入します。続いて、図3に示したカスタムアルゴリズムを使用して、各バイトを順番に暗号化していきます。このアルゴリズムでは、新しいバイトの暗号化に使用する鍵を継続的に更新するためのシードとして、2つのDWORD定数が使用されています。


図3. 古い亜種におけるPOST要求の暗号化ルーチン

新たに検出された亜種は、上記のカスタム暗号化アルゴリズムを全く使用せずに、Windows APIとRSA暗号化アルゴリズムを併用することによって同じ処理を行っています(図4を参照)。


図4. 新しい亜種の新たな暗号化ルーチン

サンプルに関する情報

古い亜種のサンプルのMD5: 87d9eec40e173070515d8dad37f0d2d6

新しい亜種のサンプルのMD5: 59cc8fc8984bcda72cc4e6f9003053cd(Malicious_Behavior.VEX.96として検出される

まとめ

LockyがわざわざPOST URLを変更して、以前とは全く異なるネットワークトラフィックの暗号化手法を編み出したのは何故なのでしょうか。これは、すべての主要なセキュリティベンダーがLockyランサムウェアを詳細に分析した結果、古い手法が広く知られるようになり容易に解読できるようになったため、より確実に難読化できる手法が必要になったと考えられます。フォーティネットはこれまでに新しい亜種のMD5サンプルを49種類捕捉しています。一方、古い亜種は発見されていません。どうやら、Lockyファミリ全体が新しい形式に移行したようです。フォーティネットのARTチームは今後もLockyファミリの追跡と調査を継続し、新たな情報が分かり次第提供していきます。

関連情報

http://www.fortinet.co.jp/security_blog/160324-locky.html
http://www.fortinet.co.jp/security_blog/160217-a-closer-look-at-locky-ransomware-2.html
https://blog.avast.com/a-closer-look-at-the-locky-ransomware