ワードプレス

WordPress

WordPressでadmin-ajax.phpへの大量アクセスを検知した時の原因とセキュリティ対策

WordPressを運用していると、海外からのクラッキング攻撃に遭遇することがあります。

その際、ログを確認すると「/wp-admin/admin-ajax.php」への大量アクセスが記録されているケースが少なくありません。

この「admin-ajax.php」は、WordPressにおいて非同期処理を行うために用意されている重要なファイルです。

単純にアクセスを遮断してしまうことはできません。しかしながら、攻撃者はこの仕組みを逆手に取り、不正なリクエストを送り込もうとします。

代表的な手口は、プラグインに存在する脆弱性を突いた攻撃です。

攻撃者は脆弱なプラグインを経由してサーバーに不正なファイルをアップロードし、入力フォームを勝手に生成します。そこからデータの改ざん、権限のないユーザーアカウントの新規作成、さらにはクーロンジョブの書き換えなど、深刻な被害へとつなげていきます。

もし被害を受けた場合は、アクセスログに「wp-admin/admin-ajax.php?xxxxx」といった記録が残っているはずです。

ここで「xxxxx」の部分に、攻撃対象となったプラグイン名が含まれていることがあります。これは攻撃の手がかりとなる重要な痕跡です。

被害を未然に防ぐためには、利用しているプラグインの安全性を常に確認することが欠かせません。

たとえば「Wordfence Security」や「wpdoctor」といったセキュリティ系プラグインを活用し、脆弱性診断を定期的に実施しましょう。

もし診断の結果、利用中のプラグインに脆弱性が見つかった場合は、たとえ利便性が高いものであっても迷わず削除することを強く推奨します。

WordPressは便利で拡張性の高いシステムですが、その自由度の高さゆえに攻撃対象となりやすいのも事実です。

特にプラグインは外部開発者によるものが多く、常にセキュリティリスクを抱えています。

日頃からログの確認やプラグインの管理を徹底し、必要に応じて速やかに対応することが、サイトとユーザーを守る最も確実な手段です。

  • この記事を書いた人

九十九史恩

キーを叩いていないときは、都会や田舎の風景を探検しています。

よく読まれている記事

条件の0=0は全てが正であるを意味するSQL 1

SQLの条件に0=0のような記述を見かけます。 変わった書き方の条件ですが、これは「全てが正である」事を意味しており、結合条件の場合はCROSS JOINと同じです。 下記の例で言えば、結合するsub ...

DISTINCTを使わないで重複排除を考えるSQL 2

SQLのDISTINCTはEXISTSとかGROUP BYでなんとかする事もできます。 DISTINCTは暗黙的なソートがされますが、何のDBを使うにせよ過去のバージョンならともかく、最近のバージョン ...

RFC 5322に準拠させた正規表現言語別 3

RFC5322で定義されている正規表現を、各言語の正規表現に変化させた形になります。 完全な電子メール正規表現は存在しないので、結局のところ何かの公式基準に従っていたとしても、自分が携わるサービスのル ...

-WordPress