ワードプレスでクッキーに不正なコードを埋め込むマルウェアについて解説いたします。
ハッカーが不正なコードをサーバーに送信する方法は$_POSTや$_GETだけではなくなってきています
一般的にサーバーに情報を送信する方法は、$_POSTや$_GET関数となります。
※$_POSTでデータをサーバー側で受け取るサンプルコードは下記のようになります。
$data = $_POST['data'];
ただ、昨今のマルウェアの一部では$_COOKIE関数を利用して不正なコードをサーバーに送信するものが現れています。
$_COOKIE関数はページを超えて値を保持できるスーパーグローバル関数と呼ばれる特殊な関数で、本来ECサイト等でユーザーの一時的なカートのデータなどをブラウザ側に保持する目的のものですが任意のデータを$_COOKIEに書き込んでサーバー側でそれを読み込んで実行させることも可能です。
こういったCOOKIEを不正なデータ送信方法として利用するマルウェアは下図のような構造になっています。
まずマルウェアコードが送信データに存在するか$_COOKIE[36+-35] を調べています。
※[36+-35] 等となっているのは、マルウェアの検出を避ける為です。
もし$_COOKIE[36+-35]にマルウェアのコードが合ったら、fputs(でそのコードを書き出し、サーバーのメモリに常駐させ、最後にunlink’ でそのマルウェアの物理ファイルを消すような処理も実装されています。
なぜハッカーは$_COOKIE経由で不正なコードを送信するのか?$_COOKIE経由のサーバー側での実行を停止させるには?
ハッカーがCOOKIE経由で不正なコードを送信する理由は、$_POSTや$_GETの送信データの検査をすりぬけて、不正なコードを確実にサーバー側で実行させるためかと思われます。
このようなCOOKIE経由の不正なコードの実行を停止するには、サーバー側にそれを受信して悪意ある活動を行うバックドアプログラムを検出削除する必要がございます。
こういった不正なバックドアは、【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除] で検出駆除可能です。
ただプラグインでは新しいマルウェアはまだ検出パターン化されていないなど検出に限界がある場合もあります。
この場合早めに専門家にマルウェア駆除をご依頼いただくこともお勧めいたします。