投稿日 2021-05-01 / 最終更新日 2023-07-04
14年間このドメインでポートフォリオサイトを運営し、Wordpressに移行してから3年程経ちますが、遂に私もハッキング被害に遭ってしまいました…。
ホームページ作成に人気の WordPress は世界中で使われているが故にハッカーの標的となりやすく、どれほどセキュリティを気を付けていてもちょっとした隙間に入り込んでくる厄介なものでもあります。
今回は私が行った対処や復旧までの方法を反省を踏まえ忘備録として書いていきます。
Contents
- 1 とにかく、まず落ち着く
- 2 FTPソフトでパーミッションを変更
- 3 まずは該当ファイルを削除、そしてバックアップ
- 4 FTPソフトで「www」以下のファイル、フォルダをすべて削除する
- 5 データベースにWordpressを新規インストール
- 6 テーマを新規インストール
- 7 「wp-content」内の「uploads」をFTPにアップロード
- 8 「wp-content」内の「plugins」を一つずつFTPにアップロード
- 9 「wp-config.php」を編集、アップロード
- 10 「wp-login.php」を編集しアップロード
- 11 ログインパスワードを変える
- 12 サイトが正常に動くか確認する
- 13 セキュリティを常時気にする
とにかく、まず落ち着く
サーバ側からの一時制限メールで初めて気づく
「サイトを踏み台にして大量スパムが送られてるからサイト一時制限制限するね!」とサーバ側から4月28日夕方にメールがあり、運用している3つすべてのサイトが閲覧できなくなりました。
詳細を見てみると更新していなかったテーマのフォルダを利用しスパムファイルを仕込まれた模様。
サイト自体の改ざんではなかったものの、スパムメール送付に利用され多くの方に迷惑行為になっていたことは変わりありません。久しぶりに血の気が引く音を聞きました…。
ここで慌ててアレコレいじらない
初めてのことに頭が真っ白になるも業界も長いので“ここで慌ててファイルやデータベースをいじってしまうと取り返しがつかなくなりサイトを戻せなくなる”ことを知っています。
落ち着いて状況を整理。
- とりあえずサイトの閲覧が制限されてこれ以上被害が広がらない状態であり、サーバ側からどれがスパムファイルか知らされわかっている
- 閲覧制限されているだけなのでサイトを構成しているデータそのものがなくなっている訳ではない
- 元のデータさえあれば復旧は可能
ただし自己解決できるかどうかの判断は祝日とGWの合間の翌日一日(4月30日の平日金曜日)でやれないといけません。自分でできない場合は5月6日までサイトが制限され、非表示のままサーバやGoogleから検索の信頼を失っていく等々恐ろしいことになることは必須。
外部に復旧依頼するのも土日祝日が重なるこのタイミングでは対応してもらえるのか、お値段はどうなのかも心配です。
29日は祝日でどちらにしろサーバ側とやりとりができないため、30日納品の仕事を終わらせたあと手順に従って復旧対応を始めました。
FTPソフトでパーミッションを変更
「www」ディレクトリにアクセスできない
しょっぱなで詰みました。
「www」ディレクトリからバックアップを取り全ファイルを削除しようにも、FTPからもファイルマネージャーからも一切アクセスできない。
検索してもここで引っ掛かる人はいないのか(>_<)サーバ側で制限されたのでサーバ側で解除してもらわないといけないと思い、翌30日を待つことに。
利用しているさくらインターネットは電話対応もとてもわかりやすく良いのですが、コロナ禍のため電話は予約(しかも結構先の日時まで埋まっている)しないと使えません。
一週間もサイトが表示されないなんて一大事すぎる
運営しているサイトは3つともすべて自分のサイトであり、旅行ブログは情勢的に書くこともなく頻繁に更新できないため検索も広告収入も少なく「今はとにかくサイトが存在していればいい状態」ですが、ポートフォリオサイトや劇団のサイトはアクセス数とは無関係に営業や告知ツールそのもの。
何があろうと常に表示されなくてはなりません。
時は一刻を争うためチャットサポートを利用し「www」以下に入るにはどうしたら良いか質問。
初期フォルダの「www」を右クリックし、属性の値を変更
無事「www」ディレクトリ以下に入ることができました。
この時点でどのサイトもデータはしっかりあることが確認できたので、ここがクリアできれば自己解決できると判断。一つ一つ慌てずに対応していきます。
まずは該当ファイルを削除、そしてバックアップ
まずはスパム認定された該当ファイルを削除
削除ファイルの場所を確認してみると、WordPressテーマの更新をしていなかった場所をつかれたのだなと猛省。
プラグインは今でこそ自動更新がありますが、WEB以外の仕事をしている期間というのはログイン自体しない日も数日有り、ログインしてダッシュボードを確認することの大切さを改めて思い知らされました。WordPress怖い!
ファイルマネージャーまたはFTPソフトから「www」ディレクトリ以下をすべてダウンロード
バックアップもプラグインを利用してましたが、そもそもWordpressの記事のバックアップでありログイン自体できない状態では虚しく…。
該当ファイルを削除したら「www」以下をすべてダウンロード。
FTPでも良いですが接続容量で切れる場合や時間がかかる場合もあるので、ファイルマネージャーからの方が良いかなと思います。
FTPソフトで「www」以下のファイル、フォルダをすべて削除する
悪い意味でドキドキする作業ですが、バックアップデータがあれば何とでもなります。思い切ってすべて綺麗に削除します。
データベースにWordpressを新規インストール
さくらインターネットにログインし、「サーバコントロールパネル ホーム」 > 「Wordpressインストール」で必要事項を入力してインストール完了。インストール、とても楽になりました。
詳細はさくらインターネットの『WordPress(ブログ)のインストール』をご覧ください。
テーマを新規インストール
“新規で”使用していたテーマをインストールします。
色々と試すため複数のテーマを入れていましたが、テーマ自体の更新をしないまま放置していたのがいけなかったと反省しています…。
使用していたテーマがわからない場合は「wp-content」>「themes」の中にテーマ名フォルダがあるので、フォルダ名をコピーしテーマの検索にかけると該当テーマが出てきます。テーマを確認してインストール、有効化しましょう。
なおWordpressは何かあった時の為ディフォルトテーマを1つは入れておくことが推奨されていますので、インストール時からあるディフォルトテーマは1つ残しておきましょう。
「wp-content」内の「uploads」をFTPにアップロード
メディアファイルが格納されています。これをフォルダごとアップします。
「wp-content」内の「plugins」を一つずつFTPにアップロード
プラグインは可能な限り”新規”で
プラグインは可能な限り”新規”で入れるのが望ましいですが、SEOプラグインなどは設定がリセットされてしまう場合もあるので、時間的にもすべてのページを設定し直すのは難しいこともありますよね。
ですので、一つ一つアップロードしてはサイトの表示やダッシュボードにエラーがでないか確認しながら進めていきます。
不要プラグインや更新していないプラグインがハッキング対象に
ただし便利にするはずのプラグインが原因でハッキングされることも。
そしてプラグイン自体が邪魔をしていたりテーマとの相性が悪くてうまく動作しない等、プラグインが原因でサイトの表示やログイン自体ができなくなることもしばしばあります。
なので可能な限り新規で入れていきましょう。
万が一ログインできなくなったりエラーが出た時は、プラグインページで削除するか、できなければFTP側でフォルダごと削除します。
削除した後再び表示やダッシュボードを確認。この作業を繰り返します。
「wp-config.php」を編集、アップロード
「wp-config.php」は3つ用意
- バックアップでダウンロードしたwp-config.php(元の記述を確認する用)
- 新しくWordpressを入れた後、今現在サーバで動いているwp-config.php(バックアップ用)
- 2のコピーで、編集してサーバにアップロードするためのwp-config.php(フォルダなどでわける)
②と③は同じもので、③を編集してアップロードします。
万が一の場合は②のファイルをFTP上に戻せるようにしておきます。
これを間違えてしまうと「www」ディレクトリを空にしてWordpressを入れ直すに戻ります。
「wp-login.php」を編集しアップロード
データベースのパスと接頭を元のファイルと同じにする
新しくインストールし直したことで、データベースのパスと接頭が異なりました。
他のハッキングされた際の対応の仕方(元のwp-config.phpをそのままアップロード等)では動かなくなってしまったため、私の場合は以下のように変更しました。
もしこれでサイト表示が元に戻っていないようなら違っている箇所を1つずつ変更、アップ、確認、再び変更、アップ、確認…と繰り返します。
ログインパスワードを変える
上記のように対応すると、設定したパスワードでは入れなくなる場合があります(3つ中2つ入れなくなりました)。
その場合はWordpressのパスワードを忘れたで設定し直します。
「パスワードをお忘れですか?」でメールで変更リンクが届くので、そこで新しいパスワードを生成します。
ここも強化するため、それぞれWordpressが生成した英数字記号の羅列にすることにしました(絶対覚えられませんがセキュリティ強化のため覚えられないパスワードの方がいいかもしれません)。
これでサイト表示、ログイン、ダッシュボードに問題なく入れました。
サイトが正常に動くか確認する
トップページは無事表示、ダッシュボードも問題なく使うことができますが、トップページからのリンクがおかしいことに気づきました。
固定ページや記事はありますし、メニュー設定でもエラーになっていません。しかし、リンク切れ…というかページ自体が「ないよ」と出てしまいました。
「ダッシュボード」→「設定」→「パーマリンク設定」で見直し
ページ名が合っているならば、おかしいのはパーマリンク。
何故かどれも変更になってしまっているので見直し、以前と同じ設定にします。
これでサイト内も無事に動くようになりました。
セキュリティを常時気にする
サイト閲覧ができなくなる=お互いの機会の損失
個人でもお店でも、そしてもちろん法人でも。今やサイトはとても大切な「顔」です。
星の数ほどあるサイトの中で自分のページに辿り着いた人が仕事を依頼したり買ったりお店にきたり…。
サイトが止まるということはそういう機会を逃しかねません。お互いに勿体なさしかありません!
とにもかくにもWordpressは攻撃対象になりやすい、だからセキュリティは運営者が日々確認することが本当に本当に大事。
WEB仕事としてはデザイン&カスタマイズだけで保守運用はしておりませんが、改めてめちゃくちゃ反省する機会となりました。復旧対応の大きな勉強となりました。
全体のセキュリティ強化は多くのブログで紹介されていた「Wordfence」を入れました。
更新は頻繁に、不要なものは削除
Worpress本体、テーマ、プラグインの更新を怠ると脆弱性をすぐについてくるWordpress狙いのハッキング。
- WordPress本体、プラグイン、テーマはとにかくすぐに更新する
- 不要なテーマやプラグインは残しておかない
MySQLデータベースのバックアップを取っておく(5/4追記)
WordPress自体のバックアップを取っておくため、MySQLデータベースからデータをエクスポートしておきます。
さくらインターネットの場合はこちらのページを参照に。
サイトの構成ファイルを保存しておく(5/2追記)
悪さをするファイルを仕込まれたことに気づかないままいた訳ですが、復旧直後のサイトの構成をスクリーンショットで控えておくことも有効かと思います。
知らない名前のファイルが追加されていないか、定期的に目視確認しましょう。
自分で復旧できないと思ったらプロに相談(5/2追記)
最初に書いた通り、万が一焦ってデータを削除してしまったりすると元に戻せなくなる可能性が。自分では難しい!と思ったらWordpressの復旧のプロに相談しましょう。
また、保守運用をしている会社に最初から依頼して任せておくというのも一案かもしれません。
- WP.Support保守サービス https://wpmake.jp/support/
- WordPress救急隊 https://www.wp-119.com/
- などなど
セキュリティ、本当に大切ですね。反省しかありません…。
今回はデータそのものには問題ありませんでしたが、改ざんや勝手に削除でもされ記事が全部消えてしまったら立ち直れませんでした…。
そしてサイトへのアタック数が可視化されてみると、1サイト1時間につき常時100~150万回アタックされていて笑えない笑いが出てきました。今まで侵入されなかったのはホント更新を怠らなかったからだけだなと思いました…。
セキュリティのプロの方々の仕事の凄さに頭が下がりつつ。
個人や少人数で運営している皆さん、常々、本当に常々気を付けてまいりましょう!
2021年5月2日4:23、言い回しのおかしな部分、接続詞、表記の揺れ等追加修正、セキュリティについての記事追記しました。
2021年5月4日23:57、MySQLデータベースのバックアップについて追記しました。