どうも、あきらめない!がモットーのsolabotです。
先日WordPressがハッキングされました。
この記事では、なぜハッキングされたと分かったか?どうなってしまったか?どう対処したのか?ということや、実際のハッキング用のファイルがどのようなものなのかを説明しています。
ことのいきさつ
まさか自分がハッキングの目に合うなんて思ってもみませんでした。
衝撃過ぎて思わずツイートしてしまいましたが、そのツイートに返信してくださった方がいて、「そもそもどのようにしてハッキングに気づいたのか?」というご質問を頂きました。
本当に初歩的な質問で申し訳ないのですがそれはどうやって気が付かれたのですか⁉️
— ゆーとる(2月22日~スペシャル⁉️) (@Ucamp18) February 12, 2020
確かに私も当事者になるまで考えたことがありませんでしたが、実は私自身はハッキングに気づきませんでした。
では誰が気づいたのか?というと、「レンタルサーバーの管理会社」なんです。
レンタルサーバーのマイページに以下のようなメッセージが届いていたことで初めて判明しました。
早速ですが、お使いのアカウント内で規約違反行為が行われております。
http://solabo.blog/wp-includes/120/GFX_PDF.php
等より、送信者を詐称したSPAMメールが大量に発信されております。アカウントが乗っ取られた、もしくは、踏み台にされている可能性がございます。
緊急処置としまして、サーバーアカウントを凍結させていただきました。
なので、私が、ハッキングされたことに気づいた経緯としては、まず、作成したウェブページどころかWordPressの管理画面すら表示されなくなってしまったことに始まります。
いつもどおり記事を作成していると、急に以下の画面。
契約しているレンタルサーバーでは複数のサイトを運営していたので、別のサイトも確認してみると、なんと全てで同じ表示。
これはただ事ではないと、FTPにてファイルの「パーミッション」や「.htaccess」の確認をしてみますが問題なし。
他にもいろいろ試して、どうにもこうにもいかなくなり、レンタルサーバーのサポートに聞いてみようと、レンタルサーバーのマイページを見てみたら、何とメッセージが届いていたのです。
それが、上記画像のアカウント凍結のメッセージでした。
そこで初めて自身のWordPressがハッキングされたことに気づきます。
前触れはあった
そうです。実はいきなり凍結されたわけではないんです。
いつもどおり、記事作成を行っていると、午前11:30ごろ。
最初の「403 Forbidden」の表示。
ここであらゆることを試して、どうにもこうにもいかないときに、ふとしたタイミングで一度復旧されたんです。
と簡単に考えてしまいました。
何なら時間を無駄にしてしまったなぁと、以下の記事を書いていました。
待つと回復することもあるよという記事。
なんとおろかな。
そして、その記事を書いている、まさにそのとき。改めて「403 Forbidden」で何も表示されなくなってしまったのです。
前触れの前触れもあった
上記で前触れがあったと書きましたが、実はそれよりももっと前に、もう1つの前触れがあったんです。
これは、今思えばまさしくなんです。
今回の問題が起こる約1週間前に、画面表示は違いますが、同じくサイトが一切表示されなくなったことがありました。
その画面がまた異質なものだったんです。
以下がその画面です。
普通、エラーなどであれば「403」や「404」、「500」などエラー内容が分かるのが普通です。
しかし、その画面は全く見覚えのないものでした。
WordPress内のファイルの構文間違いのようなものにも見えましたが、いくら調べても出てきません。
しかし、落ち着いて文章を読んでいたら、何となく見覚えのある内容ということが分かってきました。
詳しい方ならすぐピンと来たかもしれません。
実はこれ、WordPressを構成するために必要な「wp-config.php」というファイル内に記載する文章なんです。
それも一部だけ。
慌ててFTPで「wp-config.php」をダウンロードして内容を見てみると、まさしく上記で表示された画面と同じ文章でした。
その当時はハッキングなど夢にも思っていないので、何かの間違いで起こったのだろうと、安易に考えて、正しい文章に書き直しました。
すると、簡単に直ったので安心して作業を続けてしまったのです。
しかし、こんなことは正直有り得ないんです。
自分で「wp-config.php」をいじったならまだしも、普通WordPressを設置する最初か、プログラムをどうしてもいじらなければいけない場合ぐらいにしか触らないファイルです。
その当時は、記事の執筆ぐらいしかしていないので、このファイルどころか近辺のファイルを触った覚えもありません。
それに、直したとしてもこんなに中途半端な状態でアップするなんておかしいです。
正常な「wp-config.php」と比較してみましょう。
明らかにおかしいですね。
こんなところにもハッキングを疑うべき材料がありますので、いじっていないファイルが変わっていることがあれば、少し疑ってもいいと思います。
そして全サイト表示されず
そんな2段階の前触れがあり、ついにレンタルサーバーのアカウント自体が凍結したことに気づきます。
これは、ハッキングされた私への罰則ではありません。
スパムメールを受信してしまう被害者をそこで止めるため、さらに私自身をこれ以上踏み台にされないようにする為の措置です。
レンタルサーバーの対応が早かった為、スパムメールの被害をそこで止めることができただけでなく、私自身も守られました。
ただし、このまま同じようにサイトを運営していては、またハッキングにあってしまうことは避けられず、セキュリティ対策の意識が低い私へ、サーバーを貸すわけにはいけないというのは当たり前の話です。
当サービスを介して、第三者に悪影響を与える行為をなされる事となり認められず、
今後も同様の行為がなされる場合はアカウント削除、ドメイン削除とさせていただく
場合がございます。
とはいえ、いつまでもサイトが表示されないのも困ります。
そのため、レンタルサーバー管理会社から求められた内容をこなし、早期の復旧を目指しました。
以下に時系列に何をしたかまとめていきます。
サイト復旧までにしたこと
ハッキングの被害にあってから現在のようにサイトが表示されるようになるまでに一体どのような作業をしたか。
まず、ハッキングされた為、レンタルサーバーのアカウントが凍結したと判明した時点から。
最初にこの事実に直面したときは、正直ショックでした。
思わずベッドにダイブしましたが、これは思考停止ではなく、どのように今後進めていくか一度整理しようと思ったんです。
解決した今ならよく分かりますが、この計画的に動くというのはとても大切です。
ミスをなくすとともに、無駄なく効率よく作業ができます。
さらに焦りすぎずに済んだのはもう1つ理由があります。
それは、「バックアップ」を取っていたからです。
バックアップデータさえあればいつでも戻せます。
そのため、ベッドから戻った際に一番最初に触ったのはパソコンではなく、「紙とペン」
以下のように、ざっくりと計画を立てて実行していきました。
時系列
レンタルサーバー管理会社から指定された作業がありますが、その前にやるべきことがありました。
それは、現在執筆中の記事の保護です。
別タブにて画面上は表示されていますが、現在凍結中と分かっていたので、次に何かのリンクをクリックしたらもう元に戻れない状態だったからです。
どこまで保存されているか分かりませんが、別タブにて残っていた作成中の記事をローカル環境に保存してから作業に取り掛かっています。
復旧までの主な流れ■嘆きのツイートをする
■執筆中の記事を手動バックアップ
■FTPパスワードのリセット
■使用PCのセキュリティチェック
■サーバー内ハッキング用ファイルの明確化
■サーバー内ファイルとデータベースのバックアップ
■サーバー内ファイルとデータベースの全削除
■レンタルサーバー管理会社へ連絡
■バックアップデータの再アップ
■WordPressログインパスワード変更
■WordPress更新
■プラグイン更新
■セキュリティプラグインの追加
■サイト表示確認
■復旧完了のツイート
嘆きのツイートをする
起こってしまったことは仕方ありません。
まず、真っ先にこの事態が起きたことをツイッターにて報告しました。
バックアップがあって焦ってはいないにしても、ショックは受けています。
そのため、誰かに応援してもらおうと思いました。
その節は皆さんありがとうございました。私の支えになりました。
もちろんツイートの理由はこれだけではありません。
1人でもサイトを見てくださる方がいるのであれば、運営している方は責任を持たなければいけません。
この段階では、サイトに訪問してもらっても「403 Forbidden」としか表示されません。
何が起きているのかを何かしらの手段で伝える必要があります。
私の場合は主にツイッターで起きている事態を説明しましたが、同じようなことが起こった場合、ありったけの報告手段を利用して説明しましょう。
手段は多いに越したことはありません。
その分復旧の通知も大変になりますが。
執筆中の記事を手動バックアップ
これは、上記で説明したとおり。
画面に残っている情報があればとにかく保存しておくと良いです。
万が一レンタルサーバーに説明をする際にも、後日これすらも記事にする際にも利用できます。
画面が消えてからでは説明ができません。
保存方法は保存ボタンが存在するものは良いですが、やりようがない場合は画面のスクリーンショットをとっておきましょう。
さらに、この段階からファイルを整理整頓しながらまとめていくことも大切です。
今後、複雑なファイルの管理が起こるかも知れないので、何が何のファイルなのか明確に。
FTPパスワードのリセット
これは、レンタルサーバー管理会社から指示のあったとおり。
セキュリティ面強化の為です。
また、上記の対応とあわせ、FTPパスワードの変更、FTP接続情報を共有する全PC
のセキュリティチェックを実施の上、ご対応後その旨当フォームのご返信にて
ご連絡ください。
これに関しては、レンタルサーバーの管理画面でできる場合がほとんどです。
レンタルサーバー会社にあわせて実施してみてください。
使用PCのセキュリティチェック
ハッキングがどの部分の脆弱性をついてくるかは分かりません。
今回は、恐らくWordPressの管理画面へのログインID、パスワードFTPパスワードあたりのものが読み解かれてしまったようですが、復旧後も、パソコン本体や別のアカウント情報なども破られてしまう可能性はあるということなので、パソコンのセキュリティチェックも欠かせません。
また、上記の対応とあわせ、FTPパスワードの変更、FTP接続情報を共有する全PC
のセキュリティチェックを実施の上、ご対応後その旨当フォームのご返信にて
ご連絡ください。
私はWindows10のパソコンで作業を行っていますが、先日サポートが終了したWindows7などは使用してはいけません。
大丈夫だろうと使用している人はこぞって狙われているので要注意です。
今回は指摘のあったとおり、パソコンのセキュリティチェックをマカフィーで行いました。
サーバー内ハッキング用ファイルの明確化
詳細なファイル名などは次の項目で書いていますが、この段階では、ハッキングにあったサーバー内のファイルには、通常のファイルと、ハッキングされたことによって、無理やりアップロードされたファイルが混同している形です。
そのため、そのままバックアップをとっても再アップロードでまたハッキング用のファイルが入ってしまうので、まずはハッキング用ファイルを明確にしました。
基本的には更新日時。
ファイルをいじっていないので更新日時が明らかに最近になっているものは、ファイル名を検索したり、内容を確認しました。
ファイルの中身を覗くと明らかにおかしいことが分かります。
確認には最新のWordPressを公式サイトからダウンロードして、正規のファイル内容とどう違うか比較するのが最も簡単で確実です。
明確化したら、通常ファイルのみをバックアップできるように、ハッキング用ファイルの名前のメモを取りながら削除しました。
別サイトにも同じ名前のファイルがあれば同様に削除していく為です。
サーバー内ファイルとデータベースのバックアップ
ハッキング用ファイルを事前に取り除けたら、残ったファイルは通常のみとなるので、FTPソフトを使用してそのままパソコンへダウンロードしてバックアップとします。
ファイルのバックアップはFTPを使えば簡単に行えます。
問題は、データベースです。
データベースのバックアップは、WordPressのプラグインを利用するか、phpMyAdminを利用するのが普通ですが、残念ながら管理画面に入れないので、プラグインはNG。
そして、phpMyAdminも各種サイトURLを利用するので「403 Forbidden」となってしまい、利用できません。
そのため、今回はサポートに確認したところ、データベースはレンタルサーバーの管理ページに備わっているバックアップ機能の利用で構わないということだったのでこれを利用しました。
サーバー内ファイルとデータベースの全削除
バックアップが完了したら、サーバー内にあるファイルを全て削除します。
データベースは前述の通りバックアップさえ取っていれば何もする必要はなしでした。
ちなみに、レンタルサーバー管理会社からのメッセージにもバックアップと削除をするのは「ファイル」と明記がありました。
データベースのバックアップは念のために行ったものです。
お手数ではございますが、お客様にてバックアップを取得の上、サーバー上の
全ファイルを削除し、脆弱性のない最新版に置き換える等、適切な処置を賜ります
ようお願い申し上げます。
レンタルサーバー管理会社へ連絡
ご指摘のあったとおり、「サーバー上の全ファイル削除」と「FTPパスワード変更」、「FTP情報を共有するパソコンのセキュリティチェック」を行ったので、その旨を記載し、凍結解除の申請を行いました。
お手数ではございますが、お客様にてバックアップを取得の上、サーバー上の
全ファイルを削除し、脆弱性のない最新版に置き換える等、適切な処置を賜ります
ようお願い申し上げます。また、上記の対応とあわせ、FTPパスワードの変更、FTP接続情報を共有する全PC
のセキュリティチェックを実施の上、ご対応後その旨当フォームのご返信にて
ご連絡ください。
すると、数時間後に凍結解除の旨、メッセージが届きました。
バックアップデータの再アップ
凍結解除の連絡が来たので、所有ドメインである、サイトURLが今どのように表示されるかを確認してみました。
今まではどんなURLでも「403 Forbidden」でした。
解除後は、全ファイル削除しているので「404 Not Found」。
今までの「権限がありません」ではなく、「ファイルが存在していません」に切り替わったわけですからとても安心しました。
この段階で凍結自体の解除をツイートにて報告しました。
アカウントが生きていることが確認できたので、空っぽになったサーバーに、バックアップしておいたファイルを再アップロードしていきます。
WordPressログインパスワード変更
アップロードが完了したら、すぐにログインパスワードを変更しました。
少しでも見慣れたパスワードは一切使わないようにすべきです。
今回は、WordPressが提案するパスワードを使用しました。
「(」やキーボードのどこにあるの?と思うような「^」まで使用されていて、かつ文字数が24文字です。
とてつもない安心感です。
忘れたらアウトですが。
ログインパスワードの変更は、WordPress管理画面の右上の「こんにちは、○○○さん」か「プロフィール編集」で行うことができます。
プロフィールページの中段「新しいパスワード」から「パスワードを生成」をクリックすると、強力なパスワードを生成してくれます。
しかし、このままでは、新しいパスワードに決まったわけではないので注意です。
画面下の「プロフィールを更新」をクリックすることでパスワードが変更されます。
WordPress更新
WordPressのログインパスワードが変更されたら、今度はWordPress内部の更新があるものを全て更新していきます。
私の場合はWordPress本体がまだ、最新ではなかったので、バージョン5.3.2へ更新しました。
さらに、プラグインやテーマも更新できるものがあったのでとにかく全て更新しました。
そのため、更新のせいで不具合が起きるかも・・・と思っても常に最新のもに更新をした方が良いです。
プラグイン更新
さらに、プラグインやテーマも更新できるものがあったのでとにかく全て更新しました。
過去にはプラグインの脆弱性をついて、サイトがリダイレクトされてしまうという問題もあったので、最新の状態にしておくことが重要です。
セキュリティプラグインの追加
私は、セキュリティプラグインとして「SiteGuard WP Plugin」を導入しました。
このプラグインは信頼度も高く、プラグインを追加して有効化するだけで効果を発揮してくれるのでとても使いやすいセキュリティプラグインです。
WordPressの管理画面のURLも自動で変更してくれます。
このURLでログインページに入れるということは、もう知られてしまっています。
要するに、ログインページのURLを変更していない人のログインページURLは、サイトURLさえ分かればばれていることになります。
あなたのサイトURLを上記ドメイン部分に入れて、後はハッキングツールでパスワードを破ればハッキングできてしまうのでしょう。
しかし、ログインページのURLが少しでも違えばセキュリティ面の強化となります。
どうやって行うかはわかりませんが、コメントの部分から上手いこと侵入することができてしまうようです。
そのため、コメントのセキュリティも強化しました。
利用したのは、「Akismet Anti-Spam (アンチスパム)」というプラグインです。
このプラグインを使うと、スパムコメントを自動で専用のフォルダーに振り分けてくれます。
使用するにはユーザー登録が必要ですが、無料で設定をすることができます。
また、WordPress を運営している会社が提供・管理しているので安心して利用することができます。
サイト表示確認
完全に復旧が完了したら、サイトが正常に表示されているかを、いくつかのページで検証しました。
全てのページは難しいので、ある程度確認し、残りは随時チェックという感じです。
復旧完了のツイート
完全に復旧した旨をツイッターにて報告しました。
本当に大変でしたが、何とか今までどおりに戻りました。
皆様の応援のおかげです。ありがとうございました。
ファイルやデータベースの整理もついでにできたので良しとします。
しかし、今後もセキュリティについてはしっかりと対策していかないといけないですね。
ハッキング用のファイル
サーバー内の全ファイルを削除するよう指示があったので、削除前に怪しいファイルがどれなのか明確にしておきました。
基本的には上述したように、更新日時で絞り込んで、WordPress公式サイトからダウンロードした正規のファイルとの照らし合わせです。
結構アナログですが、明らかにおかしいファイルがあるのが分かりました。
また、実際に怪しいファイルの中身を見てみると構文が整理されていないのでまさしくと言う感じが見て取れます。
正規WPファイルとの比較
まず、今回指摘のあったファイルから。
早速ですが、お使いのアカウント内で規約違反行為が行われております。
http://solabo.blog/wp-includes/120/GFX_PDF.php
等より、送信者を詐称したSPAMメールが大量に発信されております。
この内容から、「http://solabo.blog/wp-includes/120/GFX_PDF.php」このファイルをFTPソフトにて見に行きました。
もちろん身に覚えのないファイルですし、最初から入っているものでもプラグインやテーマによるものでもありません。
もし、そうなら、この文字列で検索すれば、WordPress関連で何かしらヒットするはずですが、しませんでした。
基本的にはこのURLをたどっていけばいいわけです。
そもそも、WordPressのファイルにはそれぞれ役割があり、この「wp-includes」というディレクトリ(フォルダの意味)に入っているものは、「api」や「クラス」、「関数」などが詰め込まれていて、めったに触る部分でもなく、更新日時はどれもWordPress導入の日時になっていることが多いです。
しかし、上記「120」というディレクトリやその中の「GFX」というファイルだけハッキングされたと思わしき日時になっていました。
120フォルダが以下
120フォルダ内には複数のファイルが存在
左が正規の「wp-includes」内、右がハッキング時
ハッキングファイル一覧と詳細
上記のような方法で複数の怪しいファイルを発見したので一覧にしておきます。
同じようなファイルを所持している人は今すぐ対処しましょう。
また、ファイルの中身も一緒に掲載していきます。
ハッキング用ファイルの階層状態
ハッキング用ファイルの詳細
階層はトップレベルドメイン→app内のファイルです。
cs.php
PWTPossnDc.php
test.php
階層はトップレベルドメイン→wp-content→themes内のファイルです。
5fb350.php
s0kqpk.php
階層はトップレベルドメイン→wp-includes内のファイルです。
GFX_PDF.php
PWTPossnDc.php
test.php
階層はトップレベルドメイン直下のファイルです。
cs.php
upload.php
ハッキングは人事じゃない
正直ハッキングされるなんて夢にも思っていませんでした。
しかし、年々技術は上がっています。
悪いことをする人たちはいるものです。
自分の身は自分で守らなければいけません。
レンタルサーバー側は守ってくれません。それは当然です。
なぜなら、契約時にセキュリティも含めて適切に使うことを条件にサーバーを借りているからです。
そのため、たとえ第3者に乗っ取られてスパムメールを大量送信されていても、続いてしまえば、レンタルサーバー契約者も加害者となるわけです。
そのため、今後このようなことが起きないように、ご指摘の通りセキュリティを強化しました。
なお、WordPress構成のWEBサイト運用にあたっては、以下の点
をご留意いただきますようお願い申し上げます。・WordPressバージョンの確認、最新版へのアップデート
・WordPressテーマ、プラグインの脆弱性確認
・WordPress管理画面ログインパスワードの定期変更
今後の運営のためにすべきこと
パスワード
WordPressの管理画面のパスワードを推測不可能なものに変更。
できれば定期的に変更するのが望ましいです。
今回破られたパスワードは8ケタで英数の組み合わせでした。
これぐらいの文字であれば今の技術だと簡単に破られてしまうようです。
ぜひとも複雑なものに変更してください。
バックアップ
定期的なバックアップが身を守ります。
バックアップすべきものは、「サーバー内ファイル」と「データベース」です。
セキュリティプラグイン
各種出ているので、調べてから良さそうなものを使ってみましょう。
おすすめは、「SiteGuard WP Plugin」です。
WordPressのログイン画面のURLを自動で変更してくれるので、ログイン画面を推測されにくくなります。
少しでも怪しければチェック
上述した怪しいファイルを少しでも見かけたら、ハッキングを疑ったほうが良いです。
もし見つかればこの記事の内容を参考に早期に対処しておくことを強くオススメします。
セキュリティ対策しないとどうなる?
当然、私と同じようにハッキングされて、知らないところで大量のスパムメールを送信するなど、あなたの名義で悪さをされてしまいます。
今回は、早期にレンタルサーバー会社が発見し、対処してくれたので、最小限にとどめられましたが、続けば続くほど、あなたもあなたの所有するドメインも信頼度を失います。
せっかく築き上げたドメインパワーもどんどん低下していくでしょう。
そうならないためにも日ごろからセキュリティの意識は高く持ちましょう。
まとめ
今回はとても勉強になりました。
セキュリティ対策は人事ではないということ。
8ケタぐらいの英数字では簡単に破られてしまうこと。
さらに、日ごろのバックアップはとても重要だと改めて思い知らされました。
バックアップを取っていたことで、焦りがだいぶ少なかったと思います。
とはいえ、無事に運営を再開できてよかったです。
コメント