WordPressのデータベースが汚染されている?感染後にDBで起きていることを解説

WordPressのデータベースが汚染されている?感染後にDBで起きていることを解説

「サーバー内の不審ファイルを削除したのに、サイトの異常がなくならない」「管理画面から怪しい投稿や見知らぬユーザーが見つかった」「サイトを開くと別のURLに飛ばされる症状が続いている」——そのような状況が続いているとしたら、感染の根がファイルだけでなく、データベースの中にまで及んでいる可能性があります。

WordPressはすべての投稿・設定・ユーザー情報をデータベース(DB)で管理しています。攻撃者はファイルだけでなく、このデータベースの中にも不正なデータを書き込み、サイトが正常に見えながらも裏で悪意ある動作を続ける状態を作り出します。

ファイルのクリーンアップだけでは感染が解消しない本当の理由が、ここにあります。この記事では、WordPressのデータベース汚染として確認すべき代表的な5つの概念を解説します。


不正リダイレクトと改ざんオプション——設定値を書き換えて”誘導”する手口

不正リダイレクトとは、本来表示されるべきページではなく、攻撃者が指定した別のURL(詐欺サイト・フィッシングサイト・マルウェア配布サイトなど)へ訪問者を自動的に転送する仕掛けのことです。

ファイル内の.htaccessやJavaScriptによるリダイレクトは前回の記事でも触れましたが、データベース経由でも同様の仕掛けが行われます。WordPressにはサイト全体の動作を制御する「オプションテーブル(wp_options)」と呼ばれるデータベースの領域があり、サイトURL・ホームURL・各種設定値が格納されています。

改ざんオプションとは、この wp_options テーブルの中身を攻撃者が書き換えたものです。たとえばサイトの正規URLを別ドメインに差し替えたり、WordPressの初期化処理に乗せてリダイレクトコードを実行するスクリプトを設定値として埋め込んだりすることができます。

この手口が厄介なのは、PHPファイルを調べても原因が見つからず、データベースを直接確認しない限り発見できない点です。また wp_options の書き換えによっては、管理画面へのログイン自体ができなくなるケースもあります。

▶ 専門家に依頼すると:wp_options テーブルの全件精査、サイトURL・ホームURL・自動実行スクリプトの異常値の検出と修正、リダイレクト動作の根本原因の特定と除去を行います。


悪意あるSQLとスパム投稿——データそのものを”汚染物質”に変える手口

データそのものを"汚染物質"に変える手口

悪意あるSQLとは、データベースを操作する言語であるSQL(Structured Query Language)を攻撃者が悪用して、不正なデータの挿入・既存データの書き換え・情報の抜き取りを行うことです。WordPressに対してはSQLインジェクションと呼ばれる攻撃手法で実行されることが多く、フォームや検索機能などの入力経路から不正なSQL命令を送り込み、データベースを直接操作します。

攻撃が成功すると、投稿テーブル(wp_posts)やメタデータテーブル(wp_postmeta)の中に、不正なHTMLコードやJavaScript、外部リンクが大量に書き込まれます。これがスパム投稿として表面化します。

スパム投稿とは、攻撃者によってデータベースに大量挿入された偽の記事・ページ・リンク集のことです。外部から見えないように設定されていることもありますが、Googleのクローラーには読み取られ、検索エンジンからスパムサイトとして認識される原因になります。実際に「自分のサイトがGoogleの検索結果に見知らぬキーワードで表示される」「医薬品・ギャンブル・出会い系サイトへのリンクがサイト内に大量発生している」という症状はこの汚染が原因であるケースが非常に多いです。

スパム投稿はデータベース内に数百〜数千件単位で挿入されていることもあり、管理画面から手作業で削除することは現実的ではありません。

▶ 専門家に依頼すると:wp_posts・wp_postmeta の不正データの一括検出・削除、SQLインジェクション経路の特定と閉鎖、Googleサーチコンソールでのインデックス汚染状況の確認と対処を行います。


不正ユーザー——データベースに”幽霊アカウント”を作る手口

不正ユーザーとは、攻撃者がWordPressのユーザーテーブル(wp_users)に無断で作成した偽のアカウントのことです。管理者権限(Administrator)を持つ不正ユーザーが作られていた場合、攻撃者はそのアカウントで自由に管理画面へログインし続けることができます。

不正ユーザーの作成は、バックドアや悪意あるSQLを通じてデータベースに直接レコードを挿入することで行われます。そのため、WordPressの通常のユーザー登録フローを経ておらず、通知メールが届かないまま作成されているケースがほとんどです。

さらに悪質なケースでは、既存の管理者アカウントのパスワードやメールアドレスをデータベース上で直接書き換えることで、正規の管理者がログインできない状態を作り出します。「自分のパスワードが突然使えなくなった」という症状は、この手口が使われているサインである可能性があります。

不正ユーザーは管理画面のユーザー一覧に表示されることもありますが、表示されないよう隠蔽されているケースもあるため、管理画面から確認できないからといって存在しないとは言い切れません。データベースを直接確認することが必要です。

