最近あまり、自分の身の回りにはなかったのですが、私の知人(のサイト運営者)が今どき、いわゆる「リダイレクトハック」の被害に合いました。
リダイレクトハックというのは、ターゲットのウェブサイトをハックして、訪問者がそのサイトを訪れた際、条件次第でハッカーが欲する特定のウェブサイトに飛ばす(リダイレクトする)手法です。
具体的には、ハッカーが主にWordPressを使用している踏み台にしたいサイトに、特定のコードを埋め込みます。訪問者はGoogleなどの検索エンジンの検索結果から、そのサイトを訪れます。
訪問者の条件がハッカーの設定した条件に合えば(スマホからアクセスした訪問者、androidからアクセスしているなどの特定の条件に合えば)、ハッカーの利益になるアフィリエイトサイト(出会い系サイト)などにリダイレクト(強制ページ遷移)させます。
私の経験上、いままで海外のアフィリエイトサイトに飛ばされたことしかありません。大半は出会い系サイトや、中華製のコピー商品サイト、イケナイ医薬品などの詐欺サイトになります。
リダイレクトハッカーの主要な手口2つ
- .htaccessの書き換え
- WordPress の header の書き換え
この手のハッキングは昔からあるやつで、高度な技術力が必要なものではありません。おそらく小中高生が一番得意なタイプだと思います。(大人の場合、得られる利益が少なく、リスクだけが大きいのであまりやりたくないタイプのものです。)
普通は適当な php コードを挿入(インジェクション)します。
ハッカーが好む特定の条件とは?
誰でも彼でも、ハックしたサイトに訪れた人全員を強制リダイレクトすると、すぐにバレるので普通はあまりやりません。適当な割合になるように、リダイレクトするターゲットが選ばれます。
そのため、適当な条件にマッチした訪問者だけをターゲットにします。現実世界のマーケティングでは「女性限定」などというものがありますが、それとよく似たものです。ネットの場合は、通常は特定のブラウザなど環境変数から読み取れる内容が条件になります。
- 当選確率を決めたくじ引き的に、適当な訪問者をターゲットにする
- 訪問者がGoogleの検索結果または他の検索エンジンから来た訪問者をターゲットにする
- 特定のブラウザからアクセスしたものだけをターゲットにする
- モバイルから来た訪問者のみをターゲットにする
- ブラウザ言語が日本語の場合、あるいは韓国語になっている訪問者のみをターゲットにする
以上のものが私が経験したことのあるものです。
特定のブラウザのターゲットにする場合は、同時にブラウザのセキュリティホール(脆弱性)を突く場合もあります。
最近は、もっぱら暗号資産などの小遣い稼ぎが増えている傾向です。セキュリティホールと言っても、スマホ版などを含めるとNetscapeとIEだけしかなかったという時代とは違いすぎるほどのブラウザの種類があるので、対策は限定的にしかなりえません。特定のブラウザだけをターゲットにしているリダイレクトは、狙いがわかりやすいので対策も容易です。
ターゲットが特定のブラウザ言語についてはもう少し柔軟なリダイレクトがあります。例えば、ブラウザ言語が日本語なら日本人向けの出会いサイトに飛ばし、ロシア語系なら、ロシア人向けの出会い系サイトに飛ばすようなケースです。結局は、お小遣い稼ぎの愉快犯ですので、さほど脅威ではありません
また、ブラウザ言語が日本語や各国語を狙ったものは、もともとが日本製や韓国製のハッキングではなく、ただの西欧諸国版の亜流(サルマネ)ですので、大した被害になっていません。
リダイレクト先の例
リダイレクト先に関しては様々なバージョンがありますので、参考程度にしてください。
かつてよく見かけたのは、default[数字].com、test[数字].com、ableoccassion.com みたいな有名所の
悪質サイトに飛ばすものです。最近では amongexercisefinal.top、responsiblesd.xyz、iphlolu.tk みたいな詐欺サイトも見かけます。
接続例
~(途中略)~
HTTP/1.1 302 Found
Server: nginx
Date: Fri, 13 Aug 2021 00:15:22 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
X-Powered-By: PHP/8.0.9
Location: https://iphlolu.tk/help/?13591613683000
X-Cache: MISS from unkown
Connection: keep-alive
(以下略)
上はクライアントのブラウザから、"GET 目的のページ" をやった後にサーバーから帰ってくる反応ですが、いきなり"Location: "で飛ばされていることがわかります。サーバー(nginx)やphpの反応としてはまともですので、phpのコードの問題だと言うことが素直に理解できます。
WordPressリダイレクトハッキングの例
過去でも今でも、header.php にコードを注入する方法が一般的です。いわゆるheaderコードインジェクションというヤツです。
技術的には大したこと無いので、知識として持っておきましょう。
header.php の先頭に、リダイレクトさせたい条件と宛先を含めたコードを注入するだけです。ただのコードの付け足しですので、ハッカーも脳ミソは対して使いません。愉快犯みたいなものです。
かつての上手いフェイクの例
Internet Explorer と Adobe Flash がまだ現役だった頃は、ニセのFlashやJavaアップデートを促して、詐欺サイトに誘導するみたいな例がありました。Adobe Flash の偽物のアップデータがブラウザ経由でダウンロードされ、インストールを促され、adobeのブランドイメージを悪用されてそのままインストールしてしまうというパターンでした。
10年も昔の話ではないと思いますが、今更という感じの古臭い手法です。
感染したサイトへのリンクをFacebookに投稿することにより、Facebookリンクが詐欺サイトにリダイレクトされ続けるという現象が起きることがあります。これは共有キャッシュによるある種のバグですが、https://developers.facebook.com/tools/debug でリセットするまで悩まされ続けますので、Facebook をやっている方は注意しておきましょう。
現実には誰が被害者になるか?
厨房的なハックですが、現実に誰が被害になるかといえば話は別です。最新のOSやブラウザを使っている限り、訪問者が被害に合うことはまれでしょう。エロサイトを訪問して出会い系に登録なんてケースは、大昔のオッサンの反応です。今どきの若者や青年はその程度のことに反応しません。多分オヤジでもカモにしづらいと思います。
ハッカー側としては、サイトをハックして小銭(ビットコトンなど)を稼ぐには、それなりの大量の流入数が見込めるサイトをカモにする必要があります。つまり、それなりの人気サイトということです。
その人気サイトが、リダイレクトハックされ、訪問者の信頼を失えば広告主が離れ、サイトの運営に支障をきたす可能性があります。つり、現実的にはハックされたサイトの運営者の一人負けになる可能性が高いと言えます。
具体的な防止策
この類のハッキング被害に合う人は、ファイルやディレクトリの「パーミッション」設定に無頓着な人が多いです。ある程度の知識がある人は、この手のハッキングに合っても、すぐに何をされたか理解できますが、そうでない人は「とんでもない事が起きた」と大騒ぎして、マッポに駆け込むような対応をとりがちです。
やるべきことは、まずはディレクトリとファイルのパーミッションの確認でしょう。「なぜ、そのディレクトリに書き込み許可が必要なのか、なぜそのファイルに書き込ませる必要があるのか」を意識する必要があります。
上の例では、二番目のWordPressのヘッダー書き換えは少し手間です。WordPressの設定時に、ユーザーがわざわざ初期設定を変更していることを期待してハックするからです。一方、一番目の.htaccessの書き込み設定は普通にありえるので、誰もが注意すべきです。
もう一つは、WordPressとテーマの更新に敏感に反応するという習慣をつけるということです。
ハッカーが header.php や footer.php を書き換えてもアップデートで上書きされますので、ユーザーレベルでは子テーマの書き換えだけをチェックしているだけで、被害に合う確率は圧倒的に下がります。
リダイレクトハックにあった方は、次のページで対策と傾向を分析していますのでご参考ください。