日本語話者を標的としたSEOポイズニングの実態調査

日本語話者を標的としたSEOポイズニングの実態調査

Recruit-CSIRT の船越です。
近頃、Web サイトの改ざんによる SEO ポイズニングが多数観測されています(*1)。今回は、我々が調査した SEO ポイズニングの実態についてご報告します。

SEO ポイズニングについては、弊社ブログで以前にも解説をしておりますので、ぜひご一読ください(*2)。

SEO ポイズニングとは

SEO ポイズニングは、SEO (Search Engine Optimization) の手法を悪用し、検索エンジンの検索結果上位に不正なページを表示させ、アクセスした人を詐欺サイトやマルウェアが置かれたサイトに誘導する攻撃手法です。
このような攻撃により、閲覧者が詐欺の被害に遭う可能性はもちろん、検索結果が汚染され、本当に閲覧したい正規のページに辿りつくことが困難になるという問題もあります。

近頃、日本語話者を標的とした SEO ポイズニングのキャンペーンが活発に展開されています。
ECサイトなどによく使われる日本語キーワードの組み合わせを用いた改ざん行為は、「日本語キーワードによるハッキング(Japanese Keyword Hack)(*3)」と呼ばれており、日本に特異的な攻撃です。

これらは、CMS の脆弱性の悪用等によって、SEO 対策されたページを不正に作成し、そのページにアクセスした人を、不審なショッピングサイト等にリダイレクトする、という流れで攻撃が行われます。
(これ以降、不正に作成されたページを「ランディングページ」、リダイレクトされるサイトを「詐欺サイト」と呼称します)


[図1 SEO ポイズニングの流れ]

今回はそのうち、現在も多数確認している2つの攻撃キャンペーンについて紹介します。
このような詐欺サイトに誘導する Web サイトの改ざんは以前から報告されています(*4)が、URLパターンが変化していることなどから、新規の攻撃キャンペーンであるか、もしくはアップデートが行われていると思われます。

1. 主に日本語のサイトを改ざんする攻撃

この攻撃キャンペーンでは、SEO 対策として、上着や靴等のファッションブランドや、特定の精密機器等の販売サイトを謳った文字列が使われています。
(実際には、アクセスすると詐欺ページにリダイレクトされ、通常これらの文字列が表示されることはありません)

特定のキーワードで Google 検索をした結果、検索結果上位のほとんどが改ざんされたサイトであることを確認しました。
ほとんどの場合、「.jp」のドメインや、日本語のサイトが改ざんされ、ランディングページとして悪用されていました。


[図2 検索結果]

この攻撃の特徴として、 html の head タグ内に、不正な JavaScript を読み込むコードが挿入されます。
この Javascript によって、HTTP ヘッダに検索エンジンの文字列を含む Referer が存在する時のみ、詐欺サイトへのリダイレクトが発生します。


[図3 挿入されたコード]


[図4 難読化された不正な Javascript をデコードしたもの]

また、ランディングページの URL には、下記のようなパターンが多く見られました。

 [英字列]2020[ランダムな英数字列].html
[3文字の英字列]-[6文字のランダムな英数字列].html

この攻撃キャンペーンは、昨年 11 月頃から始まったと思われ、現在も続いています。

2. 国内・国外を問わず幅広いサイトを改ざんする攻撃

この攻撃キャンペーンでは、SEO 対策として、服飾や雑貨などのブランドを中心に、1. の攻撃に比べて多様な文字列が使われています。

こちらも、特定のキーワードで Google 検索をした結果、検索結果上位のほとんどが改ざんされたサイトであることを確認しました。
また、国内国外を問わず、様々なサイトが改ざんの標的となっていました。


[図5 検索結果]

この攻撃の特徴として、 html ファイルの最上部に同一ホストに設置された不正な Javascript を読み込むコードが、また、 head タグ内にも、外部の JavaScript を読み込みを試みるコードが挿入されています。
これらのコードによって、HTTP ヘッダに検索エンジンの文字列を含む Referer が存在する時のみ、詐欺サイトへのリダイレクトが発生します。


[図6 挿入されたコード]


[図7 同一ホストに設置された不正な Javascript ]


[図8 外部から読み込まれる不正な Javascript ]


[図9 図8のコードをデコードしたもの]

ランディングページの URL には、下記のようなパターンが多く見られました。

 [3文字の英字列]-[6文字のランダムな英数字列].html

この URL パターンは 1. と共通性がありますが、2 つのキャンペーンの背後の攻撃者が同一かどうかはわかりません。

この攻撃キャンペーンは、昨年 9 月頃から始まったと思われ、現在も続いています。

おわりに

本記事では、現在も攻撃が活発に行われている 2 つの SEO ポイズニングのキャンペーンの実態をご紹介しました。
今回取り上げたケース以外にも、様々な攻撃キャンペーンが展開されており、検索エンジンの検索結果が汚染されていることを確認しています。

もし、ご自分で管理されているホームページがある場合、覚えのないファイルが作成されていないか、また、使用している CMS やプラグインが古くなっていないか(脆弱性が存在しないか)、ご確認ください。
“site:[あなたのドメイン]” でGoogle検索をすることも有効です(*3)。
(筆者は定期的に検索エンジンを巡回し、不正なページについて検索エンジンや JPCERT コーディネーションセンターに報告を行っていますが、一般的に攻撃者はツール等を使用し、網羅的に攻撃を行っているため、追いつけません)

そして、詐欺サイト等の被害に遭わないためには、アクセスしたサイトの URL やドメインが、検索結果として表示されていたものと一致するか(不審なサイトにリダイレクトされていないか)を確認し、不審なサイトには個人情報等を入力しないなどの注意が必要です。

参考

(*1) セキュアブレイン、SEOポイズニングによるWeb改ざん増加に注意喚起
(*2) CMS を狙った改ざんサイトの分析
(*3) 日本語キーワードによるハッキングを解決する
(*4) JPCERT/CC インシデント報告対応レポート 2019年10月1日 ~ 2019年12月31日