ブルートフォースアタック(総当たり攻撃)とは?そのやり方・実際にかかる時間・対策方法は?|サイバーセキュリティ.com

ブルートフォースアタック(総当たり攻撃)とは?そのやり方・実際にかかる時間・対策方法は?



「パスワードは複雑にしましょう」「使い回しはやめましょう」とよく言われますが、その理由のひとつが「ブルートフォースアタック」という攻撃の存在です。

この記事では、ブルートフォースアタックとは何か、どんな種類があるのか、そして個人・企業がとるべき対策までを、専門知識がなくても理解できるように解説します。

誰でもわかる説明
パスワードなどを片っ端から試して、正しい組み合わせを見つけ出そうとする攻撃です。仕組みは単純ですが、対策を怠ると突破されてしまう、身近で重要な脅威です。

ブルートフォースアタックとは

ブルートフォースアタック(Brute Force Attack)とは、考えられるパスワードや暗号鍵を、ひとつずつしらみつぶしに試して、正解にたどり着こうとする攻撃です。日本語では「総当たり攻撃」と訳されます。「ブルートフォース(brute force)」は「力ずく」という意味です。

たとえば4桁の数字のパスワードなら「0000」「0001」「0002」……と順番に試していけば、いつかは正解にたどり着きます。この「力ずくで全部試す」という発想が、ブルートフォースアタックの基本です。

実際の攻撃では、人間が手で入力するのではなく、自動化されたプログラムが高速で大量の試行を繰り返すのが特徴です。

さらにわかりやすくご理解いただくために、サイバ課長に説明してもらいましょう!

ブルートフォースアタックサイバが持っている「鍵」よく見ると3桁の数字のダイヤルがあるサイね。この3つの数字を合わせて鍵を開けるサイが、サイバは確実に開けることができるサイね。

ブルートフォースアタック

このように3桁の数字のみであれば、1000回試せば確実に開く。
このように無差別にパスワードを組み合わせてログインを試みるのが「ブルートフォースアタック」サイね!

「0〜9」の10桁の数値の3桁 → 103 → 10×10×10 = 1000通りサイね

簡単な説明がわかったところで、もう少し具体的にどのような攻撃かを説明すると、
例えば、パソコンやサーバなどのログインを試みたい機器に対してのブルートフォース攻撃をイメージしてください。

なんらかの情報により、攻撃者がアカウント情報(ID)を知っている場合、考えられるパスワードを全て試す形でログインを試みます。

この方法は、自力でやることを考えると気が遠くなるほどの時間がかかるものですが、多くの場合プログラムされたコンピューターが行っている場合がほとんどです。

上記のように例えばアルファベットと数字の組み合わせであることがわかっていた場合、その4桁の文字の組み合わせを全て試して強引にログインしようとするものです。

パスワードの組み合わせパターンとその試行時間は?

上記に書いたアルファベット(大文字と小文字)と数字の組み合わせの4桁の文字列で利用できる文字数は62あります。

そのような文字を組み合わせたパスワードの組み合わせを一通り試すにはどのくらいの時間がかかるのでしょうか?

前述したようにこのような天文学的な数値の試行を人間がやろうとすると、おそらく、、、一生かかっても終わりません。。。

しかしパソコンが行う場合、約2分で破られてしまうと言われています。(下表参照)

使用する文字の種類
使用できる
文字数
最大解読時間
入力桁数
4桁
6桁
8桁
10桁
英字(大文字、小文字区別無)
26
約3秒
約37分
約17日
約32年
英字(大文字、小文字区別有)+数字
62
約2分
約5日
約50年
約20万年
英字(大文字、小文字区別有)+数字+記号
93
約9分
約54日
約1千年
約1千万年

※現在の処理能力のパソコンで計測すると異なる結果となる点、ご了承ください。(2015年9月)

※すべての組み合わせを試すために必要な時間を計算。記号は31文字使用できるものとした。使用パソコンOS:Windows Vista Business 32bit版、プロセッサ:Intel Core 2 Duo T7200 2.00GHz、メモリ:3GB

