はじめに
近年、Linux ホスティング環境において、HTTP Cookie を悪用して PHP ベースの Web Shell を制御する高度なステルス手法が増加しています。
従来の攻撃のように URL パラメータやリクエストボディに悪意のあるコマンドを含めるのではなく、特定の Cookie 値をトリガーとして実行を制御するため、通常の Web トラフィックに紛れ込みやすく、従来のシグネチャベースの検知をすり抜ける傾向があります。
参考: Cookie-controlled PHP webshells
A stealthy tradecraft in Linux hosting environments “Threat actors are increasingly abusing HTTP cookies as a control channel for PHP-based webshells on Linux servers. Instead of exposing command execution through URL parameters or request bodies, these webshells rely on threat actor-supplied cookie values to gate execution, pass instructions, and activate malicious functionality.”
(脅威アクターは、Linux サーバー上の PHP ベースの Web Shell の制御チャネルとして、HTTP Cookie を悪用するケースを増やしています。これらの Web Shell は、URL パラメータやリクエストボディを介してコマンド実行を公開するのではなく、脅威アクターが提供する Cookie 値に依存して、実行を制御し、命令を渡し、悪意のある機能をアクティブにします。)
https://www.microsoft.com/en-us/security/blog/2026/04/02/cookie-controlled-php-webshells-tradecraft-linux-hosting-environments/
本記事では、この Cookie 制御型 Web Shell の巧妙な難読化と Cron を用いた永続化のメカニズムを解説し、Linux サーバー上での侵害調査手順、および Azure や FortiGate などのセキュリティ製品を活用した多層防御のアプローチについて整理します。
- HTTP Cookie をトリガーとする実行制御と難読化の仕組み
- Cron ジョブを利用した Web Shell の自己修復(永続化)手法
- Linux サーバー上で確認すべきプロセス履歴や異常ファイルの監査ポイント
- FortiGate WAF および Azure Defender for Cloud による多層防御アーキテクチャ
お時間がない方向けに、 2 分の音声で要点をサクッと解説しています。
※解説はブログ記事をもとに AI で生成しています。
Cookie 制御型 PHP Web Shell のステルス手法と Cron 永続化
この攻撃の最大の特徴は、単一の脆弱性エクスプロイトに依存するのではなく、アクセスを長期的に維持するための「隠蔽」と「永続化」がシステムに深く組み込まれている点です。
HTTP Cookie をトリガーとする実行制御と段階的な難読化
今回報告された PHP Web Shell は、通常のアクセス時には休眠状態(Dormant)を保ち、無害なファイルのように振る舞います。しかし、攻撃者が特定の条件を満たした HTTP Cookie を送信した瞬間にのみアクティブ化し、悪意のあるコードを展開します。
PHP では $_COOKIE などのスーパーグローバル変数を介して実行時に Cookie 値を即座に利用できるため、コード内で複雑なパース処理を行う必要がありません。さらに、実行されるコア機能は Base64 等でエンコードされており、実行時に文字単位で動的に再構築される(難読化されている)ため、静的なファイルスキャンによる検出を回避する設計になっています。
制限付きシェル(jailshell 等)と Cron ジョブを悪用した自己修復メカニズム
攻撃者は一度侵入に成功すると、ホスティング環境のアカウント権限(cPanel の jailshell など)を悪用し、正規の管理パスを利用して Cron ジョブを登録します。
参考: Cookie-controlled PHP webshells
A stealthy tradecraft in Linux hosting environments “As illustrated in the diagram, the cron job executed at regular intervals and invoked a shell routine that reconstructed an obfuscated PHP loader into a web-accessible location. This behavior was intentionally implemented to maintain persistence. If the loader was removed, the scheduled task recreated it on the next execution cycle.”
(図に示されているように、cron ジョブは定期的に実行され、難読化された PHP ローダーを Web アクセス可能な場所に再構築するシェルルーチンを呼び出しました。この動作は、永続性を維持するために意図的に実装されました。ローダーが削除された場合、スケジュールされたタスクは次の実行サイクルでローダーを再作成します。)
https://www.microsoft.com/en-us/security/blog/2026/04/02/cookie-controlled-php-webshells-tradecraft-linux-hosting-environments/
この Cron ジョブは、数分おきに実行される「自己修復(Self-healing)」メカニズムとして機能します。インシデント対応で管理者が Web ディレクトリ内の不正な PHP ファイルを見つけて削除したとしても、次の Cron サイクルで自動的に再作成されてしまうため、表面的なファイル駆除だけでは対応が不十分となるケースが多く見受けられます。

