ブルートフォースアタックとは 〜重要なWEBセキュリティ対策〜

せっかく一生懸命Webサイトを制作しても、ネット上にあるあらゆるサイバー攻撃によってシステムが攻撃されるのはたまったもんじゃありません。

そこで今回もバックエンドの基礎知識として、サイトを守るためのWebセキュリティ対策を学んで行きたいと思います。

WEBセキュリティ対策とは

主にWebサイトのシステムの「脆弱性」を狙ったサイバー攻撃を防ぐための策を意味します。
「脆弱性」とはセキュリティ上の欠陥のことで、「セキュリティホール」とも呼ばれます。

脆弱性を狙った主な3つの攻撃

  • SQLインジェクション
  • XSS(クロスサイトスクリプティング)
  • ブルートフォースアタック(総当たり攻撃)

前回まではSQLインジェクションとXSSを解説しました。今回はブルートフォースアタック(総当たり攻撃)について解説していきます。

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

ユーザのアカウントや、そのパスワードを解読するために考えられる全てのパターンを試す方法で、文字通り総当たりの攻撃のことを言います。

ブルートフォースアタックをわかりやすく

ではもう少しブルートフォースアタックについて詳しく解説していきましょう。
例えば、パソコンやサーバーなどのログインを試みたい機器(デバイス)に対してのブルートフォース攻撃を想定します。
なんらかの情報により攻撃者がアカウント情報(IDなど)を知っている場合、考えられるパスワードを全て試す形でログインを試みます。

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

例えば4桁のアルファベットと数字の組み合わせであることが分かっている場合、その4桁の文字の組み合わせを全て試して強引にログインしようとするとします。
アルファベット(大文字と小文字)と数字の組み合わせの4桁の文字列で利用できる文字数は62あります。

そのような文字を合わせたパスワードの組み合わせをひと通り試すには、どのくらいの時間がかかるのでしょうか?
このような数値の組み合わせの作業を人間がやろうとすると、おそらく一生かかっても終わらないと思います。
しかしコンピューターが行う場合、約2分で破られてしまうと言われているのが現実です。(下引用表参照)

パスワード解析ツールを使用して解読時間を試算した結果です。これによると、英字(大文字、小文字区別有)と数字を組み合わせて8桁のパスワードを作成した場合、解読には最大で約50年(すべての組み合わせを試算した場合)かかります。このように、3種類(62文字数)で8桁のパスワードを作成すれば、パスワードの強度は十分と言えるでしょう。表1-1を参考に、強度の違いを確認して、破られにくいパスワードを作成するようにしてください。

引用 コンピュータウイルス・不正アクセスの届出状況[2008年9月分および第3四半期]について
表1-1 使用できる文字数と入力桁数によるパスワードの最大解読時間

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

引用 コンピュータウイルス・不正アクセスの届出状況[2008年9月分および第3四半期]について

ブルートフォースアタックに対する効果的なセキュリティ対策

ブルートフォースアタックに対抗するには、サービスを提供するシステム側、サービスを利用するユーザー側の双方が有効な対策を講じることが大切です。
また、ブルートフォースアタックの対策は他のサイバー攻撃に比べて、割と容易にできます。
以下のことを気をつけていきましょう。

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

単純に0~9の数字のみの暗証番号を使うとしても、8桁で設定するとその組み合わせは1億通りになります。
これを英字(大文字小文字を区別する)+数字で8桁にすると、組み合わせの数は約218兆通りとなります。(下記引用表参照)
パスワードを8桁以上にすれば、それだけでブルートフォースアタック対策としてはかなりの効果があるといえるでしょう。

総当たり攻撃の全パターン試行回数(Wikipedia「総当たり攻撃」より)

2.パスワードを意味のある単語にしない

辞書攻撃を駆使されることを考えれば、パスワードを意味のある単語にしないというのも一つの手段です。
生年月日や名前を用いることはもちろん、「password」というパスワード、意味がないように見えて実はキーボードの配列のまま設定した「qwerty」というパスワードなどは非常に多くの人が使っていると言われます。
ランダムな文字や数字の組み合わせであるほどセキュリティ強度は高くなります。

3.ログイン試行回数を制限する

システム側の対策として有効なのがログイン試行回数の制限です。
5回パスワードの入力に失敗したらロックされる再び入力するには一定時間を要する、といった仕組みにすれば少なくとも果てしなく連続したブルートフォースアタックをされることはありません。

4.2段階認証にする

2段階認証はIDとパスワードの他に、セキュリティコードの追加入力やSMS(ショートメッセージサービス)での認証コードの発行などを用いて、二つの方法で認証を行うセキュリティ方式です。
同じブラウザやIPアドレスからのアクセス時には2段階目の認証プロセスは必要ないといった仕組みにすれば、操作もそれほど面倒はありません。
2段階認証が可能なサービスを利用している場合は、積極的にこの方式を活用すべきです。

5.ワンタイムパスワードにする

ワンタイムパスワードは「一度きりのパスワード」のことです。認証を行う際には、毎回必ず新しいパスワードを使用し、一度使ったパスワードは再度利用できないため、不正ログインに対して有効なセキュリティ対策だといえます。
高い安全性が求められる金融機関などでよく利用されている方法です。

ブルートフォースアタックによる被害を受けないためにできる対策は複数あります。あなたの会社で深刻な被害を出さないように、この記事を参考にセキュリティ対策を強化してみてはいかがでしょうか。

まとめ

ブルートフォースアタックはダイヤル式の鍵を開ける時の当てずっぽうに似ていますよね。
人の力だけだとかなり時間を要するところを、コンピューターの力を借りることで、かなり短時間でセキュリティを突破される恐ろしさがあります。
SNSや様々なサービスのアカウント登録の際に、桁数の多いパスワードや英数を混ぜたパスワードを決めるよう強いられる理由がよくわかったと思います。

自身でWebページやサービス、アプリなど作成しアカウントなど必要とするものは、必ずブルートフォースアタックの対策を考慮して作成するようにしましょう。

今回も最後まで読んでいただきありがとうございました。

関連記事

コメント

この記事へのコメントはありません。