WordPressのスパムリンクインジェクションを検出・削除する完全ガイド
サイト訪問者から「あなたのウェブサイトにスパムリンクが表示されている」と指摘された場合、そのサイトはスパムリンクインジェクションと呼ばれるハッキング被害を受けている可能性が高いです。
WordPressにおけるスパムリンクインジェクションの典型的な症状は以下の通りです。
- サイト上に不正なスパムリンクが表示される(違法商品やグレーマーケットの商品へのリンクが多い)
- 自分が作成していない新しいページが存在する
- 検索結果に表示されるメタディスクリプションが不審な内容になっている
これは、ハッカーがあなたのサイトに便乗してトラフィックを横取りし、スパムサイトのSEOを強化するために用いられる、よくあるハッキング手法です。
ご安心ください。適切な対処を行えば、サイトは必ず復旧できます。この記事では、WordPressからスパムリンクインジェクションを除去し、サイトを元の清浄な状態に戻すための手順をステップバイステップで解説します。
要点(TL;DR): MalCareを使えば、WordPressサイトからスパムリンクインジェクションを即座に除去できます。セットアップはわずか2分。今すぐサイト復旧への第一歩を踏み出しましょう。
WordPressのスパムリンクインジェクションとは?
WordPressにおけるスパムリンクインジェクションとは、信頼性のあるあなたのサイトを利用して、スパムサイトへのバックリンクを作り出すタイプのハッキングです。リンク先となるサイトは、グレーマーケットや違法な記事・サービスを扱っていることが少なくありません。
下記のスクリーンショットのサイトもスパムリンクインジェクションの被害を受けていますが、トップページには何の異常も見られません。
要するに、ハッカーがあなたのWebページから自身のスパムサイトへ向かうリンクを挿入しているのです。これらのリンクは投稿内に埋め込まれていることもあれば、ページのヘッダー部分に巧妙に隠されていることもあります。また、あなたのドメイン上に丸ごと新しいページを作成し、そこからスパムサイトへリダイレクトさせるケースもあります。
先ほどの例では、グレーマーケットの医薬品の検索結果にこのサイトが表示されていました。検索結果をクリックすると、「Online Pharmacy(オンライン薬局)」というページへリダイレクトされます。元のサイトは持続可能な燃料に関するものなので、薬局とはまったく無関係です。[皮肉なことに、正規のサイトにはSSLが導入されていないのに、スパムサイト側にはSSLが導入されています。]
さらに厄介な変種として、データベース内に潜むタイプのスパムリンクインジェクションもあります。この感染は特に駆除が難しく、完全に除去するには相当な開発スキルが必要です。
本記事では、WordPressサイトへのスパムリンクインジェクションを診断する方法と、スパムリンクを削除する方法をご紹介します。
最も簡単な方法は、MalCareの無料オンラインスキャナーで感染状況を把握し、ワンクリックで自動クリーンアップすることです。
スパムリンクインジェクションの症状とは?
このハッキング(そして他の多くのハッキング)の厄介な点は、サイトオーナーが最後に気づくことが多いということです。ハッカーにとっては、長期間発見されないまま活動を続けられることが何より重要だからです。
そのため、スパムリンクインジェクションの被害に気づくのは、主に以下のような経路を通じてです。
サイト上のスパムリンク
巧妙なハッカーは、管理者に発見・削除されないよう、スパムリンクやスパムページを管理者から隠します。そのため、実際には訪問者がサイト上の奇妙な無関係なリンクに気づき、あなたに知らせてくれるという経緯で発覚することが多いのです。
正当な目的でサイトを訪れたユーザーからの指摘で発覚するのは、私たちにとって最も避けたい発覚パターンです。
Google Search ConsoleでのURLインジェクション通知
何らかの理由でGoogle Search Consoleにログインした際、予期しないアラートを目にすることがあります。スパムリンクインジェクションは、サーチコンソール上では「URLインジェクション」として表示され、Googleがあなたのドメイン上のスパムURLのサンプルを併せて一覧表示してくれます。
リストにあるサンプルURLを開いてみてください。表面上はあなたのドメインのページでも、ページが完全に読み込まれる前にスパムサイトへリダイレクトされるはずです。
ホスティング会社によるアカウント停止
ホスティング会社がアカウントやサイトを停止する理由はいくつかあります。良質なホスティング会社であれば、停止の詳細を記載したメールも送ってくるでしょう。
ハッキングはその理由の一つであり、中でも最も深刻なものです。ホスティング会社はサーバー上にハッキングされたサイトが存在することを重大な問題と捉えています。
スパムリンクインジェクションのスキャン方法
ハッキングを疑っている、あるいはその可能性を警告された場合は、サイトをスキャンすることで感染の有無を確認できます。
これが、サイトがスパムリンクインジェクションを受けているかどうかを判断する最速の方法です。まず今すぐサイトをスキャンして感染の範囲を把握し、その後、クリーナーを使ってマルウェアをワンクリックで除去しましょう。
MalCareの場合、スキャンと除去の処理はプラグインのサーバー上で行われるため、あなたのサーバーリソースを消費しません。これは大きなメリットです。ハッキングされたサイトはそもそも大量のリソースを消費しがちで、ホスティング会社との間で問題が生じることもあるからです。この重要な局面で余計な手間は避けたいところですね。
サイトがスパムリンクインジェクションを受けているか確認する方法
セキュリティプラグインの中には、誤検知(false positive)が多いことで有名なものもあります(MalCareは違います)。念のため、本当にスパムリンクインジェクションの被害を受けているか再確認したい場合は、以下の方法を試してください。
自分のサイトをGoogleで検索する
検索結果(SERP)にサイトが表示されたとき、通常は自分が設定したメタデータが表示されるはずです。しかし、ハッキングされたサイトでは、メタディスクリプションに意味不明の文字列が表示されたり、自分が作成していない無関係なページが検索結果に現れたりします。
Googleによるブラックリスト登録
検索結果をクリックすると、Googleのブラックリスト警告が表示されることがあります。これはGoogleがあなたのサイトのハッキングを検知した状態ですが、どの種類のハッキングかまでは明示されません。
まだそこまで進んでいない段階であれば、検索結果自体に「このサイトは改ざんされている可能性があります」という警告が表示されることがあります。
シークレットブラウザでサイトにアクセスする
ハッカーは、ログイン中の管理者には検知されないようにマルウェアを仕込むことがあります。シークレットモードのブラウザや別の端末からサイトにアクセスし、ログインしていないことを確認してください。ポップアップやスパムリンクが表示されれば、ハッキング被害を受けていることが確実です。
同様に、自分が作成していないWebページが見つかることもあります。
サイトのコードに異常がないか確認する
やや高度な方法ですが、投稿や固定ページを開き、ブラウザの「要素を検証(Inspect Element)」機能を使ってコードを調べます。ヘッダーセクションに、平文または難読化されたリンクを含むコードが存在することがあり、スパムURLがそのまま判読できる形で見つかることもあります。
Google Analyticsで悪質なキーワードをチェックする
本来、サイトへのトラフィックは関連性のあるキーワードから流入するはずです。「バイアグラをオンラインで購入」「激安グッチのバッグ」などのスパム系キーワードからの流入が見られるなら、サイトがハッキングされていると断定できます。
ここまでの内容は大げさに感じられ、不安になるかもしれません。しかし心配いりません! 適切なツールを使えば、ハッキングの駆除は簡単です。大切なのは冷静さを保ち、この先を読み進めることです。
WordPressのスパムリンクインジェクションを削除する方法
WordPressサイトからスパムリンクインジェクションを除去する方法は2つあります。
- セキュリティプラグインを使って感染を駆除する
- 感染したファイルを手動で削除する
お察しの通り、私たちはセキュリティプラグインの使用を強く推奨します。手動でのクリーンアップ手順も後述しますが、これはWordPressのファイルやデータベースに精通しており、コードを自信を持って扱える方のみが試すべき作業である点にご注意ください。
1. セキュリティプラグインで即座に駆除する【推奨】
サイトがハッキングされたとき、時間との勝負です。MalCareをインストールすれば、スパムリンクインジェクションを即座に除去できます。
これが、サイトからハッキングを取り除く最も簡単かつ効率的な方法です。優れたセキュリティプラグインは、マルウェアを検出するだけでなく、サイトのコアファイルに影響を与えることなく外科的に除去します。そのため、必要なファイルはそのまま残り、正常に機能し続けます。
注意: すべてのセキュリティプラグインがこれを実現できるわけではありません。自動クリーンアップはMalCareの独自機能であり、インテリジェントなマルウェア検出システムに基づいています。
セキュリティプラグインの真の強みは、再感染の防止にもあります。これについては後のセクションで詳しく説明します。
2. スパムリンクインジェクションを手動で削除する
もちろん、マルウェアを手動で除去することも可能です。しかし、それにはいくつかのデメリットがあります。手順をご紹介する前に、手動でのマルウェア除去に伴う危険性を先に確認しておきましょう。
- 巧妙に隠されたマルウェア: ハッキングは長期間発見されないほど成功します。そのため、マルウェアは通常、ファイルやフォルダの中に慎重に隠されており、すぐには見つかりません。
- バックドアが残っている可能性: ハッカーは、現在のハッキングが除去された場合に備え、再びアクセスを取り戻すための手段(バックドア)を残します。バックドアは非常に巧みに隠されており、これがあるとサイトは繰り返しハッキングされることになります。
- マルウェアの根本原因を取り除く必要がある: そもそもなぜサイトがハッキングされたのか? 脆弱性が原因だったのか、それとも漏洩したパスワードだったのか? この原因に対処しない限り、再感染は繰り返されます。
- 正規のコードを誤って削除する恐れ: 発生確率は低いものの、複数のプラグインを使用しているサイトでは、正規のコードとマルウェアの区別が難しいことがあります。正常なコードを削除すると、サイトが壊れてしまいます。
それでは、注意点を踏まえた上で、マルウェアを手動で除去する手順を見ていきましょう。
1. サイトのバックアップを取る
何よりも先に、WordPressサイトのバックアップを取得してください。現時点で感染していても、サイトはまだ動作しています。万が一作業を誤ってコードが使えなくなっても、少なくともこの動作していた時点まで復元できます。
バックアップがあることの価値は大きいです。ハッキングされたサイトは専門家に修復してもらえますが、重要なファイルが失われたサイトの復元は非常に困難で、コストも大幅に増大します。
2. 不審なファイルがないか精査する
FTPクライアントにログインし、ファイルとフォルダの一覧を注意深く確認します。本来存在すべきではないファイル(多くはPHPファイル)はありませんか? 一見無害に見えても、中身を開いてみると手がかりが得られることがあります。
ハッキングコードは、読めない文字列や意味不明のコードで書かれていることが多いです。これは難読化(obfuscation)と呼ばれ、理解を困難にするためのものです。バックアップを取得済みなら、こうした不可解な関数を削除してマルウェアを除去できます。
さらに、wp-contentフォルダ内の投稿や固定ページも確認しましょう。スパムリンクのコードは、これらのページのヘッダーセクションに隠されていることが多く、サイト上では表示されないように次のようなCSSでコーディングされています。
<div style="position: absolute; top: -132px; overflow: auto; width:1259px;">
サイトの規模が大きい場合、この作業にはかなりの時間がかかります。しかし、悪意のあるコードの検索は徹底的に行ってください。少しでも残していれば、再感染につながります。
3. キャッシュをクリアする
すべての悪意のあるコードを削除したら、WordPressのキャッシュをフラッシュし、クリーンアップ済みのファイルが正しく読み込まれるようにします。
4. WordPressを再インストールする
公式リポジトリから、現在使用中と同じバージョンのWordPressを新規ダウンロードします。wp-configファイル(データベース情報が含まれる)とwp-contentフォルダ(プラグインとテーマの情報が含まれる)以外のすべてを置き換えてください。
WordPress本体を入れ替えることで、コアファイル内のマルウェアの可能性を排除できます。
5. テーマとプラグインを再インストールする
テーマとプラグインを正規のソースから入手した正規版で使用している前提であれば、脆弱性はアップデートによって修正されているはずです。
少し時間をかけてニュースを調べ、インストール済みのプラグインに最近侵害事例がなかったか確認するのも良いでしょう。評判の良い開発者であれば、セキュリティ修正をアップデートとしてリリースしているはずです。もし対応されていない場合は、積極的にメンテナンスされている代替プラグインへ乗り換えるのが長期的に賢明です。
6. データベースをクリーンアップする
残念ながら、データベース内の感染ファイルの除去は非常に困難です。テーブルやデータの中に含まれるPHP関数やスパムリンクを探し出す必要があるからです。スパムリンクは比較的見つけやすいものの、PHP関数は必要なコードの一部である場合があり、判断が難しいのです。
この方法を選ぶ場合は、データベースをダウンロードし、eval、gzinflate、shell_exec、base64_decodeといった関数を検索してください。
あるいは、定期的にバックアップを取っているのであれば(取るべきです)、マルウェアが確実に存在しないと断言できる過去のバージョンのデータベースを利用するのも一案です。ただし、この方法は万能ではなく、それ以降に行った変更や更新の大部分が失われる可能性があり、しかも悪意のあるコードが残るリスクも残ります。
WordPressのスパムリンクインジェクション攻撃を防ぐには?
あなたのWordPressサイトがハッキングされたのは、脆弱性が存在したか、少なくとも1つのパスワードが漏洩したからです。スパムリンクインジェクションをなんらかの方法で駆除した今、再発防止のために必要な対策を講じましょう。
- すべてを最新に保つ: WordPress本体、テーマ、プラグインすべてが対象です。このアドバイスを繰り返しお伝えするのは、サイトセキュリティにおいて本当に重要だからです。新バージョンには、旧バージョンの脆弱性に対処するセキュリティパッチが含まれています。
- ヌークラック(非正規)ソフトウェアを排除する: 無料ソフトには長期的に莫大なコストが伴うことがあります。プラグイン代を支払わずに済む初期のメリットは割に合いません。後に脆弱性が発見されたとき、攻撃による損害は導入時に節約できた金額をはるかに上回ります。
- バックドアを確認する: バックドアがあれば、ハッカーは駆除済みのサイトへ再アクセスできます。特に手動でマルウェアを除去した場合は要注意です。バックドアの発見と除去にはセキュリティの専門知識が必要で、通常はかなり巧妙に隠されています。また、ハッカーが管理者アカウントを作成している可能性もあるため、登録済みアカウントを一通り見直し、実在するユーザーのものか再確認しましょう。
- すべてのパスワードを変更する: 理想としては、サイトごとに異なるパスワードを使うべきです。サイトのクリーンアップ後は、アクセス用パスワードをすべて変更しましょう。さらに、データベースのパスワードも変更します。これにより、再ハッキングへの追加の防御壁となります。パスワードが漏洩していた場合は、変更することでハッキングを可能にしたセキュリティホールを根本的に塞ぐことになります。
「セキュリティスキャナーやプラグインを導入していたのに、ハッキングされた」という声をよく耳にします。重要なのは、セキュリティプラグインはハッキングに対して100%の防御を保証するものではないという点です。だからこそ、多くのプラグインには手動クリーンアップサービスも用意されています。
たとえばMalCareは、プラグインのサブスクリプションに無制限の手動クリーンアップを無料でバンドルしています。ワンクリックで除去できないものは、プロのセキュリティ専門家チームが迅速かつ効率的に除去してくれます。
セキュリティプラグインを導入するメリットは、ほとんどの攻撃を無効化し、サイトをしっかり守れることにあります。仮に突破されたとしても、その原因は vulnerable なプラグインや漏洩したパスワードであることがほとんどです。
スパムリンクインジェクション攻撃の影響とは?
ハッキングされたサイトは、サイトオーナーにとって悪夢です。サイト自体が被害を受けるだけでなく、訪問者のデータや個人情報が盗まれるリスクにもさらされます。さらに、SEO面での打撃、ひいては経済的な損失も発生します。特にECサイトやサイト運営で収益を得ている場合、その影響は深刻です。
あなたはサイトを現在の姿にするまでに多くの資源を投じてきました。しかし、それはハッキングひとつで瞬く間に失われかねません。サイトがハッキングされたときは、被害が時間とともに指数関数的に拡大するため、迅速な対応が何より重要です。
まとめ
この記事が、WordPressサイトからスパムリンクインジェクションを除去する際のお役に立てば幸いです。ただし、ハッキングの駆除はサイトセキュリティの柱の一つにすぎません。今後のインシデントからサイトを守るための戦略を構築する時間も、ぜひ設けてください。
よくある質問(FAQ)
投稿内のWordPressスパムリンクを削除・防止するには?
WordPressの投稿からスパムリンクを最も迅速かつ簡単に除去する方法は、マルウェアスキャナー兼クリーナーを使うことです。スキャナーはWordPressのファイルやフォルダに加えて、サイトのデータベースも高速にチェックできます。
スパムリンクは「スパムリンクインジェクション」と呼ばれるマルウェア攻撃の症状です。ハッカーは自らのスパムサイト(怪しい商品・サービスを販売)へのリンクをあなたのサイトに挿入し、SEO評価を高めようとします。リンクはサイト上では表示されないことが多く、サイトのコード内でCSSのトリックを使って隠されています。
URLインジェクション攻撃の影響を受けたWordPressページを見つけるには?
マルウェアスキャナー兼クリーナーを使って、WordPressのWebページからスパムを検出・除去しましょう。
スパムリンクや悪意のあるコードは、ハッカーによってサイトのファイルやフォルダ、時にはデータベースの中にも極めて巧妙に隠されます。
サイトのページ数が多く、コンテンツのデータベースが大きい場合、それぞれのコードを手作業で精査するのは膨大な作業となり、見落としも発生しやすくなります。スキャナーに重労働を任せ、マルウェアを外科的に除去してもらうのが最善です。
スパムリンクはWordPressサイトにどんな影響を与える?
サイト上のスパムリンクはGoogleから厳しくペナルティを受けます。つまり、ハッキングされたサイトというだけでなく、それに付随するあらゆる問題を抱えることになります。訪問者は安全な閲覧体験を得られず、SEOランキングは低下し、トラフィックも減少します。サイトがあなたやビジネスの収入源であれば、その収益にも悪影響が及びます。
他のハッキングと同様、駆除は時間との勝負です。放置すればするほど、被害は指数関数的に悪化します。
WordPressのスパムリンクインジェクションとは何か?
WordPressのスパムリンクインジェクションとは、品質の高い正規サイトを利用して、グレーマーケットや違法の商品・サービスを販売するサイト(いわゆるファーマハックなど)のSEOランキングを押し上げるマルウェア攻撃です。
ハッカーはサイトの脆弱性を突いて攻撃し、ページにスパムリンクを挿入します。これらのスパムリンクは、CSSのトリックを利用してサイト上に直接表示されないため、オーナーには気づかれないことが多いです。しかし、Googleのボットがサイトをクロールすると、これらのリンクを発見します。
多くの場合、サイトの検索結果には自分が作成していないURLが表示され、クリックするとスパムサイトへリダイレクトされます。
他のハッキングと同様、この攻撃もできるだけ早く対処すべきです。スパムリンクはWebページ上で発見が難しい性質を持つため、スキャナーと自動クリーナーを使って駆除するのが常に望ましいといえます。
-
ストーカーウェアとは?仕組みと見つけ方・削除方法を徹底解説
ストーカーウェア(Stalkerware)は、インストールされたスマートフォンやパソコンから密かに情報を収集し、そのデータをストーカー(追跡者)へ送信するマルウェアの一種です。DV(ドメスティック・バイオレンス)加害者が被害者を支配するために頻繁に利用する、デジタル虐待における凶器ともいえる存在です。全国家庭暴力終結ネットワーク(National Network to End Domestic Violence)や欧州家庭暴力加害者対応ネットワーク(European Network for the Work with Perpetrators of Domestic Violence)など、家
-
Windows 10で重複した写真を見つけて削除する方法【無料ツール活用術】
デジタル画像の悩みのひとつが、不要なストレージ容量を占有してしまう「重複写真」です。PCの保存容量には限りがあるため、多くのユーザーはさまざまな方法でファイル整理を模索しています。容量を確保する最も効果的な手段のひとつが、必要のない重複画像を削除し、ユニークな画像だけを残すことです。本記事では、Windows 10向けの優れた重複写真検出ツールを使って、重複写真を見つけて削除する方法を詳しく解説します。 重複写真が発生する原因 重複を削除すべき理由 同じファイルのバックアップを作成した 複数のユーザーとファイルを共有・受信した インターネットから同じファイルをダウンロード