本文へ移動
情シスの相棒
ニュース約8分で読めます

cPGuardの偽の更新が約2,950台に 借りたサーバーでの確かめ方

Linuxサーバー向けのcPGuardで11月2日に偽の更新が配られ、約2,950台でrootのパスワードのハッシュやSSHの鍵が読まれました。自社や借りているサーバーに入っているかの確かめ方と、11月8日の5.89.00を含む対応の順番が分かります。

公開 更新 執筆・監修:佐々木 航人が監修しながらAIを活用して執筆
文字
cPGuardの偽の更新が約2,950台に 借りたサーバーでの確かめ方

この記事のまとめ

  • cPGuardを入れて11月2日11時8分〜12時20分に動いていたサーバーは、漏れた前提で扱います。
  • 5.88.12〜5.88.19を入れた記録があれば、今の版によらず対象です。
  • 借りたサーバーは、管理画面の「Security」にcPGuardがあるかで見当がつきます。
こんな方に#30代#40代#50代実務

約2,950台。Linuxサーバー向けのセキュリティソフト「cPGuard」の偽の更新を、11月2日に動かしたサーバーの数です。入っているサーバーは版を上げるだけでは足りず、rootのパスワードやSSHの鍵、データベースのパスワードまで替える必要があります。開発元のOPSSHIELDは11月3日、更新の配信に使う基盤に不正アクセスを受け、偽の更新が顧客のサーバーに配られたと公表しました。

発表から6日がたち、11月8日には更新の配信の仕組みを改めた5.89.00が出ました。ただ、事故についての2本の発表は、どちらも3日の日付のままです。

自分で入れた覚えがなくても、借りているサーバーに入っていることがあります。cPGuardは、VPSや共有サーバーを貸すホスティング会社向けにも売られている製品だからです。発表は英語で、日本での提供の状況には触れていません。

探り始めから偽の更新まで、約10時間

事故の発表にある経過を日本時間に直すと、攻撃者が探り始めたのは11月2日の0時38分でした。相手は請求と契約のポータル「manage.opsshield.com」です。1時34分には偽の身元で顧客として登録し、無料の試用を申し込みました。

6時17分、攻撃者は試用版を自分のサーバーに入れ、エージェントがライセンスのシステムとどうやりとりするかを調べます。6時40分から51分には、cPGuard自身が攻撃者を2回締め出しました。それでも7時50分にポータルのコールバックのページへ細工したリクエストを送り、7時58分には請求とライセンスのサーバーでコマンドを実行できるようになります。

11時4分から9分には、盗んだアクセスキーで偽の更新が保管場所に置かれました。顧客のサーバーのエージェントは11時8分から12時20分にこれを入れ、rootで動いて機密のファイルを攻撃者のもとへ送ったといいます。

どのリクエストで入られたかはログに残っておらず、同社は入口の候補を2か所ふさいだと説明します。

2本の発表で、見分け方の物差しが違う

OPSSHIELDは11月3日に、先にアドバイザリ、あとに事故の発表を出しました。アドバイザリの冒頭は、自らを先の時点の記録とし、最新の内容は事故の発表を見るよう案内していますが、影響を受けたサーバーの見分け方は2本で違います。

アドバイザリは版で線を引きました。5.88.12から5.88.19の更新を入れた記録があれば、今が新しい版でも侵害されたおそれがあるものとして扱うよう求めます。

事故の発表は時間で線を引きました。2日の11時8分から12時20分にcPGuardを入れてオンラインだったサーバーは、rootの権限で読める秘密を攻撃者が知っているものとみなすよう求めます。その時間にオンラインでなければ、偽の更新は届いていないという立場です。

OPSSHIELDの事故の発表のWhat it means for youの部分。11月2日の協定世界時2時8分から3時20分にcPGuardを入れてオンラインだったサーバーは、rootの秘密を攻撃者が知っているとみなすよう書かれている。表には、偽の更新を動かした顧客のサーバーが約2,950台でパスワードのハッシュ、rootのSSHの鍵、MySQLのrootのパスワード、シェルの履歴が、請求のポータルのアカウントが約7,900件で名前、会社、住所、メール、ハッシュにしたパスワードが露出したとある。請求のポータルのパスワードはbcryptで保存していたが、全員に再設定を求めている。
OPSSHIELDの事故の発表(11月3日)。対象の時間と、件数出典: OPSSHIELD「Security Incident Disclosure: manage.opsshield.com」(引用)

