検索
※本記事は2017年3月8日に米国で掲載されたブログ記事の抄訳を基にしています。
先日、Palo Alto Networksの脅威インテリジェンスチームUnit 42は、中東の複数の政府機関が、これまで見たことのないランサムウェア ファミリを使った攻撃を受けているのを目撃しました。このマルウェア内に埋め込まれている文字列に基づき、私たちはこのマルウェアを「RanRan」と命名しました。マルウェアが提供する身代金要求文が標的型の類であること、およびこのマルウェア ファミリのサンプルのセットが小規模であることから、私たちはこの攻撃が本質的に標的型であったと信じています。私たちの分析では、この攻撃と最近のShamoon 2攻撃との間に何の関係も見られません。
身代金要求文は、具体的には、被害者にパブリックなサブドメインを強制的に作成させることで、政治的な声明を強要しようとします。その際、サブドメインには中東の政治指導者に対する暴力を主張し鼓舞するような名称が付けられます。
マルウェア自体は極めて初歩レベルのものであり、ファイルの暗号化処理において多数のミスがあります。これにより、Unit 42は、RanRanが暗号化した一部のファイルを復号化できるスクリプトを作成することができました。
マルウェアの作成者はこのペイロードに「Ran」と命名しました。この名前は、バイナリ内部にある下記のデバッグ パスの中に現れています。
C:\Users\pc\Desktop\Ran\Ran\Release\Services.pdb
このマルウェアは初めて実行された場合、下記のミューテックスを作成します。
このミューテックスが既に存在している場合、RanRanは終了します。これにより、RanRanのインスタンスが一時に1個しか実行しないことが保証されます。
RanRanは、「C:\services.exe」として自身のコピーを作成することで、システム上に自身をインストールします。このコピーは下記のbase64エンコード文字列を含んでおり、この文字列を使ってAutorunキーをシステム上に作成し、システムがブートする度に自身を起動します。
TlFRICJVWFBIXEZCU0dKTkVSXFp2cGViZmJzZ1xKdmFxYmpmIEFHXFBoZWVyYWdJcmVmdmJhXEp2YXFiamYiIC9zIC9pIFlibnEgL2cgRVJUX0ZNIC9xIA==
ペイロードはこのbase64文字列をデコードし、各アルファベットの文字に対して13を加算または減算するルーチンを適用します。私たちはこの文字列をデコードするスクリプトを作成しました。これによる出力は以下のようになります。
RanRanはこの文字列を使ってレジストリ キーを作成します。レジストリ キーは、下記のレジストリ クエリ内に確認することができます。
このキーは、システムが起動するたびに「C:\services.exe」を実行することを意味します。
RanRanは、システムから駆除するためにRanRanを除去することが難しくなるようにします。そのために、「task manager (タスク マネージャー)」というタイトルのウィンドウを絶えず監視し、見つけては閉じます。この結果、ペイロードのプロセスをkillすることが困難になります。
さらに、マルウェアは以下のサービスおよびプロセスを絶えず監視し、周期的にこれらを停止します。
作成者がこれらのサービスおよびプロセスを停止することにしたのは、関連するデータベース ファイルのオープン状態のハンドラをできる限り制限することで、これらのファイルを適切に暗号化できる機会を増やすためだった可能性が高いと、私たちは信じています。
RanRanの主要目的は、システム上のファイルを暗号化し、ファイルを復元するための身代金を被害者に要求することです。このツールは、下記ファイル拡張子に基づき、幅広い種類のファイルを集めて暗号化します。
|
|
|
RanRanが検索するファイルには、Microsoft Officeファイル、Adobe Acrobatファイル、画像、Webページ、SQLクエリ、アーカイブおよびバックアップ ファイルが含まれています(しかし、これらに限定されません)。
RanRanは、攻撃者がRSA公開鍵をC:\pubkeyという場所に置くのを待ちます。公開鍵が提供されない場合、RanRanはMD5ハッシュ文字列“aaoy09aaqqq@#433dd56fdfdf$Fss45*ss”を使ってファイルを暗号化します。
さもなければ、ランダム生成した文字列を「C:\WINDOWS\pass」という名前のファイルに書き込みます。この文字のMD5は、RC4パスワードとして使われます。新しいパスワードが、下記サイズのファイルのグループ用に生成されます。
暗号化を行うたびに、特定のグループで使用される鍵は、指定のRSA公開鍵を使用して暗号化され、指定のファイルに次の表記で書き込まれます。
VictemKey_[lower_bound]_[upper_bound]
ここで、[lower_bound]は特定のグループにおけるファイル サイズの下限を、[upper_bound]は特定のグループにおけるファイル サイズの上限を表します。その結果、すべての暗号化を行った後で、次のファイルが書き込まれます。
暗号化を行う際には、新しいファイル拡張子「zXz」を追加することで、暗号化の対象ファイルの名前が変更されます。ファイルを暗号化した後、ペイロードは、ファイル名「zXz.html」を示したランサム メッセージを表示します。また、そのファイルを復号化するための指示も示します。以下のスクリーンショットは、ランサム メッセージを示しています。
図1 RanRanランサム ノート
上記のランサム ノートは、いくつかの興味深い点を明らかにしています。その他の広く知られているランサムウェア ファミリとは異なり、RanRanは直接的には支払いを求めませんが、支払いに関するネゴシエーションを行う前に、政治的に物議をかもすような名前のサブドメインを作成するよう被害者を強制するとともに、このサブドメイン上にRansomware.txtファイルを配置します。このファイルには、「ハッキングされた」旨を示す文と、電子メール アドレスを含める必要があります。これらのアクションを実行することにより、被害者である中東の政府機関は、その国の指導者に対して、政治的な声明を出す必要に迫られることになります。また、Ransomware.txtファイルを配置することにより、ハッキングされた事実を公に認めるよう被害者を強制します。
前述のとおり、RanRanは、暗号化の発生時にいくつかのミスをしています。まず、再使用される鍵の付いた対称暗号(RC4)を使用していることです。また、暗号化したいくつかのファイルの元のファイルを削除していないことです。これにはいくつかの理由がありますが、そのうちの1つが、暗号化の対象であるシステム ファイルなどが、プロセスを実行することによって開かれていることです。元のファイル、暗号化されたファイルが存在し、その他の暗号化されたファイルでもRC4鍵が再使用されるため、いくつかのデータは復号化することができます。
これは、以下の条件を満たす、特定の状況にのみ当てはまります。
上記の条件を満たすファイルを復号化するための2つのスクリプトについては、ここをクリックしてください。これらのスクリプトは元のPython形式だけでなく、PyInstallerでコンパイルしたWindowsバイナリとして提供されています。
暗号化の調査によって、RanRanが次のコードを使用して暗号化機能を実行していることが明らかになりました。
https://github.com/eugenekolo/Charlie-2/blob/master/Hookcrypt/test/EncryptFile.cpp
公開ソース コードが再使用されていること、また前述のミスは、この脅威が比較的スキルの低い攻撃者によって引き起こされていることを示唆しています。
全体的に見て、RanRanはランサムウェアの戦略の転換を示す興味深い展開です。この攻撃者は、純粋に金銭的な動機で動く代わりに、自国の指導者に対する消極的な声明を出すよう中東の政府機関に求めるという、ハッカーのアプローチを取ります。
マルウェア自体はそれほど高度ではなく、対称の暗号と公開コードを使用しています。マルウェア内にあるデバッグ文などのその他の兆候は、このことのさらなる裏付けになっています。
Palo Alto Networksのお客様は、次の方法で脅威から保護されています。