目次
ブルート フォース攻撃とは
ブルート フォース攻撃とは、攻撃者が大量のパスワードやキーを試すことで正しいものを見つけようとするサイバー攻撃のアプローチで、日本語では総当たり攻撃と言います。この「ブルート フォース(力任せ、強引な)」という名称は、このアプローチが特定のソフトウェア上の脆弱性を突いたり、高度なハッキング技術を用いたりするのではなく、単純な反復試行による力任せのアプローチであることを示しています。
通常、この手法は強力な計算能力に依存しており、十分な試行を重ねれば、いずれどんなパスワードや暗号キーでも見破れるという前提に立っています。
ブルート フォース攻撃には時間がかかることがあり、パスワードや暗号化キーの複雑さによって制約されます。
標的となるクレデンシャルの長さと複雑さは、攻撃の実現可能性に直接影響します。短いパスワードや、一般的な単語や名前を使用したものは、当然ながら、複雑で長いパスワードに比べてはるかに脆弱です。
最新の暗号化アルゴリズムや強固なパスワードポリシーは、ブルート フォース攻撃への対抗を目的として設計されています。攻撃に必要な時間や計算資源を膨大にし、現実的に実行不可能なレベルに引き上げることが狙いです。
手口の違いで分類する8種類のブルートフォース攻撃
ブルート フォース攻撃には、アプローチや効率の違いによっていくつかの種類があり、いずれもパスワードや個人識別番号(PIN)、暗号キーなどを体系的に推測して不正アクセスを試みるという基本手法の反復的な応用にすぎません。
以下に、主なブルート フォース攻撃の種類を示します。
攻撃名 | 概要 |
---|---|
単純ブルートフォース攻撃 | 文字のすべての組み合わせを順に試す。最も時間がかかるが、弱いパスワードに対して有効。 |
クレデンシャルスタッフィング | 漏洩済みのユーザー名とパスワードを他サイトで使い回し、ログインを試みる。 |
辞書攻撃 | 辞書に載っている単語や一般的なパスワードを用いて試行する。単純なパスワードに有効。 |
ハイブリッド攻撃 | 辞書攻撃に記号や数字の組み合わせを加えた手法。パターン化されたパスワードに効果的。 |
マスク攻撃 | パスワードの構造(長さや特定文字の位置など)を想定して効率化した試行を行う。 |
レインボーテーブル攻撃 | 事前に計算されたハッシュ一覧表と照合し、ソルトなしのハッシュに対して有効。 |
リバースブルートフォース攻撃 | 既知のパスワードから、該当するユーザー名を探し出す。パスワードの使い回しを悪用。 |
ルールベース攻撃 | あらかじめ定めた変形ルール(置換、記号追加、リートスピークなど)を使い、パスワード候補を生成。 |
それぞれ解説します。
単純ブルート フォース攻撃
この種類のブルート フォース攻撃では、攻撃者が正しいパスワードを見つけるまで、文字のあらゆる組み合わせを試します。この手法は通常、ブルート フォース攻撃の中で最も遅い方法とされます。ほとんどの場合、自動化されたソフトウェアが用いられ、1秒間に何千通りものパスワードの組み合わせを生成・試行することが可能です。
時間と労力がかかり非効率ではあるものの、単純ブルート フォース攻撃は非常に効果的な場合があります。特に、最も一般的な弱いパスワード(123456、password、111111、pa$$word、abc123、Password1、test、guest、Welcome@123 など)に対しては、その効果が顕著です。
クレデンシャル スタッフィング
クレデンシャルスタッフィングは、従来の意味でのブルート フォース攻撃とは異なるものの、過去のデータ侵害で得られた既知のユーザー名とパスワードの組み合わせを他のウェブサイトで試す手法です。複数のアカウントで同一パスワードを使い回すという一般的な習慣を悪用するものです。
辞書攻撃
この手法では、一般的なパスワードや辞書に載っている単語のリストが使われます。多くのユーザーが脆弱でありふれたパスワードを選ぶという事実を攻撃者が利用することで、すべての文字の組み合わせを試すよりも短時間で突破が可能になります。
攻撃者は、一般的なパスワード、標準的な辞書の単語、頻繁に使われるパスワードのフレーズを集めたリストなどから作成された、あらかじめ決められた推測候補を使うことが多くあります。この方法は、ユーザーが単純な単語をパスワードに使う傾向を悪用するものです。
ハイブリッド ブルート フォース攻撃
ハイブリッド ブルート フォース攻撃とは、ブルート フォース攻撃と辞書攻撃を組み合わせた手法で、辞書内の単語に数字や記号、大文字・小文字の変更を加え、若干複雑ながら一般的なパターンに基づくパスワードの推測を試みます。これは、辞書の単語に対する典型的な置換や追加を行って作られたパスワードに対して効果的です。
マスク攻撃
マスク攻撃は、ブルート フォース攻撃の中でもより標的を絞った手法で、攻撃者がパスワードの構造(たとえば長さ、特定の記号の使用、接頭辞など)についてある程度の情報を把握している場合に行われます。マスクやパターンを適用することで、パスワードの解読に必要な試行回数を抑えることが可能になります。
レインボー テーブル攻撃
レインボー テーブル攻撃は、パスワードを一つひとつ推測するのではなく、あらかじめ計算された全パスワードのハッシュ値を一覧にしたテーブルを利用します。攻撃者は、対象となるパスワードのハッシュ値をこのテーブル内の値と比較することで、攻撃中にハッシュを計算することなく一致する値を特定し、単純なハッシュベースのパスワード保護を効果的に回避できます。
この手法は、パスワードをハッシュ化して保存する際にランダムなデータ(すなわちソルト)を加えない、ソルトなしのハッシュ関数を使用しているシステムに対して有効です。
リバース ブルート フォース攻撃
従来の手法が既知のユーザー名からパスワードを推測するのに対し、リバース ブルート フォース攻撃では、既知のパスワードまたは可能性の高いパスワードのリストから開始し、それに一致するユーザー名を見つけ出そうとします。このアプローチは、多くのユーザーが複数のアカウントで同じパスワードを使い回しているという事実を悪用するものです。
ルールベース攻撃
ルールベース攻撃とは、ブルート フォース攻撃の中でも高度な手法で、攻撃者があらかじめ定義したルールを用いて、一般的なパスワードや辞書の単語を変形させながらパスワードの解読を試みるものです。この方法では、よく見られる置換や追加、大文字化、あるいはリートスピーク(標準の文字を数字や特殊文字で置き換えた非公式の言語やコード)による変形を取り入れることで、効率的にパスワードのバリエーションを試すことが可能です。たとえば、「o」を「0」に置き換えたり、基本的な単語の末尾に特定の数字や記号を加えたりするルールが該当します。
ルールベース攻撃は、パスワード作成に見られる一定のパターンを巧みに突くことで、複雑なパスワードであっても突破できる可能性があり、通常の辞書攻撃や単純なブルート フォース攻撃よりも高い効果を発揮します。
ブルートフォース攻撃が今も多い理由
ブルート フォース攻撃は、技術的な脆弱性、人間の行動パターン、そして進化し続けるデジタル セキュリティ環境が複雑に絡み合うことで発生します。これらの攻撃は、認証システムが秘密情報に基づくアクセス制御を行うという根本的な仕組みを突き、最も脆弱な部分、すなわち推測しやすいパスワードの使用傾向や、すべてのキーを総当たりで試す計算上の実現可能性を狙います。
ブルート フォース攻撃が広く行われている主な理由の一つは、この手法がシンプルかつコスト効率に優れていることです。
攻撃者は、これらの試行を自動化するために相当な計算能力を容易に利用できるようになっており、複雑なパスワードであっても推測が現実的になりつつあります。クラウド コンピューティングの普及や専用ハードウェアの可用性により、この種の攻撃のハードルは下がり、比較的経験の浅い攻撃者でも、セキュリティで保護されたシステムに対してブルート フォース手法を試みることが可能になっています。
人的要因も、ブルート フォース攻撃の効果を高める大きな要素となっています。多くのユーザーは、覚えやすさを優先してシンプルなパスワードを設定する傾向があり、残念ながらこれらのパスワードは推測されやすいという問題があります。
攻撃者に悪用されやすい一般的な習慣としては、辞書に載っている単語の使用、予測しやすいパターン(「password」「123456」「qwerty」など)、個人情報の利用(誕生日や名前など)、さらには複数のアカウントで同じパスワードを使い回すといった行為が挙げられます。
ブルート フォース攻撃の効果を高めてしまう要因のひとつが、パスワードの使い回しという広く見られる問題です。攻撃者が1件のデータ侵害からパスワードを入手すると、それを使って同一ユーザーが他のプラットフォームで使用しているアカウントへのアクセスを試みることができます(クレデンシャル スタッフィング)。これは既知のパスワードを異なるユーザー名やサービスに対して適用する、いわばリバース ブルート フォース攻撃の一種で、各アカウントごとにユニークなパスワードを設定していないことを突く手法です。
技術的な脆弱性も、ブルート フォース攻撃が成立する要因のひとつです。多くのシステムやアプリケーションでは、ログイン失敗が一定回数続いた後に適切なレート制限やアカウントのロックアウトを実施していないため、攻撃者が何度も推測を繰り返すことが可能になっています。
私生活や業務の多くがオンラインで行われるようになったことも、ブルート フォース攻撃を助長する一因となっています。ログイン クレデンシャルが必要なサービスが増えるにつれ、攻撃者が狙える対象も拡大しているのです。
これに加えて、公開情報や情報漏洩を通じて入手可能な膨大な個人データの存在も、ブルート フォース攻撃や辞書攻撃の効果を高める一因となっています。攻撃者は、入手した個人情報を基に、標的の関心、習慣、あるいは個人的な特徴に沿った推測を行うことで、より的確に攻撃を仕掛けることが可能になります。
一部の組織におけるレガシー システムや旧式のセキュリティ プロトコルも、ブルート フォース攻撃の有効性を高める要因となっています。これらのシステムの多くは、旧来の脆弱な暗号化方式に依存しており、またパスワード ポリシーも強固で複雑なパスワードを必須とするように更新されていない場合があります。
実際に使われるブルートフォースツールと手口
ブルート フォース攻撃では、パスワードや暗号化キー、PINの推測を自動化するためのさまざまなツールが活用されます。これらのツールは、単純なパスワードの解読から、より複雑な暗号キーの検出に至るまで、攻撃の目的に応じて多様な洗練度、速度、カスタマイズ性を備えています。
以下は、ブルート フォース攻撃でよく使用される代表的なツールの例です。
ツール名 | 主な用途・特徴 |
---|---|
Aircrack-ng | Wi-Fiネットワークの解析・攻撃。WEP/WPAキーの辞書・ブルートフォース攻撃が可能。 |
Brutus | Windows向けの古典的なブルートフォースツール。多プロトコル対応で最大60接続可。 |
Hashcat | 高速・高機能なハッシュ解読ツール。多様な攻撃モード(マスク、辞書、ルール等)対応。 |
Hydra | 高速なリモート認証攻撃ツール。並列処理で多数アカウントを効率的に攻撃。 |
John the Ripper | 多プラットフォーム対応。自動ハッシュ検出・高度なカスタマイズが可能。 |
L0phtCrack | Windowsパスワード解析に特化。複数手法に対応し、Active Directory対応。 |
Medusa | 並列処理による高速リモートブルートフォース攻撃に特化。多ホスト対応。 |
Ncrack | ネットワーク向け高性能パスワード解読ツール。効率的な並列攻撃が可能。 |
Ophcrack | レインボーテーブルによるWindowsパスワード(LM/NTLM)解読。GUI対応。 |
Patator | 汎用性の高いブルートフォースツール。CAPTCHA回避・並列実行機能を持つ。 |
RainbowCrack | 事前生成されたレインボーテーブルを用いて高速にハッシュを解読。 |
以下、それぞれ解説します。
Aircrack-ng
Aircrack-ngはWi-Fiネットワークのセキュリティ評価を目的とした、ネットワークセキュリティ向けのツール群です。監視、攻撃、テスト、解析といった機能を備えており、パケットのキャプチャやテキストファイルへのデータ エクスポート、サードパーティ製ツールによる後処理にも対応しています。また、WEPキーやWPA-PSKキーの解読も可能で、主にシンプルなブルート フォース攻撃や辞書攻撃を活用します。
Brutus
Brutusは、Windows環境で使用されるパスワード解除ツールの中でも最も古い部類に入りますが、現在でも有効なブルート フォース攻撃ツールの1つです。このツールは複数段階の認証エンジンをサポートしており、最大60の標的に同時接続できます。HTTP(ハイパーテキスト転送プロトコル)、FTP(ファイル転送プロトコル)、SMB(サーバー メッセージ ブロック)など複数のプロトコルに対応しており、インターネット経由でのパスワード解読が可能です。
Hashcat
Hashcatは、世界最速かつ最も高度なパスワード復元ツールとして知られており、200種類以上の高度に最適化されたハッシュ アルゴリズムに対応し、少なくとも5種類の独自攻撃モードを備えています。ブルート フォース攻撃、辞書攻撃、ハイブリッド攻撃、マスク攻撃、ルールベース攻撃など、さまざまな手法を実行できるため、複雑なハッシュの解読において非常に高い柔軟性を持ちます。
Hydra
Hydraは、その高速かつ有効なパスワード解読機能で広く知られており、複数のアカウントに対する同時攻撃が可能なため、ウェブ アプリケーションに対するブルート フォース攻撃に有効なツールです。リモート サーバーへの認証を試みる際に、複数のブルート フォース攻撃オプションを用いて迅速にパスワードを推測できるよう設計されています。
John the Ripper
John the Ripperは、当初Unix系システム向けに開発されたオープンソース ソフトウェアですが、現在では多くのプラットフォームで動作します。パスワードのハッシュ形式を自動で検出できる点が特長で、さまざまなカスタマイズ オプションを備えていることから、ブルート フォース攻撃において汎用性の高いツールとして知られています。
John the Ripperは、さまざまなモードやプラグインによってカスタマイズ可能であるため、複雑なパスワードの解読において非常に高い効果を発揮します。
L0phtCrack
L0phtCrackは、高度なパスワード監査・回復ツールで、Windowsパスワードの解読に優れた能力を発揮します。Windowsがパスワード ハッシュを保存する方法に存在する脆弱性を突くことで動作し、ブルート フォース攻撃、辞書攻撃、ハイブリッド攻撃、レインボー テーブル攻撃など、さまざまな手法を用いて解読を加速させます。
このツールは、Windowsがサポートする形式でハッシュ化されたパスワードを、ローカルおよびリモートのマシン、Active Directoryストア、ネットワーク キャプチャなど、複数のソースからインポートすることができます。
Medusa
Medusaは、リモート システムを対象とした、高速かつ非常に効果的なブルート フォース攻撃ツールです。並列化されており、複数のホスト、サービス、アカウントに対して同時に攻撃を実行できるため、処理速度が大幅に向上します。
Ncrack
Ncrackは、高速なネットワーク パスワード解読を目的として設計されたツールで、効率的かつ並列処理によるブルート フォース攻撃を実行し、ネットワーク セキュリティを脅かすおそれのある脆弱なクレデンシャルを特定します。
Ophcrack
OphcrackはWindowsパスワードの解読に特化したツールで、暗号ハッシュ関数を逆算するためにレインボー テーブル攻撃アプローチを用います。特に、Windowsシステムで使用されているLM(LAN Manager)およびNTLM(New Technology LAN Manager)ハッシュの解読に効果的です。
Patador
Patatorは、多様なサービスやプロトコルに対応した、汎用性と柔軟性に優れたブルート フォース攻撃ツールです。
Patatorの効果は、その汎用性だけでなく、高い効率性にもあります。スレッドベースのアプローチを用いて、高速かつ並列で試行を行います。
このアプローチにより、比較的短時間で多様なサービスやシステムに対する脆弱なパスワードの発見可能性が最大化されます。さらにPatatorには、ロックアウト ポリシーやCAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)による防御を回避する機能も備わっており、ブルート フォース攻撃における効果をさらに高めています。
RainbowCrack
RainbowCrackは、従来のブルート フォース攻撃とは異なり、時間と空間のトレードオフを利用するアルゴリズムを用いてハッシュを解読します。これは、文字セットやハッシュ アルゴリズムに基づくレインボー テーブルを事前に生成することで、パスワード ハッシュの解読を大幅に高速化します。すべてのハッシュの組み合わせをあらかじめ計算しておくことで、解読にかかる時間を大幅に短縮できます。
ブルートフォース攻撃を防ぐ4つの方法
各種ブルート フォース攻撃は、パスワードに対するセキュリティ対策の甘さやシステム構成上の弱点をそれぞれ異なる形で突いてきます。最も基本的な防御策はパスワードに関する対策ですが、それ以外にもブルート フォース攻撃を防ぐために講じるべき措置があります。以下に代表的な例を挙げます。
対策名 | 概要 |
---|---|
アカウントロックアウト | 一定回数ログイン失敗でアカウントを一時停止し、攻撃の継続を防止。 |
暗号化 | データやパスワードを強力なアルゴリズムで暗号化し、解読を困難にする。 |
多要素認証(MFA) | パスワード以外に追加認証要素を要求し、認証の安全性を強化。 |
強力なパスワード | 複雑で長いパスワードを使用し、かつサービスごとに異なるものを設定。 |
ログイン試行の追跡 | 不正・異常なアクセス試行を監視・検出し、アラートを発する。 |
以下、それぞれ解説します。
アカウント ロックアウト
繰り返しログインを試みる行為を防ぐことは、ブルート フォース攻撃の対策として有効です。アカウント ロックアウト機能は、一定回数のログイン失敗後に一時的にアカウントを無効化することで、推測を繰り返す攻撃を阻止します。
暗号化
強力な暗号化アルゴリズムは、可能な組み合わせの数を指数関数的に増加させるため、膨大な時間と計算能力を要することから、ブルート フォース攻撃を非現実的なものにします。さらに、暗号化によって、仮にブルート フォース攻撃が成功した場合でも、その影響を軽減することができます。
機密情報を暗号化することで、攻撃者がデータにアクセスしたとしても、暗号化キーがなければ内容を読み取ることはできません。前述のとおり、暗号化キーはその複雑さと長さゆえに解読が極めて困難です。
多要素認証(MFA)
多要素認証(MFA)は、パスワードを補完する手段として使用でき、アクセスを許可する前に追加の認証ステップを提供します。
強力なパスワード
推測が困難な強力かつ複雑なパスワードを設定し、定期的に変更することで、リスクを大幅に軽減できます。また、異なるアカウントやサービスごとに固有のパスワードを使用することも重要です。
ログイン試行の追跡
ログイン試行を監視し、異常または繰り返しのログイン試行が検出された場合にはアラートを送信することが可能です。
ブルート フォース攻撃に関するよくある質問(FAQ)
以下に、ブルート フォース攻撃に関する代表的な質問をいくつか挙げます。
ブルート フォース攻撃は合法ですか?
ブルート フォース攻撃は通常、違法と見なされます。というのも、この手法は、システム、データ、またはネットワークへの不正アクセスを目的として使用されることが多いためです。これらの行為は、デジタル上のプライバシーおよびセキュリティを保護する各種法律や規制(米国では「コンピューター不正行為防止法(Computer Fraud and Abuse Act)」と言います)に違反します。
ただし、ブルート フォースの手法は、倫理的かつ認証済みのハッキングやセキュリティ テストの場面において、合法的に使用されることがあります。
ブルート フォース攻撃はどのくらいの頻度で発生しますか?
ブルート フォース攻撃は、最も一般的なサイバー セキュリティ上の脅威の一つです。サイバー セキュリティ企業や研究者は、毎日のように何千件ものブルート フォース攻撃の試行が報告されていると伝えています。
しかし、報告されている頻度が正確ではないため、攻撃対象の規模(例:個人、企業、政府機関)を正確に把握することは困難です。多くの標的は、攻撃が行われたことに気づいていない場合もあります。
「パスワードを『クラック』する」とはどういう意味ですか?
「パスワードを『クラック』する」とは、パスワードを解読または推測して正しく突き止めることを意味します。
暗号化キーとは何ですか?
このキーは暗号処理の中心的な役割を果たします。情報を暗号化して、未認証のユーザーには読めない状態にすることで、安全な送信や保存を可能にします。
暗号化キーにはさまざまな長さや種類があり、例えば、対称キー(暗号化と復号に同じキーを使用する)や非対称キー(暗号化には公開キー、復号には秘密キーを使用する)などがあります。
暗号化されたデータの安全性は、暗号化キーの秘匿性と複雑さに大きく依存しています。
まとめ
上記で述べたように、ブルート フォース攻撃は必ずしも最も高度なサイバー攻撃ではないものの、その効果の高さから依然として頻繁に発生しています。ブルート フォース攻撃の影響は、個人を標的とした盗難や不正行為にとどまらず、攻撃者が重要なシステムにアクセスすることで、深刻かつ高額な被害を引き起こす可能性があります。
幸いなことに、ブルート フォース攻撃は防止しやすいサイバー攻撃の一種です。ベスト プラクティスを遵守し、防止に役立つさまざまな対策を活用することで、これらの攻撃を阻止できます。