ビットコイン泥棒 Dyreza のコアコードと技術分析

ビットコイン泥棒 Dyreza のコアコードと技術分析

この記事では、連携して動作する 2 つのペイロードを分析します。1 つは Upatre (他のマルウェアをダウンロードする) と呼ばれ、もう 1 つは Dyreza (ユーザーの ID 情報を盗む) と呼ばれます。これまで、私たちは Dyreza のコア コードとそれが使用するテクノロジーを分析してきました。次に、段階的に分析していきます。

Dyrezaとは何ですか?

Dyreza の目的は銀行口座とビットコインを盗むことでした。全体のプロセスでは、まず Upatre を通じて Dyreza をダウンロードします。調査によると、現在 Dyreza のダウンロードを提供しているサーバーはすべてルーター (主に AirOS と MicroTik) です。攻撃者は、さまざまな暗号化されたリソース パッケージを含む侵入されたルーターを利用しました。感染したマシンは、Upatre を通じてルーターに保存されている暗号化された悪意のあるコード プログラムをダウンロードし、ユーザーのシステムでそれを復号化して Dyreza トロイの木馬を取得します。

私たちの分析の重要性は、悪意のあるプログラムの Dyreza ファミリーには多くの亜種が存在するものの、それらの主な動作の軌跡には依然として共通点があるということです。それぞれの特徴や共通点を分析することで、より効果的に身を守ることができます。

0×00 サンプル分析

-----

サンプル: ff3d706015b7b142ee0a8f0ad7ea2911

ボットネット クライアントである Dyreza の実行可能ファイルは、主な悪意のある操作を実行する役割を担っています。

-----

-----

サンプル:

5a0e393031eb2accc914c1c832993d0b   – Dyreza DLL (32ビット)

91b62d1380b73baea53a50d02c88a5c6   – Dyreza DLL (64 ビット)

-----

0×01行動分析

Dyreza がコンピュータに感染し始めると、急速に広がります。プロセス管理で確認できます。最も直感的な点は、explorer、svchost、taskeng などのプロセスなど、多くの新しいプロセスが作成され、終了することです。この段階では、実行プロセスを混乱させ、セキュリティ担当者の調査と分析を妨害します。

次に、正規表現 [a-zA-Z]{15}.exe を使用して疑似ランダムコードで名前が付けられた 2 つの悪意のあるプログラムファイル (つまり、vfHNLkMCYaxBGFy.exe) を C:\Windows および %APPDATA% ディレクトリにコピーし、タスク スケジューラに新しいタスクを追加して、悪意のあるプログラムのサンプルを 1 分ごとに継続的に実行し、悪意のあるプログラムが継続的に実行されるようにします。

次に、他のプロセス (svchost、エクスプローラーなど) に悪意のあるコードを挿入し、外部の C&C サーバーと通信します。

上記の観察から、VirusTotal では、svchost および explorer プロセスと通信するサービス アドレスがすでに悪意のあるアドレスとしてマークされていることがわかります。主な結果は次のとおりです。

• 141.8.226.14 ->  ウイルストータル/141.8.226.14/情報

• 83.241.176.230 ->  ウイルストータル/83.241.176.230/情報

• 197.231.198.234 ->  ウイルストータル/197.231.198.234/情報/

ウェブブラウザがインストールされると、悪意のあるコードがブラウザプロセスに直接挿入され、不正な外部接続が行われます。このようにして、マルウェアは外部の C&C サーバーとの接続を維持しながら、ユーザー アクティビティを監視し、さまざまな ID 認証情報を盗む機能も実行します。

調査により、Dyreza は取得した情報を C&C サーバーに送信する前に、TEMP というフォルダーに小さなデータベースとして保存することも判明しました。

0×02 コード分析

環境試験

1. 実行前検出 - マシン上の CPU 数が 2 未満であることを検出すると、Dyreza は実行されません。このテクノロジは、プログラム自体が仮想マシン環境で実行されていないことを確認するための自己保護に使用されます。というのも、現在の市場や機器構成の状況から、シングルコアCPUを採用することが多い仮想マシンを除き、物理マシンはデュアルコア以上が一般的であり、Dyrezaでもこれを判断基準としているからです。 Dyrezaはプロセス環境ブロック下のスレッド情報ブロック内のFS:[0x30]領域の情報を検出して判断します。悪意のあるプログラムは、CPU の数が 2 より大きい (2 を含む) ことを確認した後にのみ実行を続行します。

