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.」というメッセージが表示されます。
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 管理画面の左メニューから[ユーザー一覧]に入ります。
ユーザー一覧画面に「This is a message from the WordPress.org Plugin Review Team.」が表示されていたら、確実に不正なユーザーが追加されています。
メッセージ内に記載されているユーザーをすぐ削除してください。
ユーザーを削除すると、メッセージも消えます。
ユーザーは複数名追加されているケースもあるので、複数人で運営している場合は正規ユーザーを削除しないよう気をつけてくださいね。
メッセージが表示されていない場合、不正なユーザーを目視で確認して削除します。
02. テーマファイルが書き換えられていないかチェック
ファイル名に「functions」が含まれているテーマファイルが改ざんされている場合もあります。
メッセージが表示されていても、どのファイルが改ざんされたかまでは教えてくれません。
FTP 操作を熟知しているなら、ご利用中のテーマで functions.php
ほか、同名の文字列を含むファイルを検索してください。2024 年 6 月 28 日あたりに更新されていれば、書き換えられている可能性大です。
FTP での検索が難しい場合は、以下のマルウェアスキャンプラグインでスキャンするのがおすすめです。
【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]
スキャン後、「マルウェアのパターンと一致しました」と表示された場合、高確率でファイルが改ざんされています。
以下の対応を行いましょう。
- 利用していないテーマはすべて削除する
- 有効化しているテーマは、該当するファイルを修復する
functions.php 修復方法
不正に改ざんされるのは、以下のように「functions」がファイル名に含まれているファイルです。
- functions.php
- xxx-functions.php
- functions-xxx.php
サイトの状況に応じて修復してください。
FTP 操作できる場合
FTP で操作する場合は、改ざんされたファイルを PC にダウンロードします。
ダウンロードしたファイルをテキストエディタで開き、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」がかなり長い文字列になっており、見つけやすいと思います。
上記のコードを丸ごと削除してください。
以下は修正例の動画です。
ファイルの先頭に仕込まれているパターンもあれば、コードの途中に無理やり挿入されているパターンもありました。また、同じコードが複数追加されているケースも確認しています。
ファイルを保存後、FTP で再アップロード(上書き)して完了です。
手元に最新版のテーマファイルがある場合
手元に最新版のテーマファイルがある or 最新版をダウンロードできるなら、テーマをアップロードし直す方法でも大丈夫です。
定期的にバックアップをとっている場合は、バックアップデータにテーマファイルが含まれていると思います。そちらもご確認ください。
WordPress 管理画面[テーマ]-[新しいテーマを追加]と進み、テーマ本体(ZIP ファイル)を選択してアップロード・インストールします。
「目的のフォルダーはすでに存在しています」と表示されるのが正常な状態です。
「アップロードしたもので現在のものを置き換える」をクリックし、再インストールしましょう。
カスタマイザーなどの設定はそのまま残りますが、テーマファイルを直接編集してカスタマイズしている場合は消えてしまいます。
何らかのカスタマイズをしている場合は、FTP で該当するファイルのみ上書きしましょう。
念のためもう一度マルウェアスキャンを実行し、修復できているか確認して完了です。
修復後の対応
パスワードを変更する
あなたのパスワードは漏洩していないかもしれませんが、念のためパスワードの変更をおすすめします。
もし突破されやすいパスワードを使っていたなら、この機会に強固なものに変更しておきましょう。小文字・大文字・数字・記号を含めた 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('ad01', 'ad01Func');
修復が難しい場合は代行いたします
もしご自身での修復が難しい場合、また修復後のチェックが必要な場合、ココナラにて代行依頼を承っています。
サイト数が 10 以下であれば基本料の 3,000 円で承ります。即日対応しておりますので、お気軽にご相談くださいませ。
Q & A
その他ご不明な点がありましたら、メールまたは X( @ReinxWeb )にてお問い合わせください。