それでも、事故の発表は版で見分ける手順を取り消していません。アドバイザリは、対象の版の公開から「12時間以内」に攻撃を見つけたとし、更新の確認は間隔を置いて走るとも説明します。載せた記録の例でも、対象の版への更新が「02:46」から「12:46」まで、2〜4時間おきに5回並びました。事故の発表の約70分より長い間に、対象の版が入りうると読めます。

どちらか一方で「対象外」と決めるのは危ういでしょう。時間と版の両方を調べ、どちらかに当たれば対象と考えるのが安全です。アドバイザリも、記録が見つからないことや欠けていることだけでは、影響がなかったとは言えないとしています。

修正版の呼び方も、そろっていません。アドバイザリは5.88.25以降を、事故の発表は5.88.26を、きれいな版として挙げました。

今から上げるなら、11月8日に出た最新の5.89.00でそろえるのが分かりやすいはずです。なお、変更履歴では10月22日の5.88.11の次が11月2日の5.88.25で、対象の5.88.12から5.88.19は1つも載っていません。

cPGuardの変更履歴のページ。2026年11月8日の5.89.00はSecurity patches and update channel changesとして、更新の配信を署名して隔離した基盤から配る変更や、社内の監査で見つかったセキュリティの問題の修正を挙げている。11月2日の5.88.26はサポートのアクセスの取り消し、同じ日の5.88.25は侵害された更新の修正で、どちらもセキュリティアドバイザリを読むよう案内している。
cPGuardの変更履歴。11月8日の5.89.00と、2日の5.88.26と5.88.25出典: OPSSHIELD「cPGuard software release notes / changelog」(引用)

読まれたのは、ほかのサーバーへの合鍵でもある

偽の更新が読んだファイルは、次のとおりです。

  • /etc/shadowと/etc/passwd
  • /root/.sshにあるSSHの秘密鍵、authorized_keys、known_hosts
  • MySQLのrootのパスワードを書いた/root/.my.cnf
  • rootのシェルの履歴
  • クラウドストレージのキーを書いた/root/.s3cfg(一部のサーバー)

しかも、被害はそのサーバーで終わりません。rootのSSHの秘密鍵で入れるほかのサーバーも、鍵を替えるまでは危ないものとして扱うよう、同社は求めました。シェルの履歴には打ち込んだパスワードやトークンがよく残る、とも指摘しています。

偽の更新は、隠したシェルも置いていきました。事故の発表が挙げた侵害の痕跡によると、実行すればrootになれるsetuidのシェルです。共有サーバーなら、ほかの利用者のアカウントや乗っ取られたサイトからも、修正版が当たるまで使えたおそれがあります。

攻撃者は請求のポータルからも、約7,900件のアカウントの名前、会社名、住所、メールアドレス、bcryptのハッシュにしたパスワードを写し取りました。cPGuardの契約者の名簿とも言えるものです。OPSSHIELDやホスティング会社を名乗る「更新のお願い」が、これから届くかもしれません。

うちの会社に関係あるかは、サーバーの持ち方で分かれる

自社でLinuxのサーバーを管理し、cPGuardを入れている会社は、全台を調べる側です。cPanelやPlesk、DirectAdmin、Webminなどの管理画面と組み合わせるほか、管理画面のないサーバーにも入れられます。

共有サーバーやマネージドのVPSを借りている会社は、ホスティング会社が入れたかどうかで決まります。OPSSHIELDの説明では、利用者向けのプラグインがあり、cPanelとWebuzoなら「Security」、DirectAdminなら「Extra Features」の欄にcPGuardが出ます。日本語の画面では、欄の名前が訳されていることもあるでしょう。そこにあれば、借りているサーバーにcPGuardが入っているということです。

