パスワードを解読するサイバー攻撃の手法として広く知られる「ブルートフォース攻撃」。
しかし、言葉は聞いたことがあるけど、具体的な攻撃の仕組みを理解しているという人は少ないのではないでしょうか?
本記事では、ブルートフォース攻撃の具体的な手法やその脅威、そして被害を防ぐための効果的な対策について解説していきます。
ブルートフォース攻撃とは
ブルートフォース攻撃は、いわゆる「総当たり攻撃」とも呼ばれ、あらゆるパスワードの組み合わせを順番に試すことで認証を突破しようとするサイバー攻撃の手法です。英語の「Brute-force」は「力任せ」や「強引な」という意味を持ち、まさにその名の通り、可能性のあるすべてのパターンを機械的に試していきます。
例えば、4桁の暗証番号であれば「0000」から「9999」までの1万通りを試すことで、必ず正解を見つけることができます。このプロセスを手作業で行うのはあまり現実的ではありませんが、専用のプログラムを用いれば、短時間で大量の組み合わせを試すことが可能です。
類似するサイバー攻撃の手法として、辞書攻撃(よく使われる単語やフレーズを優先的に試す)やリバースブルートフォース攻撃(固定のパスワードで複数のIDを試す)があります。これらの攻撃を防ぐためには、パスワードを複雑にする、試行回数を制限する、多要素認証を導入するなどの対策が有効です。
最初に作ったアプリの認証には、パスワード試行回数制限も何もつけていませんでした…
「未経験からでもホワイトハッカーになれる!」実践的セキュリティスクール「セキュ塾」
- サイバーセキュリティ技術者育成コース(2025年4月生募集中)
- ホワイトハッカー育成コース(2025年2月生募集中)
- 脅威インテリジェンス育成コース(受講生随時募集中)
ブルートフォース攻撃の攻撃手法
まず最初に、攻撃対象を決定します。この時のターゲットは、ログイン認証ページや暗号化されたファイルなど、パスワード入力が必要な場所です。
次に、攻撃する対象のパスワードの長さや使用される文字セットを予測・調査します。例えば、数字のみの4桁の暗証番号や、英数字と記号を含む長いパスワードなど、目標のシステムに応じた想定をします。
そして、攻撃ツールを選定します。一般的には、Hydra や John the Ripper、Hashcat などのツールが用いられます。これらのツールは、ターゲットの認証システムに対して膨大なパスワードの組み合わせを自動で試行することができます。ツールにターゲットのIPアドレスやサービス(例:SSH、HTTP、FTPなど)、ユーザー名(もしくはメールアドレス)を入力し、使用するパスワードリスト(辞書ファイル)を指定します。
辞書ファイルは、攻撃を高速化するために重要です。一般的なパスワードやユーザー名、単語、数字のパターンを集めたものです。また、辞書攻撃を超えて、可能な限りの文字列を試す「全パターン攻撃」も可能ですが、これは時間がかかるため、通常は実行する範囲を絞ることが多いです。たとえば、英数字と記号の組み合わせを試す場合、その全組み合わせを1文字ずつ増やして順番にテストします。
ツールを使って攻撃を実行すると、パスワードが一致するまでツールは自動的に次々と異なる組み合わせを試し続けます。例えば、Hydra ではコマンドラインに次のような形式で指定できます。
hydra -l username -P password_list.txt ssh://target_ip
このコマンドは、指定されたユーザー名(-l username
)とパスワードリスト(-P password_list.txt
)を使い、SSHでターゲットIP(ssh://target_ip
)に接続して、正しいパスワードを突き止めようとします。攻撃が成功すると、ツールは成功したパスワードを表示します。
攻撃には、システム側で設定されているセキュリティ対策を意識する必要があります。たとえば、ログイン試行回数の制限や、IPアドレスのブロック機能がある場合、攻撃元IPが一時的にロックされることがあります。この場合、攻撃元IPを変更するか、プロキシを使用することが有効です。また、特定の時間帯にのみ攻撃を行うことで、疑われにくくする手口もあります。
ブルートフォース攻撃は、理論的には時間さえかければ必ず成功しますが、システムのセキュリティによっては、試行錯誤を防ぐために高度な対策が施されていることが多いため、実際に成功させるためには、攻撃者側の工夫や予測が必要とされます。
全パターンを試行することができれば、理論上はいつか正解にたどり着くので、
開発者目線では対策必須の攻撃なんですね!
ブルートフォース攻撃の対策方法
認証機能を脅かす、対策必須のサイバー攻撃「ブルートフォース攻撃」について対策方法をご紹介していきます。
パスワード設定を複雑にする
パスワードが複雑で長ければ長いほど、ブルートフォース攻撃を成功させるために必要な時間が増加します。12文字以上のランダムな英数字と記号を組み合わせたパスワードを使用することが重要であると、様々なセキュリティ関連の団体から推奨されています。
複雑なパスワードを生成・管理するためには、パスワードマネージャーなどの信頼性の高いパスワード管理ツールを活用するのもいいでしょう。
開発者側で、ユーザのパスワードを複雑にしなければ設定できない様に強制してしまうことも有効です。
パスワード設定で大文字や記号を混ぜないと設定できないと、「面倒くさいな」と思っていましたがこういった対策だったんですね…これからはちゃんと考えます!
多要素認証の導入する
パスワードに加え、ワンタイムパスワード(OTP)や生体認証など、追加の認証手段を導入することで、攻撃者がパスワードを突破してもアクセスを防ぐことができます。多要素認証を使用することで、セキュリティレベルが大幅に向上します。
ワンタイムパスワードを発行するアプリの使用した多要素認証を導入している企業も多いのではないでしょうか?
試行回数制限やアカウントロック機能をつける
一定回数以上のログイン試行が失敗した場合に、アカウントを一時的にロックする機能を実装することも対策として有効です。例えば、5回以上ログイン失敗した場合に15分間ロックをかけるなどの対策を実施することで、ブルートフォース攻撃を遅らせることができます。
ロックしたアカウントを、管理者でなくてはロック解除できないようにしているサービスも存在します。
今まで対して意識していませんでしたが、私たちが普段している認証機能には様々な工夫が凝らされているんですね!
CAPTCHA機能をつける
CAPTCHA(キャプチャ)は、「コンピュータと人間を区別するための完全自動化された公開チューリングテスト」のことで、広く使用されているセキュリティ対策の一つです。ネットサーフィンをしていて、パネルから選ぶ方式で車の画像認識などをさせられた方も多いのではないでしょうか?
CAPTCHAは、攻撃者がボットや自動化されたプログラムを使用して、大量のログイン試行や不正な登録を行うことを防ぐために設計されています。例えば、先ほど挙げた車の画像認識や、歪んだ文字や識別困難な数字の画像を表示し、ユーザーにその文字や数字を入力させることで、自動化されたログイン試行を防ぐことができます。
車はどれか選べみたいな表示は、CAPTCHAというんですね!
IPアドレス制限
IPアドレス制限は、ブルートフォース攻撃や不正アクセスの防止に有効なセキュリティ対策の一つです。具体的には、同一IPアドレスからのログイン試行回数を制限することで、攻撃者が自動化ツールを使って大量のパスワードを試すことを防ぎます。
例えば、一定回数(例えば5回)以上ログインに失敗した場合、そのIPアドレスを一定時間(例えば15分)ブロックする方法がよく用いられます。このように、一時的にIPアドレスをロックアウトすることで、攻撃者は試行回数を制限され、時間をかけてもアクセスを突破することが難しくなります。
さらに、IPアドレス制限は特定の地域や国からのアクセスを制限するためにも使用されます。例えば、特定の国からのみアクセスを許可する設定にすることで、攻撃者が海外から攻撃を行う場合でも、その地域からのアクセスを制限することができます。このような地域別制限もIPアドレス制限の一部として有効です。
一般ユーザが同じIPアドレスを使って、
複数回ログインを試みた場合にも制限がかかることが想定されます!
ログイン試行の監視と通知
異常なログイン試行を検出した場合、管理者に即座に通知が届くように設定するのもいいでしょう。この対策により、攻撃を早期に発見して防いだり、セキュリティを突破した不審なユーザに気づくことができます。
完全なセキュリティ対策はないものと思っておく姿勢でいるべきなのかもしれません!
ブルートフォース攻撃の被害事例
ブルートフォース攻撃の被害に遭った国内企業の事例を紹介していきます。
【NTTドコモ】電子決済サービス「ドコモ口座」の不正な現金を引き出し被害
2020、NTTドコモが提供する電子決済サービス「ドコモ口座」を利用した不正引き出し事件が大きな注目を集めました。この事件では、地方銀行の預金口座から現金が不正に引き出される被害が相次ぎ、システムの脆弱性が問題視されました。
■事件の背景
ドコモ口座は、ユーザーが自身の銀行口座を登録することで、電子決済や送金が可能になるサービスです。この登録プロセスには、「口座番号」「名義」「4桁の暗証番号」の入力が必要であり、銀行の「WEB口振受付サービス」を利用して登録が完了します。「WEB口振受付サービス」は地方銀行とドコモ口座が連携するための仕組みで、預金口座振替の新規登録を簡便に行うために設けられていました。
■攻撃手法の疑い
一部の被害者の証言や専門家の分析により、この事件は「リバースブルートフォース攻撃」や「パスワードスプレー攻撃」の手法が用いられた可能性が指摘されています。
- リバースブルートフォース攻撃:少数のパスワードを特定のIDに対して次々に試行する攻撃。
- パスワードスプレー攻撃:同じパスワードを多くのIDに適用し、認証突破を試みる攻撃。
これらの手法は、攻撃者がパスワードを総当たりで試す従来型の攻撃と異なり、アカウントロックの回避や検知されにくい特性を持ちます。
被害拡大の要因
攻撃が成功した背景には、次のような要因が考えられます:
- 「口座番号」「名義」「暗証番号」の組み合わせ情報が第三者に漏洩していた可能性。
- 銀行側で多要素認証や異常な試行を検知する仕組みが十分でなかった。
- ドコモ口座のシステムにおけるセキュリティ対策の甘さ。
事件が示す教訓
この事件は、リバースブルートフォース攻撃やパスワードスプレー攻撃が現実の脅威であることを浮き彫りにしました。特に、複数のシステム間で情報連携が行われる環境では、1つの弱点が全体のセキュリティを危険にさらす可能性があります。
まとめ
ブルートフォース攻撃は、認証機能の突破を狙う代表的なサイバー攻撃のであり、開発者は必ず対策方法を抑えておきたい攻撃の一つです。
この攻撃は、考えられるパスワードの組み合わせを、ツールなどを用いて機械的に試していくことで、認証を突破しようとするサイバー攻撃の手法です。
対策方法としては、
- パスワード設定を複雑にする
- 多要素認証を導入する
- 試行回数制限やアカウントロック機能をつける
- CAPTCHA機能をつける
- IPアドレス制限を設ける
などが効果的です。
認証機能という誰しもが利用している機能を脅かす危険な攻撃なので、開発者の方もサービス利用者の方もぜひ注意してみて下さい。
実践的セキュリティ特化スクール「セキュ塾」では、様々なサイバー攻撃を仮想環境で実践し、対策方法まで学習することができます!
「未経験からでもホワイトハッカーになれる!」実践的セキュリティスクール「セキュ塾」
- サイバーセキュリティ技術者育成コース(2025年4月生募集中)
- ホワイトハッカー育成コース(2025年2月生募集中)
- 脅威インテリジェンス育成コース(受講生随時募集中)
コメント