ブルートフォース攻撃とは
ブルートフォース攻撃(総当たり攻撃)とは、暗号の解読やログイン画面の突破を狙って、パスワードとして考えられる文字の組み合わせ(英数字、記号など)を、最初から最後まで順番にすべて試していく非常に原始的かつ確実な攻撃手法です。例えば、4桁の暗証番号であれば「0000」から「9999」までの1万通りをすべて入力すれば、いつかは必ず正解にたどり着きます。現在ではコンピューターの処理能力が向上したため、単純で短いパスワードは自動ツールによって瞬時に破られてしまいます。文字数を多くする、複雑な組み合わせにする、複数回失敗したらロックするなどの対策が必要です。
具体例
ある管理者のログインアカウントに対して、ハッカーが専用の自動入力ツールを用いて「aaaa」「aaab」「aaac」…「zzzz」と、アルファベット4文字の組み合わせを休みなく入力し続け、正しいパスワードを見つけ出そうとする行為。
パスワード候補を全パターン試行:\n[試行 1] id: admin, pass: aaaa -> 失敗\n[試行 2] id: admin, pass: aaab -> 失敗\n...\n[試行 N] id: admin, pass: k9#w -> ログイン成功!
もう少し詳しく
ブルートフォース攻撃(Brute Force Attack / 力ずくの攻撃)は、論理的な裏口を探すのではなく、可能な組み合わせをすべて試す力まかせの手法です。数学的に「候補数が有限である限り、理論上は100%確実に成功する」という性質を持っています。コンピュータのCPUやGPUの性能向上、並列処理技術の進化、さらにクラッキング(暗号解読)専用ツールの普及により、現在では人間が想像する以上に高速な総当たりが可能となっています。
ブルートフォース攻撃にはいくつかの派生手口があります。
・通常のブルートフォース攻撃: 特定のユーザーID(例:adminや代表アドレス)を固定し、パスワードの文字列を「aaaa」から順に試していきます。
・リバースブルートフォース攻撃(逆総当たり攻撃): 通常の総当たりは、同じアカウントに対して短時間に大量のログインミスが発生するため、システム側に検知されやすく、アカウントロックがかかります。そこで、よく使われる単純なパスワード(例:「123456」や「password」など)を一つ固定し、ユーザーIDの方を次々と変更してログインを試みます。これにより、個々のアカウントごとの誤入力回数が制限内に収まるため、アカウントロック機能をすり抜けることができます。
・辞書攻撃: 単なるランダムな文字列ではなく、辞書に載っている実在する単語(地名、人名、英単語など)や、過去に漏洩したパスワードによく使われる組み合わせのリスト(ワードリスト)を優先的に試すことで、突破までの試行回数を大幅に削減する効率的な手法です。
試験でのポイント
試験において「ブルートフォース攻撃」は、その攻撃の仕組みを答える基本問題と、システム側で講じるべき「効果的な防止策」についてよく問われます。以下の具体的な対策を整理しておきましょう。
・アカウントロック機能の導入: 一定回数(例:3回または5回)ログインを連続で失敗したアカウントを、一時的(数十分〜数時間)または管理者が解除するまで凍結します。これにより、自動ツールによる無限の試行を防ぎます。ただし、リバースブルートフォース攻撃や後述のパスワードリスト攻撃には効果が薄い場合がある点に留意します。
・パスワードの複雑性と長さの強化: 文字数を増やす(12〜15文字以上)ことが総当たりの組み合わせ爆発を引き起こし、最も有効な対策となります。さらに英大文字・小文字、数字、記号を混在させます。
・多要素認証(MFA)の導入: パスワードがどれほど単純で突破されても、指紋(生体情報)やスマホのワンタイムパスコード(所持情報)が一致しなければログインできないようにします。
・二段階認証(CAPTCHA): 画像の中のゆがんだ文字を読ませる認証をログイン画面に設置し、プログラムによる自動入力・自動試行自体をシャットアウトします。
関連する用語
同一パスワードに対してIDを変更してロックを回避する「リバースブルートフォース攻撃」、他サイトで漏洩したIDとパスワードのリストを試す「パスワードリスト攻撃」、自動的な試行を防ぐための画像認証「CAPTCHA」などがあります。