金融機関を標的とするトロイの木馬Buhtrapの詳細

curt

投稿者:Curt Wilson
投稿アーカイブ:マルウェア、トロイの木馬

Cyphortは先ごろ、金融機関を標的とするトロイの木馬Buhtrapに関する記事を発表しました(https://www.cyphort.com/banking-malware-buhtrap-caught-action/)。このマルウェアは、Group-IBが2016年3月に報告したとおり、ロシアとウクライナの金融機関のユーザーをターゲットにしたものです(http://www.group-ib.com/brochures/gib-buhtrap-report.pdf)。Cyphortの記事では、Webサイトeurolab[.]uaからの不正アクセスのチェーンにより、マルウェアが仕込まれているHTML文書のsrc属性を経由して、CVE-2016-0189(Internet Explorer 11 VBScriptエンジン・メモリ破損)に対するエクスプロイト・コードとして機能するrozhlas[.]siteにユーザーを誘導すると解析されています。

エクスプロイト・コードの起動により、第1段階のマルウェア(システムの概要把握を担当)のダウンロードへと導かれ、次に、実行環境に応じて、実際のBuhtrapマルウェアまたは悪意のないバイナリーがダウンロードされます。特定のバンキング操作に関わっていることを示すシステムは、マルウェア(NSISインストーラ・パッケージ形式の場合もあります)を受信し、その他のシステムは、悪意のないバイナリーを受信します。場合によっては、サンドボックスがこのマルウェアを正しく実行しないことがあります。

ここで取り上げている第1段階のマルウェアには、cd703f7bd0e449fbc9ccdaaae85beef2f874988236a50cd40d3f93b817d5b670のSHA-256ハッシュ値があります。Webサイトrozhlas[.]site(現在はオフライン)は汎用の起点であり、エクスプロイト・コードに加え、Buhtrapマルウェアと悪意のないバイナリーをホストするために使用されます。

図1:Buhtrapマルウェアのインストールにおける一般的ワークフロー例

screen-shot-2016-11-21-at-12-30-43-pm

ターゲットの概要把握に応じて選択的にダウンロードされる第2段階のマルウェアは、その他の汎用的なマルウェア実行/ローディング・システムによっても展開され、例えばAndromedaは、特にPOS操作を具体的に探し回ることがあります。アナリストやインシデント対応者は、脅威や搾取アクティビティを追跡して、最大限の洞察を得るために第2段階のペイロードに到達する必要があります。サンドボックスによる自動解析環境の人気は、残念ながら、ペイロードがそのような解析環境で実行されたときに可視性が下がるマルウェア実行戦略に脅威実行者が投資し続けていることを意味します。

Cyphortのブログが第1段階を分かりやすく解析しているのと同時に、この第1段階の周辺にはさらなるコンテキストやその他のインジケータがあり、ネットワーク防御者と脅威インテリジェンス解析者の関心を引きます。

Cyphortで取り上げられているプロファイル済みサンプルについて、C2ドメインrozhlas[.]siteは、種々の検索エンジンの照会に対して脅威実行者のアクティビティ以外に何も表示していないことから、悪意のあるコンテンツを提供するためだけに使用されてきたように見えます。2016年8月19日にrozhlas[.]siteを指していた前述のサイトeurolab[.]ua以外に、ロシアとウクライナの別のサイトも、スクリプトsrcリダイレクションによりそのサイトのユーザーをリダイレクトしていました。問題になっている実際のページ・コンテンツはありませんが、同じ時期にスクリプトsrc戦略を使用した別のサイトのリストは以下のとおりです。

サイト 日付
infored.ru 2016年8月18日
waralbum.ru 2016年8月19日
mobile.womenhealthnet.ru 2016年8月26日
travelermap.ru 2016年8月26日

明らかに、Buhtrapに関連した脅威実行者がrozhlas[.]siteを使用しているため、rozhlas[.]siteへのネットワーク接続を起動する、別のマルウェア・サンプルを調べるのは興味深いことです。

サンプル#1:Knock

a0c428ae70bfc7fff66845698fb8ce045bffb3114dde4ea2eac19561a619c6c8

このサンプルは、名前だけからすると、バイナリー C:\Users\dev\Documents\Visual Studio 2015\Projects\knock\Release\knock.pdb内にあるPDB文字列に対応するhttp://rozhlas[.]site/knock.htmlへのアウトバウンド接続を実行します。また、このサンプルにはknock URLへのアウトバウンド接続で使用される、興味深いHTTP User-Agent値があります。解析時に検出されたHTTPヘッダーは以下のとおりです。

GET /knock.html HTTP/1.1
Accept: text/*
User-Agent: Mozilla/5.0 (compatible; MSIE 273.0; Windows NT 6.1; WOW64; Trident/5.0; MASP)
Host: rozhlas.site

このUser-Agentは、これまでに出回っていないため(グローバルな観点から収集された約1億2,000万ものHTTPクライアント・ヘッダーが含まれるASERT HTTPコーパスによる)、ネットワークやYARAベースの検出メカニズムの一部としてさらに調査する価値があるかもしれません。このマルウェアのサンプルはこれまで1件しか発見されていませんが、再度出現する可能性があります。したがって、このサンプルを検出するためのYARAルールは以下のとおりです。

rule buhtrapknock {

meta:

 author = "Curt Wilson"
 org    = "Arbor Networks ASERT"
 hash   = "a0c428ae70bfc7fff66845698fb8ce045bffb3114dde4ea2eac19561a619c6c8"
 desc   = "connects to C2 and issues HTTP client request for knock.html"

strings:

 $s1 = "C:\\Users\\dev\\Documents\\Visual Studio 2015\\Projects\\knock\\Release\\knock.pdb" ascii wide
 $s2 = "User-Agent: Mozilla/5.0 (compatible; MSIE 273.0; Windows NT 6.1; WOW64; Trident/5.0; MASP)" ascii wide
 $s3 = "/knock.html" ascii wide

condition:

uint16(0) == 0x5a4d and 2 of ($s*)

}	

マルウェア対策検出スキーム(一般的であり不正確なこともあります)によればダウンローダーに見えるこのサンプルは、cache.binというファイル名で出回っているのが発見されました。

コードおよびネットワーク接続にKnockが存在することから判断すると、このサンプルの目的は、別のマシンが不正アクセスされたことを、連係する脅威実行者(別名「botmaster」)に気付かせるだけである可能性があります。また、この一意のHTTPクライアント・リクエストによるC2への接続が、他のタイプのプロセスのトリガーになる可能性もあります。しかしながら、サーバーサイドのコードまたはライブC2へのアクセスがなければ、そうした判断は困難です。

このサンプルは、別の2つのマルウェア・サンプル6e43b7aff8a151eef979493b98eec3ce447489e9ec4deab656a40ef3ed0ca6abおよび97f80175fb58cc514bdcb79d11fe1bcec1b74422171d9493d179a90dcacd7d93の実行時に作成されました。これらは本稿においてサンプル#2およびサンプル#3とします。

サンプル#2:Buhtrapプロファイラー、Knockを仕込む

6e43b7aff8a151eef979493b98eec3ce447489e9ec4deab656a40ef3ed0ca6ab

このファイルは、2016年9月7日にhttp://rozhlas[.]site/news/business/cache.binで発見されました。

このサンプルは、User-Agent Mozilla/4.0(compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)を使用してhttp://rozhlas[.]site/news/business/release.binにアクセスした際に発見されました。

メモリダンプの解析により、ファイル名と拡張子も含まれた120の明確なEXEファイルのリストが明らかになりました。拡張子は、.exのインスタンス1つと.dllのインスタンス1つを除いてすべて.EXEでした。リストには、合計122ファイルが記載されています。これらのファイル名のすべてが、wclnt.exeというファイル名を除いて、Buhtrapが探しているバンク型ソフトウェアのリストと一致します(https://www.cyphort.com/wp-content/uploads/2016/09/Files.pngでCyphortが公表)。Wclnt.exeは、ロシアのSberbankに関連付けられているように見えます。Sberbankについては、Wikipediaに以下のように記載されています。

ロシアのSberbankは、モスクワに本社を置くロシアの銀行であり金融サービス会社です。Sberbankは、欧州数カ国とソ連崩壊後に独立した国で営業しています。

Buhtrapの第1段階のマルウェアが、第2段階のマルウェアのダウンロードと実行をトリガーするためにwclnt.exeソフトウェアの存在を探すだけであるのに対し、金融機関を対象としたCarberpなどのマルウェアは、Sberbankソフトウェアであるwclnt.exeも明確なターゲットにしています。このことは、2013年半ばにhttps://github.com/hzeroo/Carberp/blob/master/source%20-%20absource/pro/all%20source/BJWJ/source/RuBnk/Sber.cppで公開されたCarberpソースコードのレビューで確認することができます。

screen-shot-2016-11-15-at-12-10-40-am

同じファイル名wclnt.exeは、金融機関を対象とするトロイの木馬Ranbyusの解析でも出現しています。これについては、2013年前半にXyliltolがhttp://www.xylibox.com/2013/01/trojanwin32spyranbyus.htmlで述べています。

サンプル#3:Buhtrapプロファイラー、Knockを仕込む

97f80175fb58cc514bdcb79d11fe1bcec1b74422171d9493d179a90dcacd7d93

これは、システムの概要を把握し、無害のペイロードまたは第2段階のBuhtrapマルウェアのいずれかをダウンロードする、第1段階のBuhtrapマルウェアの別のインスタンスのように見えます。

元のサンプルでは、機能のいくつかの面を難読化するような方法でパックまたはエンコードされていて、発見したときにはある種のキーのように見えます。

screen-shot-2016-11-15-at-1-11-52-pm

このキーの存在およびその他の身元を特定できる特徴によってトリガーされるYARAルールは、以下のとおりです。

rule buhtrapkey {

meta:

 author = "Curt Wilson"
 hash   = "97f80175fb58cc514bdcb79d11fe1bcec1b74422171d9493d179a90dcacd7d93"
 desc   = "Buhtrap Related Malcode"

strings:

 $s1 = "1A59D5ABEBFD652D826A976C3C81CC6C"
 $s2 = "ReturnValue" ascii wide

condition:

uint16(0) == 0x5a4d and all of ($s*)

}	

実際には、このYARAルールは、第1段階のBuhtrapマルウェア・コンポーネントのメモリダンプに対して適用されると最も効果的です。ただし、その構成によっては、最初のマルウェア・サンプル上でも機能する可能性があります。条件セクションには、ファイルサイズ・パラメータを追加できますが、この値は問題のメモリダンプで最大の値よりも大きい値でなければなりません。

サンプル#4

04e473e49695503226bcc16e74765a700c53a0ed185228ac40ba371ace71e8e8

検査しているサンプルに関連した4番目のBuhtrapには、rozhlas[.]site/news/business/release.binにおいて既知の無害ペイロードを指しているURLが含まれています。

このサンプルは、他のマルウェアのように、Microsoft Log Parserユーティリティを装う目的でLogParser.exeというファイル名と次のようなアイコンを使用しています。

screen-shot-2016-11-21-at-11-50-55-am

このマルウェアのファイルのプロパティも、Log Parser 2.2の存在を模倣しようとしています。

screen-shot-2016-10-24-at-5-29-47-pm

正当なLogParser.exeには、類似のプロパティが存在します。

screen-shot-2016-10-24-at-5-42-08-pm

このサンプルにはBit-Trejdの署名があり、この点については、後日掲載予定の記事でさらに詳しく述べます。実際のLogParser.exeバイナリーには、Bit-TrejdではなくMicrosoftの署名があります。この疑わしい署名こそが問題の決定的証拠です。

この証明書で署名されたその他のマルウェアの解析については、第2弾で取り上げます。

YARAルール: https://www.arbornetworks.com/blog/asert/wp-content/uploads/2016/11/Buhtrap_yara_ASERT.zip

sha-256:681a9de3918b987302b895b29b0bba6c8d430847d5a8234d9e4ab748a4885624

CSV形式でのIOC:https://www.arbornetworks.com/blog/asert/wp-content/uploads/2016/11/buhtrap_ioc.csv

sha-256:3fa6f753fd195ced50e40ff5fd366e8586c6752ab3b371ad8b19a6c04f5fe21f

結論

本稿は、Buhtrapの脅威をめぐるさらなるコンテキストを提供することを目的としており、インシデント対応者およびその他の研究者に役立つ追加的なインジケータとデータをまとめました。