問題 37★★★

会員サイトは、同じIDで5回続けてログインに失敗するとロックする設定である。 ログを調べると、数千のIDに同じパスワードを1回ずつ試した記録があり、 ロックは1件も起きていなかった。ロックが働かなかった理由として、最も適切なものはどれか。

正解:イ

各選択肢の解説

  1. ア正しいIDとパスワードの組を使っているので、失敗そのものが起きないから。

    誤り。これはクレデンシャルスタッフィング(リスト型攻撃)でロックが効きにくい理由です。 どちらも多数のIDを相手にするので混同しますが、場面では全IDに同じパスワードを試し、 失敗の記録が残っています。IDごとに流出した組を使うか、1つのパスワードを当てにいくかで区別します。

  2. イ1つのIDあたりの失敗が1回だけで、ロックする回数に届かないから。

    正解。パスワードを固定してIDの側を次々に変えるリバースブルートフォース攻撃です。 ロックはIDごとの失敗回数で働くので、各IDに1回ずつなら何千回試しても条件を満たしません。

  3. ウ盗聴した認証の値を送り直していて、照合では失敗と数えられないから。

    誤り。これはリプレイ攻撃の説明です。正規のログインで流れた値を写して使うので、 推測は要らず1回目で通ります。場面のように同じパスワードを多数のIDで試すのは、 値を写す攻撃ではなく、当たるIDを探す攻撃です。

  4. エログイン後のセッションIDを奪っていて、ログインの照合を経ていないから。

    誤り。これはセッションハイジャックの説明です。認証が済んだ後のセッションを乗っ取るので、 確かにロックとは無関係に成り立ちます。しかし場面のログはログインを試した記録で、 照合を経ている点が違います。

理解を深めるために

鍵を1本に決めて、ドアのほうを替えていく

ふつうの総当たり攻撃は、1つのドア(ID)に合う鍵(パスワード)を次々に試します。 リバースブルートフォース攻撃は逆で、「Password1」のようなよく使われる鍵を1本に決め、 数千のドアに1回ずつ差し込んでいきます。どこか1つでも開けば攻撃者の勝ちです。

なぜアカウントロックをすり抜けるのか

アカウントロックは「同じIDで何回続けて失敗したか」を数える仕組みです。

  • ID固定の総当たりでは、同じIDで失敗が積み重なるので、数回で止められる
  • リバースブルートフォースでは、各IDの失敗は1回ずつなので、どのIDもしきい値に届かない
  • 攻撃全体の失敗は数千回あっても、ID単位で見ると目立たない

このため対策は、ID単位のロックに頼らないものになります。同じ送信元からの 大量の試行を検知・制限する、よく使われるパスワードを登録させない、 多要素認証を取り入れる、といった組み合わせです。

混同しやすいものとの違い

攻撃 何を変えながら試すか ID単位のロックとの関係
リバースブルートフォース攻撃 パスワード固定でIDを変える IDごとの失敗が少なく届かない
総当たり攻撃 ID固定でパスワードを変える 失敗が積み重なり効く
クレデンシャルスタッフィング IDごとに流出した組をそのまま使う 組が正しければ1回目で通る
リプレイ攻撃 試さない(盗んだ値を再送) 1回目で通るので関係しない
セッションハイジャック 試さない(ログイン後を奪う) 照合を経ないので関係しない

ログに失敗が大量に残っているのにロックが起きていないときは、 「失敗がどの単位で数えられているか」を確かめると、攻撃の種類が見えてきます。

前の問題へ次の問題へ