Movable Typeのセキュリティをもう少しだけ強化する方法

2021-12-12, by ka2hiro

こんにちは。

この記事はMovable Type Advent Calendar 2021 - 12日目の記事です。

Movable Type Advent Calendar は初参加ですが、よろしくお願いします。

最近、Movable Type の脆弱性が発見され話題になっていますが、もう対応はお済みでしょうか? まだという方は、最新版にアップデートするか、「古い Movable Type を利用していてアップデートがすぐに行えない場合の対処方法について」を参考に、早めに対応されることをおすすめします。


Movable Type のセキュリティ対策は、Six Apartから公式のガイドが発表されていますが、それに加えて、もう少しだけセキュリティを強化する方法として、2つのプラグイン、

  • TwoFactorAuthentication
  • AdminIPLimiter

をご紹介したいと思います。

TwoFactorAuthentication プラグイン

1つ目のTwoFactorAuthenticationプラグインは、Movable Typeに2要素認証(2段階認証)の機能を追加することで、セキュリティを強化し、アカウントの不正使用を防止するものです。

2要素認証を有効にすると、通常のユーザ名/パスワードによるログインの後、確認コードの入力が求められるようになります。Google Authenticator 等のスマートフォン上のアプリケーションが生成する、1度限り有効の確認コードを入力しなければ、ログインが完了しません。つまり、知っている情報(ユーザ名/パスワード)と、持っている情報(スマートフォン)がそろわなければログインできない、ということになります。

実際の使い方としては、以下のようになります。

  1. 通常通りユーザ名/パスワードを入力し、ログインします。

    ログイン画面

  2. ユーザ名/パスワードが正しい場合、続いて確認コードの入力が求められます。

    確認コード入力

  3. スマートフォンの認証アプリで生成した6けたの確認コードを入力してください。あいだのスペースは入力してもしなくてもかまいません。

    認証アプリ

  4. 確認コードが正しい場合のみ、Movable Type の管理画面へアクセス可能となります。

確認コードというスマートフォンによって生成される、もう1つの情報が必要となるため、仮にパスワードが流出しても、認証アプリをインストールしたスマートフォンを同時に紛失しない限り、アカウントの不正利用を防ぐことができます。

AdminIPLimiter プラグイン

2つ目のAdminIPLimiterプラグインは、管理画面へのアクセスの可否をIPアドレスごとに管理できるようにするものです。

一般的にIPアドレスによってアクセスを制限したい場合、ウェブサーバの設定を変更する必要がありますが、ウェブサーバを操作する権限がない、知識を持った人が周りにいないなど、様々な事情により、ウェブサーバの設定を変更できない場合でも、このプラグインのみで対応できます。

使い方はかんたんで、プラグイン設定画面で、「許可するIPアドレス」または「禁止するIPアドレス」を指定するだけです。

プラグイン設定画面

禁止されたIPアドレスからアクセスがあった場合、指定したURLへリダイレクトするか、指定したエラーページを表示するかを選択することができます。エラーページを表示する場合は、HTMLファイルを指定するだけですので、内容を自由にデザインすることができます。

アクセス時の動作

禁止IPアドレスの指定後、設定内容を保存、適用する前に、任意のIPアドレスを指定して動作確認を行うことができます。うっかり現在アクセスしているIPアドレスを禁止してしまう、といったミスも防ぐことができます。


ということで、Movable Typeのセキュリティをもう少しだけ強化する方法ということで、2つのプラグインを紹介させていいただきました。お試し版もありますので、お気軽にお試しください。