概要:SOCKS5プロキシを装う悪意あるパッケージ
JFrogのセキュリティ研究チームは、SoopSocksと名付けられた悪意あるPyPIパッケージを発見しました。このパッケージは、正規のSOCKS5プロキシユーティリティを装いながら、Windowsシステムに密かにバックドアを仕込むことが判明しました。自動インストール、高度な永続化技術、リアルタイムのネットワーク偵察を悪用して、隠れた外部通信チャネルを確立し、組織のネットワークに重大なリスクをもたらします。
JFrogの研究者は、PyPIリポジトリを監視中に、SoopSocks(XRAY-725599)が異常に広範な権限と埋め込まれたDiscordウェブフックURLを含んでいることから、このパッケージに注目しました。SOCKS5プロキシを起動し、サーバーの詳細をウェブフックに報告するシンプルなツールとして宣伝されていましたが、詳細な分析により、SoopSocksが武器化されたバックドアプロキシとして機能し、侵害されたホストを介して攻撃者がトラフィックを転送できることが明らかになりました。
SoopSocksのバージョン進化
SoopSocksは、その機能と攻撃ベクトルを段階的に進化させてきました。
- v0.1.0–v0.1.2: 基本的なPythonベースのSOCKS5サーバーを導入。
- v0.2.0–v0.2.4: Goでコンパイルされた
_autorun.exe
とWindowsサービスサポートをバンドル。 - v0.2.5–v0.2.6: レガシーなVBScript(
_autorun.vbs
)による展開メカニズムを追加。 - v0.2.7: 単一の実行可能インストーラーに統合され、攻撃ベクトルが効率化。
主な伝播方法
SoopSocksは主に以下の3つの方法で拡散します。
_autorun.exe
(主要なベクトル): GoでコンパイルされたPE32+実行ファイルで、ウィンドウを非表示にし、PowerShellの実行ポリシーを「Bypass」に設定し、エラーを抑制します。そして、C:\Program Files\socks5svc\socks5svc.exe
として「SoopSocksSvc」という名前で自身をインストールするスクリプトを実行します。このサービスはSYSTEM権限で実行され、Windowsファイアウォールルールを介してTCP/UDPポート1080を開放します。_autorun.vbs
(レガシーなベクトル): バージョン0.2.5および0.2.6で使用され、ポータブルなPythonディストリビューションをダウンロードし、PowerShellブートストラップスクリプトを作成し、UACを介して昇格し、%TEMP%
にSoopSocksをサイレントインストールしてから起動します。- 直接Pythonモジュールインストール: ユーザーが
pip install soopsocks pywin32
を実行すると、サービスインストール、ファイアウォールルール設定、およびスケジュールされたタスクへのフォールバックといった組み込みの永続化メカニズムがトリガーされます。
永続化と権限昇格
SoopSocksは、以下の方法でシステムの永続性と隠蔽性を確保します。
- Windowsサービス: SYSTEM権限で自動的に実行されます。
- スケジュールされたタスク: サービスインストールが失敗した場合、「SoopSocksAuto」が起動時およびログオン時にトリガーされます。
- UACバイパス: ポリシー制限をバイパスするための自動PowerShell昇格。
- ファイアウォールルール: ポート1080に対するインバウンドTCP/UDPルールを自動的に作成します。
インストール後、SoopSocksは任意のTCPおよびUDPトラフィックを中継するだけでなく、詳細なネットワークテレメトリも収集します。これには、ローカルルート検査とHTTP APIを介したLANおよびパブリックIPアドレスの発見、NATトラバーサルフィンガープリンティングのためのSTUNプロトコル使用、Internet Explorerのセキュリティ設定やWindowsのインストール日を含むホストプロファイリングが含まれます。
30秒ごとに、パッケージはハードコードされたDiscordウェブフックにJSON埋め込みを送信します。これには、ホスト名、ローカルおよびパブリックIPアドレス、接続タイプなどのフィールドが含まれており、攻撃者にネットワークの外部通信に関する継続的な洞察を提供します。
技術的な詳細
Go実行ファイルは、Pythonのソースコード構造(main
、socks5/internal/*
モジュール)をミラーリングしており、Windowsサービス管理にはgithub.com/kardianos/service
に依存しています。主要なコンポーネントは以下の通りです。
- SERVER.PY / Goプロキシモジュール: 認証なしでRFC-1928 CONNECTおよびUDP ASSOCIATEコマンドを実装します。
- CLI.PY / オーケストレーションスクリプト: ファイアウォールルール、サービスインストール、スケジュールされたタスクを管理します。
- DISCORD.PY / C2モジュール: ネットワークテレメトリをフォーマットし、Discordにディスパッチします。
- EGRESS.PY / 偵察モジュール: IPおよびNATデータを集約します。
- FIREWALL.PY: PowerShellまたは
netsh
を介してルール作成を自動化します。
緩和策
組織は、このような脅威から身を守るために以下の対策を講じるべきです。
- Pythonの依存関係を監査し、予期せぬウェブフックURLや特権操作がないか確認する。
- コードリポジトリに厳格なホワイトリストを実装する。
- サービスインストールには最小特権を強制する。
- Discordや一般的でないホスト名への外部接続を監視する。
- VBScriptを介したPythonモジュールの自動インストールを無効にする。
- PowerShellの実行ポリシーを制限し、攻撃対象領域を減らす。
結論
SoopSocksは、オープンソースパッケージがWindows環境に対してどのように武器化され得るかを示す典型的な例です。これは、サプライチェーンに対する継続的な警戒と、プロキシ展開のランタイム監視が極めて重要であることを強調しています。