見当たらなくても、入っていないとは言い切れません。プラグインを出さずに使うホスティング会社もありうるからです。借りている側で替えられるものは、自分のアカウントとデータベースのパスワード、サイトに置いたキーくらいでしょう。rootの秘密を替える役目は、ホスティング会社にあります。

一方、cPGuardが入っていないサーバーは、今回の偽の更新とは関係がありません。ただし、試用だけでもmanage.opsshield.comにアカウントを作ったことがあれば、パスワードの再設定は要ります。

サーバーで確認すること、ホスティング会社に聞くこと

自社で管理しているサーバーなら、2本の発表にあるコマンドとファイルの名前で、次の順に進めます。

  1. cpgcli --version で版を見て、5.89.00でなければ cpgcli update --start で上げます。
  2. grep 'Successfully updated' /opt/cpguard/logs/install_log で、5.88.12から5.88.19を入れた記録を探します。11月2日の11時8分から12時20分にサーバーが動いていたかも、last -x reboot か監視の記録で、あわせて見ます。
  3. /var/tmp/.cpg91511_sh、/var/tmp/.cpg91511/、/var/tmp/.i93677/、/etc/cron.d/i93677が残っていないかを調べます。2本の発表で挙げた名前が少しずつ違うので、全部を見ます。残っていれば、そのサーバーは偽の更新を動かしたものとして4に進み、ファイルは消します。見つからなくても、動かなかったとは言い切れません。
  4. 2か3で当たったサーバーは、rootとほかのローカルのアカウントのパスワード、/root/.sshの鍵、MySQLのパスワード、履歴と/root/.s3cfgにあるキーを替えます。古い公開鍵は、それを信頼していた全てのサーバーから外します。
  5. manage.opsshield.comのパスワードを再設定し、二要素認証を有効にします。

借りているサーバーなら、ホスティング会社に聞くことは3つです。5.88.12から5.88.19を入れたか。rootの秘密とSSHの鍵を替えたか。利用者が替えるべきパスワードはあるか。返事を待つあいだに、自社のアカウントとデータベースのパスワードは先に替えておいてかまいません。

作り直すかどうかの線引き

10月には、WordPressのSEOプラグイン「Rank Math PRO」の配布にも不正なコードが入りました。Rank Mathは、協定世界時の10月15日20時2分から16日7時12分までに、3.0.123を入れて有効にしたサイトを、侵害されたものとみなします。そのうえで、事故の前のバックアップからの復元を勧めました。

OPSSHIELDは逆に、サーバーの作り直しを決まりの対応としては勧めていません。更新とパスワードやキーの入れ替えで足りるという見立てで、暫定だとも断りました。作り直しを求める先は、攻撃者が手でログインしたと同社が連絡したサーバーです。その場合は、11月1日より前のきれいなバックアップから作り直すよう求めます。

同社も、ほかの侵害の跡が見つかったときや、サーバーが無事だと確かめられないときは、作り直しが適切な場合があるとしています。setuidのシェルが一時は置かれていたことを考えると、見覚えのないユーザーやSSHの鍵、外への通信が見つかった時点で、作り直す側へ倒すのが妥当でしょう。

5.89.00の変更履歴には、更新の配信を署名し、ほかと切り離した基盤から配る形に改めたことと、社内の監査で見つかったセキュリティの問題の修正が並びます。どの鍵でどう署名を確かめるのか、監査で何が見つかったのかまでは、まだ説明がありません。

サーバーを守るための製品ほど、rootで動き、自動で更新します。今回の件は、その更新の通り道が、数千台のサーバーへの入口にもなりうることを示しました。署名の仕組みを改めた5.89.00が、その入口をどこまで狭めたのか。同社の次の説明で、いちばん確かめたいのはそこです。

出典・参考

人が監修しながらAIを活用して執筆しています。公開したあとも、人が内容を確かめています。

執筆・監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

記事は、人が監修しながらAIを活用して執筆しています。何を書くかと中身は人が決めて確かめ、記事の中身の責任は編集部(執筆・監修者)が負います。くわしくはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら更新日を改め、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします