1. ホーム
  2. 記事一覧
  3. 【サイバー攻撃】ブルートフォース攻撃の手口と対策

2023.01.09

【サイバー攻撃】ブルートフォース攻撃の手口と対策

こちらの記事ではサイバー攻撃のうちの一つ、ブルートフォース(brute-force)攻撃について解説します。

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

ブルートフォース攻撃とは、別名、総当たり攻撃とも呼ばれ、aaaaaやbbbbbなどの文字列の組み合わせをすべて試し、総当たりで攻撃対象の暗号解読や認証情報を特定する手法で、主にパスワードを特定する際に用いられるサイバー攻撃のことです。

一つ一つの文字列の組み合わせを試していくため、短いパスワードを利用していた場合、パスワードを簡単に特定されていしまいます。

ブルートフォース攻撃の手口

ブルートフォース攻撃を行う場合、攻撃者は手入力で総当たりをするなどはせず、攻撃を自動化するためのツールを使用し攻撃を仕掛けます。

代表的なツールとしてHydraJohn The Ripperなどがあります。このようなツールがあれば、専門的な知識がある程度ない状態でも攻撃ができてしまうため、比較的難易度が低いとされています。

ブルートフォース攻撃では、ユーザーIDとパスワードの組み合わせでの認証機能が存在した場合、ユーザーIDを固定してパスワードを1文字ずつ順番に変更しながら、何十億もの文字や数字、記号の組み合わせを作成しパスワードの特定を行います。

仮に4桁で0000~9999までの数字のみのパスワードだった場合、1万通りの組み合わせを試せば特定できる計算になります。

以下、12桁の英大文字小文字、数字でのパスワード組み合わせ数の参考図です。

参考:中村行宏 若尾靖和 林静香 「情報セキュリティの技術と対策がしっかりわかる教科書」、株式会社技術評論社

図のように、文字の種類と桁数が増加すると、組み合わせ数が膨大な数になっているのが分かります。

ブルートフォース攻撃ではIDを固定してパスワードを順番に変更しながらパスワードの特定を行いますが、その他にもパスワードに使われやすい単語をリスト化したファイルを使用して攻撃を行う辞書攻撃や、パスワードを固定してIDを順番に変更しながら攻撃を行うリバースブルートフォース攻撃なども存在します。

ブルートフォース攻撃による被害

ブルートフォース攻撃の被害によりパスワードを特定されてしまった場合には、以下のような被害が発生する恐れがあります。

  • 不正出金や送金など金銭的な被害の発生

  • Webサイトのシステムへの不正アクセスによるWebサイトの改ざん

  • パスワードの使い回しによる他のサイトのアカウント乗っ取り

    金融機関などのシステムを利用していた場合、身に覚えのない出金や送金などの被害を受けてしまう場合も考えられます。また、Webサイトを運営している管理システムのパスワードが特定されてしまえば、不正にログインされてしまい、Webサイトの内容の改ざんなどが行われてしまうでしょう。

    そして、様々なアプリケーションを利用する際に、 同じパスワードを他のアプリケーションでも使い回していないか? という点には注意が必要です。特にGoogleやAmazonといった非常に大きな影響力があるアカウントのパスワードを他のアプリケーションでも使い回していた場合、他のアプリケーションのパスワードが特定されてしまえばGoogleやAmazonのパスワードが特定されてしまうことに繋がり、その影響は非常に大きなものになってしまうことが考えられます。

ブルートフォース攻撃を体験してみる

インフラ学習サイトのEnvaderでは、Liuxの基礎やデータベースの基礎を学ぶだけではなく、ブルートフォース攻撃を行うためのツールの一つとしてご紹介したHydraを用いて、ブルートフォース攻撃や辞書攻撃などを疑似的に体験することができる環境をご提供しています。

https://envader.plus/course/3/scenario/1040

ブルートフォース攻撃への対策

ブルートフォース攻撃への対策は、ユーザー側と、サービスを提供するシステム側でそれぞれ対策します。

