2015年12月31日
ハッキングされたSEOのバックリンクネットワークの分析
(2015-11-17)by Patrick Coombe
本記事は、原著者の許諾のもとに翻訳・掲載しております。
訳注:ハッキングされたサイト-相互にリンクし、マネーサイトへもリンクしている
マネーサイト-ハッキングされたWebサイトのネットワークからリンクジュースを受け取る
先週の火曜日、私たちはGoogleから、クライアントのWebサイトがハッキングされたという知らせを受けました。当初はそれが、私が長年見てきた中でも、最も衝撃的な類のSEOハッキングであるとは気付きもしませんでした。
こうしたタイプのハッキングは、インターネット、特にWordPressのサイトでは非常によくあることです。
攻撃者であるハッカーは、特定のフレームワークを含むオープンWebのIPアドレスをスキャンするでしょう。今回の場合、ハッカーはWordPressのサイトを探していましたが、ハッキングされた中にはMagentoのサイトやカスタムサイト、多くの他のフレームワークも見受けられました。今回のハッキングで最も印象的だったのは、WordPress(もしくはJoomlaなど)だけでなく、異なる様々なフレームワークがハッキングされたという点です。
その後ハッカー集団は、ターゲットとなったサイトの時代遅れとなったフレームワークとプラグインをスキャンしました。そして、各サイトの既知の弱点を探り、システムにアクセスするために利用するのです。多くの場合、使われるのはSQLインジェクションです。
ハッキングされたリンクネットワークのある段階における状況を表すと、以下の図のようになります。
訳注:ハッキングされたサイト-相互にリンクし、マネーサイトにもリンクしている
マネーサイト-ハッキングされたWebサイトのネットワークからリンクジュースを受け取る
私たちが突き止めた、ハッキングされたSEOリンクネットワークの概略図。
ハッカーが3分程度で WordPressのWebサイトへアクセスする過程を 段階を踏んで説明するYouTubeの映像があります。この映像を見ると、こうしたハッキングがいかに簡単であるかが分かります。すごいと思いませんか?
多くの場合、一度アクセスしてしまえば、ハッキングしたサイトで何をするかという目的はハッカーによって異なります。ハッカーが政治的な動機を持っていれば、ターゲットを自分たちのグループのランディングページにしてしまうことがあります。また、サイトの持ち主が自分のサイトの異常に気が付きさえしないうちに、ハッカーは対象のサーバを攻撃システムのノードとして利用し、ボットネットを拡張しようとしている場合もあります。この類のハッキングの2番目に多い動機は、見込み客のクレジットカードの番号を収集することですが、それにつてはエビデンスがありません。
また他の場合では、今回のケースにあたりますが、リンクを売るためや、自分のアフィリエイトサイトの閲覧数アップに役立つ多大なリンクジュースの提供源として、あなたのWebサイトを利用しようとするのです。
ハッキングの分析
手始めに、ハッカーは14,000ファイルをサーバにアップロードしました。これは、Godaddyのサーバに起きたことです。このファイルの95%は”Eコマースのような”ページに準ずる機能を含むHTMLファイルでした。
コンテンツの大半はアジアの言語で、Google翻訳を使って調べたところ、日本語であるとことが分かりました。
ハッキングされたネットワークの言語を調べるため、Google翻訳を使用。
下の画像を見ると、同一ネットワーク上にあるハッキングされたその他のサイトのホームページが、Magentoを使っていると分かります(重要な問題がありますが)。
攻撃者は賢明にも、多くの場合(今回のケースを除く)Webサイトのフロントエンドを残します。
攻撃者はHTMLファイルをハッキングしたサイトの内部ページにアップロードしました。Webマスタは、サーバの内部ディレクトリをあちこち閲覧しない限り、ハッキングされたことにさえ気が付かないでしょう。
一方で、Webサイトのバックエンドには何千というハッキングされたページが含まれています。
Linuxの注意深いハッキングのおかげで、ファイルのリストをgrepし、それをファイル名のリストにregexしました。
ファイル名全体を編集するためにLinuxのコマンドラインを使用。
一度リストを入手したら、サニタイジングして、隔離されたVPS(仮想専用サーバ)上で自由に調査できるよう全ファイルをアップロードしました。そのサーバは今も、とりあえず稼動しています。
ハッキングされたサーバのミラーサーバ: http://107.170.172.107
こうすることにより、サーバの整合性を気にせずにインターネット上のファイルを自由に閲覧できるようになりました。
それから、信頼の置ける昔なじみのScrapebox 2.0をロードし、”Link Extractor”のアドオンを使用しました。この2.0版のツールの64ビットバージョンは、ほんの数秒でリストを処理してくれました。
Scrapebox 2.0は稼動しているサーバから全てのリンクを抽出しました。
私はこのリストをLink Extractorからロードし、ルートにトリムし、重複を取り除き、ハッキングされたサイトがリンクしている239サイトものWebサイトのリストを入手しました。
私たちのサーバ1台から、ほぼ300ものハッキングされた可能性のあるWebサイトを探し出しました。
この時点で、私はあることに気が付きました。ハッキングされたのは私のクライアントサイトだけではなく、これは何らかの巧妙なリンクネットワークなのだということです。最初から気付いていたことですが、ハッキングされたサイトは全て、あるマネーサイトに単純に接続していました。しかし私の場合、ハッキングされたサイトは他のハッキングされたサイトに接続しており、そのサイトもさらに他のハッキングされたサイトに接続しているのではないかと推測したのです。
ハッキングされたHTMLページのソースを見れば、多種多様なサイトに接続する、全く同じフットプリントを持ったあらゆる種類のアウトバウンドリンクを確認できます。
http://example.com/something/really-long-keyword.html
例として、このサイトのコンテンツ部分に記述されたソースを見てみましょう。
ソースコード内に、ハッキングされた外部サイトへのリンクが数多くあるのが分かります。これらのサイトのリンクは主要なマネーサイトへとつながっています。
私は、この”ネットワーク”上には、他にも数百件のハッキングされたサイトが存在し、どのサイトも数百から数千のHTMLファイルをサーバ上にアップロードしていることを発見しました。また、感染したサーバをスキャンしたところ、更に多くのマネーサイトが見つかりました。
ハッキングされたサイトは100から2,000のHTMLファイルをアップロードしていました。
これらのドメインに対してランダムな”抜き取り検査”を行ったところ、2014年の中頃からハッキングされているサイトもありましたが、多くは最近になって被害を受けていました。
成功の見込みは低いものの、WHOIS検索で登録者の情報を引き出し、サイトの所有者と関連付けられるかどうか見てみるのもいいと思います(その情報を口外したりはしません)。しかし、当然ですが本物のマネーサイトはプライベートWHOISで情報が保護されていて見ることができません。
WHOISでハッキングされているサイトの所有者の情報を調べて、被害にあっていることを教えてあげましょう。
“リンクしたネットワーク”の素晴らしい点は、相互依存と自立が同時に実現しているところです。どのサイトも、自分のリンクポートフォリオを高めるためにお互いを利用しあっています。しかし同時に、ある1つのサイトがマルウェアのスキャンを行い、感染したファイルを駆除したとしても、ネットワーク上の他のサイトには影響を与えません。
ハッキングされたサイトのURLがどのようになっているか、例をお見せしましょう。表面上は完璧に機能しているEコマースのサイトです。しかし実際にはHTMLのページを表示しているだけで、すべてのリンクが”マネーサイト”へ飛ぶようになっています。アイテムをカートに入れるなど、サイト上で何かをしようとすると、すべて”マネーサイト”へと誘導されます。
ハッキングされたサイトを隔離したサーバにアップロードし、更に分析を進めました。
訳注:ハッキングされ、隔離したサーバ
マネーサイトの多くは、ほとんど同じ構造になっていました。
- ZenCart
- Nginix
- Cloudflare
- その他
マネーサイトは、ハッキングされたサイトと全く同じように見えます。
ここでも90%くらいのマネーサイトが、日本のホスト上に日本語で表示されていました。
最終的に、以下の6件のドメインが主要な”マネーサイト”であり、攻撃が広まった要因であったことを突きとめました。
http://www.menfashion.top/ http://www.ladyshoeskan.com http://www.fashionboots.site http://www.rock-music.top/ http://www.gagatokei.top/ http://www.pen-kan.website/
(もうリンクはつながっていません)
このようなドメインのドメインオーソリティは、いくつかを除いてほとんどが非常に低い評価となっています。
ハッカーの基本的なミス
これらすべてのサイトを攻撃しようとするハッカーの意気込みには感心するところもあるのですが、彼らはたくさんのミスを犯し、巨大な痕跡を残していきます。
ハッカーの皆さん ― robots.txtを見直して、次回はGoogleがクローリングできるディレクトリを選択してください。
今度ハッキングする時は、robots.txtをチェックし、リンク先のディレクトリをGoogleがクローリングできるようにしてください。
ハッカーはrobots.txtのチェックを忘れがちです(残念ながらハッカーの皆さんのためにリンクジュースは用意していません)。
感染の一因となったトラックバックスパム
ご存じの通り、トラックバックは感染力の強いスパムの中で、最も古くからあり、最も悪質なスパムの1つです。
“問題ない”という評価のマネーサイトもありますが、多くは違います。
ハッキングの動機
初めてこの違法行為に出くわしたとき、その動機はクレジットカードの番号をフィッシングすることだろうと思っていました。しかし数分後には、他にも感染しているサイトがたくさんあり、マネーサイトを成長させるリンクのネットワークになっていることを発見しました。
感染しているサイトの分析を行って1時間くらい経つと、このネットワークは攻撃者のマネーサイトを大きくするためのものではなく、リンクを売るために”ネットワーク”を使っているのだろうと思うようになりました。
最終的に私を最も悩ませたのは、これらのサイトがそこまで素晴らしくなかったことです。そんなに多くのアクセスがあるようにも見えず、評価もいいわけではなく、そのリンクの多くが表示されません(おそらくrobots.txtの設定のせいでしょう)。
ハッキングされている他のサイトに知らせる
私は、ブラックハットSEOに立ち向かおうなんて正義に燃えるタイプの人間ではありません。ゲームとして楽しむ分には問題ないと思います。しかし、ハッキングは別です。特に、生計を立てるために小さなビジネスを行っている人々のサイトを攻撃しようとするなら問題です。
この場合、私は公開されているメールアドレス宛てに、ハッキングされていることをサイトに知らせようと思っています。返信があるようでしたら私のビジネスを紹介するか、正しい解決方法を教えてあげられるでしょう。返信がないようでしたら、私にできるのはここまでです。
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 グループマネジャー 株式会社ニジボックス デベロップメント室 室長 Node.js 日本ユーザーグループ代表
- Twitter: @yosuke_furukawa
- Github: yosuke-furukawa