ブルートフォース攻撃対策|ログイン試行回数制限とアカウントロック

ログイン画面がインターネット上に公開されている以上、そこには自動化された総当たり攻撃、いわゆるブルートフォース攻撃が日常的に飛んできます。人間が一つずつ試すわけではなく、プログラムが1秒間に何百回もログインを試行します。

この記事では、ブルートフォース攻撃の仕組みと、実務での基本的な対策を整理します。

関連

セキュリティ対策を横断的に確認したい方は、 Webアプリの脆弱性・セキュリティ対策まとめ もご覧ください。

ブルートフォース攻撃とは

ブルートフォース攻撃(総当たり攻撃)とは、考えられるパスワードの組み合わせを片っ端から自動的に試し続ける攻撃です。

似た手法に「辞書攻撃」(よく使われるパスワードのリストを順に試す)や「パスワードスプレー」(1つのパスワードを多数のアカウントに対して試す)がありますが、いずれも「制限なく何度でも試行できる」ことを前提にしている点は共通しています。

つまり対策の本質は、「何度でも試行できる」状態そのものを無くすことにあります。

体験|何回まで試行できるか見る

実際に手を動かして確かめてみましょう。以下のデモは実際の通信を一切発生させません。ボタンを連打して、自動化された攻撃を疑似体験してください。

体験デモ|何回まで試行できるか見る

試行回数制限なしありを比較する

実際の通信は発生しません。ボタンを連打して、自動化された総当たり攻撃を疑似体験してください。

失敗した試行回数
0

ボタンを押すと、実行結果がここに表示されます。

「対策なし」の状態では、何回失敗してもボタンを押し続けられたはずです。実際の攻撃はこれをプログラムで自動化するため、事実上無制限に試行され続けます。「対策あり」に切り替えると、一定回数失敗した時点でアカウントがロックされ、それ以上の試行そのものができなくなります。

対策の基本|試行回数を制限する

実務で使われる主な対策は、次の3つです。

アカウントロックは効果が高い一方で、悪用すると「他人のアカウントを狙ってわざと連続失敗させ、正規の利用者をロックアウトする」という嫌がらせ(DoS的な悪用)が成立してしまう副作用もあります。実務では、ロック時間を段階的に伸ばす、IPアドレスも合わせて見る、といった工夫を組み合わせて運用します。

MFAとの組み合わせが重要

試行回数制限は「パスワードを当てさせない」ための対策ですが、それでも突破される可能性はゼロにはなりません。

多要素認証(MFA)とは?導入のポイント と組み合わせることで、万が一パスワードが割り出された場合でも、もう1段階の防壁が機能します。試行回数制限とMFAは、どちらか一方ではなく、両方を実装するのが実務上の基本です。

実務で意識したいポイント

まとめ

ブルートフォース攻撃は、特別な技術がなくても「制限なく何度でも試行できる」状態さえあれば成立してしまいます。対策の基本はログイン試行回数の制限であり、レート制限やCAPTCHAと組み合わせることでより強固になります。

自分のアプリのログイン画面に、この制限が実装されているか確認してみてください。

顧問契約、開発、プロジェクトのご依頼を承ります。
内容、期間により金額が変動しますのでお気軽にお問い合わせください。

※ 案件によりお受けできない場合もあります。

お問い合わせはこちら →
戻る