新たに報告されたLinux向けバックドアは、Control Web Panel(CWP)を通じて、攻撃者によるリモートコマンド実行を可能にします。しかも、アクセスログに通常の痕跡が残りません。「CWPdoor」と名付けられたこのマルウェアは、CWPの管理インターフェースを動かすWebサーバーcwpsrvの改ざん版に直接組み込まれています。
QiAnXin XLabの研究者らは11月5日、この脅威を公表しました。6月に入手したインストーラーと、2つのバージョンのcwpsrvを狙った悪意あるバイナリを分析した結果です。インストーラーの実行には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の侵害指標(IoC)
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の侵害が確認された場合、管理者は次の対応を取るべきです。
- 影響を受けたホストを隔離する:調査に必要な証拠を保全しつつ、さらなる不正アクセスを防ぎます。
- 侵入を調査する:特権でのログイン、不審なプロセス、見覚えのないファイル、外部への通信を調べます。
- 信頼できるインストールから再構築する:オペレーティングシステムの完全性を確認できない場合に行います。侵害された可能性のあるシステムバイナリを、新しい環境に持ち込まないでください。
- 漏えいした認証情報を更新する:CWPの管理者パスワード、SSH認証情報、データベースのパスワード、ホスティングアカウント、アプリケーションのシークレットが対象です。
- 復旧を検証する:インストール済みのバイナリ、稼働中のプロセス、ネットワーク接続を確認し、CWPdoorの既知の指標が存在しないことを確かめます。
XLabはCWPを最新バージョンにアップグレードするよう勧めています。ただし、未解明の初期侵入手段に対処するCWPの具体的なセキュリティパッチは、特定できていません。したがって、アップグレードしたからといって、攻撃者がもうアクセスできないという証明にはなりません。
管理アクセスを信頼できるネットワークに限定し、想定外の外部への通信を監視することも、リスクの低減につながります。
管理者にとって未解明の点
XLabは、初期アクセスの手法も、攻撃者の正体も、感染したサーバーの総数も特定していません。ブラジルのサンプルで見つかったEbury関連マルウェアとCWPdoorの関連についても、確認できていません。
入手できる証拠からは、CWPdoorの感染が確認された場合、深刻なサーバー侵害として扱うべきだといえます。管理者は、改ざんされたWebサーバーを取り除いて通常運用に戻すだけでは不十分です。どのようにroot権限が奪われたのかを調査する必要があります。
今回のケースでは、ログに異常がないことや、タイムスタンプが変わっていないことは、安心材料としてきわめて弱いといえます。CWPdoorは、この両方を維持したまま、攻撃者に隠れたコマンドチャネルを提供するよう設計されているからです。
関連記事: 最近発生したcPGuardのサプライチェーン攻撃では、細工されたセキュリティアップデートを通じて、約3,000台のLinuxサーバーが侵害されました。管理者は、特権アクセスや認証情報が盗まれた可能性を調査する必要に迫られています。
翻訳元: https://www.esecurityplanet.com/malware/news-cwpdoor-malware-detection-removal-linux/