加えて、不正ユーザーが「購読者(Subscriber)」などの低権限で作成されているケースもあります。一見無害に見えますが、特定の脆弱なプラグインと組み合わせることで権限昇格攻撃(低権限ユーザーが管理者権限を取得する攻撃)に悪用されることがあるため、見覚えのないアカウントはすべて調査対象とする必要があります。

▶ 専門家に依頼すると:wp_users・wp_usermeta の全件精査、不正アカウントの特定・削除、正規管理者アカウントの認証情報のセキュアな再設定、権限昇格につながる脆弱プラグインの特定を行います。


この記事のまとめ

WordPressのマルウェア感染では、ファイルだけでなくデータベースの中にも以下のような汚染が仕込まれています。

  1. 不正リダイレクト・改ざんオプション:設定値を書き換えてサイト全体の動作を乗っ取る
  2. 悪意あるSQL・スパム投稿:データそのものを汚染し、SEO評価の破壊や情報漏えいを引き起こす
  3. 不正ユーザー:幽霊アカウントを使って管理画面への再侵入経路を維持する

これらの汚染はいずれも、管理画面の操作や目視によるファイル確認だけでは発見が困難です。データベースに直接アクセスし、テーブルごとに内容を精査する技術的な作業が必要になります。また、データベースの誤操作は取り返しのつかないデータ消失につながるリスクがあるため、感染対応の経験が浅い状態での自己対処は非常に危険です。

「ファイルはきれいにしたつもりなのに症状が続く」という状況は、データベース汚染が見落とされているサインかもしれません。ファイルとデータベースを両軸でクリーンアップし、サイト全体を安全な状態に復元するためには、WordPressセキュリティの専門家による包括的な対応が不可欠です。

一人で抱え込まず、まずは専門家への相談から始めてください。


データベース汚染確認 語彙辞典

データベース汚染確認 語彙辞典

本辞典は、マルウェア感染によりサイトが停止してしまった方が、ファイル群だけでなく、WordPressの心臓部である「データベース(MySQL)」の内部にまで悪意あるデータが書き込まれていないかをチェック(データベース汚染確認)するための必須キーワード集です。


■ 1. データベース(Database / DB)

WordPressの記事本文、ユーザー情報、設定データなどがすべて保存されているデータの格納庫。ファイル(PHP)が無事でも、ここが汚染されているとサイトは正常に復旧しません。

■ 2. phpMyAdmin(ピーエイチピーマイアドミン)

ブラウザ上でデータベースの閲覧や編集、検索を行える管理ツール。多くのレンタルサーバーに標準搭載されており、データベースの汚染確認を行う際の主戦場となります。

■ 3. テーブル(Table)

データベース内で、データを用途別に整理して格納している「表(データシート)」。WordPressでは標準で「wp_」から始まる12個の基本テーブルが作成されます。

■ 4. wp_options(ダブリューピーオプションズ)

サイトのURLや導入しているテーマ・プラグインの設定、サイト名などが保存されている最重要テーブル。攻撃者が不正なスクリプトを最も仕込みやすい汚染の超頻出エリアです。

■ 5. wp_posts(ダブリューピーポスツ)

ブログの記事本文や固定ページのデータが保存されているテーブル。閲覧者を詐欺サイトへ飛ばすための不正なコード(JavaScript)や、大量のスパムリンク(SEOスパム)を記事内に埋め込まれる被害が多発します。

■ 6. wp_users(ダブリューピーユーザーズ)

ログイン権限を持つユーザー情報(IDや暗号化されたパスワード)が保存されているテーブル。ここに身に覚えのない「不正な管理者ユーザー」が勝手に追加されていないかを確認します。

■ 7. テーブル接頭辞(Table Prefix)

各テーブル名の先頭に付く文字列(初期設定は「wp_」)。セキュリティ対策としてこれをランダムな文字列(例: xyz_)に変更していないサイトは、データベース構造を攻撃者に予測されやすく、汚染リスクが高まります。

■ 8. SQLインジェクション(SQL Injection)

入力フォームなどの脆弱性を突き、攻撃者がデータベースを不正に操作する命令(SQL文)を送り込む攻撃手法。これによりデータベース内のデータを盗まれたり、改ざん(汚染)されたりします。

■ 9. 不正スクリプト(scriptタグの注入)

データベース内の記事本文や設定値の中に埋め込まれる、「script src=””」といったコード。これが実行されると、訪問者のブラウザ上でマルウェアが活動を始めます。

■ 10. データベースエクスポート(DB Export / バックアップ)

汚染確認やクレンジング(掃除)を行う前に、現在のデータベースの中身を「.sql」というファイル形式で丸ごと手元に保存すること。万が一作業に失敗した際、元の状態(汚染状態含む)に戻すための絶対条件です。


お問い合わせはこちら

サービスに関するご相談・お見積りなど、お気軽にお問い合わせください。