WordPressセキュリティ対策: 不正アクセスを防ぐための具体的手順と復旧方法

先日、「hello admin system hacked」と表示されWordpressが乗っ取られたようです。

ログインユーザーとパスワードが勝手に書き換えられて、普段使用しているIDとパスワードでログインできません。
ユーザー情報が書き換えられているようです。データベースユーザーには影響が無いのでコマンドラインでMySQLを操作します。

mysql -u root -p

次にワードプレスで使用しているデータベースに切り替えます。

use wpblog

このWordpressで使用しているデータベースのユーザー情報を見てみます。

select ID,user_login from wp_users;

作成したことが無いユーザーが存在しており、正規のユーザーは消されています。

そこでこの意図しないユーザーのパスワードを変更します。

update wp_users set user_pass=md5('testpass') where user_login='test-ekeeke-tea';

このユーザー情報でワードプレスの管理画面にログインできるはずです。

ダッシュボードからテーマを見ると、改ざんしてあるTwenty Twenty-Oneになっています。またプラグインもずべて無効になっています。

これらを正規のものに変更して修復します。

目次

他の事例

1. 事例1: 大規模なブルートフォース攻撃による不正アクセス

ブルートフォース攻撃(Brute Force Attack) は、ハッカーが何千回もの試行錯誤を繰り返して、正しいパスワードを見つけ出す手法です。この攻撃は特にパスワードが弱いサイトに対して有効で、多くのWordPressサイトが被害を受けました。

例として、2021年に発生したブルートフォース攻撃の大規模な波がありました。この攻撃では、世界中の数千のWordPressサイトがターゲットとなり、攻撃者は自動化されたツールを使用して、管理者アカウントへのアクセスを試みました。

被害を受けたサイトの一つでは、ブルートフォース攻撃によって管理者アカウントのパスワードが破られ、サイト全体が乗っ取られてしまいました。攻撃者は、サイトのコンテンツを改ざんし、不正なリンクを埋め込み、SEOスパムを仕込むなどして、サイトの信用を失墜させました。

対策として、強力なパスワードの使用や、二段階認証の導入、ブルートフォース攻撃を検知・防御するセキュリティプラグインの利用が推奨されます。

2. 事例2: プラグインの脆弱性を突かれたケース

WordPressプラグインは、便利な機能を追加する一方で、セキュリティリスクも伴います。特に、更新が停止されたり、開発者がサポートを終了したプラグインは脆弱性を抱えていることが多く、攻撃者に狙われやすいです。

例えば、2020年には、人気のあるFile Managerプラグインに重大な脆弱性が発見されました。この脆弱性は、攻撃者が特別に細工したリクエストを送信することで、管理者権限を奪取できるものでした。この脆弱性を利用した攻撃では、攻撃者が不正な管理者アカウントを作成し、サイト全体を制御可能にしました。

被害に遭ったサイトの管理者は、サイトの設定が勝手に変更されたり、不正なコードが挿入されたりするなど、深刻な被害を受けました。攻撃者が挿入したバックドアによって、管理者が脆弱性を修正した後も再度侵入されるケースがありました。

対策として、常にプラグインを最新の状態に保つこと、使用していないプラグインはアンインストールすること、そして定期的にセキュリティチェックを行うことが重要です。

3. 事例3: フィッシングによる管理者アカウントの乗っ取り

フィッシング攻撃は、攻撃者が偽のログインページやメールを使用して、ユーザーのログイン情報を盗み出す手法です。これは特に、ユーザーがよく使用するサイトやサービスを模倣することで成功率が高まります。

2019年に、WordPress管理者をターゲットにしたフィッシングキャンペーンが発生しました。攻撃者は、WordPress公式サイトやホスティングプロバイダを装った偽のメールを送り、ユーザーを偽のログインページに誘導しました。そこで入力された情報は攻撃者に送信され、正規の管理者アカウントが乗っ取られました。

この手口によって、管理者は気づかぬうちにアカウントを失い、サイトが不正アクセスされるケースが多発しました。攻撃者は、取得したアカウントを使用して、スパムを投稿したり、不正なリンクを設置したりしました。

対策としては、疑わしいメールやリンクをクリックしないこと、ブラウザでのログイン時にSSL(https)が有効になっていることを確認すること、そして二段階認証を導入することが推奨されます。

具体的な対策

1. 多要素認証(二段階認証)の導入

説明: 多要素認証(MFA)は、ログインプロセスに追加の確認ステップを追加することで、セキュリティを強化します。一般的には、パスワードに加えて、スマートフォンアプリやSMSで送信される認証コードを入力することが必要になります。たとえパスワードが漏洩した場合でも、この追加の認証ステップが不正アクセスを防ぐ壁となります。

