ホームページがハッキングされて外国人に煽られました

先日お客様のWordPressがハッキングされ、サイトが見れなくなっている状態になっていました

さらになんなら外国人が「ハッキングしてやったぜHAHAHA」と煽っているFacebookの投稿も見つけました

上杉

やゔぁいだろ、、、

この記事ではその際のハッキングが発覚してから原因の特定、そして復元、予防策について紹介したいと思います

発覚のきっかけ

先日お客様からWordPressの管理画面に入れなくなったとお問い合わせがあり見てみると、WordPressのダッシュボードが画像のようになっていました

ハッキングされたWordPressのダッシュボード

この状態は管理画面には入れているが、CSSがあたっておらずまた、各編集ページやCSSは403エラーがでている状態でした

WordPressを使っているとたまに管理画面が真っ白になったりするといったバグに遭遇することがあると思います
その場合は、本体やプラグインがアップデートでエラーが発生したという可能性が高いですが、今回のようにCSSだけが当たっていない状態というのは普通のエラーではあまり考えられません

上杉

現時点でハッキングの可能性70%、、、

403エラーが発生していたので、FTPでサーバーに接続しファイルの権限を見直しましたが問題はなさそうでした

次にhtaccessのファイルを見てみると、以下の様な記述がありました

<FilesMatch ".*\.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|php7|php8|suspected)$">
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch "^(index.php|new.php|wp-login.php|wp-term.php|wp-ver.php|cachef.php|uninstall.php|alfanew.php|theme-install.php|plugin-editor.php|users.php|checkbox.php|upgrade.php|crack_self_restore.php|checkbex.php|down.php|down2.php|downzip.php|enfile.php|gh.php|pinuseren.php|version.php|gh.php|gh3.php|head.php|heada.php|wp-head.php|wp-site.php|wp-info.php|wp-admin.php|wp-config-sample.php|jk.php|cangma.php|cawpf.php|nowp.php|nowpf.php|cyborg_tmp.php|k.php|blogcy.php|wp-blog-header.php|wccy.php|usercy.php)$">
Order Allow,Deny
Allow from all
</FilesMatch>

この記述は.py, .exe, .phtml, .php、.php5, .php7, .php8, .suspected という拡張子を持つファイルへのアクセスを制限するといった記述であり、通常のWebサイト運営では必要のない記述です

そこでこの記述を消したところやはり管理画面は通常のように見れるようになりました

また、htaccessファイル以外にも通常のWordPressでは見たことのないファイルがいたるところにありました

これらのファイルの中身はチャットGPTによると

このスクリプトは、特定の条件下でファイルの作成、書き込み、削除を行い、その結果をJSON形式で返すシンプルなWeb APIです。しかし、難読化されているため、通常のコードリーディングではその目的や機能を容易に理解することが困難です。これはセキュリティ対策の一環として、またはコードの悪用を防ぐために意図的に行われている可能性があります。

ということでした

上杉

ハッキングの可能性100%、、、、

ざっくりいうと管理者以外アクセスができないファイルなどにアクセスし、不正に情報を読み取ろうとした感じですかね

なぜハッキングされたのか

さらにサーバー内のファイルを探ってみると、おそらく過去に使用していて今は使っていないWordPressがインストールされていることを発見したので開いてみると、、、

hacked by salimというタイトルに書き換えられていた

このようにWordPressのサイトタイトルが「hacked by salim」というメッセージに書き換えられていました

また、そのWordPress内にも不審なファイルがあり見てみると、他の不審なファイルとは違いファイルの書き込みや削除を行うことができるコードが記述されていました

したがっておそらくですが、古い放置していたWordPressがなんらかの方法でハッキングされ、そのWordPressを起点にサーバー内にあった他の現在稼働中のWordPressもハッキングされたことが今回の原因かと思います

他にも同様にハッキングされているサイトがいくつかあった

ハッキングの多くはこのサイトを狙ってやろう!と思ってハッキングするわけではありません

例えばとある脆弱性が見つかったプラグインを使用しているサイトのリストを一括で取得し、いっせいに自動でハッキングするという方法が多いので他にも同様の手法でハッキングされたサイトがないか探してみたところ、、、

やはりいくつか同様の手法でハッキングされたサイトがあるようですね、、、

また、ハッキングしたと思われる外国人のfacebookっぽいページも見つかり開いてみるとめっちゃ煽られてました汗

上杉

めっちゃ舐められてる!!

サイトの復活方法

今回行ったサイトの復元方法は

  1. サーバーを初期化
  2. バックアップから復元

という方法になります

ただ、今回はいつ頃ハッキングされたかわからないのでバックアップファイルは使用しませんでした

バックアップファイルもハッキング後であれば復元したとしても状況はかわりません

今回のサイトの性質上コーポレートサイトであり、お知らせなどを更新していただけなので安全を期してテーマファイルのみサーバーからダウンロードし、その他はプラグインや本体、データベースなどは新規でインストールすることにしました

もちろんテーマファイルはすべてコードを見て怪しいコードなどが入っていないかは確認する必要があります

さくらサーバーでの初期化の方法

さくらサーバーによるとwww以下のファイルを削除すれば初期化できると記載があったが、wwwより上の階層のフォルダにも不審なファイルがあったため、さくらサーバーのサポートに連絡してサーバーを初期化してもらいました

ところが、サポートでもwww以下しか初期化してくれなかったので一旦こちらでwww以外のフォルダをすべて削除してから再度初期化をしてもらいました

wwwより上の階層も削除する場合、サーバーに紐づいているメールの設定なども初期化されるのでその点は注意が必要です

まとめ、ハッキングされないために

今回の原因はおそらく使用していないWordPressがサーバーにそのまま残っており、本体やプラグインをアップデートしていなかったなどの理由で脆弱性をつかれ不正なファイルが設置されたと考えられます

WordPressは確かに無料のソフトウェアであるが人気のあるソフトなためハッカーにも狙われやすいソフトです

セキュリティの対応はどこまで対応するかは難しいですが、やはり定期的なプラグインと本体のアップデートは必要ですね

最低限のセキュリティ対策の紹介

  1. SiteGuard WP Pluginをインストールすれば管理画面のURL変更、文字認証、ログインアラートなどをつけることが可能です
  2. UpdraftPlusを使用し定期的にバックアップをとることで今回のようにハッキングされてもすぐに復元することが可能です
  3. 管理画面のフォルダ(/wp-admin/)以下にBasic認証をかける
  4. 定期的にWordPress本体、プラグイン、PHPのバージョン、データベースをアップデートする

運用面での課題

また、今回のように長年色々な制作会社に依頼してきたためにツギハギになってしまい、使用していない古いファイルなどが残ってしまっているサイトはよく見ます

本来であれば不要なプログラムの削除なども依頼の中で対応したいのですがなかなかリスクを説明するにも難しく、費用的にもなかなかOKをもらえないことも多いので難しい問題だと思います

ブログ一覧へ