Cookie制御PHP webshellのLinux回避手法を解説
概要
Microsoftは、Linuxホスティング環境でHTTP cookieを使ってPHP webshellを制御する脅威アクターについて警告しています。この手法により、特定のcookie値が存在しない限り悪意のあるコードは休眠状態を維持し、通常のログでの可視性を低下させます。さらに、cron jobによる永続化を支援し、ホストされたLinuxワークロードに対する監視、Web保護、endpoint detectionの強化が必要であることを示しています。
はじめに
Microsoftは、Linuxホスティング環境に影響するステルス性の高いPHP webshell手法に関する新たな調査結果を公開しました。攻撃者は、明白なURLパラメーターやリクエスト本文ではなく、HTTP cookieを悪意ある実行のトリガーおよび制御チャネルとして使用しています。これにより、通常のWebトラフィックやアプリケーションログでは、これらのwebshellを発見しにくくなります。
LinuxでホストされたWebアプリを管理するセキュリティチームや管理者にとって、これは重要です。この手法により、低ノイズな永続化、遅延起動、そして侵害後のより巧妙なアクセス維持が可能になるためです。
新たに判明した点
Microsoftは、いずれもcookieで制御される実行に依存する複数のPHP webshell亜種を確認しました。
- Cookie制御の起動: 攻撃者が特定のcookie値を送信しない限り、webshellは非アクティブのままです。
- 多層的な難読化: 一部の亜種は、静的検知を回避するために、PHP関数と実行ロジックを実行時に動的に再構築します。
- ペイロードの段階的展開: 複数のサンプルは、必要なcookie条件が満たされた場合にのみ、二次ペイロードを再構築してディスクに書き込みます。
- 対話型webshellの挙動: より単純な亜種では、単一のcookieをキーとして使用し、コマンド実行またはファイルアップロードを有効にします。
- Cronベースの永続化: ある調査事例では、攻撃者は正規のホスティング制御パネルのワークフローを利用し、悪意あるPHPローダーが削除された場合に再作成するscheduled taskを登録していました。
なぜ検知が難しいのか
Cookieは、リクエストパス、query string、POST本文よりも精査されにくい傾向があります。PHPでは、cookie値に $_COOKIE を通じて直接アクセスできるため、攻撃者にとって便利な入力チャネルになります。これに難読化と段階的なペイロード展開が組み合わさることで、悪意あるファイルは通常トラフィックでは無害に見え、攻撃者が意図的に操作したときだけ有効化されます。
管理者と防御側への影響
IT管理者とセキュリティ管理者にとっての主要なリスクは、root権限がなくても、侵害されたホスティングアカウント内で永続的なremote code executionが可能になることです。共有ホスティングや制限付きshell環境でも、攻撃者は次のような操作に十分な権限を持っている可能性があります。
- Webコンテンツの改ざん
- PHPローダーの展開
- Cron jobを通じた削除済みマルウェアの再作成
- 最小限のログ痕跡での長期アクセス維持
特に、クリーンアップ後にscheduled taskがwebshellを復元する「自己修復型」の仕組みがある場合、対処はさらに複雑になります。
推奨される次のステップ
管理者はMicrosoftのガイダンスを確認し、次の対応を優先すべきです。
- 不審な難読化スクリプトがないか、PHPアプリケーションとWebルートを監査する
- 未承認の永続化メカニズムがないか、scheduled taskとCron jobを確認する
- 異常なサーバー側実行に関連するcookieパターンを監視する
- Microsoft Defender XDRの検知とthreat analyticsを有効化し、調査する
- 二次ペイロードを書き込む、または取り込むWebアクセス可能なPHPファイルを探索する
- Linuxホスティング環境でファイル整合性監視と権限設定を強化する
インターネット公開されたPHPワークロードを運用する組織は、incident response playbookにCron永続化の確認、cookieベースのwebshellハンティング、そしてクリーンアップ後の追跡検証も含めるべきです。
Microsoftテクノロジーの最新情報を入手