新たに文書化されたLinuxバックドアは、アクセスログに通常の痕跡を残さずにControl Web Panel(CWP)を通じたリモートコマンド実行を攻撃者に許してしまいます。CWPdoorと名付けられたこのマルウェアは、直接組み込まれた改変版のcwpsrv、CWPの管理インターフェースを動かすウェブサーバーです。
研究者のQiAnXin XLabは、6月に取得したインストーラーと、2つのcwpsrvバージョンを標的とする悪意のあるバイナリを分析した後、11月5日にこの脅威を公表しました。インストーラーはroot権限を必要とするため、攻撃者はバックドアを展開する前からサーバーを相当程度制御していた可能性があります。
XLabは、自社のHunterプラットフォームを通じて、インターネットに公開されたCWPインスタンスを34万件以上特定しました。この数字は潜在的な標的数を示すもので、感染が確認された件数ではありません。9月にブラジルからVirusTotalへアップロードされたアーカイブにはCWPdoorのサンプルが含まれており、テスト環境外にもこのマルウェアが出現している証拠となっています。
管理者にとって当面の優先事項は、ウイルス対策ソフトの結果やファイルのタイムスタンプ、正常なアクセスログだけに頼らず、稼働中のサーバーとそのバイナリを確認することです。
CWPdoorがControl Web Panelサーバーを侵害する仕組み
CWPdoorはCWPと並行して動作する独立したマルウェアプログラムではありません。攻撃者はcwpsrvのソースコードを改変し、悪意のあるバージョンをコンパイルして、正規のサーバーバイナリと置き換えます。
インストーラーのcwpsrv_update.shは通常のアップデートを装います。インストール済みのバージョンを確認し、対応する悪意のあるバイナリを136.0.141.71からダウンロードして、/usr/local/cwpsrv/bin/cwpsrv.
取得されたインストーラーはバージョン1.15.10と1.24.0に対応しています。XLabは、他のバージョンが標的になったかどうかを明らかにしておらず、攻撃者が初期アクセスを得るために利用した脆弱性や侵入手法も特定していません。
インストーラーにはroot権限が必要なため、CWPdoorは初期感染手段として確認されたものではなく、侵害後に使われるツールです。同様の侵害後バックドアは、攻撃者がすでにシステムへ侵入した後も、永続的なアクセスを可能にします。
インストール後も、改変されたサーバーは通常のリクエストを処理し続けます。バックドアが起動するのは、攻撃者が特別に細工した3つのヘッダーを含むリクエストを送信した場合だけです。
X-Ngx-Integrity-TimeX-Ngx-Integrity-DataX-Ngx-Integrity-Sig
サーバーはリクエストのタイムスタンプがプラスマイナス300秒の範囲内にあることを検証し、RSA署名を確認します。次にコマンドを復号し、Unixドメインソケットを介してヘルパープロセスへ送り、暗号化した出力を攻撃者に返します。
CWPdoorは、起動のきっかけとなったリクエストのログ記録も抑制します。インストーラーは元のファイルとディレクトリのタイムスタンプを復元し、シェル履歴から自身のコマンドを削除しようとします。これらの措置により、定期的な確認では侵害されたインストール環境が変更されていないように見える可能性があります。
こうしたステルス性と永続化の手法は、Linuxマルウェアにも見られます。クラウド環境を標的とする攻撃者は、従来型のセキュリティ警告を発生させずにアクセスを維持しようとします。
XLabによると、分析したCWPdoorのサンプルは、VirusTotalで63種類のウイルス対策エンジンから当初まったく検出されませんでした。この結果が示すのはテスト時点でのそのサンプルとスキャンに関する状況であり、現在のセキュリティ製品にも必ず当てはまるとは限りません。
LinuxサーバーでCWPdoorを検出する方法
XLabは、バックドアのコマンド実行ヘルパーが使用するUnixドメインソケットを確認するよう推奨しています。
次のコマンドを実行します。
ss -axp | grep integrity
結果にngx_http_integrity_helperが含まれていれば、バックドアが活動中である可能性を示す強い指標です。
管理者は、インストール済みバイナリを調べて、CWPdoor独自のリクエストヘッダーを確認することもできます。
strings /usr/local/cwpsrv/bin/cwpsrv | grep X-Ngx-Integrity
稼働中のCWPプロセスを調べ、予期しないヘルパープロセスがないか確認します。
ps aux | grep cwpsrv
これらの確認は組み合わせて行うと最も有効です。一致するものがないからといって、サーバーがクリーンであると断定はできません。特に攻撃者が痕跡を改変または削除している場合はなおさらです。
公表されたCWPdoorの侵害指標
XLabは次のMD5ハッシュを公表しています。
- インストーラースクリプト:
e505d4ffa21cf494a5dc2d7c8f4f1236 - バックドア化されたcwpsrv 1.15.10:
965aea67fb40de1bab5169ada993349f - バックドア化されたcwpsrv 1.24.0:
d3f4e95113d49ab3991b45e457bda75b
特定されたダウンロードサーバーは136.0.141.71で、パスには/static/cwpsrv_update.shや、標的となった2つのバージョンに対応するバイナリが含まれます。
管理者は、利用可能なネットワークテレメトリー、ファイルインベントリー、セキュリティ記録から、これらの指標を検索すべきです。インストーラーにはroot権限が必要なため、調査対象はCWPプロセスだけでなく、不正アクセスを示す他の証拠にも広げる必要があります。
XLabは、ブラジルからアップロードされたアーカイブ内で、CWPdoorとともにEburyに関連するファイルlibkeyutils.so.1.5.2も発見しました。2つのマルウェアファミリーが同じ攻撃者によって展開されたかどうかは、研究者にもまだ分かっていません。
CWPdoorを削除し、侵害されたサーバーを復旧する方法
XLabは、正規のcwpsrvバイナリを復元し、CWPをアップグレードして、不審なソケットが消えていることを確認し、コントロールパネルの認証情報を変更するとともに、ホストに他の脅威がないか調査するよう推奨しています。
元のバイナリがローカルに残っていない可能性もあります。インストーラーはcwpsrv.prev-にタイムスタンプを付けた名前のバックアップを作成しますが、インストールに成功するとそのバックアップを削除します。侵害されたホストに残っているバックアップは、慎重に扱うべきです。
CWPdoorのインストーラーにはroot権限が必要なため、バイナリだけを置き換えても、サーバーの他の部分が信頼できる状態だとは判断できません。
他のサーバーバックドアがソフトウェアアップデート後も残存する場合にも、同じ復旧上の懸念が生じます。最近のAdobe Commerceのインシデントでは、パッチですべての脅威が除去されたと考えるのではなく、永続化の有無を調査し、流出した認証情報を変更するよう管理者に助言されました。
CWPdoorによる侵害が確認された場合、管理者は次の対応を取るべきです。
- 影響を受けたホストを隔離することで、調査に必要な証拠を保全しながら、さらなる不正アクセスを防ぎます。
- 侵入を調査する際には、特権ログイン、不審なプロセス、予期しないファイル、外部への接続を確認します。
- 信頼できるインストール環境から再構築するのは、OSの完全性を確認できない場合です。侵害された可能性のあるシステムバイナリを置き換え先の環境へ持ち込まないでください。
- 流出した認証情報を変更する対象には、CWP管理者のパスワード、SSH認証情報、データベースのパスワード、ホスティングアカウント、アプリケーションのシークレットが含まれます。
- 復旧を検証するため、インストール済みバイナリ、稼働中のプロセス、ネットワーク接続を確認し、CWPdoorの既知の指標が存在しないことを確かめます。
XLabはCWPを最新バージョンへアップグレードするよう助言していますが、未知の初期侵入手法に対処する特定のCWPセキュリティパッチは特定していません。したがって、アップグレードしたからといって攻撃者がアクセスできなくなった証拠と見なすべきではありません。
管理者アクセスを信頼できるネットワークに限定し、予期しない外部接続を監視することでも、リスクを抑えられます。
管理者にまだ分かっていないこと
XLabは、初期アクセスの手法を特定しておらず、攻撃者の身元も明らかにしていません。また、何台のサーバーが感染しているかも確認できていません。ブラジルのサンプルから見つかったCWPdoorとEbury関連マルウェアがつながっているかどうかも、研究者には判断できていません。
入手可能な証拠からは、CWPdoorの感染が確認された場合、深刻なサーバー侵害として扱うべきだと考えられます。管理者は改変されたウェブサーバーを単に削除して通常運用に戻すのではなく、rootアクセスがどのように取得されたのかを調査すべきです。
このケースでは、ログがクリーンでタイムスタンプが変更されていないことは、特に弱い安心材料にすぎません。CWPdoorは、両方を維持しながら攻撃者に隠れたコマンド経路を提供するよう設計されていました。
関連記事: 最近のcPGuardサプライチェーン攻撃では、細工されたセキュリティアップデートを通じて約3,000台のLinuxサーバーが侵害され、管理者は特権アクセスと盗まれた可能性のある認証情報を調査することになりました。





