Ad Invalid Click Protector でファイルが改ざんされたときの修復方法

アドセンス狩り対策の 1 つとして紹介されることの多い、WordPress プラグイン「Ad Invalid Click Protector」に脆弱性が発見されました(2024 年 6 月)。

インストールしているだけで次の症状が発生する可能性があります。

  • 管理者権限のユーザーが勝手に追加され、そのパスワードが外部に送信される
  • functions という文字列が含まれたテーマファイルが不正に改ざんされる

プラグインをご利用されている場合は、今すぐチェックと修復をおすすめします。

2024 年 7 月 3 日に最新バージョン 1.3.0 がリリースされました。

最新バージョンに更新しても、不正に追加されたユーザーの削除などは自分で行う必要があります。

改ざんチェック・修復手順

Ad Invalid Click Protector によるユーザー不正追加、またはファイル改ざんが行われた場合、管理画面に「This is a message from the WordPress.org Plugin Review Team.」というメッセージが表示されます。

WordPress.org レビューチームからのメッセージ

This is a message from the WordPress.org Plugin Review Team.

The community has reported that the “Ad Invalid Click Protector (AICP)” plugin has been compromised. We have investigated and can confirm that this plugin, in a recent update (version 1.2.9), created users with administrative privileges and sent their passwords to a third party.

Since this could be a serious security issue, we took over this plugin, removed the code that performs such actions and automatically reset passwords for users created on this site by that code.

As the users created in this process were found on this site, we are showing you this message, please be aware that this site may have been compromised.

It may also have added an obfuscated script to the functions.php file of your themes with the function name “add_footer_script”. This has not been removed automatically and will require manual removal.

We would like to thank to the community for for their quick response in reporting this issue.

To remove this message, you can remove the users with the login names xxx .

※ xxx はランダムなユーザー名

以下はメッセージを要約したものです。

  • Ad Invalid Click Protector に脆弱性が見つかったので修正しました。
  • あなたのサイトにユーザーが不正に追加されましたが、ログインできないようパスワードはリセットしました。
  • ユーザーを削除するとこのメッセージが消えます。
  • テーマファイルが書き換えられている可能性があり、手動で削除する必要があります。

上記メッセージは、バージョン 1.2.9 でのみ表示されます。

それ以外のバージョンでは表示されないため、プラグインをインストールしていたならメッセージの有無に関わらず、すぐにユーザーとテーマファイルをチェックしましょう。

01. ユーザーが不正に追加されていないかチェック

WordPress 管理画面の左メニューから[ユーザー一覧]に入ります。

WordPress ユーザー一覧

ユーザー一覧画面に「This is a message from the WordPress.org Plugin Review Team.」が表示されていたら、確実に不正なユーザーが追加されています。

メッセージ内に記載されているユーザーをすぐ削除してください。

不正なユーザーが追加されている例
※ ユーザー名はランダムに付けられるようです

ユーザーを削除すると、メッセージも消えます。

ユーザーは複数名追加されているケースもあるので、複数人で運営している場合は正規ユーザーを削除しないよう気をつけてくださいね。

メッセージが表示されていない場合、不正なユーザーを目視で確認して削除します。

02. テーマファイルが書き換えられていないかチェック

ファイル名に「functions」が含まれているテーマファイルが改ざんされている場合もあります。

メッセージが表示されていても、どのファイルが改ざんされたかまでは教えてくれません。

FTP 操作を熟知しているなら、ご利用中のテーマで functions.php ほか、同名の文字列を含むファイルを検索してください。2024 年 6 月 28 日あたりに更新されていれば、書き換えられている可能性大です。

改ざんされたfunctions.php

FTP での検索が難しい場合は、以下のマルウェアスキャンプラグインでスキャンするのがおすすめです。

【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]

スキャン後、「マルウェアのパターンと一致しました」と表示された場合、高確率でファイルが改ざんされています。

ワードプレスドクター スキャン結果

以下の対応を行いましょう。

  • 利用していないテーマはすべて削除する
  • 有効化しているテーマは、該当するファイルを修復する
WordPress 使用していないテーマを削除

functions.php 修復方法

不正に改ざんされるのは、以下のように「functions」がファイル名に含まれているファイルです。

  • functions.php
  • xxx-functions.php
  • functions-xxx.php

サイトの状況に応じて修復してください。

FTP 操作できる場合

FTP で操作する場合は、改ざんされたファイルを PC にダウンロードします。

FTPでfunctions.phpをダウンロード

ダウンロードしたファイルをテキストエディタで開き、add_footer_script という文字列を検索(Word などの文書作成ソフトでは編集できません)。

不正に追加されるコードは、以下のパターンになっています。

if (!function_exists('add_footer_script')) {
function add_footer_script() {
	update_option('my_admin_init_function_run', 'yes');
	echo '<script>eval("xxx");</script>';
}
$has_run = get_option('my_admin_init_function_run');
if ($has_run !== 'yes') {
	add_action('wp_footer', 'add_footer_script');
}
}

実際のコードは 4 行目の「xxx」がかなり長い文字列になっており、見つけやすいと思います。

実際に改ざんされていたfunctions.php
実際に改ざんされていたファイル例

上記のコードを丸ごと削除してください。

以下は修正例の動画です。

ファイルの先頭に仕込まれているパターンもあれば、コードの途中に無理やり挿入されているパターンもありました。また、同じコードが複数追加されているケースも確認しています。

ファイルを保存後、FTP で再アップロード(上書き)して完了です。

