ランサムウェア

悪意のある文書を育ててランサムウェアを解明する

Clock Icon 4 min read

This post is also available in: English (英語)

概要

最近の悪意のあるMicrosoft Word文書を分析中に、この文書がランサムウェア亜種の“SAGE 2.0”(Sage Locker)をダウンロードしました。この亜種はCryLockerから派生したものです。このランサムウェアは、最近、ゆっくりと順に巡っています。つまり、最も目を引いている理由は、数多くあるこれらの攻撃活動が同じダウンロード場所からSageとCerberという2つのランサムウェア ファミリを配信し、1日中、定期的にこの2つをときどき切り替えている様子が確認されているということです。

このブログ記事の中で、私はランサムウェアの配信インフラストラクチャを分析し、検知・防御用に導入することのできるインジケータを列挙して行きます。しかし、インフラストラクチャの分析に入る前に、どのようにしてこの配信が発生するのか手短に解説する必要があります。

私がこのことを発見したのは、ランサムウェアそれ自体が理由ではなく、Microsoft Word文書がランサムウェアの実行可能ファイルをダウンロードする方法が原因でした。具体的には、これらのMicrosoft Word文書は、この種のランサムウェア攻撃活動で普通に行われているように電子メールによって配信され、PowerShellプロセスを起動して、私がモニタリングした回避手法を用いて実際のランサムウェアをダウンロードします。回避手法の背後にある発想は、プロセス起動を阻止するパターン マッチングまたは文字列マッチングを回避するというものです。回避するには、Windowsのコマンドラインのカラット('^')エスケープ文字を通常の文字と文字の間に入れて、例えば“powershell”や“executionpolicy”といったコマンドを分割します。この例を以下に示します。

例えば“powershell”をブロックしようとしても、カラットがこの単語を分割しているためブロックできないでしょう。しかし、Microsoft Windowsが実際に処理するのに何の影響もありません。Microsoft Word文書には、このコマンドを組み立てて実行するマクロが難読化した形で含まれており、コマンドが実行されるとランサムウェアのファイルがダウンロードされ実行されます。何も難解ではありませんが、この文書は検出と防御を回避しようとするものの、実際のところ他よりも目立つためリバース エンジニアリングが効果的にできます。

URL内の“read.php?f=0.dat”というこのパスから割り出すと、私はPalo Alto NetworksのAutoFocusを使って2016年12月15日以降の9,107個の一意的なMicrosoft Word文書を直ちに特定することができました。これらの文書は動的処理活動においてこのパターンとマッチしました。そこから、私はこの攻撃活動で使用されているダウンロード場所を、特定したサンプルの中からすべて抽出することができました。

登録者のレベルで内在する 相関関係が何かないか判断するため、特定したこれらのドメインすべてに関してWHOISを抜き出したところ、やはり新たなパターンが浮かび上がってきました。

図1 配信ドメイン同士の関係
図1 配信ドメイン同士の関係

図1には、5つのドメイン群が示されています。薄緑色はドメインを登録した人物の名前を表し、濃い灰色はその人物の電子メールを表しています。「人物」ごとに、そのアイデンティティ(ID)に関連付けられた複数のドメインがあります。

手にしたこの情報を基に、電子メールを使用して、引き続きピボット検索を行い、これらのIDによって登録されたすべてのドメインを見つけ出しました。驚いたことに、合計574のドメインが存在し、9つのドメインのみを持つ“dns at unit.org[.]hk”アドレスを除き、IDごとに125~160のドメインがありました。

ここで、これらのドメインの一部をざっと見てみると、フィッシングまたは回避のいずれかを目的として、他の会社として成りすましている大量のドメインから全般的に悪意のある本質を感じ取れます。

この新しいドメインのリストを使用して、AutoFocusに戻り、さらに12,422件のサンプルを列挙することができました。すべて、以前の文書と同様の活動を示していました。

以下は、ダウンロード コマンドと一意のURLパスの各バリエーションの例です。

“search.php”

“read.php?f=1.dat”

“read.php?f=404”

“admin.php?f=0.dat”

“admin.php?f=1.jpg”

この次のものは、SageやCerberではなく、Lockyを使用していたため特に興味が惹かれました。この最初のインスタンスは、この記事で説明したSageおよびCerber攻撃活動の6日前、12月9日に開始されました。

注意すべきもう1つの点は、それが異なるPowerShellコマンドを使用しているが、その背後にいる攻撃者はダウンロード時に引き続き“read.php?f=X.dat”形式を使用していたことです。

“read.php?f=3.dat”

大事なことを言い忘れていましたが、ランサムウェアをダウンロードするためにさらに別のバージョンを使用した、2016年8月6日に開始されたサンプルがありました。これは、PowerShellではなくBITSを使用してファイルを転送し、より新しいバージョンで見られる実行可能ファイルの“exe”拡張子の代わりにスクリーンセーバーの拡張子“scr”を付けてファイルをドロップします。

“admin.php?f=1.exe”

動的分析レポートでファイルとスクレイピングされたデータを綿密に調べた後、この攻撃活動の背後にいる攻撃者が好んで1つのパターンに従っていることが明らかになりました。ランサムウェアの亜種に関係なく、これらの小さな痕跡によって、より大規模なインフラストラクチャを解明し、現在および考えられる将来の脅威に関するより実用的なデータを生成することができます。

Palo Alto Networksのお客様は、次の方法で脅威から保護されています。

このマルウェアを配信するために使用されたドメインと、関連する攻撃で使用されたドメインは、脅威防御を通じてブロックされます。

WildFireは、これらの手法を使用しているファイルを悪意のあるものとして識別します。

AutoFocusユーザーは、PowerShellCaretObfuscationおよびCerberSage_Distributionを使用して、関連する活動を識別できます。

以下は、検出と防御に使用できる痕跡の要約です。

列挙されたパス:

直接的なランサムウェア ダウンロードURL:

列挙されたドメイン:

Enlarged Image