実施方法: WordPressには「Google Authenticator」や「Authy」といったプラグインがあり、簡単に二段階認証を導入することができます。これにより、管理者アカウントのセキュリティが飛躍的に向上します。

2. セキュリティプラグインの使用

説明: WordPressには、多くのセキュリティプラグインがあり、サイト全体のセキュリティを包括的に強化することができます。これらのプラグインは、ブルートフォース攻撃の防御、ファイアウォールの設定、マルウェアスキャン、そしてログイン試行の監視など、さまざまな保護機能を提供します。

おすすめのプラグイン: 「Wordfence」や「Sucuri Security」などのプラグインが有名です。これらは無料版でも基本的なセキュリティ機能を提供しており、有料版ではさらに高度な保護が可能です。

3. ユーザー名を非公開にし、ログインページを保護する

説明: 多くの攻撃者は、デフォルトの「admin」ユーザー名や、公開されている管理者のユーザー名を利用して攻撃を行います。そのため、ユーザー名を公開しないようにすること、また、ログインページのURLを変更して隠すことが有効な防御策となります。

実施方法: 「WPS Hide Login」プラグインを使用して、WordPressのログインページURLをデフォルトの「/wp-login.php」から変更します。また、ユーザー名を公開しないために、プロフィール設定でニックネームを使用し、投稿者名として表示される名前を変更します。

4. WordPressとプラグインの定期的な更新

説明: セキュリティホールやバグが発見された場合、開発者は迅速に修正をリリースします。そのため、WordPressのコアやプラグイン、テーマを最新の状態に保つことは、サイトを安全に保つために非常に重要です。古いバージョンを使用していると、既知の脆弱性が攻撃者に利用されるリスクが高まります。

実施方法: WordPressの管理画面から簡単に更新を確認・実行できます。また、プラグイン「Easy Updates Manager」を使用して、更新を自動化することも可能です。

5. 公式のテーマとプラグインを使用

説明: 信頼できないソースからのテーマやプラグインは、セキュリティリスクを伴うことが多いです。これらの中には、バックドアやマルウェアが仕込まれている可能性があります。公式のWordPressリポジトリや、信頼できる開発者が提供するテーマやプラグインを使用することで、このリスクを低減できます。

実施方法: テーマやプラグインをインストールする際には、公式WordPressディレクトリを使用するか、信頼性のあるマーケットプレイス(例: ThemeForest、CodeCanyon)から購入するようにします。

6. セキュリティ対策サービスの利用

説明: もし自分でセキュリティ対策を実施するのが難しいと感じる場合、セキュリティ対策を専門とするサービスの利用も選択肢に入ります。これらのサービスは、サイトのセキュリティを専門家が管理・監視し、問題が発生した場合には迅速に対応してくれます。

おすすめのサービス: 「Sucuri」や「Cloudflare」のようなセキュリティサービスは、Webサイト全体を包括的に保護し、攻撃の監視と防御を行います。

ハッキング後の対応方法

1. ハッキングの兆候を確認する

説明: ハッキングされた兆候をいち早く発見することが重要です。これには、以下のようなものがあります。

  • 管理者アカウントが変更されている: 突然ログインできなくなったり、新しい管理者アカウントが作成されている。
  • サイトの内容が改ざんされている: ページや投稿に不正なリンクや広告が追加されている。
  • サイトのパフォーマンスが低下している: サイトが異常に遅くなっている、または頻繁にダウンしている。
  • 不審なファイルが存在する: サーバー上に見覚えのないファイルやフォルダが作成されている。

2. サイトのアクセスを制限する

説明: ハッキングの兆候が確認された場合、まずは被害の拡大を防ぐために、サイトへのアクセスを制限します。これには、以下の手順が含まれます。

  • サイトをメンテナンスモードに設定する: プラグインを使用してサイトを一時的に閉鎖し、一般ユーザーからのアクセスを制限します。
  • 管理者のログインを制限する: 管理者のIPアドレス以外からのログインを一時的にブロックするか、管理者アカウントのパスワードを変更します。

3. 不審なファイルとコードを削除する

説明: 改ざんされた可能性のあるファイルや不審なコードを削除することが次のステップです。以下のように進めます。

  • 不審なファイルの特定: FTPクライアントやサーバーのファイルマネージャーを使用して、テーマやプラグインフォルダ内に見覚えのないファイルや変更されたファイルを探します。
  • 不正なコードの削除: ファイル内に不正なコードが挿入されている場合、該当部分を削除します。特にfunctions.phpheader.phpfooter.phpなどが狙われやすいファイルです。
  • ファイルのリストア: バックアップから元の状態にファイルをリストアすることも検討します。信頼できるバックアップがあれば、それを使用してサイト全体を復元するのが安全です。