2. 実行の開始時に、マルウェアは新しく割り当てられたメモリ ページに追加のフォームを読み込みます。実行中に、モジュール名と関数の暗号化解除が始まります。

3. 実行環境の検出 - LookupPrivilegeValue 関数の SeDebugPrivilege パラメータを使用して、インストールがデバッガーの下にあるかどうかを判断します。戻り値がゼロ以外の場合、悪意のあるプログラムの実行は終了します。

4. 以下の検出方法により効果的な実行が行われます。最初に、初期環境に基づいて、プログラム実行時の実行可能パスやパラメータなどのパスが追跡され、検出されます。最初にインストールされると、自身をコピーし、コピーしたファイルを C:\Windows および %APPDATA% ディレクトリに配置し、コピーしたプログラムを新しいプロセスとしてインストールします。有効なパスと初期パラメータにデプロイされ、検証に合格した場合、次のステップでは、初めてのインストールであるかどうかを確認します。この手順は、特定のグローバル ミューテックスを作成することによって実現されます (名前は、GetComputerName 関数と RtlGetVersion 関数を通じて取得されたコンピューター名とシステム バージョンのハッシュ値です)。

5. この条件が満たされ、ミューテックスがすでに存在する場合は、最も重要なステップに進み、悪意のあるコードを実行します。最初に、暗号化されたデータとキーが実行可能リソース バンドルから読み込まれます。

上記のように、T1RY615NR は暗号化された 32 ビット コード、YS45H26GT は暗号化された 64 ビット コード、UZGN53WMY はキーです。

次のステップは、コードを解凍して取り出すことです。

解凍アルゴリズムも非常にシンプルです。 key_data には値とデータ (key_data 内の値のインデックス リスト) が含まれます。対応するインデックスリストを通じて対応する値を読み取ります。対応するコードは次のとおりです。

デコード(データ、キーデータ):
デコード = bytearray()
iが範囲(0, len(データ))内にある場合:
val_index = データ[i]
デコードされた.append(key_data[val_index])
デコードされた戻り値

復号実行コードは次のとおりです。

 argparseをインポートする
ハッシュライブラリをインポートする
Crypto.CipherからAESをインポート
BS = 16
パッド = ラムダ s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
アンパディング = ラムダ s : s[:-ord(s[len(s)-1:])]
aes_decrypt(enc, iv, キー)を定義します。
暗号 = AES.new(キー、AES.MODE_CBC、iv)
unpad(cipher.decrypt(enc)) を返す

詳細な実行コードについては、dyrezadll_decoder.pyを参照してください。

復号化されたファイルには、インジェクション用のシェルコードと、悪意のあるプログラムの機能を呼び出すための DLL (32/64 ビットと互換性あり) が含まれています。

0×03 コア悪意のあるDLL

この段階で、マルウェアの機能は非常に明確になります。 dll ファイルには難読化情報があまり含まれておらず、明らかな文字列と一般的なインポート テーブルが含まれています。

C&C サーバーとの通信に使用される文字列を確認できます。

32 ビット DLL と 64 ビット DLL はどちらも同様の機能を備えています。両者の間で異なるのは、アーキテクチャに依存する部分と文字列のみです。クライアントはシステムを識別し、その情報を C&C サーバーに送信できます。

DLL の 64 ビット バージョンでの同様のプログラムですが、ハードコードされた文字列では「_32bit」ではなく「_64bit」が使用されます。

同時に、ネットワーク設定がチェックされます(C&Cクライアントとのバックエンド接続を確立できるかどうかの確認と通知 – コマンド:autobackconn)

悪意のあるモジュールをブラウザに挿入してコードを実行します。

次に、盗まれたアカウント情報を送信してみます。

ブラウザの監視に加えて、コンピュータに関する基本情報 (構成、既存のユーザーなど) も収集します。

