2026年9月9日
2026年9月9日
WordPressのソーシャルエンジニアリング対策|偽メール・なりすまし依頼から管理画面を守る方法
ソーシャルエンジニアリングは、システムの脆弱性ではなく人の判断のすきを突いて、ログイン情報を聞き出したり、不正なプラグインを入れさせたりする手口です。WordPressでは「偽の更新通知」「サポートを名乗るアカウント要求」「ドメインやサーバーの期限切れ通知」が典型で、技術的な対策だけでは防ぎきれません。この記事では、よくある手口の見分け方と、だまされても被害が広がらないようにするWordPress側の設定、異変に早く気づくための通知の仕組みを解説します。
WordPressサイトが狙われる典型的な手口
偽のセキュリティ警告と「修正用プラグイン」
WordPressのセキュリティチームや有名なセキュリティ企業を名乗り、「あなたのサイトに脆弱性が見つかった。このパッチをインストールしてほしい」と、プラグインのダウンロードリンクを送ってくる手口が報告されています。中身は管理者アカウントを追加するバックドアで、インストールした時点で乗っ取られます。
WordPress本体の更新は管理画面の更新機能か公式の配布元から行うもので、メールで送られてきたファイルを入れる必要はありません。「メールで届いたプラグインは入れない」を運用ルールとして明文化しておくと判断がぶれません。
サポートや制作会社を名乗るアカウント要求
「プラグインの不具合を調査したいので管理者アカウントを発行してほしい」「保守作業のためパスワードを教えてほしい」といった依頼です。過去にやり取りした業者の名前をかたる場合や、問い合わせフォームから送ってくる場合もあります。
対策は、依頼が来た経路とは別の手段で確認することです。メールで依頼が来たら、以前から知っている電話番号や契約書に書かれた窓口に問い合わせます。依頼メールに書かれた連絡先に確認しても意味がありません。
ドメイン・サーバー・決済の期限切れ通知
「ドメインの有効期限が切れます」「サーバー料金の支払いに失敗しました」と、偽のログイン画面に誘導してアカウント情報やカード情報を入力させる手口です。WordPressの管理画面に似せたログイン画面を使う例もあります。
メール内のリンクからはログインせず、ブックマークや自分で入力したURLから管理画面や契約先のサイトを開く、という習慣で多くを防げます。
社内のなりすまし
上司や同僚を名乗って「急ぎで記事を差し替えて」「このユーザーを管理者にして」と頼む手口もあります。チャットツールのアカウントが乗っ取られている場合、文面だけでは見分けられません。権限の変更や大きな変更は、依頼者本人に別の手段で確認する決まりにしておきます。
だまされても被害が広がらない設定
人の判断は、どれだけ研修しても誤ることがあります。そこで、ログイン情報が漏れたり、誤ってアカウントを渡したりしても被害が限定される設定を重ねておきます。
二要素認証を有効にする
パスワードを聞き出されても、二要素認証が有効なら、それだけではログインできません。少なくとも管理者と編集者には、二要素認証の利用を求めます。ただし、偽のログイン画面で認証コードまで入力させて中継する手口もあるため、二要素認証があってもメール内のリンクからログインしない習慣は変わらず大切です。
管理者の数を絞り、権限を分ける
管理者アカウントが多いほど、どれか1つがだまされる可能性が上がります。記事を書く人には「投稿者」や「編集者」を割り当て、管理者は運用責任者だけに絞ります。
外部の業者に作業を頼むときは、共有の管理者アカウントのパスワードを教えるのではなく、その業者専用のアカウントを作業期間だけ発行します。作業が終わったら削除し、作成者の記事は他のユーザーに引き継ぎます。誰がいつ何をしたかを後から追えることも、専用アカウントにする理由です。
管理画面からプラグインを入れられないようにする
偽の「修正用プラグイン」の被害を防ぐには、wp-config.php で管理画面からのファイル変更を止める方法があります。
// 管理画面のテーマ・プラグインのファイルエディターを無効にする
define( 'DISALLOW_FILE_EDIT', true );
// プラグイン・テーマのインストールと更新、本体の更新も管理画面から行えなくする
define( 'DISALLOW_FILE_MODS', true );
DISALLOW_FILE_MODS を有効にすると、管理画面からプラグインの追加も更新もできなくなります。更新をWP-CLIやデプロイの仕組みで行う体制がある場合に向いた設定で、そうでなければ更新が止まって別のリスクが生まれます。まずは DISALLOW_FILE_EDIT だけを入れ、運用体制に応じて検討してください。wp-config.php を編集する前には、ファイルのバックアップを取ります。
管理者メールアドレスの変更確認を活かす
WordPressでは、「設定」→「一般」の管理者メールアドレスを変更すると、新しいアドレスに確認メールが送られ、承認されるまで切り替わりません。ユーザーが自分のプロフィールのメールアドレスを変えた場合も、同様の確認が行われます。身に覚えのない確認メールや通知が届いたら、乗っ取りや不正操作の兆候として扱い、すぐに状況を確認する決まりにしておきます。
異変に早く気づくための通知
だまされたことに本人が気づかないケースもあります。管理者ユーザーが増えたときに通知が届くようにしておくと、バックドア型の偽プラグインやなりすまし依頼による不正な権限変更に早く気づけます。
次のコードは、ユーザーの権限グループが「管理者」に設定されたときに、サイトの管理者メールアドレスへ通知するものです。wp-content/mu-plugins/ に置くと、管理画面から停止されにくくなります。
<?php
/**
* Plugin Name: Admin Role Alert
* Description: ユーザーが管理者権限になったときにメールで通知する
*/
add_action( 'set_user_role', function ( $user_id, $role, $old_roles ) {
if ( 'administrator' !== $role ) {
return;
}
$user = get_userdata( $user_id );
if ( ! $user ) {
return;
}
$actor = wp_get_current_user();
$actor_name = $actor->exists() ? $actor->user_login : '(不明・CLIや自動処理の可能性)';
$message = sprintf(
"管理者権限が付与されました。\n\nユーザー: %s (ID: %d)\nメール: %s\n変更前の権限: %s\n操作したユーザー: %s\n日時: %s\n\n心当たりがない場合は、すぐにユーザー一覧を確認してください。",
$user->user_login,
$user_id,
$user->user_email,
$old_roles ? implode( ', ', $old_roles ) : '(新規作成)',
$actor_name,
wp_date( 'Y-m-d H:i:s' )
);
wp_mail(
get_option( 'admin_email' ),
'[' . wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ) . '] 管理者権限の付与を検知しました',
$message
);
}, 10, 3 );
set_user_role は、既存ユーザーの権限変更だけでなく、新規ユーザーが作成されて権限が設定されたときにも実行されます。ただし、データベースを直接書き換えて管理者を追加する攻撃では、このフックは動きません。通知の仕組みとは別に、定期的にユーザー一覧を確認します。
# 管理者権限を持つユーザーを一覧表示
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
通知が届かないときは、サーバーからのメール送信が迷惑メール扱いになっていないかを確認してください。SMTPプラグインなどで送信元を整えておくと、届きやすくなります。
だまされたと気づいたときの初動
「リンクを押してパスワードを入力してしまった」「言われるままプラグインを入れてしまった」と気づいたら、次の順で対応します。
- 該当アカウントのパスワードを変更し、
wp user session destroy ユーザー名 --allなどでログイン中のセッションを切る - ユーザー一覧を確認し、見覚えのないアカウントを削除する(削除前に、念のためデータベースのバックアップを取る)
- 入れてしまったプラグインを削除し、他に不審なファイルが残っていないか確認する
- 必要に応じて
wp-config.phpの認証用キーとソルトを新しい値に変え、全ユーザーを強制的にログアウトさせる - 被害の範囲が分からない場合は、侵入前のバックアップからの復旧を検討する
報告が遅れるほど被害は広がります。チーム内では「だまされたことを責めない、すぐ報告した人を評価する」方針を共有しておくことが、技術的な設定と同じくらい効果のある対策です。
まとめ
- WordPressでは、偽のセキュリティ警告による不正プラグインのインストール、サポートを名乗るアカウント要求、期限切れを装った偽ログイン画面が典型的な手口です。
- 依頼は届いた経路とは別の手段で確認し、メール内のリンクからはログインしない習慣をつけます。
- 二要素認証、管理者の削減、業者用の期間限定アカウント、
DISALLOW_FILE_EDITなどで、だまされても被害が広がりにくい状態にします。 set_user_roleフックで管理者権限の付与を通知し、ユーザー一覧の定期確認と組み合わせます(2026年10月現在のWordPressの仕様に基づく説明です)。- 気づいたらすぐ報告できる雰囲気づくりも、対策の一部です。