EGセキュアソリューションズ株式会社 取締役の直岡です。セキュリティ研究所の所長を務めています。セキュリティ研究所では、新しいサービスの開発などを行っています。
今回は、2014年にWordPressの発展とセキュリティに貢献したいと思い開発したセキュリティプラグイン「SiteGuard WP Plugin」の開発裏話として、「フェールワンス」の機能を紹介したいと思います。
SiteGuard WP Pluginとは
まず、SiteGuard WP Pluginについて説明します。SiteGuard WP Pluginは、WordPress公式に登録しているプラグインであり、どなたでも無償で利用することができます。ログインと管理ページの保護に注力したプラグインとなっており、WordPressのユーザー情報漏えいの防止やログインページ変更の機能を備えています。
本稿執筆時点で、50万以上のアクティブインストール数という実績があり、国内のレンタルサーバーを中心に活用されています。
リスト型攻撃への対策
2014年、WordPressのセキュリティプラグイン「SiteGuard WP Plugin」を作ろうとしていた時、入れたい機能の1つにリスト攻撃(パスワードリスト攻撃、アカウントリスト攻撃、リスト型パスワードクラッキング)の対策があリました。
リスト攻撃とは、何らかの手段でどこかのサービスから奪われたIDとパスワードのリストを使って、ログインを試行する攻撃です。通常のパスワードに対する攻撃は、IDを固定にして多数のパスワードを試す、あるいは、その逆もありますが、これは、単純な文字の並びや辞書に載っているようなパスワードを標的にします。
しかし、リスト攻撃では、どこかで実際に使われていたIDとパスワードの組み合わせで試行するので、異なるサービス間でIDとパスワードを使い回している人がいると、たとえそれが複雑なパスワードであったとしても、そのIDに対しては1発で破られてしまいます。IDとパスワードの使い回しが危ないのは、これが理由です。
フェールワンス機能の実装
この対策としてひらめいたのが「フェールワンス」でした。使い回しているIDに出くわすと、1発で破られる。だったら、「1回間違ってるフリをすれば良いのではないか」と。
IDとパスワードの組み合わせが正しくても、1度「間違ってます」と返します。5秒後にもう一度ログインすれば今度は無事にログインできます。5秒のインターバルを置いているのは、機械的に2度ずつ試行するツールがあったとしても、5秒の時間的コストを負わせるためです。また、リスト攻撃の対策として生まれたこの機能は、通常のパスワードに対する攻撃にも有効です。
フェールワンスの立ち位置
かくして、「フェールワンス」は、SiteGuard WP Pluginの初期リリースから搭載された機能となったのですが、それほどメジャーな存在にはなっていません。
まずは、仕組みを良く理解しないで機能をONにすると、たちまちログインできずにパニックになります。ログインできなくては、機能をOFFにすることもできませんから当然です。良く理解してからONにしたとしても、同じことを2度行うという行為を繰り返していると、「面倒」という思いが積み重なっていっていくのかもしれません。
手間という点では、SMSで届いた番号を確認して入力するSMS認証や写真を見て信号機が写っている部分を全部選択するCAPTCHA認証よりは手軽なハズ(これらの手法はログイン試行の防御としては優秀です)なんですが、やっていることの意味のわかりやすさという点で、「フェールワンス」には難があります。
また、自分だけで理解した上で使うのでしたら良いのですが、利用者全員にこれを強要するのはちょっと難しいですよね。それと、機械的に2回ずつ試すことは可能ではあるので、2要素認証の代わりになる訳でもありません。さらに、SiteGuard WP Pluginの別の機能である「画像認証」等、認証の要素を追加すれば、「フェールワンス」なしでリスト攻撃にさらされても、1発で破られることはありません。
と、メジャーになれなかった理由の推測を並べましたが、先に書いた通り、リスト攻撃、ブルートフォース攻撃への防御には一定の効果がありますので、他の機能と組み合わせてみるのも良いかと思います。
興味がわいてきました?
SiteGuard WP Pluginでお試しいただけますよ。(無料)
WordPress用セキュリティプラグイン「SiteGuard WP Plugin」
https://www.jp-secure.com/siteguard_wp_plugin/
- カテゴリ:
- 入門