変数関数とCookieを悪用するステルス型マルウェア、検出を回避

概要:巧妙な難読化で検出を逃れるマルウェア

Wordfence Threat Intelligenceのサイバーセキュリティ研究者たちは、検出を回避するために高度な難読化技術を利用する新たなマルウェアの傾向を観測しています。このマルウェアは、変数関数とCookie操作を通じて巧妙な難読化を行い、その真の意図を隠蔽します。

マルウェアのメカニズム:PHP変数関数とCookieの悪用

このマルウェアの主要な特徴の一つは、PHPの変数関数の利用です。PHPでは、変数の値によって関数名を指定し、実行することが可能です。攻撃者はこの機能を悪用し、例えば「eval」や「base64_decode」といった関数名を変数に格納し、ユーザー入力のペイロードと共に動的に呼び出すことで、サーバー上で任意のコードを実行します。

さらに、Cookieも攻撃に利用されます。通常、ユーザー設定やセッション情報の保存に使われるCookieが、悪意のあるスクリプトのエンコードされた断片や関数名を運ぶために武器化されます。マルウェアは特定のCookieをチェックし、それらを連結、デコードして動的に関数名やコードを再構築し、実行します。この多層的な難読化は、従来のセキュリティスキャナーを混乱させ、マルウェアの意図を隠します。

マルウェアサンプルの詳細分析

  • 11個のCookieを要求するマルウェア:あるマルウェアは、正確に11個のCookieを必要とし、それらを用いて関数名と実行可能なコードセグメントを組み立てます。例えば、「base64_」と「decode」を含むCookie値を連結して「base64_decode」という関数名を生成し、さらにCookieデータからデコードされた関数名やコードスニペットを実行します。
  • 数学的条件とstr_replaceの利用:別のサンプルでは、特定のCookieが存在し、数学的条件を満たす場合にのみ実行されるブール条件を使用します。難読化された文字列を「base64_decode」のような実際の関数名に変換するためにstr_replaceを使用し、Cookieからエンコードされたペイロードを逆シリアル化して、攻撃者が制御するファイルのインクルードを含む任意の操作を実行する悪意のある関数と引数の配列を作成します。
  • 22個のCookieと匿名関数の実行:3番目の例では、22個のCookieの数チェックと「array22」を含むCookieの検索を組み合わせます。連鎖的な変数関数呼び出しと連結を通じて、匿名関数を構築し実行します。この三項演算子ベースの難読化された制御フローは、分析と検出の複雑さを増します。

悪意のあるスクリプトの検出戦略

2025年9月には、Wordfenceが開発したこれらの技術を検出するマルウェアシグネチャが30,000件以上の検出を記録しました。難読化されているにもかかわらず、マルウェアには検出に役立つ識別可能なパターンが存在します。これらには、高密度で短い難読化されたコード、配列ルックアップの過剰な使用、連結、$_COOKIEのようなスーパーグローバルへのペイロードの依存、複雑な変数関数呼び出しなどが含まれます。

人間が書いたコードやAI生成されたプログラムは、デバッグや可読性を妨げるため、このような高密度の難読化を避ける傾向があります。従来のシグネチャベースの検出は、マルウェアの変異によって困難になる可能性がありますが、これらの異常なコーディングパターンに焦点を当てた行動的およびヒューリスティックな検出がそのギャップを埋めるのに役立ちます。Wordfenceのプレミアムマルウェアシグネチャは、これらの特徴を標的とすることで、既知の変種の99%以上を検出します。

結論:継続的な警戒とコミュニティの協力

変数関数とCookie操作を組み合わせた難読化は、効果的なマルウェア回避手法として確立されています。これらの戦術は以前から観測されていましたが、進化と増殖を続けており、セキュリティチームには継続的な警戒が求められます。本記事で議論された戦術を理解し、特徴的なパターンを認識し、専門的な検出シグネチャとクリーンアップサービスを採用することで、ウェブ管理者はこれらの隠れた脅威によるリスクを大幅に軽減できます。

新たなマルウェアや検出を回避する変種を発見した場合は、サンプルを共有することで脅威インテリジェンスチームと協力し、広範なコミュニティを新たな攻撃から保護することが重要です。ますます高度化するマルウェアとの戦いは、継続的な研究、積極的な防御、そしてコミュニティの協力にかかっています。


元記事: https://gbhackers.com/stealthy-malware/