Jenkins サーバのミスコンフィグ:クリプトジャッキング攻撃に悪用されている

Misconfigured Jenkins Servers Targeted in Cryptojacking Attacks

2024/07/06 SecurityOnline — Jenkins サーバのミスコンフィグを標的とする攻撃が相次いでいることを、サイバー・セキュリティの世界のリーダー Trend Micro が警告している。脅威アクターたちは、Jenkins Script Console の脆弱性を悪用して、暗号通貨マイニング・ソフトウェアを不正にインストール/運用し、無防備な組織から計算リソースを抜き取っている。


この欠陥の核心となっている Jenkins Script Console とは、管理者や認可されたユーザーが Jenkins サーバ上で、Groovy スクリプトをダイレクトに実行できるようにするツールだ。デフォルトでは、このコンソールの利用は、管理者権限を持つ認証ユーザーに制限されている。しかし、認証メカニズムが不適切に設定されている場合や、誤った設定により “Sign Up” や “Registration” オプションが有効化されている場合には、Jenkins が不正アクセスやリモート・コード実行 (RCE:remote code execution) にさらされる可能性が生じる。

攻撃手法
  1. イニシャル_アクセスとスクリプトの実行:脅威アクターは、Shodan などのツールを使用して、公開されている Jenkins サーバを検索する。そして、それらのサーバにアクセスし、Groovy プラグインのミス・コンフィグを悪用し、Script Console を介して Base64 エンコードされた悪意のスクリプトを実行する。
  2. リソース管理と永続性:悪意のスクリプトは、システムのリソースをチェックし、CPU リソースの 90%以上を消費するプロセスを終了させ、効率的なマイニングを実行する。続いて、クリプト・マイナーを格納するための、書き込み可能なディレクトリを検索し、必要に応じてデフォルトの /tmp を指定し、侵害した Web サイトからマイニング・バイナリをダウンロードする。
  3. 暗号化と復号化:ダウンロードされたバイナリは、AES-256 で暗号化された tar ファイルである。スクリプトにより OpenSSL を使用して、ファイルの抽出と復号化が行われた後に、実行可能なパーミッションの割り当てが行われ、cron ジョブと systemd-run コマンドによる永続性が確保さあれる。
  4. 実行と回避:このスクリプトは、様々な方法を用いて検知を回避しながら、クリプトマイナーを持続的に実行する。終了シグナルを無視するトラップを設定し、systemd-run を用いて実行スケジュールを構成し、cron ジョブを用いてマイナーの活動を維持する。

Trend Micro がユーザーに対して強く推奨するのは、この新たな脅威から Jenkins サーバを保護するために、以下のセキュリティ対策を実施することである:

  • タイムリーな更新とパッチ適用:Jenkins と関連する全てのプラグインに対して、既知の脆弱性に対処するための、最新のセキュリティ・パッチが適用されていることを確認する。
  • スクリプトの承認:スクリプト承認 (Utilize the Script Approval) 機能を使用して、サーバ上でスクリプトを実行する前に、手動によるレビューと承認を義務付ける。
  • 強固な認証と承認:強力なパスワード/二要素認証/役割ベースの権限などの、厳格なアクセス制御を実施することで、Script Console へのアクセスを制限する。
  • 包括的な監査ログ:監査ログを定期的に監視し、スクリプトの異常や不正な実行を監視する。
  • ネットワークのセグメンテーション:Jenkins サーバをパブリック・インターネットから隔離し、潜在的な攻撃者への露出を最小限に抑える。必要であれば、リモートアクセスにおいて VPN のようなセキュアなチャネルを使用する。