person-using-macb

サーバーアカウントにおける不正なアクセス検知後のブログサイト復旧方法(XSERVER編)

  • 2020-07-27
  • 2020-08-04
  • 全体
  • 55view

ブログ運営のために契約しているレンタルサーバー会社のXSERVERから「お客様のサーバーアカウントにおける不正なアクセスの検知および制限の実施について」のメールが届いたときのブログサイト復旧方法についてです。頂いたメールに対して行った対応と、実際のブログ復旧手順の内容を簡単にまとめてみました。

最低限のブログ復旧を行った手順です。今回の復旧内容では、細かいWordPressのプラグインや細かい設定の復旧はできませんが、最低限の復旧はできます。環境やケースが異なると方法も異なると思われますが、自分用参考メモとして記述します。

実行されるときは複数のサイトで情報を念入りに調べてから、自己責任でお願いいたします。

記事の導入

WordPressによるブログをXSERVERで行っていましたが、サーバー会社(XSERVER)で外部からの不正アクセスを検知していただき、Webへのアクセスに制限をかけていただきました。

XSERVERに指摘されなければすぐには気づけなかったと思います。

原因は

  • WordPressに追加したプラグインの脆弱性に対する外部からの攻撃
  • WordPressの管理者アカウントへの不正アクセス

が考えられます。

完全な切り分けはできませんが、WordPress配下の不正アクセスが原因であることをお知らせいただきました。

また作成した覚えのないMailディレクトリが複数作成されていました。ディレクトリ場所は、ドメインの名前のディレクトリと同じ位置で作成されていました。

最低限のファイルを救った後に、すべてのディレクトリを削除し、WordPressをインストールするところから始める必要があります。

最低限のファイルを救った後、実際にはドメインの削除はXSERVERのサーバー管理のドメイン設定から初期化を行う必要があり、不要なディレクトリはWinSCPを使って手動で削除しました。

受信メールの内容

お客様の上記サーバーアカウントにおいて、 サーバー用メール送信ソフトウェア(Sendmail)を用いた 日本国外のメールアドレスに対する大量のメール送信処理を確認いたしました。

当サポートにてセキュリティ調査を行いましたところ、 お客様がご利用のプログラムにセキュリティ上致命的なバグ(脆弱性)が存在し、 当該脆弱性を第三者に悪用されてしまった可能性が非常に高い状況でございました。

制限の内容

メール受信時には、既にWebアクセスを行うと403エラーとなるように、XSERVERに制限をかけていただけました。

処置と対策

XSERVERに設定している全パスワードを変更

  • XserverアカウントIDのパスワード
  • サーバーIDのパスワード
  • WordPressのログインパスワード
    WordPressのアカウントは複数作成し、管理者のログイン名も推測されにくい名前に変更、元の管理者アカウントの権限を格下げして、パスワードも変更する。

クライアントPCのセキュリティ対策

クライアントPCのセキュリティ対策を強化する。

Windowsアップデートや、ウイルス対策ソフトはアップデートされていたので、今回は特に問題がないようでした。

設定ファイルと画像ファイルのディレクトリのバックアップ(最低限)

/ドメイン名/public_html/wp-config.php  (設定ファイル)

この中には、ブログ記事に関するデータベースのアクセス方法が記述されているため、復旧時に利用する。バックアップとリストアが完了した後に復旧用のデータベースを指定する。

<MySQL 設定が記述されているところ>

作成した記事の文字情報などは、データベースに残っている。

define( ‘DB_NAME’, ‘servername_wp???‘ );
define( ‘DB_USER’, ‘servername_wp???‘ );
define( ‘DB_PASSWORD’, ???’);
define( ‘DB_HOST’, ‘mysql???.xserver.jp’ );

今回の場合は、MySQLのデータベースには被害がなかったので、サーバーに残っているデータベースを使用する。

現時点で、XSERVERのWordPress簡単インストールでは、過去のデータベースを自動で組み込むことができないため、一度新規データベースをデフォルト設定で作成して、後ほどwp-config.phpの上記の内容を修正し復元することになる。

/ドメイン名/public_html/wp-content/uploads(画像ファイルなどのフォルダ)

画像データが保存されているので、バックアップしてない場合はレスキューが必要。リストアする時は、チェックして行う。

※ ダウンロードしたファイルはセキュリティスキャンを行う

<参考にさせていただいたページ> 

/ドメイン名/public_html/wp-config.php (設定ファイル)
/ドメイン名/public_html/wp-content/uploadsフォルダ全部

TOSHIMAGAJINE | 本ブログが不正アクセスをくらいxserverから強制的にアクセス制限された経緯と対応について
https://kazoo-game.com/xserver-access-restriction/

