不正情報詐取防止

ハイブリッド型マルウェア : GozNym 検証レポート

記事をシェアする:


2016年4月、X-Force Researchは、Nymaim ダウンローダーと Goziの金融機関攻撃不正モジュールが結合されたハイブリッド型マルウェアの存在を公表し、オンライン・バンキングを標的にする新しいマルウェア“GozNym”と名付けました。

GozNym の内部構造には特筆すべきものがあります。この投稿には IBM X-Force Research のマルウェア分析から得られた解析結果が含まれています。オンライン・バンキングを標的にするマルウェアであるGozNymの主な構造の概要と、不正行為を行うためのコンポーネントについての詳細も説明します。

ハイブリット型の凶悪なマルウェア

Gozi (ISFB)

Gozi(別名:ISFB、Ursnif)はオンライン・バンキングを標的にするマルウェアであり、このソースコードは2回流出しました。1回目の最も大規模な流出は2010年に、2回目は2015年後半に起こりました。Gozi のソースコードの重要部分は過去数年間に広く悪用され、さまざまなサイバー犯罪者によって今でも使用され続けています。

Goziのソースコード が広く使用され続けている理由は、そのコードの有効性とモジュール化の度合いです。このマルウェアがサイバー犯罪グループに多く利用されている注目すべきモジュールは次の2つです。

  1. Gozi のメイン・モジュール: ウェブ・ブラウザーへ金融機関攻撃モジュールのインジェクション (注入)を行い、不正なC&C サーバーと通信し、不正操作、および隠蔽を行います。
  2. 金融機関攻撃モジュール:ウェブ・ブラウザーにインジェクションされる部分で、悪意のあるウェブ・インジェクション、およびオンライン・バンキングを標的にする不正行為を行います。

Nymaim

マルウェアNymaimは2011年以降に現れ、常に別のマルウェアと組み合わされて拡散されることが知られています。この様な不正プログラムは通常「ダウンローダー」と呼ばれます。

今日のようにランサムウェアが普及する前の2011年初め、Nymaim は、ランサムウェアを感染させるために悪用されていました。Nymaim を使うサイバー犯罪グループはオンライン・バンキングを標的にするマルウェアも操っていましたが、2015年になるまでは、特定の金融系マルウェアのみに固執することはありませんでした。

GozNymの出現

2015年後半、IBM X-Force の研究者は、不正行為の隠蔽を試みるマルウェアの感染キャンペーンを検知し始めました。この攻撃では、Nymaim が Gozi マルウェアをダウンロードさせ、ダウンロードされたGoziはオンライン・バンキング利用者の認証情報の窃取後、不正送金を行うなどの不正行為を仕掛けました。X-Force の研究者はこれらの新たな攻撃の全貌を明らかにするため、更なる詳細な調査と分析を行い、最終的にはNymaim の新しいハイブリッド型のマルウェアを発見し、”GozNym“と名付けました。

このダウンロードの方法は2016年前半に変化しました。このときX-Force の研究者は、このマルウェアのバイナリコードの中から一見わずかですが、大きな変化が加わったことに気付きました。Nymaim が Gozi の金融機関攻撃モジュールの修正版を使用し始め、これを実際のコードに埋め込んだのです。この修正版モジュールは、ウェブ・ブラウザーにインジェクションされた別のコードと組み合わせて利用されます。この変更が加わることによって、Nymaim は、他のマルウェアの実行に使用される単純なダウンローダーではなくなりました。他のマルウェアと組み合わせることなく単独で動作して、オンライン・バンキングを標的にするハイブリッド型のマルウェアとなり、1つのマルウェアとして検知されるようになりました。

ハイブリッド型マルウェアの様相を呈してから、X-Force の研究者は、GozNym に細心の注意を払い続け、これがリダイレクト攻撃のような高度な機能を利用することを確認しました。この機能は Dridex を使用するような高度な機能を保持したサイバー犯罪グループに多く悪用されています。それに伴い、GozNymはオンライン・バンキングを標的にするマルウェアの中でも、最も活発なマルウェアとして認知されるようになりました。