手元に最新版のテーマファイルがある場合

手元に最新版のテーマファイルがある or 最新版をダウンロードできるなら、テーマをアップロードし直す方法でも大丈夫です。

定期的にバックアップをとっている場合は、バックアップデータにテーマファイルが含まれていると思います。そちらもご確認ください。

WordPress バックアップ方法と最適なデータ保管方法

WordPress 管理画面[テーマ]-[新しいテーマを追加]と進み、テーマ本体(ZIP ファイル)を選択してアップロード・インストールします。

WordPressテーマアップロード画面

「目的のフォルダーはすでに存在しています」と表示されるのが正常な状態です。

「アップロードしたもので現在のものを置き換える」をクリックし、再インストールしましょう。

アップロードしたもので現在のものを置き換える

カスタマイザーなどの設定はそのまま残りますが、テーマファイルを直接編集してカスタマイズしている場合は消えてしまいます。

何らかのカスタマイズをしている場合は、FTP で該当するファイルのみ上書きしましょう。

念のためもう一度マルウェアスキャンを実行し、修復できているか確認して完了です。

このサイトにマルウェアは見つかりませんでした

修復後の対応

パスワードを変更する

あなたのパスワードは漏洩していないかもしれませんが、念のためパスワードの変更をおすすめします。

もし突破されやすいパスワードを使っていたなら、この機会に強固なものに変更しておきましょう。小文字・大文字・数字・記号を含めた 10 文字以上のパスワードがおすすめです。

その他セキュリティ面の強化策は以下の記事で解説しています。

WordPress のセキュリティを強化する方法 10 選

Ad Invalid Click Protector を削除する

プラグイン「Ad Invalid Click Protector」の脆弱性は最新版で修正されていますが、実のところアドセンス狩り対策としてはほとんど効果がないため、削除してしまったほうがよいと思います。

効果がない理由は以下の記事で解説していますので、合わせてご覧ください。

無効なトラフィックにより AdSense 広告配信が制限されたときの対処法

どうしてもプラグインを残しておきたい理由があるなら、2024 年 7 月 3 日(日本時間)にリリースされた最新バージョン 1.3.0 にアップデートしてください。

最新版ではセキュリティ面が強化されているようです。

Ad Invalid Click Protector 削除でエラーが出た場合

「Ad Invalid Click Protector」をきちんと動作させるためにショートコードを作成していた場合、プラグインを無効化または削除するとエラーが出るかもしれません。

たとえば、以下のようなコードが functions.php や Code Snippets で書かれていた場合ですね。

function ad01Func() {
    if (aicp_can_see_ads()) {
        $adCode = '
        <div class="aicp">
            <!-- ここに AdSense のコード -->
        </div>';
        return $adCode;
    } else {
        return '
        <div class="error">広告の表示がブロックされています。</div>';
    }
}
add_shortcode('ad01', 'ad01Func');

プラグインを削除するなら、以下のように変更すれば大丈夫です。

function ad01Func() {
    return 'ここにアドセンスのコード';
}

add_shortcode('adsense', 'ad01Func');

Code Snippets の使い方

修復が難しい場合は代行いたします

もしご自身での修復が難しい場合、また修復後のチェックが必要な場合、ココナラにて代行依頼を承っています。

WordPress エラー・不具合修正代行サービス(ココナラ)

サイト数が 10 以下であれば基本料の 3,000 円で承ります。即日対応しておりますので、お気軽にご相談くださいませ。

Q & A

Q

Ad Invalid Click Protector をインストールしたままでも大丈夫?

A

インストールしたままでも当面は問題ありませんが、今後更新されていくかは不明です。

もし「なんとなく」で導入したのであれば削除をおすすめします。

Q

不正なユーザー・ファイル改ざんを放置するとどうなりますか?

A

不正に追加されたユーザーのパスワードは変更されていますが、残しておくのは危険なのですぐに削除したほうがよいです。

改ざんされたファイルに仕込まれているコードは、外部から何らかのプログラムを実行するものと思われます。放置しておくと第三者に悪用されて、さらに悪化する可能性があります。

同じサーバー内で運用している他のサイトも改ざんされるおそれがあり、サイトにアクセスした方にも何らかの影響を及ぼすかもしれません。

Q

マルウェアスキャンを実行すると、テーマ以外も書き換えられていました

A

Ad Invalid Click Protector とは関係なく、以前から別経路で侵入されてファイルが改ざんされていたのかもしれません。

放置しておくとサイトが閲覧できくなる可能性がありますので、早急に修復をおすすめします。

【事例公開】 WordPress がハッキングされたときの復旧方法

その他ご不明な点がありましたら、メールまたは X( @ReinxWeb )にてお問い合わせください。

変更履歴

2024.07.07

Ad Invalid Click Protector 削除時にエラーが出る場合のショートコード修正例を追記しました。

2024.07.03

プラグイン最新バージョン 1.3.0 公開の旨を追記しました。

2024.07.02

functions.php 修正動画を追加しました。

2024.07.01

マルウェアスキャンの画像を追加しました。

2024.06.30

functions.php の修復方法を具体的に書き直しました。

Author

SEO コンサルティング業務を中心に、サイト制作・コンテンツ販売・メディア運営代行業務を行っています。当サイト(Naifix)では、おもにブログ初心者向けのノウハウを配信。
ココナラでは WordPress エラー修正やハッキング修復、Search Console 分析サービスをご提供しています。