バックアップとリストアの方法(WinSCP利用)

準備

窓の杜のフリーソフトWinSCPをインストールし、左下のツールからPuTTYgenを実行し、マウスを動かすことで.ppkファイルを作成し、公開鍵をXSERVERのサーバーパネルのアカウントのSSH設定に保存する。

クライアントPC側では、WinSCPのログイン画面の設定から、設定を選択し、SSH->認証から条件の秘密鍵のパスに先ほど保存した.ppkのファイルを指定する

  • 転送プロトコルをSFTP
  • ホスト名にサーバーID.xsrv.jp
  • ポート番号10022
  • ユーザ名にサーバーID
  • パスワードにサーバーIDに対するパスワード

を入力してログインする。詳細はxserverのヘルプのSSHの項目をご参照ください。

うまくいくとサーバーID配下のディレクトリにアクセスが可能となる。

間違ってルート(/)に移動してしまった場合は、”/home/サーバーID”を指定すると、最初のディレクトリ位置に戻る。/homeだけを指定してもアクセス拒否される。

前項の内容で示した設定ファイルと画像ファイルのディレクトリをバックアップする。

<参考にさせていただいたページ> 

WinSCP利用方法の詳細について

寝ログ | エックスサーバーにWinSCPでSFTP接続する方法(鍵は自前で生成)
https://nelog.jp/xserver-winscp-sftp

すべてのサーバーの初期化とサーバーID配下のディレクトリの削除

サーバーパネルのドメインのドメイン設定からすべてのサーバーを初期化する
(UIで削除できるところはUIで削除する)

※ この時データベースの削除は行わない。記事の内容も消えてしまうため。

次に注意してサーバーID配下のディレクトリを削除する。(受信メールを確認しながら)

復旧依頼(XSERVERにWEBアクセス制限解除をメールで依頼)

ディレクトリがきれいになった状態を確認した後、XSERVERに対して復旧の依頼をメールで行う。詳細はXSERVERからのメールを参照してください。

サーバーID、お問い合わせ番号、会員IDが必要となります。

カスタマーサービスからWEB凍結解除のメールが来るまで待つ。

復旧作業

  • ドメイン設定のドメイン設定追加を行い、利用可能になるまで再度待機(だいたい1時間が目安らしい)
  • ドメインを選択して、WordPress簡単インストールを行う
    (WordPress簡単インストールでは、作成済みのデータベースを利用することが、現状まだできないようなので、自動でデータベースを作成を選択し、のちほどwp-config.phpのデータベースの項目だけ編集する:wp-config.phpの目次を参照してください)
  • WordPressのテーマのインストールを行い、次に子テーマのインストールを行う
  • uploadsフォルダをwinSCPで復旧するか、もしくはWordPressの記事をWordPress上でチェックし、バックアップデータからひとつづつ画像をアップロードし、ブログの復旧を図る
  • ブログページが復元できたら、必要に応じて不必要なデータベースとデータベース用のアカウントの整理を行う(XSERVERパネルのデータベース)
  • 通常記事を作成するWordPressアカウントを投稿者などに権限を下げる
    (簡単リンクなどのJavascriptsの実行コードは管理者権限で編集を行う必要があります。投稿者で書き込んでもいつの間にか削除されました)

IPアドレスのブロック

不正アクセス元のIPアドレスをXSERVERの「サーバーパネル->ホームページ->アクセス拒否設定->アクセス拒否IP追加」からIPアドレスを指定することでアクセスを拒否することができます。ドメイン毎に設定する必要があります。

国のドメイン毎にアクセス拒否などの設定を行うためには、.htaccess編集の項目で行えるようですが、上級者向けの機能のため、注意して行う必要があります。

パスワード管理ツール

以前はLastPassを使っていましたが、料金が上がってきたためBitwardenに切替えています。絶対安全ということはないですが、現環境では信頼して利用させてもらっています。

まとめ

ブログ復旧手順の内容を簡単にまとめてみました。

問題が起こる前の状態に完全に戻すことができませんが、これらの作業でなんとか復旧できる見通しがつくと思われます。

XSERVERのカスタマーサポートと、参考にさせていただいたブログには大変感謝しております。

同じような現象に遭遇した場合は、恐れることなく順序だてて作業を行うとなんとかなると思いますので、落ち着いてゆっくり確認しながら、作業を行うことが重要となります。

WordPressのアップデートはこまめに行い、プラグインのインストールも最小限にすることの重要性を再認識いたしました。

実行されるときは情報を複数のサイトで念入りに調べてから、自己責任でお願いいたします。

<XSERVERのリンク>

エックスサーバー

関連記事