先日、仕事でお世話になっているクライアントから連絡をもらいました。
「ホームページが乗っ取られてページが文字化けしてしまった! たすけて~!」
さっそく問題のHPを確認してみたところ、閲覧可能なページはあるものの、多くのページで文字化けが発生。閲覧困難な状態になっていました。
よくよく調べてみたところ、改ざんされた全ページに怪しいスクリプトが埋め込まれており、どうやら海外サイトへ誘導するしくみになっているようでした。
ひとまず事例ということで、状況と解決策をかんたんにご紹介します。
この内容は、企業のみではなく、WordPressでサイトを運営しているユーザーなら誰でも被害者になり得る事例ですので注意しないといけません。
WPサイトがハッキングされて改竄される被害
今回連絡をいただいたのは、自社のホームページをワードプレスで運営されている企業さまからです。その担当者さんとは、HP以外の別のお取引でお世話になっていました。ですので、どのようなサイト運営をされているのかはわかりませんでした。
すべての固定ページが文字化け
「とりあえず見てよ」ってことで初めてWordPressの管理画面をみせてもらったわけです。
「わー、やられちゃってますね」
固定ページの全ページが文字化けしていて、読むことができない状態でした。なぜか固定ページ以外の記事ページは無事。と言っても、企業サイトなので固定ページに企業情報に関する重要な内容が書かれており、そのページ数もかなり膨大です。
実際の様子を見せてお伝えすることはできませんが、イメージとしてはこのような感じの文字化けです。文字コードがおかしくなったって感じですね。
ページ内の日本語部分が全部こんな感じに文字化けしていました。同じページ内でも数字やアルファベット、画像やCSSで組んだデザインなどは問題なさそうでした。
改ざんページすべてに怪しいスクリプト
固定ページを管理画面で確認すると、更なる恐怖が…。全ページの文末に怪しげなスクリプトコードが埋め込まれているではありませんか! これも実際のコードをお見せすることはできませんが、イメージとしてはこんな感じです。
<script>でくくられていて、ページを表示させたときに自動で何かを実行させるしくみになっていたようです。
ただ、スクリプト内の前半部分はエンコードされて難読化されているので見ただけでは何をやっているのかわからないんですよね。
デコードして解読してみると、URLや条件などが記述されていて、スマホなどの特定のデバイスで閲覧した場合に海外サイトへ飛ばされるしくみになっているようです。転送先のサイトはおそらくフィッシングサイトでしょうね。
攻撃時にスクリプトを追加して保存するときに文字コードを変えて保存したため、文字化けが発生してしまったのでしょう。
なぜハッキングされた?
ハッカーの目的
ハッカーの目的は、サイト利用者をフィッシングサイトへ誘導することだと思われます。
気が付かずにサイトへアクセスしてきた閲覧者が知らないうちにフィッシングサイトへ誘導され、見ていたサイトだと思って入力した情報を盗むことが目的ではないでしょうか。
おそらく、海外のハッカー集団が世界中のサイトをスキャニングして、サイトの脆弱性などから標的とした複数サイトへ自動で攻撃を仕掛けたものだと思います。
少し前(2018年1月頃)から流行っている手法です。プログラムが自動で世界中のサイトへ攻撃して、スクリプトを追加したのだと思われます。
スクリプトコード部分をGoogle検索すると、ほとんど同じコードが記述されているサイトが世界中に存在することがわかります。気が付いて対処しているサイト管理者もいるでしょうが、放置サイトではそのままになってしまっているようです。怖いですね。日本語のサイトもたくさんありました。
ハッキングされた原因
今回ハッキングの標的になってしまった原因は、WordPressの更新をしていなかったためだと思います。だいぶ古いバージョンを利用されていました。
WPでたびたび入る更新は機能の追加という面よりも、脆弱性への対応という面で重要です。既存バージョンでセキュリティリスクの高い脆弱性が判明したための更新という場合には、早めに更新しておくべきです。
ただし、更新となるとサイトの表示くずれやプラグインが動かなくなるなどさまざまな問題が起こる可能性があります。個人サイトであればとりあえず更新してみるってのもアリだと思いますが、企業サイトでは慎重になるあまり、更新をタイムリーに実施できないという課題があるのだと思います。
復旧と対策
復旧時の対応
改ざんされたページの復旧は、バックアップなどがあれば瞬時に復元できるのですが、残念ながらバックアップを取っていないとのことで手動で1ページずつ復旧させました。
WP管理画面から各ページの更新履歴(リビジョン)を確認し、改ざんされる直前の状態へ復元することが可能でした。
ページ数は多いですが、ひとまずこれで元通りに戻せた形です。
今後の対策
ホームページ自体は復旧されましたが、このままの状態ではまた同様の被害に遭う可能性があります。なるべく早く対策を行う必要があると提案しました。
行うべき対策
- WPのバージョンを最新版へ更新
- WPのバックアップを定期的に取得
- ログイン認証を二段階認証などへ変更
WPのバージョンを最新版へ更新
WPのバージョンが最新でなかったことが、今回ハッキング被害に遭った一番の原因ではないかと考えています。よって、現在稼働している古いバージョンを更新してあげるのがよいでしょう。
しかし、先にもお話しした通り、企業サイトではバージョンアップ後の不具合を懸念して、気軽に更新作業に手が出せないという現状があります。
個人ブログなら「えいやっ!」で一気に更新しちゃうのですが、企業サイトではそうもいかないんですね。そこまで悪い影響はないと思うのですが…。
WPのバックアップを定期的に取得
ファイル単位でもデータベース全体でも、バックアップがあるというだけで気持ちが安定します。企業であれば、おそらく業務システムなどではシステムのバックアップを取っているはずです。同じようにWPサイトでもバックアップを取ってあげればいいのです。プラグインでも簡単に実行できます。
今回はプラグインでの定期実行と、データベース全体のバックアップを定期的に取得していただくよう提案しました。
ログイン認証を二段階認証などへ変更
ハッカーによる強制ログインが行われたことを考え、WPサイトへのログインセキュリティの対策も提案しました。
ログイン時にアカウントとパスワードの他に、ワンタイムパスワードを使った二段階認証を導入することでセキュリティを強化できます。こちらもプラグインで実装可能です。
IPアドレス認証などの方法も取れるのですが、社内の複数ユーザーが利用する場合や固定IPでなくても利用できるようにという考えからワンタイムパスワードの二段階認証方式の方が有効かと思います。
しかし実際の対応は…
上述の提案に対して、実際にやるかやらないかはクライアントの判断になってしまいます。
今回、一番やってほしかった対策はWPの更新なのですが、最終的に対応を見送ることになったそうです。理由は大人の事情ってやつです。
バージョンアップしたいけれどリスクがあるからすぐにはできない。現状では被害は復旧できているので、時間とお金がかかる作業は後回しにしたいということだと思います。
ホームページ制作を担当した会社に相談して、結構な費用を見積もられたのでしょうかね? 僕は直接関わっていませんので口出しはできませんが、すぐやればいいのにと思ってしまいます。
テスト用の環境をサーバー上にでもローカルにでも作って、そこでテストしてから本番環境で更新すればいいだけなのですが…。お金もほぼかからないと思うのですけどね。
ちょっとした懸念
今回の改ざん対応ですが、少しだけ懸念点があるのです。サイト自体の外観はハッキング前の状態に復旧されているようですが、WP内部に変なものが残っていないか不安なのです。
そういう意味でも、WPの更新をやってインストールしなおしてほしかったのですが…。
他にも、サーバー側の特定フォルダに怪しいファイルが作成されていないかとか、「.htaccess」ファイルに変な書き込みがないかどうかとか、不安なポイントはたくさんあります。
まぁこれ以上は僕には手出しできない範囲になってしまうため、この辺にしておきましょう。なんだかもどかしいですが仕方がありません。
さいごに
国内の一般企業のHPサイトがハッキングされてしまったというお話しでした。
お話しの性質上、具体的な内容を記載することはできませんので、なんとなくしか伝わらなかったかもしれません。
最近は大企業だけではなく、中小企業、個人でもターゲットにされて無差別にアタックされているようです。というか、プログラムが勝手に世界中のサイトを探して攻撃しているので、そのサイトがどんなサイトなのかは関係ないのでしょうね。
備えあれば憂いなし。普段からもしものときの準備として、WP更新、そしてバックアップの取得をしておくことが大切だと思いました。