Linux サーバーにおける Web Shell の検出と侵害調査手順
Web Shell の存在を特定し、システムから完全に駆除するためには、表面的な不審ファイルの削除にとどまらず、深部に潜む永続化メカニズムを監査することが重要です。
不審な Cron エントリと 1 分間隔のスケジュールタスクの監査
攻撃者は、ファイルが削除されても即座に復活できるように Linux の Cron 機能を悪用します。各ユーザー権限(特に Web サーバーの実行ユーザー)で設定されている Cron ジョブを定期的に監査することをおすすめします。 具体的には、crontab -l や /var/spool/cron/ 配下のファイルを確認し、1 分間隔(* * * * *)で実行される異常に短いタスクや、難読化されたコマンドが含まれていないかを確認することが推奨されます。
参考: Cookie-controlled PHP webshells
A stealthy tradecraft in Linux hosting environments “Advanced Hunting can be used to identify cron‑initiated execution patterns, including unusually short execution intervals (for example, recurring one‑minute jobs) and command lines associated with file creation, script execution, encoding utilities, or file ingress tools.” (Advanced Hunting は、異常に短い実行間隔(たとえば、1 分間隔で繰り返されるジョブ)や、ファイル作成、スクリプト実行、エンコードユーティリティ、またはファイル入力ツールに関連するコマンドラインなど、cron によって開始される実行パターンを特定するために使用できます。)
https://www.microsoft.com/en-us/security/blog/2026/04/02/cookie-controlled-php-webshells-tradecraft-linux-hosting-environments/
プロセス実行履歴(base64 等)と Web ディレクトリ内の異常なファイル監視
Web Shell の展開や実行時には、特徴的なプロセスが生成される傾向があります。php-fpm や nginx、apache2 といった Web サーバーのプロセスが、突然 bash や sh などのシェルインタープリタを起動していないか監視することが検知に役立ちます。 また、難読化されたペイロードを復元するための base64 -d コマンドや、外部からスクリプトを引き込む curl や wget コマンドが Web 実行コンテキストから呼び出されていないかを、プロセス監視ツールや監査ログ(auditd 等)で調査することを強く推奨します。
PHP および Web サーバーの堅牢化(Hardening)アプローチ
事後対応の迅速化に加えて、インフラストラクチャのレベルで Web Shell が動作しにくい環境を構築する(堅牢化する)ことも、被害の防止につながります。
php-fpm 等の Web プロセスからのシェル実行制限
PHP アプリケーションが OS のコマンドを直接実行する必要がない場合、php.ini の disable_functions ディレクティブを活用して、危険な機能を無効化することを推奨します。 例えば、exec、shell_exec、system、passthru などの OS コマンド呼び出し関数を制限することで、万が一 Web Shell が設置された場合でも、攻撃者がシステムを自由に操作できるリスクを大幅に軽減できます。
不要な PHP 関数の無効化とディレクトリ権限の最小化設計
Web ディレクトリのパーミッション設定を見直し、Web プロセス(www-data など)が書き込み可能なディレクトリを必要最小限(画像アップロード先など)に制限することをおすすめします。 さらに、書き込みが許可されたディレクトリでは、Web サーバー(Nginx や Apache)の設定で PHP スクリプトの実行を明示的に禁止するアーキテクチャ設計にすることが、Web Shell による被害拡大の防止につながります。
FortiGate WAF と Azure Defender for Cloud を活用した多層防御
OS やミドルウェアの堅牢化に加えて、ネットワークとクラウドインフラのレイヤーでセキュリティ製品を組み合わせる多層防御(Defense in Depth)を構築することが、未知の Web Shell 攻撃に対する防御力の向上につながります。
FortiGate WAF による不審な Cookie ペイロードの検知とアクセス制御
今回の攻撃は HTTP Cookie を制御チャネルとして悪用するため、エンドポイントでのファイル検知に加えて、ネットワーク境界でのトラフィック検査が非常に有効です。 FortiGate などのファイアウォールに搭載されている WAF(Web Application Firewall)機能を有効化し、不正な PHP 関数の呼び出しや、異常に長い、あるいは Base64 エンコードされた不審な Cookie ペイロードをシグネチャベースで検知・ブロックするよう設定することをおすすめします。 また、管理画面(cPanel など)に対するアクセスを、FortiGate の機能を用いて特定の IP アドレスや自社の拠点からのみに制限することで、攻撃者が Cron ジョブを仕込むための初期侵入経路を絶つことが推奨されます。
Azure Defender for Cloud を用いた不審なプロセスと Web Shell の振る舞い検知
Azure 上で Linux サーバーを稼働させている場合、Azure Defender for Cloud(Microsoft Defender for Servers)などのクラウドネイティブなセキュリティソリューションを活用することが推奨されます。
参考: Cookie-controlled PHP webshells
A stealthy tradecraft in Linux hosting environments “Enable cloud-delivered protection in Microsoft Defender for Endpoint on Linux or the equivalent capability in your antivirus solution. Cloud-based protection helps rapidly detect and block emerging attacker tools, including newly deployed PHP webshells and post-compromise scripts that may evade traditional signature-based detection.”
(Linux 上の Microsoft Defender for Endpoint、またはウイルス対策ソリューションの同等の機能で、クラウド提供の保護を有効にします。クラウドベースの保護は、従来のシグネチャベースの検出を回避する可能性のある、新たに展開された PHP Web Shell や侵害後のスクリプトを含む、新たに出現する攻撃者のツールを迅速に検出してブロックするのに役立ちます。)
https://www.microsoft.com/en-us/security/blog/2026/04/02/cookie-controlled-php-webshells-tradecraft-linux-hosting-environments/
Azure Defender for Cloud を有効化することで、Web サーバーのプロセス(apache2 や nginx)が予期せぬ子プロセス(シェルコマンド等)を生成した際の異常な振る舞いや、Web ディレクトリ内での不審なファイル作成を機械学習ベースで高精度に検知することが可能になります。EDR(Endpoint Detection and Response)機能を併用し、クラウドベースの脅威インテリジェンスと連携させることで、被害を最小限に食い止める運用体制の構築をおすすめします。
まとめ
本記事では、Linux ホスティング環境で増加している Cookie 制御型 Web Shell の脅威と、インフラ層での防御策について解説しました。
- HTTP Cookie をトリガーとする Web Shell は、通常のトラフィックに紛れやすく検知が困難である。
- 制限付きシェルから Cron ジョブを登録し、Web Shell を自動復元する自己修復メカニズムを持つ。
- 1 分間隔の不審な Cron エントリや、Web プロセスからのシェル実行履歴を監査することが推奨される。
- 不要な PHP 関数の無効化や、ディレクトリの権限を最小化する設定見直しが被害防止につながる。
- FortiGate WAF や Azure Defender for Cloud を組み合わせた多層防御の構築が推奨される。
以上、最後までお読みいただきありがとうございました。
