WordPressにMFA(多要素認証)を実装する|パスワード漏洩時の不正ログイン防止

当ページは検証・整備中のドラフトです。
内容は実環境での検証や追加調査により変更される予定です。
参照:ページ公開・更新ポリシー

多要素認証(MFA)は、さまざまなクラウドサービスで利用されている認証強化の仕組みである。パスワードに加えて別の認証要素を要求し、パスワードだけではログインできないようにする。

WordPressでも、MFAを実装するためのプラグインが提供されている。このUnitでは、WordPressプラグインを利用してMFAを有効化する方法を扱う。

多要素認証の基本的な考え方

MFAでは、パスワードなどの「知識」、スマートフォンやセキュリティキーなどの「所持」、指紋などの「生体情報」といった異なる種類の認証要素を組み合わせる。

例えば、パスワードに加えて認証アプリのワンタイムコードを要求すれば、パスワードのみが漏洩した場合の不正ログインリスクを大幅に低減できる。

ただし、MFAでもフィッシングやセッションの窃取などを完全に防げるわけではない。認証方式によって耐性も異なるため、利用環境に合った方式を選び、他の対策と合わせて安全性を高める。

WordPressプラグインで利用できる認証方式

認証アプリによるワンタイムコード

認証アプリが生成する、一定時間ごとに変わるコードを入力する方式である。TOTPと呼ばれ、Google AuthenticatorやMicrosoft Authenticatorなどのアプリで利用できる。

スマートフォンがあれば導入しやすく、小規模環境では基本的な選択肢となる。

パスキー・セキュリティキー

FIDO2/WebAuthnなどを利用する方式では、端末に保存したパスキーや物理的なセキュリティキーを認証に使用する。

正規のサイトと結び付けて認証する仕組みにより、偽のログイン画面へコードを入力させるフィッシング攻撃に強い。利用できる方式や、パスワードと組み合わせるかどうかはプラグインによって異なる。

メールによる認証コード

登録したメールアドレスへ送信されるコードを入力する方式である。

追加のアプリを用意せずに利用できる場合がある一方、メールアカウントが侵害されると認証コードも取得される恐れがある。メールアカウント自体の保護が前提となる。

MFA有効化の手順概要

MFAを適用するユーザーの決定

WordPressに複数の管理者がいる場合は、一部のアカウントがセキュリティ上の弱点とならないよう、原則としてすべての管理者にMFAを適用する。

各管理者の利用環境に適した認証手段を用意し、プラグインが対応していればMFAの必須化も設定する。

利用するプラグイン・機能の選定

MFAに対応したWordPressプラグインから、対応する認証方式、管理画面の操作性、バックアップコードなどの必要な機能を確認して選択する。

例えば、WordfenceTwo-Factorなどがある。すでに導入しているセキュリティプラグインに同等の機能がある場合は、重複導入を避ける。

Wordfenceは、メインプラグインにログインセキュリティ機能が含まれている。単体のWordfence Login Securityは提供終了が案内されているため、新規導入ではメインプラグインを確認する。

Two-FactorはTOTPやメール認証、バックアップコードなどに対応している。パスキー・セキュリティキーを利用する場合は、Two-Factor Provider: WebAuthnなどの拡張プラグインとの組み合わせを確認する。

プラグインの公式マニュアルから、ユーザー権限ごとの適用、復旧方法、更新・サポート状況などを確認しておく。

認証手段の登録

選択した方式に従い、認証アプリやセキュリティキーなどを登録する。

TOTP方式では、WordPress側に表示されるQRコードなどを認証アプリで読み取り、生成されたコードを入力して登録する方法が一般的である。

登録方法はプラグインによって異なるため、公式マニュアルに従って設定する。

MFAの有効化とログイン確認

MFAを有効化した後は、いったんログアウトし、通常のログイン操作で追加認証が要求されることを確認する。

正しい認証操作でログインできることに加え、誤ったコードや未登録の認証手段ではログインできないことも確認しておく。

MFA導入による影響

MFAを導入すると、WordPressの認証機能を利用する外部サービスやプラグインとの連携に影響する場合がある。

REST API、アプリケーションパスワード、XML-RPCなどを利用する連携は、通常の管理画面ログインとは認証経路が異なる場合がある。利用中の機能がMFAの対象となるか、従来どおり動作するかを確認する。

MFAの運用

認証手段のバックアップ

バックアップコードや予備の認証手段を用意し、通常の認証手段とは別に安全に保管する。

バックアップコードは、認証アプリやセキュリティキーを利用できない場合にログインするための手段となる。第三者に取得されないよう管理し、使用後の再発行が必要かどうかも確認しておく。

認証手段を利用できなくなった場合の復旧

スマートフォンの紛失・故障、認証アプリの移行失敗、セキュリティキーの紛失などに備え、復旧方法を把握しておく。

バックアップコードや予備の認証手段を利用できる場合は、それらを使ってログインする。別の管理者による認証手段の再設定に対応しているプラグインもある。

復旧手段をすべて失った場合は、ホスティングサービスのファイルマネージャやSFTPなどからプラグインを一時的に無効化する方法も考えられる。ただし、無効化によってMFAが解除される範囲や復旧後の動作はプラグインによって異なるため、公式マニュアルで確認する。

管理者・認証手段の変更

管理者の追加・削除、端末の買い替え、認証アプリの移行などに伴い、登録済みの認証手段を適切に管理する。

不要になったアカウントや認証手段は残さず、端末を変更する際は、新しい認証手段でログインできることを確認してから古い手段を削除する。

他の不正アクセス対策との併用

MFAと組み合わせる対策として、地域による管理画面への制限、ログイン試行制限、必要に応じたアクセス制限などがある。

各対策の詳細は、それぞれのUnitを参照する。