4. パスワードとキーを変更する

説明: すべてのパスワード(WordPressログイン、データベース、FTP、ホスティングアカウント)とセキュリティキーを変更します。

  • 管理者パスワードの変更: 管理者アカウントのパスワードを強力なものに変更します。また、他のユーザーアカウントのパスワードも変更することを推奨します。
  • データベースとFTPのパスワード変更: MySQLデータベースのユーザーパスワードや、FTPアカウントのパスワードも必ず変更します。
  • WordPressセキュリティキーの更新: wp-config.phpファイル内の認証用セキュリティキーを更新し、セッションを無効にします。そうすることで、すべてのログインセッションが強制的に終了します。

5. サイトの再確認とセキュリティ強化

説明: サイトが正常に動作しているかを確認し、再発防止のためのセキュリティ強化を行います。

  • セキュリティプラグインのインストール: 上記で説明したセキュリティプラグインを導入し、サイトの監視と保護を強化します。
  • ファイルの変更監視: 変更があったファイルを自動的に検出するプラグインを設定し、不正な変更が行われた際にすぐに対応できるようにします。
  • ログの確認: サーバーログやWordPressの活動ログを確認し、攻撃の痕跡や再発の兆候がないか確認します。

6. バックアップと定期的なメンテナンス

説明: ハッキングから復旧した後は、同様の問題が再発しないようにするための措置を講じます。

  • 定期的なバックアップ: サイトの完全なバックアップを定期的に作成し、外部の安全な場所に保管します。これにより、再度ハッキングされた場合でも迅速に復旧できます。ハッキング前に定期的にバックアップを取っておくのが理想です。その後リストアします。
  • サイトのセキュリティチェック: 定期的にサイトのセキュリティ診断を行い、脆弱性を早期に発見し対応します。

教育的な側面

1. セキュリティ意識向上のためのトレーニング

説明: 管理者やユーザーがセキュリティの基本原則を理解し、実践できるようにするための定期的なトレーニングが必要です。これにより、セキュリティリスクに対する感度が高まり、日常的な運用での注意が促されます。

具体例:

  • 定期的なセミナーやワークショップの開催: WordPressのセキュリティベストプラクティスについて学ぶ機会を提供します。例えば、パスワード管理の重要性や二段階認証の設定方法などを具体的に説明します。
  • オンラインコースの提供: UDEMY(ユーデミー)やCourseraなどのプラットフォームを利用して、セキュリティに関するオンラインコースを受講させることも有効です。

2. フィッシング対策の教育

説明: フィッシング攻撃は、ユーザーの認証情報を騙し取る手法の一つです。ユーザーがフィッシングメールや偽のログインページを識別できるように教育することが重要です。

具体例:

  • フィッシングメールの識別方法を教える: メールの送信元アドレスの確認方法や、不審なリンクをクリックしないためのポイントを具体的に説明します。
  • シミュレーションテストの実施: 実際にフィッシング攻撃を模したテストメールを送信し、ユーザーが適切に対応できるかを確認します。これにより、実践的なスキルを身につけさせます。

3. 強力なパスワードの重要性の理解

説明: 簡単に推測されやすいパスワードは、ブルートフォース攻撃などに対して脆弱です。強力なパスワードの作成と管理方法を教育します。

具体例:

  • パスワードマネージャーの利用推奨: LastPassや1Passwordなどのパスワードマネージャーを使用することで、複雑でユニークなパスワードを容易に管理できます。ちなみに私はKeePassXCを使っています。
    KeePassXCの新規インストールと移行方法
  • パスワードの生成方法を教える: ランダムな文字列や長いパスワードの作成方法、定期的なパスワード変更の重要性を具体的に説明します。

4. ソフトウェアの定期的な更新の習慣化

説明: ソフトウェアの更新には、セキュリティパッチが含まれていることが多く、これを怠ると既知の脆弱性が悪用されるリスクが高まります。更新の重要性を理解させ、定期的な実施を促します。

具体例:

  • 自動更新の設定: WordPressやプラグインの自動更新を有効にする方法を説明し、手動での更新を怠らないように指導します。
  • 更新スケジュールの策定: 定期的なメンテナンススケジュールを作成し、管理者が忘れずに更新を実施できるようにします。

5. 安全なブラウジング習慣の推奨

説明: ユーザーが安全にインターネットを利用するための基本的な習慣を身につけることは、セキュリティリスクを低減する上で重要です。