このマルウェアは、情報を盗み、ユーザーのブラウジング活動を盗聴するだけでなく、システムのシャットダウンなど、さまざまなシェル コマンドを実行するためにシステムを完全に制御しようとします。以下に例をいくつか挙げます。

管理者権限を持つ新しいユーザーを作成してみてください:

シャットダウン操作は、コマンド AUTOKILLOS を通じて実行できます。

0×04 C&C

検出されないようにするために、このボットネットのサーバーとクライアント間の通信は暗号化され、さまざまな戦略が採用されています。

まず、C&C サーバーのアドレスがハードコードされたプールからランダムに選択されます。アドレス プールは、Dyreza DLL のリソース パック (AES 暗号化アルゴリズムを使用して暗号化) に保存されます。次に、ペイロードを実行すると、それがどのように復号化されるかがわかります。

以上が今回の分析と研究です。特定の Dyreza コードは dyreza で取得できます。


<<:  スマートスクエア「P2P Taobao」開発チームとの対話

>>:  オーバーストックのブロックチェーンプロジェクトは300万ドル以上を費やした

推薦する

ヒューストン大学の専門家:「鉱夫」の大量流出は避けられず、鉱業システムは崩壊しない

中国金融情報ネットワークによると、ヒューストン大学のコンピューターサイエンスの准教授である石衛東氏、...

OKCoinはCCTV Financeで取り上げられ、ビットコインを使った犯罪の取り締まりを呼びかけました

最も暑い夏だったが、「WannaCry」ウイルスの突如の発生により、世界は情報漏洩の厳しい冬に突入し...

6月にビットコイン約6000万ドルがイーサリアムに移動

Dune Analyticsのデータによると、6月に約6,000万ドル相当のビットコインがイーサリア...

クレイジー!チップを買うにはくじを引かなければなりませんか?

「チップ不足」の傾向が続く中、電子業界でもいくつかの珍しい現象が現れている。例えば、最近メディアが...

2時間で数兆ドルが消失した。なぜ暗号通貨は一瞬で半分に下落したのでしょうか?

世界の二次市場に長く浸ってみれば、テクノロジー資産を主成分とするナスダック指数が1か月前に相対的に高...

デジタル通貨グループのCEOはETCの原動力であると非難されている

ハフィントンポストの記者デビッド・シーマン氏は最近、デジタル通貨グループ(DGC)のCEOバリー・シ...

イーサリアム(ETH)の価格は急落を続けており、大きな試練に直面しようとしている

イーサリアムフォーク(ETH)チェーンが直面しているスパムトランザクション攻撃問題を解決するために、...

ビットコインはいつまで「燃え続ける」ことができるのでしょうか?

今週火曜日、一晩の「トランプトレード」の反転がビットコイン市場に広がった。ビットコインの価格は一時約...

スペイン国会議員が1ユーロ相当の暗号通貨を受け取る、送金者は業界の発展促進を目指す

スペイン下院議員350人全員が1ユーロ相当の暗号通貨を受け取ったが、これは寄付ではなかった。エミリア...

ビットコイン 2017 クロニクル レビュー

2017年も終わりました。今年、ビットコインは大きな浮き沈みを経験しました。中央銀行の監督、ビットコ...

テクノロジー大手がブロックチェーンについて議論:急速に普及させるべきか、それともゆっくり進めるべきか?

クレイジーな解説: ブロックチェーンに多額の投資をしている3つの大手テクノロジー企業とスタートアップ...

フォース観測 第1号 |ファイルコインマイニング市場における6つの誤解

この記事はIPFS Force Observationから転載したものです7月28日、IPFS Fo...

ブロックチェーン研究者:ビットコインマイナーの最初の集団が静かに現金化している

CCNによると、暗号通貨の専門家でブロックチェーンデータアナリストのアントワーヌ・ル・カルベス氏は最...

イーサリアムは600ドルを突破し、価格は上昇を続け、フェーズ0の開始に必要なデポジットは60%に達しました -

イーサリアムが600ドルを突破、価格は上昇を続け、フェーズ0の開始に必要なデポジットは60%に達した...