EC-CUBE 4.0のアカウントロックプラグインは、4.3では本体のログイン試行制限に置き換えられます。ログインの失敗回数を制限する仕組みは4.2.0から本体に入っているためです。ただしロックをかける単位が違うので、置き換えてよいかはその違いで判断します。
ロックをかける単位が違う
アカウントロックプラグイン(管理画面ログイン)はアカウントそのものをロックします。4.3の本体は、ログインIDと接続元IPの組み合わせごとに失敗回数を数えます。4.3.1の設定と、プラグインの設定ファイルの初期値で比べると次のとおりです。
| アカウントロックプラグイン | 4.3本体のログイン試行制限 | |
|---|---|---|
| 対象 | 管理画面のログイン | 管理画面と会員ログインの両方 |
| 止まる条件 | 同じアカウントで10回続けて失敗 | 同じログインIDと接続元IPから30分間に5回失敗 |
| 止まるもの | そのアカウント。正しいパスワードでも30分ログインできない | その接続元IPからの、そのログインIDでのログイン |
本体の制限には、接続元IPだけで数える制限も重なっています。こちらはログインIDに関係なく、同じIPからの失敗が30分間に25回(設定した回数の5倍)で止まります。
違いが問題になるのは接続元IPを変えながらの攻撃
攻撃者が接続元IPを次々に変えながら同じ管理者アカウントを狙うと、本体の制限はIPが変わるたびに数え直すので止められません。プラグインなら10回でアカウントごと止まります。
逆に、プラグインには本物の管理者が締め出される弱点があります。攻撃者がわざと失敗を重ねるだけで、そのアカウントは30分ログインできなくなります。本体の制限は接続元IPごとに数えるので、この締め出しは起きません。会員ログインまで守れる点も本体の方が広くなります。
管理画面にIP制限があれば差はほぼなくなる
管理画面に接続元IPの制限をかけているなら、標準の機能に置き換えて問題ありません。EC-CUBEの ECCUBE_ADMIN_ALLOW_HOSTS やWebサーバーの設定で許可したIP以外からは、ログイン画面に届かないためです。接続元IPを変えながらの攻撃は、その前で止まります。
IP制限をかけられず、アカウント単位のロックがどうしても必要な場合は、プラグインを4.3向けに移植することになります。本体の制限の回数や時間を変える方法は、ログイン試行回数制限を変更してセキュリティを強化するにまとめています。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。