悪意のあるRuby GemとGoモジュールで開発者を標的とするサプライチェーン攻撃
新たなソフトウェアサプライチェーン攻撃が発見され、悪意のあるRuby GemとGoモジュールを利用して開発者やCI/CD環境を標的にしています。この攻撃は、**BufferZoneCorp**のGitHubアカウントに起因するとされており、認証情報の窃取、GitHub Actionsの改ざん、SSH永続化の確立を目的としています。

### 特定された悪意のあるパッケージ
攻撃者が管理するGitHubアカウント「**BufferZoneCorp**」は、RubyGemsとGoモジュールの両方のエコシステムにわたる一連の悪意のあるパッケージを公開しました。これらのパッケージはRubyGemsからは削除されブロックされましたが、攻撃の範囲を理解することが重要です。以下のパッケージが特定されました。
* **Ruby:**
* knot-activesupport-logger
* knot-devise-jwt-helper
* knot-rack-session-store
* knot-rails-assets-pipeline
* knot-rspec-formatter-json
* knot-date-utils-rb (Sleeper gem)
* knot-simple-formatter (Sleeper gem)
* **Go:**
* github[.]com/BufferZoneCorp/go-metrics-sdk
* github[.]com/BufferZoneCorp/go-weather-sdk
* github[.]com/BufferZoneCorp/go-retryablehttp
* github[.]com/BufferZoneCorp/go-stdlib-ext
* github[.]com/BufferZoneCorp/grpc-client
* github[.]com/BufferZoneCorp/net-helper
* github[.]com/BufferZoneCorp/config-loader
* github[.]com/BufferZoneCorp/log-core (Sleeper module)
* github[.]com/BufferZoneCorp/go-envconfig (Sleeper module)
これらのパッケージは、`activesupport-logger`、`devise-jwt`、`go-retryablehttp`、`grpc-client`、`config-loader`のような正規でよく知られたモジュールに似せて設計されており、開発者が誤ってダウンロードする可能性を高めていました。
### 攻撃ベクトルとペイロードの詳細
**Socket**のセキュリティ研究者であるKirill Boychenko氏によると、「このアカウントは、2つのエコシステムにわたる開発者、CIランナー、ビルド環境を標的とするソフトウェアサプライチェーンキャンペーンの一部です。」
Ruby gemは、インストール中に環境変数、SSHキー、**AWS**シークレット、`.npmrc`、`.netrc`、**GitHub** CLI設定、RubyGems認証情報を含む機密情報を自動的に収集するように設計されています。この窃取されたデータは、攻撃者が制御するWebhookエンドポイントに送信されます。
Goモジュールは、より広範な悪意のある機能を示しています。これには、**GitHub** Actionsワークフローの改ざん、偽のGoラッパーの注入、開発者データの窃取、および`~/.ssh/authorized_keys`ファイルへのハードコードされたSSH公開鍵の追加が含まれ、不正なリモートアクセスを許可します。ペイロードはモジュール間で異なります。
Boychenko氏はさらに、「このモジュールはinit()を通じて実行され、GITHUB_ENVとGITHUB_PATHを検出し、HTTP_PROXYとHTTPS_PROXYを設定し、偽のgo実行可能ファイルをキャッシュディレクトリに書き込み、そのディレクトリをワークフローパスに追加して、ラッパーが実際のバイナリよりも先に選択されるようにします。その後、そのラッパーは、ジョブを壊さないように正規のバイナリに制御を渡しながら、後続のgo実行を傍受または影響を与えることができます。」と説明しました。
### 修正手順
特定されたパッケージをインストールしたユーザーは、以下の手順を実行することを強く推奨します。
* システムからパッケージを直ちに削除してください。
* 機密ファイルへの不正アクセスや`~/.ssh/authorized_keys`ファイルへの変更の兆候がないか、システムを徹底的にレビューしてください。
* SSHキー、APIトークン、パスワードを含む、漏洩した可能性のあるすべての認証情報をローテーションしてください。
* 特定されたデータ送信ポイントに向けられた、あらゆるアウトバウンドHTTPSトラフィックについてネットワークログを注意深く検査してください。