本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2017.04.06

「Cerber」分析で見えたサーバサイドポリモーフィズム

世界で多くのランサムウェアが日々出現している中、他のランサムウェアと比較すると突出して洗練されている印象を受けるのが「Cerber」と呼ばれるランサムウェアです。「Cerber」は2016年初頭に出現して以来、音声による脅迫や不正広告を介した拡散など、常に新しい技術を挑戦的に取り入れてきたことで知られています。


今回弊社が調査した最新の「Cerber」では、過去に「Gumblar(ガンブラー)」や「Downadup(ダウンアド)/Conficker(コンフィッカー)」等世界的に感染を拡大させたマルウェアなども利用していた「サーバサイドポリモーフィズム」の手法を利用していることを確認しました。



■最新「Cerber」の感染に至るまでの流れ


まず、最新の「Cerber」の感染に至るまでの流れをご説明します。

主にメール等でURLが送付され、ユーザーがそのURLをクリックすると、(弊社が確認したケースでは)以下のような「Google Chrome」のダウンロードサイトの偽サイトが表示されます。

そして自動的にファイルのダウンロードが促されます(下図中心部参照)。


図1
図1 「Cerber」がダウンロードされる「Google Chrome」の偽サイト

図2
図2 ダウンロードされたファイル

この後、ダウンロードされた実行ファイルをユーザー自身が起動・実行することではじめて感染します。


なお、「Cerber」は感染時にマルウェア解析ツール等が起動していると不正活動を行なわず終了します。

解析環境ではないと判断した「Cerber」はファイルの暗号化を開始し、以下のウインドウを用いて脅迫文を表示します。このウインドウはHTA(HTMLアプリケーション)により作成されています。


ここで興味深いのは、感染端末の言語環境を認識し、HTAで表示される以下の脅迫文が日本語化されている点です。さらに、「Cerber」の日本語はほとんど不自然な点がなく、自動翻訳ではなさそうな印象を受けます。


図3
図3 不自然ではない日本語で表示される脅迫文

また、上記の脅迫文が表示されたウインドウの右上にある「日本語」というリンクをクリックすると、以下のような言語選択画面が用意されています。ここから、10ヵ国語以上の多言語対応がされていることがわかります。


図4
図4 10ヵ国語以上の多言語対応がされている様子

また、支払いに至るまでの手順を事細かに記載している点や、一般の単純な自動翻訳に見られるような不自然な翻訳文ではなさそうな点などからも、攻撃者の慎重さが伺い知ることができます。


図5
図5 支払方法に関する情報と指示が記載されたウインドウ

その後、感染が完了すると、以下のように「Cerber」により暗号化された旨の警告文に壁紙が変更されます。


図6
図6 感染時に変更される「Cerber」に特徴的な壁紙


■「Cerber」が利用するサーバサイドポリモーフィズム


「Cerber」の分析を行う中、弊社解析チームでは攻撃者の用意した不正サーバから「Cerber」をダウンロードし得られる検体の差異に気が付きました。具体的には、同一URLからダウンロードする検体のハッシュ値が、時おり変化している状況を確認しました。


図7
図7 不正サーバからダウンロードされるURLの流れ

 そこで、我々は調査のために専用のダウンローダーを作成し、「Cerber」の不正サーバから1分ごとに検体をダウンロードし調査することにしました。


図8
図8 1分ごとにダウンロードした「Cerber」の検体(ダウンロード日時がファイル名)

得られた全検体に対し、ハッシュ値を並べて比較した結果、「Cerber」の検体はちょうど10分間隔で新しいハッシュ値の検体に置き換えられていることがわかりました。以下の図は、ダウンロードしたファイルをダウンロードした時間順に並べてリストにしたものですが、同じ時間間隔で同じハッシュ値の検体がならんでいることがわかります。(同じハッシュ値のファイルを同じ色で表現しています)


図9
図9 同一URLから異なるハッシュ値の「Cerber」の検体が10分ごとにダウンロードされる様子

この結果、つまり、ちょうど10分間という時間が繰り返されている事実から、サーバ上の検体の置き換えが攻撃者側で手動ではなく完全に自動化(システム化)されていることが伺えます。


 なお、実行する度、または、感染する度に検体のハッシュ値が変化するマルウェアを一般的に「ポリモーフィック型マルウェア」と呼びますが、今回のようにサーバサイド側でダウンロードさせるマルウェアを多様に変化(ポリモーフィズム)させ、同一URLから異なる検体が時折またはアクセスする度にダウンロードされる仕組みを「サーバサイドポリモーフィズム」と呼びます。

 変化ロジックをサーバサイドに移すことで、「ポリモーフィック型マルウェア」のように変化ロジックを解析者に解析によって明らかにされることなく、検体を変化させることが可能となり、検出逃れや対応の遅延を引き起こします。

 このサーバサイドポリモーフィズムは過去にメジャーなところでは「Gumblar(ガンブラー)」や「Downadup(ダウンアド)/Conficker(コンフィッカー)」などが利用していましたが、今回弊社の調査により、最新の「Cerber」も利用していることが明らかとなりました。


 なお、各検体のハッシュ値が異なることはわかりましたが、具体的に検体の動作はどう異なるのか、という観点でも調査を行いました。


 その結果、「Cerber」のバイナリは動作に関わるコード領域はハッシュ値が異なる検体であっても同一であり、バイナリの末尾に毎回異なるランダムと思われるデータが付与されているだけであることがわかりました。つまり、この末尾に付与されるデータが都度変化することで、ファイル全体のハッシュ値が変化していたということになります。都度付与されるランダムなデータに何らかの意図があり使用されている可能性もあり得ますが現時点では確認していません。よくマルウェアに使用される方法でもある、ハッシュ値を変化させる目的である可能性も十分に考えられます。


図10
図10 異なるハッシュを持つ検体Aと検体Bのバイナリ比較(色部分が変化ありの領域)

なお、今回の調査の後まもなく、これらのURLに接続できなくなったことを確認しました。

我々の機械的なアクセスに気づいた可能性もあり、こうした状況からも、攻撃者はこまめにアクセス状況等を監視しているものと推測できます。


今回は、日々のランサムウェア分析の中で明らかになった「サーバサイドポリモーフィズム」について実調査結果を用いてご紹介しました。


弊社マルウェア解析チームでは、引き続き最新動向をウォッチし発信していきます。


吉川 孝志 の他のブログ記事を読む

コンサルティング事業部
サイバーインテリジェンスグループ
吉川孝志