本ブログは、英語版ブログ「https://www.proofpoint.com/us/threat-insight/post/buer-new-loader-emerges-underground-marketplace」の翻訳です。
概要
ここ数年間、Proofpointの研究者は「ダウンローダー」を追跡しています。ダウンローダーはサイバー攻撃の初期に使用され、攻撃の間および攻撃後に別タイプのマルウェアをインストールします。最近の2年間でダウンローダーは進化して非常に強力になり、高度なプロファイリングおよびターゲティングの機能を備えるようになっています。
さらに重要なことは、これらのダウンローダーおよびボットネットやバンキング型トロイの木馬などのマルウェアが、ランサムウェアに代わって最初のペイロードとなったことで、脅威アクターがその後の二次感染時にさまざまなマルウェアを展開することができる柔軟性を備えたことです。たとえば、今最も広範囲に拡散しているもののひとつであるSmoke Loaderは、UrsnifやThe Trick(バンキング型トロイの木馬)などのペイロードをドロップするために使用されていますが、それ自体にもさまざまな悪意のある機能が備わっており、クレデンシャルやその他の情報・データの盗用のために独自のモジュールを使用することもあります。
2019年の8月下旬以降、Proofpointの研究者は開発者によってBuerと名付けられた新しいモジュール式ローダーの開発状況と販売活動を追跡しています。BuerはSmoke Loaderと競合する機能を備えており、手軽に使えるソリューションを探している脅威アクターへ向けて闇市場で積極的な販売活動が行われています。
キャンペーン
2019年8月28日
8月28日、Proofpointの研究者は正規の電子メールコミュニケーションへの返信に見せかけた悪意のある電子メールメッセージを観測しました。これらのメッセージには、Microsoft Officeのマクロを使用して次のステージのペイロードをダウンロードするMicrosoft Word添付ファイルが含まれていました。
図1:2019年8月28日のキャンペーンで使用されたMicrosoft Word添付ファイルの例
Proofpointでは、以下のURLからダウンロードされた次のステージのペイロードを観測しました:
hxxp://jf8df87sdfd.yesteryearrestorations[.]net/gate.php
hxxp://93345fdd.libertycolegios[.]com/gate.php
ドロップされたペイロードは、verinstere222.xlsまたはverinstere33.exe(このアクターが攻撃期間中に使用した命名規則)という名前でした。このペイロードはこのアクターが頻繁に使用するUrsnifの亜種であるDreambotではなく、これまでフィールドで観測されておらず、文書化もされていないローダーでした。
続く9月と10月にかけての数週間で、Proofpointの研究者とinfosecコミュニティのメンバー[1]は、同じアクターからのいくつかのキャンペーンがUrsnifの亜種であるDreambotまたはこの新しいローダーをドロップしたことを観測しました。
2019年10月10日
Proofpointの研究者は10月10日に、オーストラリアでFallout Exploit Kit(EK)が新しいローダーをドロップするようにリダイレクトするマルバタイジングキャンペーンを観測しました。
図2:脆弱なブラウザーを悪用するFallout EKのHTTPネットワークトラフィックの追跡結果
The loader then dropped several second-stage malware payloads including KPOT stealer, Amadey, and Smoke Loader.
その後このローダーは、KPOTスティーラー、Amadey、Smoke Loaderなどの第2ステージのマルウェアペイロードをいくつかドロップしました。
2019年10月21日
7月初め以降、Proofpointの研究者はThe TrickのいくつかのインスタンスをロードするためにOstap [2]を使った100回におよぶキャンペーンを観測していましたが、10月21日に「Penalty Notice # PKJWVBP」(罰金通知)などの件名でMicrosoft Wordドキュメントが添付された悪意のある電子メールメッセージを観測しました。このドキュメントには、有効な場合Ostapを実行するマクロが含まれていました。Proofpointでは、Ostapが以下のURLからこのローダーをダウンロードするのを観測しました:
hxxps://185.130.104[.]187/nana/kum.php?pi=18b&[redacted]
そして、これがC&Cのgarrisontx [.] usからThe Trickの「ono22」をロードしました。
図3:悪意のあるドキュメントのマクロを有効にして観測されたネットワークトラフィック
図4:10月21日のキャンペーンで使用されたMicrosoft Word添付ファイルの例
マーケットプレイスと機能の分析
この新しいローダーが複数の異なるキャンペーンで使用されていることが観測されたため、闇市場(アンダーグラウンドマーケットプレイス)で複数のアクターに販売されているのではないかと考えました。そして8月16日、ある闇フォーラムで、上記のキャンペーンで確認されたマルウェアと一致する機能を持つ「Buer」という名前のローダーに関する広告を発見しました。
次の数週間に広告に追加された機能は、これらのキャンペーンで見られたローダーの進化と正確に一致しています。
Proofpointは、掲示板からこのマルウェアの開発者がロシア語で投稿したテキストを採取しました。この中で開発者は、このマルウェアについて400ドルの支払いを要求し、他のアクター(顧客)がソフトウェアをセットアップして実行できるようサービスを提供します。また、アップデートとバグ修正は無料であるとし、「新しいアドレスへの再構築」には25ドルの追加料金が発生することに注意を喚起しています。
Proofpointが闇市場で採取した以下のテキストは、マルウェアの開発者によって投稿されたと推定されるロシア語のローダーの機能のサマリーです:
図5. Buer Loaderボットの機能を説明する闇フォーラムの投稿からのテキスト
同様に、広告にはコントロールパネルの機能も記載されています。開発者は、このモジュラーボットは.NET Coreで記述されたコントロールパネルを使用して完全にCで記述されており、それによりクライアントとサーバーの両方でより高いパフォーマンスを実現していると主張しています。
- ボットの総ペイロードは55-60Kbyteで、ネイティブのWindows実行ファイルおよびダイナミックリンクライブラリとして機能し、完全にメモリに常駐し、32ビットおよび64ビットのMicrosoft Windowsオペレーティングシステムで動作します。
- ボットはHTTPSを介して通信し、復号化後にコントロールパネルからリモートで更新および再構築することができます。
- また、ローダーは信頼できるアプリケーションの代理(surrogate)プロセスとして実行され、ユーザーレベルの特権を使用して機能することにも注意を促しています。
- 最も特徴的なのは、このソフトウェアはCIS(ロシアなどの旧ソビエト連邦)諸国では動作しないことです。
この広告では、サーバーとコントロールパネルが持つ以下の機能について説明しています:
- コントロールパネルは.NET Coreで記述されていると説明されており、Ubuntu/Debian Linuxサーバーシステムに簡単にインストールできます。
- サーバーは、ボット数のカウンター(オンライン、活動中、停止中、総計)やボットリストのリアルタイム更新、ファイルダウンロードカウンターなどの幅広い統計値、そしてオペレーティングシステムの種類やインストールされているボットのアクセス権、論理CPUコアの数などでシステムをフィルタリングする機能を提供します。
- 感染したシステムからダウンロードされたファイルは暗号化された形式でサーバーに保存され、トークンによってアクセスが許可されます。
- 最も重要なことは、ボット自体と同様に、サーバーもまたCIS諸国から送信されたAPIリクエストを処理しないことです。
闇フォーラムへの投稿には、Buerローダーとコントロールパネル(バージョン1.1.2)の技術的なリリースノートも含まれていました。開発者ははじめに、ローダーの起動は3つのステップで構成されると記述しており、感染したシステムで最初の2つのステップが失敗し、代理プロセスへのインジェクションができなかった場合(たとえば、暗号自体に互換性が無いなど)、ローダーは代わりに独自のプロセスで実行されます。
このリリースノートでは、ローダーについて以下のことを説明しています:
- ローダーはFastFluxアーキテクチャを使用しています。
- ローダーは、Microsoft Windows内の信頼できるプロセスの下で動作します。MemLoadExプロセスは、信頼できるアプリケーションとしてx64[.]exeをサポートするようになりました。
- MemLoadが更新され、ネイティブx32[.]exeがサポートされるようになりました。
リリースノートには、コントロールパネルについて以下の機能が記載されています:
- 自己署名された証明書をサポートするHTTPSを介して行われるAPIアクセス。
- パネルでのタスク編集をサポート。ユーザーは実行中にタスクを停止し、ペイロードと実行回数を変更可能。
- ボットIDでタスクを作成する機能を追加。ポイントロードに最適。
- タスクを作成するためのステップバイステップのウィンドウ。
- 必要なボットがオンラインかを確認できる通知。
- ボットIDの一意性が向上。
- パネルにタグを追加し、ボットを続くアクションのためにソート可能。
- テーブルにコンピュータ名を表示。
- 暗号化の互換性を改善。
- ボット履歴を追加。
- 「パネルのDocker拡張」(Dockerコンテナのサポート)
- Proofpoint注:Proofpointではこの機能を、リースされたDockerホストへの統合を容易にし、インストールを簡素化するものと考えていますが、パネル/C&C が侵害されたDockerホストにインストールされる可能性があります。
- パネル上のファイルの検証。ローダーがダウンロードできないファイルをパネルが見逃すことが無くなり、確実にクライアントに通知。
- タスクの繰り返しが可能。
最後に、開発者はバージョン1.1.9の技術的変更点について説明しています。これらは、このマルウェアが専門的集団によって非常に活発に開発されていることを示しています。
- ローダーは、ローカルファイルを外部から起動する新しい手法を備えました。この手法の利点は独自性にあり、ローダーを介したCreateProcess/ShellExecuteがないことです。これを起動することで、コマンドを実行せずに信頼できるプロセスを生成します。
- パネルには、特定のタスクを実行したすべてのボットにタグを付ける機能があります。これにより、ユーザーは特定のボットグループにペイロードを配信できます。
- 統合用のAPIを実装しました。ドキュメントも用意されています。
- プロキシモードでリファレンスによってファイルを送信する機能が追加されました。ファイルは暗号化された形式でボットに転送されます。
- 国ごとにボットをカウントするバグが修正され、その他の改善が行われました。
コントロールパネルのスクリーンショット
闇市場向けの広告には以下のコントロールパネルのスクリーンショットが含まれており、テレメトリ監視、ホストフィルタリングなど、顧客が利用できるバックエンド機能の一部を示しています。
図6:Buer Loader C&Cのコントロールパネルログイン画面
図7:Buerコントロールパネルのボットテレメトリー監視画面
図8:Buerコントロールパネルのボットテレメトリー監視画面(ダークモード)
図9:Microsoft Windowsアーキテクチャによってフィルタリングされたリモートボットを表示するコントロールパネルのフィルタービュー
図10:ローダータスクのファイル管理を示すコントロールパネルビュー
図11:ユーザー権限でソートされたリモートボットのコントロールパネル画面
図12:タスクステータスのコントロールパネル画面
図13:タスク生成のコントロールパネル画面
Malware Analysis
マルウェアの分析
Buer Loaderは、追加のペイロードをダウンロードして実行する新しいダウンローダーマルウェアです。
解析回避機能
このローダーには、マルウェアの解析を回避するための基本的な機能がいくつか含まれています。
- プロセス環境ブロック(PEB:Process Environment Block)およびスレッド環境ブロック(TEB:Thread Environment Block)のNtGlobalFlagを検査して、デバッガーをチェックします。
- Red Pill [4]、No Pill [5]、および関連するメカニズムを使用して仮想マシンをチェックします。
- マルウェアが特定の国で実行されないようロケールをチェックします。(図14)
図14:特定の国で実行されないようにするマルウェアチェック
永続性
レジストリのRunOnceエントリを構成することにより、永続性を設定します。このレジストリエントリはバージョンに応じて、マルウェアを直接実行するか実行のためのタスクをスケジュールします。
暗号化された文字列
このサンプルには、文字列を暗号化する関数が含まれています。
図15:文字列の復号化シーケンス
以下の関数は、Jythonを使用してGhidra内の暗号化された文字列を復号化する方法の例です:
図16:文字列の復号化シーケンス(Pythonバージョン)
図17:文字列の復号化の例
Windows APIコール
このサンプルでは、Windows APIコールのほとんどを解決するためにハッシュアルゴリズムを使用しています。ハッシュアルゴリズムにより、API名の各文字が大文字になります。次に、各文字を13文字ずつ右回転(ROR)し、それらを加算します。
図18:Windows APIコールを解決するハッシュアルゴリズム
以下の関数は、Pythonを使用してAPIコールを解決する方法の例です。
図19:ハッシュ化されたWindows APIコールの解決を助けるPythonスクリプトの例
以下の表は、いくつかのハッシュとそれらに対応するWindows API名のリストです:
CreateMutexW |
0xed619452 |
OpenMutexW |
0x7bffe25e |
CreateProcessW |
0xb4f0f46f |
WinHttpOpen |
0xaf7f658e |
WinHttpCrackUrl |
0x8ef04f02 |
WinHttpConnect |
0x9f47a05e |
WinHttpOpenRequest |
0x1dd1d38d |
表1:ハッシュとWindows APIコール
コマンド&コントロール
コマンド&コントロール(C&C)機能は、HTTP(S)のGET要求を介して処理されます。コマンドビーコンの例を図20に示します:
図20:コマンドビーコンの例
これらのリクエストには暗号化されたパラメータが含まれ、「アップデートAPI」に送られます。このパラメータは次の方法で復号化できます:
- Base64デコード
- 16進デコード
- RC4復号化(分析されたサンプルで使用されたキーは「CRYPTO_KEY」でした)
平文パラメータの例は次のとおりです:
88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYYOI
パイプで区切られたデータは以下を含んでいます:
- ボットID(ハードウェアプロファイルGUID、名前、コンピュータ名、ボリュームシリアル番号、CPUIDなどのさまざまなシステムパラメータのSHA-256 hex digest)
- 独自の実行イメージのSHA-256ハッシュ
- Windowsバージョン
- アーキテクチャタイプ
- プロセッサー数
- ユーザー権限
- コンピュータ名
コマンドビーコンレスポンスの例を図21に示します:
図21:コマンドビーコンレスポンスの例
16進エンコードされたバイトがダッシュ記号で区切られる以外は、上記のリクエストパラメータと同様に復号化できます。平文のレスポンス例を図22に示します:
図22:平文のコマンドビーコンレスポンス
復号化されたテキストは、ペイロードのダウンロードおよび実行方法に関するさまざまなオプションを含むJSONオブジェクトです:
- type - 2つのタイプがあります:
- update - 自己更新
- download_and_exec - ダウンロードして実行
- options - ダウンロードするペイロードのオプションを指定します:
- Hash - 「update」タイプにのみ適用可能で、新しい更新が利用可能かどうかをチェック
- x64 - ペイロードが64ビットかどうか
- FileType - 分析したサンプルでは使用されていません
- AssemblyType - 分析したサンプルでは使用されていません
- AccessToken - ペイロードのダウンロードに使用(以下を参照)
- External - ペイロードがC&Cまたは外部URLからダウンロードされるかどうかを示します
- method - 実行方法:
- exelocal - プロセスを作成
- memload - ペイロードを挿入して手動でロード
- memloadex - ペイロードを挿入して手動でロード
- loaddllmem - ペイロードを挿入して手動でロード
- parameters - コマンドラインで渡すパラメータ
- pathToDrop - 分析したサンプルでは使用されていません
- autorun - ペイロードのレジストリRunOnce永続性を設定するかどうかを示します
- modules - 以下の「モジュール」セクションを参照
- timeout - 分析したサンプルでは使用されていません
図23に示すように、C&Cサーバーからダウンロードされたペイロードは、「ダウンロードAPI」へのリクエストを介して実行されます。
図23:C&Cからペイロードをダウンロード
平文のリクエストパラメータの例を以下に示します:
88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74
これには、コマンドビーコンレスポンスのボットIDと「AccessToken」が含まれます。ペイロードがC&Cからダウンロードされる場合には、RC4で暗号化されます。分析したサンプルでは、キーは「CRYPTO_KEY」でした。
モジュール
コマンドビーコンレスポンスには、「modules」リストが含まれています。Buerモジュールがフィールドで実際に使用されているところはまだ確認されていませんが、コードを分析すると、このリストにはAccessTokenモジュールが含まれています。モジュールファイル名はC&Cの「module API」にAccessTokenを送信することにより照会され、モジュールは「downloadmodule API」を使用してダウンロードされます。ダウンロードされ復号化されると、「loaddllmem」メソッドを使用してロードされます。
結論
新しいダウンローダー「Buer」は最近になって、エクスプロイトキットへ誘導するマルバタイジング経由やOstapのセカンダリペイロードとして、またThe Trickバンキング型トロイの木馬などのマルウェアをダウンロードする主要なペイロードとして、さまざまなキャンペーンで確認されました。
この新しいローダーは、強力な地域ターゲティング、システムプロファイリングおよび解析回避機能を備えており、現在はセットアップサービスを付加価値として闇フォーラムで販売されています。開発者はロシア語を話し、洗練されたコントロールパネルと豊富な機能セットを備えたこのダウンローダーを積極的に開発しており、マルウェアを闇市場で競争力のあるものにしています。
ダウンローダーはCで書かれ、コントロールパネルは.NET Coreで記述されており、パフォーマンスの最適化と小さなダウンロードサイズ、およびLinuxサーバーにコントロールパネルを簡単にインストールできます。またDockerコンテナのサポートが組み込まれており、悪意のある目的でレンタルされたホストの利用はもちろん、侵害されたホストに拡散される可能性もあります。後者の機能は、広告に掲載されている機能とリリースノートに含まれています。
リファレンス
[1] https://twitter.com/malware_traffic/status/1182456890095259652
[2] https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/
[4] https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt
[5] https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt
Indicators of Compromise (IOCs)
IOC |
IOC Type |
Description |
fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce |
sha256 |
2019-08-28 |
http[://45.76.247[.177:8080/api/update/ |
URL |
Buer C&C callback 2019-08-28 |
6c694df8bde06ffebb8a259bebbae8d123effd58c9dd86564f7f70307443ccd0 |
sha256 |
2019-09-03 |
197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90 |
sha256 |
2019-09-24 |
https[://173.212.204[.171/api/update/ |
URL |
Buer C&C callback 2019-09-24 |
9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73 |
sha256 |
2019-10-16 (Fallout Drop) |
http[://134.0.119[.53:8080/api/update/ |
URL |
Buer C&C callback 2019-10-16 |
ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f |
sha256 |
2019-10-21 (Ostap drop) |
https[://garrisontx[.us/api/update/ |
URL |
Buer C&C callback 2019-10-21 |
https[://185.130.104[.187/nana/kum.php?pi=18b |
URL |
Ostap instance dropping Buer - 2019-10-21 |
753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e |
sha256 |
Buer 2019-11-28 |
ffload01[.top|185.125.58[.11 ffload01[.top|185.186.141[.129
|
domain|IP |
Buer C&C 2019-11-28 |
ETおよびETPRO Suricata/Snortシグネチャ
2029077 || ET TROJAN Buer Loader Update Request
2029079 || ET TROJAN Buer Loader Response
2029078 || ET TROJAN Buer Loader Download Request
2839684 || ET TROJAN Buer Loader Successful Payload Download
2029080 || SSL/TLS Certificate Observed (Buer Loader)
Proofpointについて
Proofpoint Inc.(NASDAQ:PFPT)は、人々の働き方を守るクラウドベースのソリューションを提供する次世代の主導的セキュリティ/コンプライアンス企業です。Proofpointのソリューションは、電子メール、ソーシャルメディア、モバイル、クラウドアプリケーション経由で行われる高度な攻撃からユーザーを保護し、高度な攻撃やコンプライアンスリスクからユーザーが作成した情報を保護し、インシデント発生時には迅速に対応できます。詳細はwww.proofpoint.com/jpをご覧ください。
© Proofpoint, Inc. Proofpointは米国及びその他の国々におけるProofpoint, Inc.の商標です。本ドキュメントに記載されている会社名、製品名、サービス名は、一般に各社の登録商標または商標です。本ドキュメントの記載内容、製品及びサービスの仕様は予告なく変更されることがあります
www.proofpoint.com/jp