ブルートフォース攻撃とは?
ブルートフォース攻撃とは、悪意のある攻撃者が、システムへのアクセス権や暗号化を解除するためのすべての可能なパスワード、アクセスキー、その他のアクセス認証情報を順番に試して、どれがアクセスを許可するか推測する攻撃手法です。
たとえば、攻撃者がシステムに「admin」という名前のユーザーアカウントが存在することを知っている場合、攻撃者は「password」というパスワードを使用してそのユーザーとしてログインを試みます。これが失敗した場合、攻撃者はパスワード「1234」を試します。これが失敗した場合、攻撃者は「qwerty」に移動します。(これらの認証情報はすべて、一般的に使用されるパスワードです。)攻撃者は、正しいパスワードを当てるまで、またはセキュリティツールによってロックアウトされるまで攻撃を続けます。
ブルートフォース攻撃とは何か、その仕組み、および防御方法の詳細については、引き続きお読みください。
ブルートフォース攻撃の仕組み
ブルートフォース攻撃を実行するには、攻撃者はまず、侵害しようとしているシステムに関するいくつかの基本情報を収集する必要があります。
- ユーザーがログインする場所と方法:たとえば、攻撃者は、Web アプリのログイン画面をホストする URL、またはサーバーにリモートでログインするために使用されるリモートアクセスプロトコルを知っている必要があります。
- 使用されているログイン認証情報の種類:これには、ユーザー名/パスワードの組み合わせ、トークン、アクセスキー、またはその他の情報が含まれます。
- アクセス認証情報の形式:攻撃を効率化するには、アクセス認証情報の要件に関する基本的な情報(アクセス認証情報に含まれる文字総数など)を攻撃者が把握していると役立ちます。
この情報を使用して、攻撃者は、標的とするシステムのログインポータルに接続し、正しい認証情報が見つかるまでさまざまな認証情報を試すことで、ブルートフォース攻撃を実行できます。
ブルートフォース攻撃の種類
ブルートフォース攻撃には複数の種類があります。それぞれの種類は、異なる攻撃手法を反映しています。
- 手動:手動攻撃では、攻撃者は手動でさまざまなログイン認証情報を試します。これは、システムをブルートフォース攻撃する最も非効率的で遅い方法です。
- 辞書攻撃:辞書攻撃では、事前に作成されたログインの候補リスト(つまり辞書ファイル)を使用して、ブルートフォース攻撃を自動的に実行します。辞書には通常、passwordや1234などの広く使用されているアクセス資格情報のリストが含まれています。ソフトウェアツールが辞書を自動的に解析し、各エントリを使用してログインを試みます。
- ハイブリッド攻撃: ハイブリッド攻撃では、辞書と他の攻撃手法を組み合わせて使用し、ログイン成功の確率を高めます。例えば、攻撃者は辞書ファイルの各エントリに文字を追加します。これは、ユーザーが標準的なパスワードと追加の文字(誕生日を表す数字など)の組み合わせでパスワードを設定する可能性があるためです。したがって、password だけでは正しいログインではない可能性がありますが、password6186 であれば正しい可能性があります。そのため、攻撃者は後者のようなログインを試みます。
- 逆攻撃:逆ブルートフォース攻撃では、攻撃者はよく使用されるログイン資格情報(passwordなど)を取得し、それらを使用して複数のユーザーとしてログインを試みます。つまり、単一のユーザーに対して複数のパスワードを試すのではなく、単一のパスワードと複数のユーザー名を組み合わせて試すのです。このタイプの攻撃は、パスワードスプレーとも呼ばれることがあります。
単純なログイン保護は、手動攻撃や基本的な辞書攻撃で破られる可能性がありますが、ハイブリッド攻撃や逆攻撃は、より複雑な構成の場合、ブルートフォース攻撃の成功確率を高めます。
ブルートフォース攻撃の例
ブルートフォース攻撃のリスクは、決して理論上のものだけではありません。この手法によって侵害された大手組織の例としては、次のようなものがあります。
- 2015年のダンキンドーナツ。
- 2018年に、eコマースプラットフォームに対する広範なブルートフォース攻撃を報告したMagento。
- 2016年に、ブルートフォースによって約2,100万のアカウントが侵害されたAlibaba。
このリストはさらに続きますが、要点は明白です:成熟したサイバーセキュリティ戦略を有する大規模な組織であっても、ブルートフォース攻撃は脅威です。t: even at large organizations with mature cybersecurity strategies, brute force attacks are a threat.
ブルートフォース攻撃に対する防御策
ブルートフォース攻撃に対する防御の主な難点は、ログイン機能を備えたほぼすべてのシステムが、この種の攻撃の対象となることです。しかし幸いなことに、ブルートフォース攻撃の成功リスクを軽減するための効果的な対策がいくつかあります。
ログインの繰り返し試行を無効にする
ブルートフォース攻撃から保護するシンプルで効果的な方法は、アプリケーションとエンドポイントを構成して、ログイン試行が連続して失敗した場合にアカウントを自動的に一時停止するように設定することです。これにより、攻撃者がパスワードやその他のログイン資格情報をブルートフォース攻撃で試行した場合、数回の試行で攻撃が阻止されます。
正当なユーザーへの影響を軽減するため、一定期間後にアカウントを再有効化するように設定できます。例えば、1分間に3回のログイン失敗が発生した場合、次の1時間アカウントをロックするログインポリシーを設定できます。または、ユーザーがIT部門に連絡することでアカウントを再有効化できるようにすることも可能です。これにより、単にパスワードを誤入力した正当なユーザーが永久にロックアウトされることを防げます。
コンテキスト認識型セキュリティを使用する
正当なユーザーへの影響を最小限に抑えながらブルートフォース攻撃を阻止する別の方法は、コンテキストを使用してブルートフォース攻撃が発生している可能性を評価し、それに応じて対応することです。
たとえば、ネットワークにアクセスしたことがないエンドポイントからログインに何度も失敗した場合、そのエンドポイントをブロックして、ブルートフォース攻撃の可能性を阻止するようにシステムを設定することができます。ただし、従業員が定期的に使用するエンドポイントからの繰り返しログイン失敗は自動的にブロックされません。後者の場合、従業員がパスワードを正当に忘れた可能性が高いからです。(もちろん、従業員のデバイスが侵害され、そのデバイスからブルートフォース攻撃が実行されている可能性もあります。この場合、エンドポイントが自動的にブロックされなくても、さらに調査が必要です。)
同様の手法として、ログイン失敗時にユーザーが入力したログイン資格情報が実際の資格情報と類似しているかどうかを評価する方法があります。パスワードが1文字または2文字異なる場合、ユーザーが誤入力した可能性が高いです。しかし、有効な資格情報と全く異なるログインが繰り返し検出された場合、ブルートフォース攻撃である可能性が高いです。
多要素認証を使用する
多要素認証(MFA)は、ログイン認証情報を推測された場合でも攻撃者をブロックする 2 番目の防御ラインを提供することで、ブルートフォース攻撃の防止に役立ちます。
たとえば、アプリケーションで MFA が有効になっている場合、攻撃者がパスワードをブルートフォース攻撃で推測しても、ログインを完了するには、正規のユーザーにメールで送信される 1 回限りのアクセスコードも必要になります。
MFA は、攻撃者が追加のログイン要素を取得するリスクが残るため、ブルートフォース攻撃に対する完全な保護を保証するものではありません。例えば、パスワードをブルートフォース攻撃で破った後、攻撃者は標的のユーザーに連絡し、ITチームを装って2つ目のログイン資格情報の入力を要求するフィッシング攻撃を仕掛ける可能性があります。ユーザーが騙されると、攻撃者は両方の認証要素を知っているため、ログインが可能になります。
それでも、MFAはブルートフォース攻撃による成功した攻撃を実行するのを大幅に困難にするため、有効な防御技術です。
長くて複雑なパスワードが必要
パスワードが長く複雑になるほど、ブルートフォース攻撃が難しくなります。その理由は、パスワードに含めることができる文字の種類が多くなり、パスワードの総文字数が増えるほど、潜在的なパスワードの総数が増えるためです。
したがって、パスワードに非アルファnumeric文字を含めることを要求し、最小文字数を設定することで、攻撃者がブルートフォース攻撃を実行する際に使用する辞書リストにパスワードが掲載されるリスクを大幅に軽減できます。
同じ論理は、SSHキーやログイントークンなどの他の種類のアクセス資格情報にも適用されます。これらの資格情報も、長くて複雑なほどブルートフォース攻撃に対して耐性が高まります。
ブルートフォース攻撃の今後の動向
ブルートフォース攻撃は、あらゆる種類の組織にとって現実の脅威です。実際、そのリスクはさらに高まる可能性があります。ブルートフォース攻撃は、その頻度が増加しているだけでなく、ログイン試行を自動的に実行できる高性能コンピュータの普及により、実行がますます容易になっています。量子コンピュータの登場は、ブルートフォース攻撃の防止をさらに複雑化させるでしょう。なぜなら、量子コンピュータは、従来のコンピュータの数億倍の速度で潜在的なログインを試行できるからです。
幸いなことに、ブルートフォース攻撃に対する効果的な防御策は存在します。ログイン試行回数の制限や多要素認証(MFA)の要求といったシンプルな手法でも、スーパーコンピュータによる攻撃であっても、ほとんどのブルートフォース攻撃を阻止できます。