友人からDMをもらいました。
奥野さんのブログ、「アクセス先のサイトで不正なソフトウェアを検出しました」という赤い画面が出ますよ!
この画面、悪意のあるソフトウェアが訪問先に仕込まれているときにChromeが出してくれるメッセージです。Web閲覧者にとっては、この画面が出ることで危険なサイトを訪問せずに済むので助かるものでしたが、自分のブログでこの画面が出てくるのはアクセスが無くなるので本当に困ります。
その友人の環境はMac+Chrome。僕はWindows環境で複数のブラウザーを試したのですがその画面が出てきませんでした。と思ったら自分の環境でも出てくるようになってしまった、ということで、対処することに。
~ 目次 ~
状況把握
まずはともあれ、状況把握です。現場百回ってヤマさんも言ってました。
まず、赤画面には詳細ボタンがあります。何はともあれこれを開いておきましょう。
読めませんが、ロシア語っぽいこんなサイトで問題がある、ようです。これをテキストでコピーしてアクセスしようと思ったら、同様に赤い画面になりました。何かの理由で、このサイトにリダイレクトしようとして赤画面が出ているのですね。
また、赤い画面の出現タイミングですが、一通りコンテンツが表示されてから出現するようでした。速度的にはあっという間なので、コンテンツが出始めたと思ったら即、赤画面という感じ。
次に、Chromeのセキュリティ設定から「セーフブラウジング」を一時的に「保護なし(推奨されません)」にします。
この設定をすることで、赤い画面が出ずにコンテンツを表示できるようになります。もちろん安全性が落ちるので、必要な確認作業が終わったら「標準保護機能」または「保護強化機能」に戻しておきましょう。
セキュリティの設定は「設定」「セキュリティとプライバシー」「セキュリティ」でたどり着けます。
(バージョン: 99.0.4844.51(Official Build) (64 ビット))
セーフブラウジングをオフにしてから自分のブログを見て、ソースコードを確認してみました。ブログを表示させて右クリック→「ページのソースを表示」で表示できます。
ソースコードの画面を開いたら「Ctrl」キーを押しながら「F」キーを押します。これで単語検索ができるようになるので、赤画面に出ていた謎のサイト名のドメイン部分「ykp」を指定してみました。
すると、ykpという単語はソースコードの中に出てきませんでした。
ここまで調査したところで、セキュリティの設定を元に戻します。テストの中で赤い画面が出なくなるか、試したいからです。
プラグインを無効化してみる
サイトを指定するような記述がソースコードになかったことから、サイトに侵入されてコードに何かを埋込まれるような変更を施された可能性を低く見積もりました。こうなると、よくあるパターンとしては、
何かしらの更新されていないプラグインが第三者によって悪い改造をされ、おかしなサイトにアクセスするようになってしまった
のではないかということ。
そこで、とりあえずWordPressのプラグインをすべて無効化してみました。
これは効果ありませんでした。赤い画面が引き続き表示されました。プラグインの線は、はずれです。
ウィジェットを外してみる
他に外部にあるロジックを動かすような処理がどこかになかったかな。
頭を巡らしていたら思い出しました。ウィジェットです。サイドバーや本文下などに配置するウィジェットには、外部サーバーの処理を起動させるような記述をしたり、シンプルなテキストファイルを記述したり、様々な記述をします。
ということで、まずはえいやっとウィジェットをすべて非表示に。これがビンゴで、ブログの画面が普通に表示されるようになりました。
「犯人」は「非表示にしたウィジェットのどれか」ということになったわけです。
プラグインは戻し、ウィジェットは設定しなおす
ウィジェットをすべて外した状態でプラグインを戻しましたが、赤い画面は引き続き出ませんでした。プラグインの犯人説はこれで否定です。
ウィジェットですが、何を戻すかということになります。テキストしか貼り付けていないものはまあ大丈夫でしょう。
外部の処理を呼んでいるものは、必要に応じて新規に取得し直す方針で進めていこうと思います。せっかくなので、ブログに不要なものは無くしていきましょう。
とにもかくにも、これで赤い画面が出現する現象を回避することができました。調査開始から修正まで、およそ1時間15分。長期化しないで良かったです。