具体例:

  • HTTPSの重要性: 安全な通信を行うために、サイトがHTTPSを使用していることを確認する方法を教えます。
  • 信頼できるサイトのみを利用する: 不審なサイトや不明なリンクを避けるように促し、公式サイトや信頼できるリソースからのみ情報を取得することの重要性を説明します。

6. 定期的なセキュリティレビューと監査の実施

説明: 定期的にサイトのセキュリティ状態をチェックし、潜在的な脆弱性を早期に発見・修正する習慣をつけることが重要です。

具体例:

  • セキュリティスキャンの実施: 専用のツールやプラグインを使用して、サイト全体のセキュリティスキャンを定期的に実行します。
  • ログのレビュー: サーバーログやWordPressの活動ログを定期的に確認し、不審な活動がないかをチェックします。

7. インシデント対応計画の策定

説明: 万が一セキュリティインシデントが発生した際に迅速かつ適切に対応できるよう、事前に対応計画を策定しておくことが重要です。

具体例:

  • 連絡先リストの作成: インシデント発生時に連絡すべき人物や外部のセキュリティ専門家のリストを作成します。
  • 対応手順の明確化: インシデント発生時に取るべき具体的な手順(例: サイトの一時閉鎖、バックアップの取得、パスワードのリセットなど)を文書化します。

追加のリソースとリンク

1. 信頼できるセキュリティガイドやチュートリアルへのリンク

説明: セキュリティに関するより深い知識を得たい読者のために、信頼性の高いガイドやチュートリアルへのリンクを提供します。これにより、読者が自分で調べて学習できるようになります。

具体例:

  • WordPress Codex: ハードニング WordPress
    WordPress公式のハードニングガイドへのリンクを提供します。このページでは、WordPressサイトを保護するための公式推奨手順が詳しく説明されています。
  • SucuriのWordPressセキュリティガイド
    Sucuriが提供する包括的なセキュリティガイドは、初心者から上級者まで役立つ情報を提供しています。ここには、サイトのセキュリティを強化するための具体的な方法が詳しく書かれています。

2. セキュリティプラグインやツールの公式ドキュメントへのリンク

説明: 読者が使用している、または導入を検討しているセキュリティプラグインやツールの公式ドキュメントにリンクを提供することで、設定や使用方法に関する詳細な情報を得られるようにします。

具体例:

  • Wordfence公式ドキュメント
    Wordfenceの公式ヘルプページには、プラグインのインストールから設定、トラブルシューティングに至るまで、必要な情報がすべて揃っています。
  • iThemes Securityドキュメント
    iThemes Securityの公式サイトには、プラグインの機能や設定方法が詳しく説明されています。このリンクを提供することで、読者が自分で設定を行う際の参考になります。

3. セキュリティに関する最新ニュースやブログへのリンク

説明: セキュリティは常に進化する分野であり、最新の情報を得ることが重要です。信頼できるセキュリティニュースサイトやブログへのリンクを提供することで、読者が最新の脅威や対策を把握できるようにします。

具体例:

  • Krebs on Security
    Krebs on Securityは、サイバーセキュリティのジャーナリストであるBrian Krebs氏が運営するブログです。ここでは、最新のセキュリティニュースや分析を提供しています。
  • The Hacker News
    The Hacker Newsは、最新のハッキング技術やセキュリティの脅威に関するニュースを提供するブログです。サイバーセキュリティに関心のある読者にとって貴重な情報源となります。

4. オンラインフォーラムやコミュニティへのリンク

説明: 他のユーザーや専門家と情報を交換したり、問題解決の助けを得られるフォーラムやコミュニティへのリンクを提供します。これにより、読者は疑問や問題に対して迅速にサポートを得ることができます。

具体例:

  • WordPressサポートフォーラム
    WordPress.orgの公式サポートフォーラムは、WordPressに関する質問を投稿し、コミュニティの他のメンバーから助けを得ることができる場所です。
  • Stack Overflow
    Stack Overflowは、プログラミングに関する質問と回答のサイトで、WordPressに関する多くのトピックが扱われています。技術的な質問に対する具体的な解決策を見つけるのに役立ちます。

5. 書籍やPDFガイドへのリンク

説明: より深く学びたい読者のために、セキュリティに関する書籍やPDFガイドを紹介し、購入またはダウンロードできるリンクを提供します。

具体例:

  • 「WordPress Security Made Easy」(Amazonリンク)
    Amazonで購入できるWordPressセキュリティに関する書籍です。初心者にも理解しやすい言葉でセキュリティの基本が解説されています。
  • OWASPの「Web Security Testing Guide」PDF
    OWASPの公式サイトから無料でダウンロードできる、Webセキュリティの包括的なテストガイドです。

タイトルとURLをコピーしました