ユーザー側の対策

  • パスフレーズを使用し、複雑でも覚えやすいパスワードを作成する(123456など単純なパスワードを設定しない)

    NISC(内閣サイバーセキュリティセンター)が作成したインターネットの安全・安心ハンドブックでは、安全なパスワードの作成には複雑さ長さが大切とされており、具体的には英大文字小文字+数字+記号で10桁以上が複雑で長いパスワードとされています。

    ただ、この条件で10桁以上のパスワードを様々なアプリケーションで実現させるのは、考えるのも覚えるのにも負担がかかることは否定できません。そこで紹介されているのがパスフレーズの利用です。パスフレーズとは、文字列を使ったパスワードのことで、以下のような形で作成します。

    Watashi_no_syumi_wa-guitar@1231

    このように、自分の私生活で行っていることなどを言語化しパスフレーズ化することで、自分だけしか知り得ない情報で、覚えやすく長いパスワードを作成することが可能になります。

    ただし、有名な歌詞や映画、本のフレーズは推測されやすいため、パスフレーズとして使用するのは控える必要があります

  • 同じパスワードは使いまわさない

    ブルートフォース攻撃の被害の項でもご紹介しましたが、一度使用したパスワードを使いまわさないこともユーザーにとって重要になります。GoogleやAmazonなどで使用したパスワードを、万が一脆弱性のあるアプリケーションでも使用してしまい、そのパスワードが特定されてしまった場合、その被害は大変大きなものになる可能性があります。

  • パスワード管理アプリなどを使用する

    1Passwordなどのパスワード管理アプリを利用することも、ユーザー側のパスワード管理を簡単かつ安全に行うことができるようになる方法の一つです。

    インストールするだけで使える無料のもの、月額、年額料金が発生するものがあり、それぞれで登録できるパスワードの数の上限が違っていたり、対応するOS、デバイスに違いがあるため利用する際には良く検討する必要がありますが、アプリケーションにパスワードの管理を任せることでユーザーである私たちの負担を減らすことが可能になります。

システム側の対策

  • 一定回数以上のパスワード認証失敗時のアカウントロック

    キャッシュカードの暗証番号は3回間違えると使えなくなってしまいます。アプリケーションを開発する際にもこの仕組みを利用し、ある一定回数パスワードによる認証が失敗するとアカウントをロックすることで、総当たりによる攻撃を回避することができます。

  • 多要素認証(MFA)の導入

    多要素認証(Multi-Fuctor Authentication)とは、ログインする際に、認証の3要素である知識情報生体情報所持情報のうち、いずれか2つ以上の要素を使用して行う認証のことを指します。

    認証についてはこちらの 【わかりやすく解説】認証と認可の違いとは?セキュリティの考え方 をご覧ください。

    https://envader.plus/article/9

  • パスワード入力に対するシステムでのチェック(単純なパスワードの場合はシステム側で警告を表示する)

    ユーザーの入力したパスワードをシステム側でバリデーションチェックを行い、以下のような条件を設定し、未達成であれば入力欄に警告を表示するようにすることで、単純なパスワードの入力を防ぎます。

    • 文字の桁数に関して(例 8桁以上入力しているか)
    • 使用している文字の種類は適切か?(英大文字小文字+数字+記号を使用しているか?)
    • ユーザーIDと同じパスワード(ジョーアカウント)を使用していないか?など
  • エラーメッセージに具体的な内容は含まない

    ログイン機能では、ユーザーID、パスワードで認証を行っていた場合、どちらかが間違っていた場合にエラーメッセージを表示する場合があります。その際に表示するメッセージに、

    指定したユーザーは存在しません

    入力したパスワードが間違っています

    などの表示はしないようにシステムを実装することが大切です。一見ユーザーにとって親切なように見えますが、このようにメッセージを表示してしまった場合、ユーザーIDが間違っているのか、パスワードが間違っているのかを攻撃者へ特定させる原因になってしまいます。そのため、

    IDまたはパスワードが違います

    のようにメッセージを表示することで、どちらが間違っているのかを特定されるのを防ぐことができます。

まとめ

ブルートフォース攻撃とは、ツールなどを利用し、入力する文字を総当たりで試してパスワードなどの特定を行うサイバー攻撃です。Envaderのセキュリティ基礎コースで実際に体験していただくと分かりますが、ブルートフォース攻撃はツールさえあれば専門的な知識がなくても実行できてしまいます。

今後新たにパスワードを設定する際やアプリケーションを開発する時には、ブルートフォース攻撃に遭う可能性があることをよく理解し、ユーザー側、開発者側それぞれの立場でしっかりと対策を行っていきましょう。

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事