MBを超えるサンプルが見つかりました。大きくしているのは、検知を逃れるためです。Labでは日本と韓国を狙った標的型攻撃グループの活動について継続的に調査を行ってきました。このグループでは「XXMM」というマルウェアファミリーを数ある攻撃ツールの一つとして使用しています。2010\Projects\xxmm2\Release\test2.pdb)に由来しています。当社では2017年の初頭にある検体の提供を受けました。この検体にはpdb情報は含まれていませんでしたが、コードの類似性、マルウェアの機能、暗号アルゴリズム、データの構造、モジュールの構成という点で、XXMMマルウェアの亜種であると判断しました。非常に興味深い手口が使われていることも解析の過程で確認できましたので、本ブログにて紹介させていただきます。2017年初頭、標準のシステムプロセス名に似せた「srvhost.exe」というファイル名のトロイの木馬の提供を受けました。MBを超えていた点です。解析を進めると、XXMMの亜種であること、暗号化されたバックドアモジュールを抱えていること、このバックドアモジュール(以下、waliバックドア)を特定プロセスのメモリ内へロードする為のローダーモジュール(以下、waliローダー)であることがわかりました。次に、攻撃の要として使用されるwaliバックドアについて解析してみると、埋め込まれている文字列から、攻撃者はこのバックドアモジュールに「wali」と名付けたようです。図2:「wali.exe」のファイル名waliローダーでは、「\x63」バイトと単純なXOR演算を使って、埋め込まれたwaliバックドアの復号化を行います。XORで使用される1byteの鍵は「\x63」だけでなく、他のものも観測されています。次に、waliバックドアが、waliローダーによって特定プロセス上のメモリに注入されます。話を少し戻しましょう。これほど大きなサイズということは、waliローダーの中にはいったい何が入っているのでしょうか?waliバックドアもそれをロードするwaliローダーも100Mという巨大なデータサイズには到底届きません。実は、この検体には、非常に大きなサイズの無意味なゴミデータがwaliローダーのファイル末尾に追加されているという、古典的な手口が使われていました。当社はオープンソースインテリジェンスを駆使し、検体を収集したところ同様の検体(waliローダー+ゴミデータ)を他に20個以上発見しました。ゴミデータ部分を除いた場合、固有検体は6個だけでした。提供された検体はwaliローダーでしたが、ローダーをインストールするためのwaliドロッパーも見つかりました。問題となっている巨大なサイズのゴミデータは、waliローダーが標的マシンにインストールされる際に、waliドロッパーによってその都度、動的に生成されます。ゴミデータの生成に関しては次節で説明を行います。下の図は、マルウェアモジュールの構造とwaliドロッパー等を含む各モジュールの関係を示しています。図3:waliモジュールの構造waliドロッパー1はCPUアーキテクチャを確認します。101から64ビットバージョンのwaliドロッパー2を復号します。102から32ビットバージョンのwaliドロッパー2を復号します。リソースデータの抽出にはRC4(暗号鍵は「12345」)を使用し、抽出したデータの解凍にはLZNT1を使用します。chr}.tmp.bat」という名前のファイルを作成します。最後に、ゴミデータを生成し、ドロップしたファイルの末尾に追加してからwaliドロッパー2を実行します。waliドロッパー2は、ユーザーアカウントに管理者権限があるかどうかを確認してから、ドロッパー1と同じアルゴリズム、同じ暗号鍵を使用してwaliローダーを復号し、以下のファイルパスに新しいファイルを作成します。Menu\Programs\srvhost.exeまた、ドロップ1と同じ関数を使用してゴミデータを生成し、ファイル末尾に追加します。最後に、「sunUpdate」というレジストリ値を「HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run」に作成して、マルウェアを常駐化します。ゴミデータの生成ゴミデータをマルウェア実行ファイルに追加してファイルサイズを大きくするのは、waliドロッパー1とwaliドロッパー2に固有の機能です。作成者の狙いは、サイズの大きいファイルを作成することで、サンドボックスの回避やアンチウイルスによる検知の回避、検体を簡単に送受信できないようにする、YARAルールによる検知回避等と考えられます。下の図は、ジャンクデータを生成する関数を示しています。図4:ゴミデータを生成する関数(create_garbage_data)create_garbage_data関数は、1,000回の反復処理の中でランダムバイトを生成します。反復処理のたびに、動的にデータ長を計算し、その範囲内でデータブロックを入力します。その後、復号されたwaliローダーのオーバーレイにcreate_garbage_dataの結果を書き込むプロセスを100回繰り返します。MBのジャンクデータが生成されて、実行ファイルに追加されます。d1e24c3cc0322b22988a1ce366d702e5)のサイズは、最初は1,124,352バイトでした。8bd0ddeb11518f3eaaddc6fd82627f33)が作成され、ファイルサイズが105,982,049バイトに増加しました。追加されるゴミデータは動的に作成され、乱数値に基づいているため、サイズが変わる場合があります。当社は100MBのファイル以外だけでなく50MB等サイズの違う検体が実際の攻撃で使用されたことを確認しました。当社が確認した中で最大のファイルサイズは、同じ手口で作成された200MBのマルウェア検体でした。現在のところ、カスペルスキー製品のマルウェア検知能力がこの手口の影響を受けることはありません。検知名は以下のとおりです。Trojan.Win32.XxmmTrojan.Win64.XxmmTrojan-Downloader.Win32.XxmmTrojan-Downloader.Win64.XxmmTrojan-Dropper.Win32.XxmmTrojan-Dropper.Win64.Xxmmゴミデータを使ってファイルサイズを大きくする手口は、目新しいものではありません。ポリモーフィック型のウイルスやワームもこの手口を多用しており、元のコードにゴミデータを混入してマルウェアファイル全体に行き渡らせ、ファイルサイズを数百KB、場合によっては数MBも増加させることがありました。一部のソフトウェアプロテクターが、おとりファイルをパッケージファイルに挿入し、ファイルサイズを1MBまで増大させることもあります。動画ファイルやISOファイルに偽装した実行可能マルウェアが、ファイル共有ソフトを介して拡散した例も確認されています。したケースでは、本物のコンテンツに見せかけるために、マルウェアサイズが数GBにも膨れ上がります。今回の事例で注目すべきは、この手口が標的型攻撃に利用されている点と、最初の感染後、攻撃の後半段階になってからゴミデータをファイルに追加し、ファイルサイズを増大させて検知を回避している点です。検知回避のアプローチが原始的という点で、効率の悪い手口のように思えますが、YARAルールを使用してハードディスクドライブをスキャンするインシデントレスポンス担当者やフォレンジック分析担当者の目から、このマルウェアが逃れているケースもあると考えられます。いうのも、YARAルール作成者はよく、主にスキャンプロセスのパフォーマンス向上を目的として、スキャン対象ファイルのサイズを制限するからです。XXMMマルウェアが生成するような大きなファイルは、こうしたルールで拾えない場合もあるため、セキュリティリサーチャーの方々には、ドロップされたマルウェア用のルールを作成する際に、この点を考慮していただきたいと思います。記事をシェア関連記事MATA:マルチプラットフォームなマルウェアフレームワークサイバー犯罪者はエアギャップを飛び越えられるか?こちらの記事もどうぞお小遣い稼ぎのつもりが、トロイの木馬「Ztorg」に感染アプリをインストールするだけでお金がもらえるという広告を見たことはありますか?うれしい話ですが、そのアプリがトロイの木馬をダウンロードしてしまうかもしれません。ResponseサービスのSOCにおいて、AIモデルの効果的な活用方法について解説します。Soldatov2024年10月29日ヒントセクストーションの手口サイバー犯罪者が被害者の性生活を利用して金を儲ける方法。教育におけるサイバーセキュリティの重要性と、サイバー攻撃から学校や組織を守る方法。Team2024年10月17日ヒントネット上のデータは永遠に残るもの?オンライン上に保存された重要なデータをバックアップする必要がある理由。Lab」にメールアドレスを提供することに同意します。上記目的で受け取るメールの下部にある[購読の解除]リンクより、この同意をいつでも取り消し可能である旨を承知します。(Japan)その他の国々Global。