被害者のマシンでの感染ステップ

最も一般的に確認されているGozNym を使用した感染は以下の3つのステップを踏みます。最初のステップは、細工されたWord文書が添付されたフィッシング・メールです。X-Force の研究者が調査した攻撃では、Word文書内の悪意のあるマクロがマルウェアPony Stealerの亜種を実行し、これが GozNym をインストール、またはダウンロードして実行しました。

巧妙なセキュリティー回避機能

GozNym が実行されると、次のステップとしてセキュリティーを回避する動作を開始します。分析した検体は毎回異なるセキュリティー回避技術を使用するのが確認されましたが、1つの有力な手法が浮かび上がりました。それはタイム・チェックです。GozNym はこれを使い、感染攻撃キャンペーンが仕組まれた時間に非常に近い場合でないとマルウェアを実行しようとしても動作しません。この方法だと、研究者が攻撃キャンペーンのほんの数日後に検体を実行しようとしても、特別な方法を行わないとマルウェアは動作しません。

GozNym の感染プロセスで確認された別のセキュリティー回避機能は、地理的に被害者をフィルタリングする方法です。意図した攻撃目標から関係のないマシンを除去する ため、C&C サーバーは被害者のIPの地域をチェックし、キャンペーンの対象外の国だった場合はマルウェアの実行を停止します。この方法により、マルウェアは多くの研究者の端末をボットネットの対象から外すことができます。

GozNym の感染フロー

最後のステップとして、GozNym の一般的な感染フローでは、GozNym がRundll32.exe プロセスを実行し、このexeファイルが不正コードを他のプロセスにインジェクションします。このインジェクションされる不正コードは高度に難読化されています。

他のプロセスにインジェクションするGozNym のコードはセキュリティー回避機能が追加で備わっています。まずプログラムのコード・フローの難読化です。これはいくつかの異なる仕組みで構成されています。これらが組み合わされると、セキュリティー研究者がプログラムのコード・フローを静的に追跡するのが非常に困難になります。

別のセキュリティー回避機能はAPI の難読化です。WinAPI を直接呼び出す代わりに、GozNym は、呼び出しの場所(アドレス)の値をハッシュ値に変換し、同一ハッシュ値を見つけるまで、各 WinAPI のハッシュ値への変換を継続します。さらに、呼び出される WinAPIの文字列は非表示にされ、必要時にのみ動的に復号されます。文字列は一度使用されると、メモリーに痕跡が残らないよう上書きされます。

システムの再起動が行われても被害端末に感染した状態でいるために、GozNym はいくつかの常駐化機能を持っています。冗長構成にすることで、コードの一部のみが残っている場合でもシステムへ常駐可能です。しかし、この方法は不要な情報を追加するため、GozNym を見つけやすくするということもあります。

GozNym ハイブリッド型マルウェアが常駐するために使用するレジストリ・キーは以下のようなものがあります。

HKCUSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonShell
HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun
HKCUSOFTWAREMicrosoftWindowsCurrentVersionRunOnce

各レジストリ・キーの値は、%programdata% フォルダーまたは %appdata% フォルダーにある一意のGozNym バイナリを指しています。

・ 各レジストリキーに対する値の例:”rheology-37″、”bending-1″

開発者によって手作業で生成され、しばしば変更されると思われるリストから取得されている上記の値の GozNymのバイナリにハード・コーディングされています。

さらに、GozNym はそのバイナリを Windows システムのスタートアップ・フォルダーに追加します。

GozNymは異なる様々なバイナリであっても、スタートアップ・フォルダーに追加することによって、オペレーティング・システムによりシステム再起動後にGozNymが実行されます。GozNymは、不正行為を開始する前に、自身のバイナリが感染したマシンと同じであることを確認します。この確認作業は、次の特定のレジストリ・キーの値をチェックします。

HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid

GozNymのコードに関する詳細

Goziのオリジナルの金融機関攻撃モジュールと、GozNymハイブリッド型マルウェアによって使用されるときに変更された金融機関攻撃モジュールとの違いについて、さらに詳しく見てみましょう。

基本的要素

 

Goziの金融機関攻撃モジュール

unpacked

GozNymの金融機関攻撃モジュール(unpacked
サイズ

約140 KB

約40 KB

インポート・アドレス・テーブル(IAT 通常通りに使用され、IDAによって容易に認識される。 部分的なIATを生成 する。二次シェルコードが提供するいくつかのAPIを使用する。
文字列 メモリー・ダンプ内に存在し、容易に調査できる。 GozNymのコードを使用し隠蔽される。
他のコードへの依存

なし

メモリー割り当て機能、復号機能、文字列復号機能などはGozNymのコードに依存する。
メモリー構造 単純なDLLとしてメモリー内に常駐する。 シェルコードとしてメモリー内に常駐する。
ウェブ・インジェクション暗号化 Serpent暗号化方式およびRSA暗号化方式の使用。 4段階の暗号化の使用。

GozNymのウェブ・インジェクション

GozNym の高度に難読化されたコードは、インジェクション対象のウェブ・ブラウザーのプロセスに対し、Gozi の金融機関攻撃モジュールと同じ役割を果たします。これにより、その調査が著しく複雑なものになります。この使用例を以下に2つ挙げます。

–        ヒープ上でのメモリー割り当てのための関数の呼び出し

–        復号されたウェブ・インジェクション構成ファイルを取得するための関数の呼び出し

図1、図2、図3のスクリーンショットは、IDA Pro を使用して逆アセンブルされたGozNymの金融機関攻撃モジュールを示しています。

ここで留意すべきは、“call_nymaim_decrypt_conf” という関数呼び出しはX-Force の研究者がつけた関数名であり、復号されたウェブ・インジェクションの構成ファイルを取得するために用いられるという点です。この関数により、“gate_to_nym_API” 関数を通じて二次インジェクション・モジュールが呼び出されます。

図1:GozNymの復号された構成ファイルを取得するために呼び出された関数

図2:GozNymの構成ファイルを復号するために呼び出された関数

 図3では、”gate_to_nym_API” の呼び出し直後に同じコードが動的に実行されている様子を示します。左側のメモリー・ウィンドウに、ウェブ・インジェクション構成ファイルがすでに復号されているのが確認できます。

 図3:動的実行の表示画面

GozNym のウェブ・インジェクション構成ファイルの階層的暗号化

オンライン・バンキングを標的にする一般的なマルウェアと同様に、GozNym の主要な手口は、ユーザーのウェブ・ブラウザーと銀行のサーバー間の通信を変更して、感染被害者に表示されるウェブ・ページを改ざんするというものです。こうした改ざん行為は、ウェブ・ブラウザーの内部コードの書換えによって可能になります。これは、SSLの保護を迂回する方法です。

ウェブ・ページの改ざんのために必要な命令は、ウェブ・インジェクション構成ファイルと呼ばれるものの中に含まれています。この構成ファイルは通常はマルウェア自体によって呼び出され、通常は暗号化された形でWindowsのファイル・システム内に保持されています。

GozNymの場合、構成ファイルは何層もの暗号化によって保護され、%TEMP% フォルダーの下で保持されます。GozNymの標的と攻撃手法を明らかにするためには、ウェブ・インジェクション構成ファイルの4段階の復号が必要とされます。復号動作の第1段階と第3段階では同じコードが利用されますが、鍵と暗号化されたデータは別々のものが使用されます。

第1段階:

GozNymは、ハード・コーディングされた鍵を使って構成の一部分を復号します。それにより、第2段階で使用される新たな鍵セットが生成されます。

第2段階:

第1段階で生成された鍵を使い、このマルウェアは構成ファイル[SU2] の大部分を復号し、独自の暗号を使って次の暗号化層に進みます(図4参照)。

第3段階:

マルウェアは、第2段階のデータ内に隠されていた鍵を使い、第2段階で明らかになった層を復号します。次の暗号化層に進みます。

第4段階:

マルウェアは、RSAおよびSerpentの暗号化方式を使って復号します。その詳細は以下のとおりです。

GozNymの4段階にわたる暗号化の中で、最後の段階が最も興味深い部分です。最初の3つの段階を復号した後、Serpent暗号化方式によってウェブ・インジェクション・データが暗号化されています。その鍵は、暗号化されたウェブ・インジェクション・データの最後にある、Gozi の最初の作成者がDS_Header(図6参照)と名付けたバイナリ構造の中に格納されています。

DS_HeaderはRSA暗号化方式によって暗号化されているため、マルウェアには、DS_Headerの復号に必要な RSA鍵がハード・コーディングされています。その結果として平文のSerpent鍵が生成され、それがウェブ・インジェクション構成ファイルの残りの部分を復号するために使用されることになります。

図4:第2段階の復号コード(IDA Hex-Raysの表示画面)

最初の2つの段階の後のデータには、図5に示されているように、依然として暗号化された形で、ウェブ・インジェクションされる構成ファイルのサイズと構成ファイル自体が含まれています。

図5:赤枠内 – 当社の例における構成ファイルのサイズ – 0x0000107B

 図6: Gozi の流出したソース・コードから導き出された GoziのDS_Headerデータ構造

高度化した脅威への対応

IBM X-Forceのデータによると、GozNym というオンライン・バンキングを標的にするマルウェアは悪意のある動作のレベルをますます高めています。米国の主要金融機関へのリダイレクション攻撃を拡大しており、近い将来にさらなる悪質化や修正が施されることが予想されます。

IBMセキュリティーは、金融機関がこのリスクの高い脅威についてさらに詳しく理解できるよう支援します。GozNym のような脅威を阻止するため、金融機関やサービス・プロバイダーは柔軟なマルウェア検出ソリューションを利用できます。これらのソリューションは、脅威の容赦ない巧妙化に対応するために設計されており、犯罪組織の手口や能力に対するリアルタイムの洞察をもたらすマルウェアに対するインテリジェンスを備えています。

ウェブ・サイトを閲覧する際にマルウェアへ感染することを防ぐためには、一般に感染ハブとして利用される感染リスクの高いサイトへのアクセスの回避などがあります。また、GozNymやそれに類するオンライン・バンキングを標的にするマルウェアは、通常はメールの添付ファイルとして配信されるため、勝手に送りつけられてくるメールのリンクや添付ファイルは、絶対にクリックしないようにすることも極めて重要です。

サンプルMD5

–        2A9093307E667CDB71884ECC1B480245

IBM X-Force Researchは、X-Force Exchange(XFE)プラットフォームを通じて、GozNymに関する情報の更新を行っていきます。今すぐXFEに加入して、この脅威やIBMのサイバー犯罪研究所の調査結果について、常に最新情報を入手してください。

(出典:Security Intelligence より訳出 “Two Heads Are Better Than One: Going Under the Hood to Analyze GozNym” BY LLimor Kessem 2016年7月12日)

More 不正情報詐取防止 stories
2019-12-06

脆弱性診断を着実に進めるためのガイド

  脆弱性診断をどのように進めればいいのか、よくわからないと感じているセキュリティー担当者もいること […]

さらに読む

2019-11-28

Emotet(エモテット)、約2カ月の沈黙を経て再び猛威を振るう・・対策は?

  2019年9月に、ポーランド語、ドイツ語のユーザーをターゲットとしたマルウェアが添付されたスパム […]

さらに読む

2019-11-20

IBM Cloud Pak for Securityの発表

2019年前半、IBMは、企業のクラウド移行を支援するIBM Cloud Paksを発表しました。お客様がクラ […]

さらに読む