Go言語の正規ライブラリ「golang.org/x/crypto」を巧みに偽装した悪意あるモジュールが発見されました。このモジュールはターミナルで入力されたパスワードを窃取し、SSH経由で永続的なアクセスを確保したうえで、Linuxバックドア「Rekoobe」を配信するという多段階攻撃を実行します。サプライチェーン攻撃の新たな脅威として、Go開発者は早急な対策が求められています。
この記事のポイント
- 正規の
golang.org/x/cryptoを偽装した悪意あるGoモジュールgithub.com/xinfeisoft/cryptoが発見された ReadPassword()関数を改ざんし、ターミナル入力されたパスワードを外部に送信する手口- 中国の国家支援グループAPT31との関連が指摘されるLinuxバックドア「Rekoobe」を最終ペイロードとして配信
名前空間の混乱を悪用した巧妙な偽装
今回発見された悪意あるGoモジュールは、github[.]com/xinfeisoft/crypto という名前で公開されていました。正規の golang.org/x/crypto プロジェクトは go.googlesource.com/crypto を正規ソースとし、GitHubはミラーとして扱っています。攻撃者はこの区別を悪用し、依存関係グラフの中で自然に見えるよう偽装していました。
Socketのセキュリティ研究者Kirill Boychenko氏は「正規プロジェクトがGitHubをミラーとして扱うという区別を、攻撃者が巧みに悪用している」と指摘しています。Go言語のモジュールシステムでは、パッケージのパスがそのまま識別子となるため、名前の類似性だけで開発者が誤って導入してしまうリスクがあります。
パスワード窃取の仕組み
悪意あるコードは ssh/terminal/terminal.go ファイルに埋め込まれていました。被害者のアプリケーションがターミナル入力を取得するために ReadPassword() 関数を呼び出すと、本来の機能に加えて、入力された認証情報がリモートの攻撃者サーバに密かに送信される仕組みです。
この手法が特に危険なのは、開発者が意図的にパスワード入力機能として呼び出す関数が改ざんされている点です。SSHクライアント、CLI認証ツール、データベースコネクタなど、パスワード入力を扱うあらゆるGoアプリケーションが標的となり得ます。
多段階の攻撃チェーン
パスワード窃取に加え、ダウンロードされるシェルスクリプト(ステージャー)は以下の操作を実行します:
- SSH永続化: 攻撃者のSSH公開鍵を
/home/ubuntu/.ssh/authorized_keysに追加し、いつでも再侵入可能な状態を作成 - ファイアウォール弱体化: iptablesのデフォルトポリシーをACCEPTに変更し、防御を無力化
- 追加ペイロード取得:
.mp5という偽の拡張子で追加のマルウェアをダウンロード
取得される二次ペイロードは2種類確認されています。一つ目はIPアドレス 154.84.63[.]184 のTCPポート443に通信する接続テスターで、偵察またはローダーとして機能します。二つ目が最終ペイロードである Rekoobe です。
Rekoobe ― 歴史あるLinuxバックドア
Rekobeは2015年から存在が確認されているLinuxトロイの木馬で、以下の機能を備えています:
- C2(コマンド&コントロール)サーバからの命令受信
- 追加ペイロードのダウンロードと実行
- ファイルの窃取
- リバースシェルの確立
特に注目すべきは、Rekobeが中国の国家支援型攻撃グループ APT31 による展開が確認されている点です。2023年8月時点でも活動が文書化されており、依然として現役のマルウェアです。
知っておくと便利なTips
- Go言語のプロジェクトでは
go.sumファイルのハッシュ値を確認し、依存パッケージの改ざんを検知する習慣をつける go mod verifyコマンドで依存モジュールの整合性を定期的にチェックする- 新規に導入するパッケージは、ダウンロード数・メンテナ情報・リポジトリの履歴を必ず確認する
- SSH認証情報を扱うライブラリは、公式ドキュメントのインポートパスと完全一致しているか慎重に確認する
まとめ
今回の攻撃は「低コスト・高インパクト」のサプライチェーン攻撃パターンであり、研究者は同様の手法が今後も繰り返される可能性が高いと警告しています。SSHヘルパー、CLI認証プロンプト、データベースコネクタなど「認証情報の境界」に位置するライブラリが特に狙われやすいとのことです。Go言語のセキュリティチームは既に当該パッケージを pkg.go.dev でブロック済みですが、開発者自身も依存関係の精査を怠らないことが重要です。Go言語に限らず、パッケージマネージャを通じたサプライチェーン攻撃は増加傾向にあり、「信頼できるソースからのみ導入する」という基本原則を改めて徹底すべきでしょう。
📎 元記事: https://thehackernews.com/2026/02/malicious-go-crypto-module-steals.html

コメント