上記の表に整理したように、8桁以上のパスワードにすると、急激に施工時間も長くなりますね。
当然ながら、10桁、12桁など、文字数は多く、種類も英数字・記号なども利用するパスワードを設定するのが良いでしょう。

ブルートフォースアタックの主な種類

総当たりといっても、効率を上げるためにさまざまな手法があります。代表的なものを整理します。

単純な総当たり攻撃

文字や数字のあらゆる組み合わせを、機械的に試していく最も基本的な方法です。パスワードが短く単純なほど、短時間で突破されてしまいます。

辞書攻撃(ディクショナリアタック)

よく使われる単語やパスワード(「password」「123456」など)をリスト化し、それを順に試す方法です。人間が設定しがちな単純なパスワードを効率よく狙います。

パスワードリスト攻撃(クレデンシャルスタッフィング)

過去に他のサービスから漏えいした「ID・パスワードの組み合わせ」を使って、別のサービスにログインを試みる手法です。パスワードの使い回しを狙った攻撃であり、近年特に被害が多いタイプです。

パスワードスプレー攻撃

逆に、よくあるパスワードを1つ決めて、それを多数のアカウントに対して試す手法です。1つのアカウントへの試行回数を抑えることで、後述するアカウントロックを回避しようとします。

なぜ突破されてしまうのか

ブルートフォースアタックが成功してしまう主な原因は、パスワードの弱さと使い回しにあります。

桁数が短い、単純(誕生日・「password」など)なパスワードは、短時間で解析されやすい。
複数のサービスで同じパスワードを使い回していると、1か所の漏えいが他のサービスにも波及する。

逆に言えば、ここを改善するだけで、被害に遭うリスクを大きく下げられます。

ログインが強行されてしまうとどうなる?

その他のサイバー攻撃による不正アクセスと同じですが、下記のような被害が考えられます。
どれも大きな被害になりうるものなので、確実に防ぎたいところです。

金銭的な被害

ネットバンキングなどの直接金銭につながるサービスや、ポイントサイトなどの金銭に近いものを管理するサービスが多くあります。
このようなサービス上でパスワードを破られてしまうと不正に出金、送金されるなどの被害が発生する恐れがあります。

個人情報などの情報が漏洩

パスワードによって保護されていた個人情報などの情報が漏洩してしまう被害が発生します。

メールで機密情報を送る際には、多くの方がそのファイルにパスワードを設定するかと思います、そのパスワードは大丈夫ですか?
簡単なパスワードを設定して、もしそのパスワードが破られてしまった場合、そこから情報が漏洩する可能性があります。

特にPDFファイルなどは、簡単なパスワードしか設定できない場合がありますので要注意です。

Webサイト改ざん、SNSの不正利用

Webサイトなどでは、システム上よく利用されるWordPressなどがこの被害に遭いやすいと言えます。管理するためのログインパスワードが破られると、Webの内容を改ざん、破壊することができるようになります。
また、FacebookやTwitteなどの乗っ取りも多発しています。SNSの改ざんもパスワードを破ることによって可能になり、ログインされて全く関係のない投稿をされてしまったりするので注意が必要です。

特別な技術を必要としないブルートフォースアタック

ブルートフォースアタックは、その他のサイバー攻撃と比較して、ネットワークやサーバの知識など、特別な知識がなくても実現できてしまうもの。
もちろん人間が自分の手をかけて一つ一つやるのは大変ですが、それをコンピュータにやらせることによって飛躍的に効率がアップします。それがブルートフォースアタックなのです。

ブルートフォースアタックの効果的な対策方法は?

8桁以上のパスワードを設定する

まずは上記の表からもわかるように8桁以上のパスワードにすることにより、パソコンを使ってもパスワードを破るまでに数年かかります。

また当然ですが、桁数が多ければ多いほど、文字数が多ければ多いほど時間がかかるので、可能であれあば10桁、12桁などの文字数で設定し、英字だけでなく、数字さらには記号を組み合わせることが効果的です。

IPAは10桁以上を対策として掲載
IPA(独立行政法人 情報処理推進機構)では、中小企業の情報セキュリティ対策ガイドライン付録の「情報セキュリティ5か条」では、「パスワードは英数字記号含めて10文字以上にする」と書かれていますので、そのようなパスワードを設定すると良いでしょう。
参考情報セキュリティ6か条
※上記の「情報セキュリティ6か条」に取り組むと、セキュリティアクション一つ星を取得できます。
参考セキュリティアクション

パスワードを使い回さない

サービスごとに別のパスワードを設定する。管理が大変な場合はパスワード管理ツールの利用が有効です。

ログインロックを設定する

ログイントロックとは、複数回パスワードを間違えるなどログインできない試行が続いた場合に、数分間アカウントを停止するなどの設定のことです。

理論上ブルートフォースアタックを試みられると、時間をかければどんなパスワードでも解読できてしまいます。

しかし、例えば「5回失敗したらアカウントをロック」するというログインロックを設定することにより、さらに大幅な時間がかかることになるので、この対策がブルートフォースアタックには効果的であると言えます。

WordPressでのログインロック方法は簡単!
世界中で現在公開されているWEBサイトの約30%が「WordPress」で構築されていると言われているほどの普及率を誇るCMSですが、これだけ多く使われていると、ハッカーからのターゲットになりやすいのも事実です。
そんなWordPressへのブルートフォースアタックを防ぐ方法は簡単!プラグインにより「ログインロック」を設定することです。
その導入がオススメのプラグインが「SiteGuard WP Plugin」。こちらインストールして、下記の画面で「アカウントロック」を設定するだけです。
ブルートフォースアタック期間:この期間内に
回数:この回数ログイン失敗をしたら、
ロック時間:この時間だけロックしますよ。という設定になります。WordPressを利用している方は、ぜひ導入しておきましょう。

2要素認証を設定する

IDとパスワードだけでログインするサービスの多くは、ブルートフォースアタックによってパスワードが解析されてしまうと手も足も出ません。
そのようなサービスでは、2要素認証を導入しておくと、仮にパスワードが知られてしまったとしても、それだけではログインできなくなるので、ブルートフォースアタックが怖くなくなります。

2要素認証を導入すると、あらかじめ登録しておいた「電話番号」や「メールアドレス」に認証コードが送られてきて、それを入力してはじめてログインが可能になります。
色々なサービスで導入していますので、ぜひご利用のサービスでもご確認ください。

WordPressでの二要素認証の導入は下記記事もぜひご覧ください。

ブルートフォースアタックは違法

他人のアカウントに対して不正にログインを試みる行為は、日本では 不正アクセス禁止法(不正アクセス行為の禁止等に関する法律) に違反する犯罪です。実際にログインできなくても、不正にログインしようとする行為自体が処罰の対象になりえます。

「試すだけなら」「いたずらのつもり」であっても許されません。この記事は、仕組みを正しく理解し、自分や組織を守るために役立てることを目的としています。

よくある質問(FAQ)

Q. パスワードを長くするだけで効果はありますか?

大きな効果があります。桁数が1文字増えるごとに、試すべき組み合わせは何倍にも膨らむため、解析にかかる時間が飛躍的に長くなります。

Q. クレデンシャルスタッフィングを防ぐには?

パスワードを使い回さないことが最も重要です。あわせて多要素認証を有効にすると、さらに安全性が高まります。

Q. 多要素認証があればパスワードは単純でもいい?

いいえ。多要素認証は強力ですが万能ではありません。複雑なパスワードとの併用が基本です。

まとめ

難しい技術的な知識やノウハウがなくても実施できてしまうのが「ブルートフォースアタック」です。
その対策としては、パスワードはなるべく桁数と多くして、ログインロックの設定もする。さらに可能であれば2要素認証の導入も実施しましょう。

この3つの施策を行うことにより、ブルートフォースアタックを防げる可能性が高まりますので、ぜひ実施しておきましょう。

SNSでもご購読できます。