セキュリティ
ブルートフォースアタックとは? 効果的なセキュリティ対策と併せて解説

パスワードを破るための攻撃手段としてよく知られているのが「Brute-force attack(ブルートフォースアタック)」です。それがどのような方法で行われているのかを知れば、どんなセキュリティ対策を用いるのが効果的なのかもわかってきます。ブルートフォースアタックの脅威とその対策について解説します。
ブルートフォースアタックとは
ブルートフォースアタックとは「総当たり攻撃」によるパスワードを解読する方法の一つです。ブルートフォース(Brute-force)には「力任せ」「強引な」という意味があります。
その方法は、暗号や暗証番号に対して、理論的にあり得るすべてのパターンを入力して突破を試みるというものです。仮に数字のみの4桁の暗証番号であれば、その組み合わせは1万通りであり、そのすべてを試せば必ず正しい暗証番号がわかります。昔からある単純な方法ですが、時間さえかければいつかは正解にたどり着くため、非常に強力な暗号解読法といえます。
ブルートフォースアタックの手口
ブルートフォースアタックを人間の手で行うと、とてつもなく長い作業時間と手間がかかります。しかしこれをコンピューターにやらせれば、最初のセッティングをするだけで自動的に作業を進めることが可能です。コンピューターの処理能力の向上により、その所要時間も短くなってきています。
しかし、コンピューターを使ったとしてもパスワードの文字数が増えれば、それに比例して解読にかかる時間は長くなります。仮に4桁の英字(大文字小文字の区別なし)だけを使用したパスワードだとパソコンを使えばわずか3秒程度で破られてしまうのに対し、大文字と小文字の区別がある英字・数字・記号を組み合わせた10桁のパスワードを設定すれば、解読に約1千万年かかるという試算もされています(2008年10月 2日、独立行政法人 情報処理推進機構セキュリティセンター「コンピュータウイルス・不正アクセスの届出状況[2008年9月分および第3四半期]について」より)。
現在のコンピューターの処理能力だと異なる結果になってきますが、文字数が増えると解読にかかる時間が長くなるのに違いはありません。
そのため、クラッカー(ネットワークに不正侵入、データの破壊、改ざんなどを行う人)によるブルートフォースアタックでは、過去に解読・流出したパスワードなどから得た「多くの人が設定するパスワード」によって構築された辞書が使用されることもあります。ブルートフォースアタックと辞書攻撃を組み合わせることによって、より効率の良い攻撃、パスワード解読が可能となります。
ブルートフォースアタックで受ける被害
ブルートフォースアタックに狙われやすい身近な例として、SNSアカウントがあげられます。SNSが乗っ取られるとアカウントに届いたダイレクトメッセージを読まれたり、本人になりすましたメッセージを発せられたりする可能性があります。
SNSやメッセージアプリを使っていて、「他の端末からのログインに失敗しました」といった内容のメールを受け取った経験がある人もいるでしょう。これはアプリが自動的に発するアラートメッセージですが、数度にわたってこうしたメッセージが届くようならブルートフォースアタックによる攻撃を受けているのかもしれません。
そのほかにはショッピングサイトやオークションサイト、フリマアプリ、スマホ決済アプリ、ゲームなどのネットバンキングやクレジットカードを利用するサービスのアカウントが狙われることもあります。パスワードを解読されることによって、金銭的な被害を受けたり個人情報を悪用されたりすることも考えられます。
個人だけでなく、企業のWebサイトやシステムも標的にされます。その場合は顧客情報を盗まれる、ページを改ざんされる、システムを乗っ取られる、ウイルスやマルウェアの中継地にされるといった企業としての信頼を損ねる重大な損失を被る可能性もあります。
ブルートフォースアタックに対する効果的なセキュリティ対策
ブルートフォースアタックに対抗するには、サービスを提供するシステム側、サービスを利用するユーザー側の双方が有効な対策を講じることが大切です。
1.8桁以上のパスワードを設定する
単純に0〜9の数字のみの暗証番号を使うとしても、8桁で設定するとその組み合わせは1億通りに及びます。これを英字(大文字小文字を区別する)+数字で8桁にすると、組み合わせの数は約218兆通りとなります。パスワードを8桁以上にすれば、それだけでブルートフォースアタック対策としてはかなりの効果があるといえるでしょう。
2.パスワードを意味のある単語にしない
辞書攻撃を駆使されることを考えれば、パスワードを意味のある単語にしないというのも一つの手段です。生年月日や名前を用いることはもちろん、「password」というパスワード、意味がないように見えて実はキーボードの配列のまま設定した「qwerty」というパスワードなどは非常に多くの人が使っていると言われます。ランダムな文字や数字の組み合わせであるほどセキュリティ強度は高くなります。
3.ログイン試行回数を制限する
システム側の対策として有効なのがログイン試行回数の制限です。5回パスワードの入力に失敗したらロックされる、再び入力するには一定時間を要するといった仕組みにすれば、少なくとも果てしなく連続したブルートフォースアタックをされることはありません。
4.2段階認証にする
2段階認証はIDとパスワードの他に、セキュリティコードの追加入力やSMS(ショートメッセージサービス)での認証コードの発行などを用いて、二つの方法で認証を行うセキュリティ方式です。同じブラウザやIPアドレスからのアクセス時には2段階目の認証プロセスは必要ないといった仕組みにすれば、操作もそれほど面倒はありません。2段階認証が可能なサービスを利用している場合は積極的にこの方式を活用すべきです。
5.ワンタイムパスワードにする
ワンタイムパスワードは「一度きりのパスワード」のことです。認証を行う際には、毎回必ず新しいパスワードを使用し、一度使ったパスワードは再度利用できないため、不正ログインに対して有効なセキュリティ対策だといえます。高い安全性が求められる金融機関などでよく利用されている方法です。
ブルートフォースアタックによる被害を受けないためにできる対策は複数あります。あなたの会社で深刻な被害を出さないように、この記事を参考にセキュリティ対策を強化してみてはいかがでしょうか。