Discordウェブフックが悪用され、オープンソースパッケージリポジトリでC2サーバーとして機能

はじめに:Discordウェブフックが悪用されC2サーバーに

人気のあるオープンソースパッケージリポジトリにおいて、Discordウェブフックが悪意のある目的で利用され、コマンド&コントロール(C2)サーバーとして機能していることが明らかになりました。これにより、従来のC2インフラストラクチャを回避し、正規のHTTPSトラフィックに紛れ込む形で、機密ファイルの窃取やテレメトリーのホスティングが行われています。

Discordウェブフックは、POSTリクエストを受け入れるシンプルなHTTPS URLであり、URLの所有以外に認証を必要としません。トラフィックはポート443を介した無害なJSONとして表示されるため、セキュリティ対策をすり抜けやすい特性を持っています。

攻撃の手口:従来のC2を回避

Socketの脅威調査チームは、攻撃者がオープンソースパッケージにDiscordウェブフックURLを埋め込み、C2エンドポイントとして利用する傾向が強まっていることを発見しました。パッケージのインストール時や実行時にペイロードがこれらのウェブフックに送信されると、攻撃者は自身が管理するDiscordチャンネルでファイル、ホストの詳細、またはカスタムメッセージを受け取ることができます。

従来のC2サーバーとは異なり、ウェブフックは信頼されたドメイン上で動作し、ファイアウォールによるブロックを回避し、シグネチャベースの検出をほとんどトリガーしません。

具体的な攻撃事例

  • npmパッケージ「mysql-dumpdiscord」: このパッケージのindex.jsスクリプトは、config.json.envなどの一般的な設定ファイルを標的とし、その内容を読み取ります。エラーはサイレントに処理され、環境変数、APIキー、コマンド出力などの任意のテキストをユーザーに警告することなく窃取します。ファイルが存在する場合、スクリプトはメッセージを構築し、DiscordウェブフックURLにJSONとしてPOSTします。
  • npmモジュール「nodejs.discord」: このモジュールはDiscordWebhookクラスを含み、そのconnectメソッドは引数を連結し、埋め込まれたウェブフックURLに送信します。
  • PyPIパッケージ「malinssx」: setup.py内でsetuptoolsinstallコマンドをオーバーライドし、インストール時に「Someone just installed the maladicus package via pip!」というメッセージをDiscordウェブフックに送信します。これは、ランタイム実行なしでインストール時に攻撃者にテレメトリーを提供する、古典的なサプライチェーンリスクです。
  • Ruby gem「sqlcommenter_rails」: /etc/passwdの内容、DNSサーバー、ホスト名、現在のディレクトリ、公開IPアドレスなど、包括的なホスト情報を収集します。このデータはgemのメタデータと共にパッケージ化され、DiscordウェブフックにJSONとしてPOSTされます。ネットワークの問題は静かに無視され、ステルス性が確保されます。

脅威の展望と防御策

Discordウェブフックの悪用は、サプライチェーン攻撃の経済性を根本的に変えます。攻撃者はインフラコストやドメイン登録が不要になり、組織によってすでに許可されている無料かつ回復力のあるチャネルを悪用します。ウェブフックURLは実質的に書き込み専用であるため、コードやファイアウォールログに隠れ、検出を回避します。

Discord以外にも、攻撃者はSlack、Telegram、GitHubのウェブフックを同様の目的で試しています。防御側は、ウェブフックを潜在的なデータ損失チャネルとして扱う必要があります。

効果的な防御策としては、以下が挙げられます。

  • エグレスフィルタリング: 特にビルドサーバーや開発者のワークステーションからのアウトバウンドHTTPSに対して、許可リストを厳格に適用する。
  • 依存関係管理: ロックファイル、SLSAのようなプロベナンスフレームワーク、厳格な審査を通じて、悪意のあるパッケージがインストールされる前にブロックする。
  • ランタイム監視: インストールフックやビルドスクリプトでネットワーク呼び出しを起動するコードをフラグ付けする。
  • 開発者資格情報のローテーション: 資格情報を定期的に更新し、リポジトリに保存される機密情報を最小限に抑えることで、情報漏洩が発生した場合のエクスポージャーを制限する。

Socketのセキュリティツールは、これらの脅威に直接対処します。GitHub Appは、ハードコードされたウェブフックやインストール時フックをスキャンし、Socket CLIはパッケージインストール時に同様のチェックを強制します。Socket Firewallは依存関係のフェッチを仲介し、既知の悪意のあるパッケージをブロックします。ブラウザ拡張機能はレジストリ上の疑わしいパッケージを強調表示し、AIアシストコーディングツールは危険な依存関係を提案する際に警告を発します。

行動検出とサプライチェーンの衛生管理に焦点を移すことで、組織は開発者のマシンから機密データが流出する前に、DiscordベースのC2攻撃を軽減できます。


元記事: https://gbhackers.com/open-source-package/