セキュリティ

パスワードクラックを整理してみよう!(辞書攻撃、ブルートフォース攻撃など)

2020年11月25日

典型的なサイバー攻撃の一つとして「パスワードを見破る」ということがあります。マルウェアでコンピュータを感染させたり、スクリプト攻撃のようにWebブラウザ経由で情報を盗んだり、不正な操作をさせる手法がありますが、なんだかんだ言ってもパスワード盗まれたら何でもやられてしまいますよね。。。

今回はパスワードを盗む、所謂パスワードクラックに関して解説していきます!

パスワードクラックとは?

冒頭でも記載しましたが、パスワードを見破って盗んでしまうことが、パスワードクラックです。

パスワードの管理の甘さから、パスワードを抜き取られてしまう訳ですが、昨今様々なサイトでログインが必要になり、サイト毎にログインID、パスワードを変えるのはかなり厳しいです。その結果、共通の簡単なパスワードを使ってしまい、盗まれてしまうわけです。

そして、パスワードクラックの対象となるサイトはあらゆるものがあります。

パスワードクラック対象のサイト例

  • SNS
  • ブログサイト
  • 動画共有サービス
  • ショッピングサイト
  • CMSサイト
  • ポイントカードなどの各種会員サイト
  • 会社の業務サイト

ネットに繋がっていたら、どんなサイトでも攻撃の対象になってしまいますよね。。。怖いですね。。。

様々な攻撃方法

では、続いてパスワードクラックの攻撃方法はどんなものがあるのでしょうか?

類推攻撃

読んで字のごとく、攻撃者が利用者の情報をもとにパスワードを類推(予測)する方法となります。

パスワードに生年月日や名前を使っていると見破られ易くなってしまいますね。

ブルートフォース攻撃

「Brute Force(力づく)」の言葉通り、パスワードの可能な組み合わせを全て試す方法です。「総当たり攻撃」と呼ばれたりもします。

この攻撃はパスワードのパターンを全て試します。最初から「0,1,2,3,...,a,b,c,...,0a,1a...」のように一からパスワードを入れてログインを試すので、非常に効率が悪いです。

そのためコンピュータにこの作業をやらせます。よく映画とかでコンピュータを電子扉に繋いでパスワードを試していたりするやつですね。

もちろん、パスワードの桁数や使う文字パターン(英数字混在など)が多ければそれだけ見破るのに時間が掛かります。

最近のWebサイトは数回パスワードを試して失敗するとそのアカウントがロックされるロックアウト)仕組みがありますので、その場合この攻撃手法は防ぐことができます。

リバースブルートフォース攻撃

先程のブルートフォース攻撃は一つのログインIDに対して、様々なパスワードを試す方法でしたが、この攻撃はその逆(リバース)ということで、一つのパスワードに対して、様々なログインIDを試す方法です。

この攻撃ではアカウントのロックアウトの対象にはならないので、使われていそうなパスワードを決めて、ログインを成功させられてしまうリスクがありますね。

辞書攻撃

パスワードには単語を使う人が多いので、辞書の単語を使ってパスワードを推察する方法となります。

辞書の単語とは例えば、「password」、「admin」、「system」、「12345」など分かり易い単語になります。

前述のブルートフォース攻撃より効率が良いため、ブルートフォース攻撃の前に辞書攻撃を試みることがあるようです。

パスワードリスト攻撃

昨今のサイトを利用するには、ログインが必要なので、利用者は多くのログインIDやパスワードを管理する必要があります。その結果、ログインIDとパスワードを使い回す利用者が多くなります。

そこで、あるWebサイトやシステムから流出して入手したログインIDとパスワードを別のWebサイトやシステムに対して使ってみます。利用者がログインIDとパスワードを使い回していた場合、このログインは成功してしまいます。

このようにリスト化されたログインIDとパスワードを色々なサイトで試す攻撃方法です。

レインボー攻撃

パスワードは各システム内部(サーバ側)で、そのままの文字列で保存されることは少なく、パスワードの文字列をベースにハッシュ関数を使って計算されたハッシュ値をデータベースに保存しています。

このハッシュ値は不可逆性を持っているので、その値から元のパスワードを復元することはできません。

ただし、元のパスワードから作られるハッシュ値は毎回同じになるので、パスワードとハッシュ値の関係を示したリストを作っておき、ハッシュ値が同じものがあれば、そこから元のパスワードを引き当てることができます。

このパスワードとハッシュ値の関係をしめしたリストのことを「レインボーテーブル」と呼びます。

利用者がログインするためのパスワードを打ち込んだ際は、そのパスワードに対してサーバ側と同様にハッシュ関数を使って算出されたハッシュ値が作られます。そのハッシュ値を通信経路から盗んだり、そもそもサーバに保存されているハッシュ値を盗んだりし、そのハッシュ値とレインボーテーブルを比較して、パスワードを探し当てます。

パスワードクラックへの対策方法とは?

様々なパターンがあるパスワードクラックへの対策方法ですが、これはそんなに難しいものではありません。

パスワードクラック対策例

  • パスワードに使用する文字数を増やし記号や英数字を織り交ぜて設定する
  • パスワードに単純な単語や自分の誕生日や名前に関する意味のある単語を使わない
  • サイト毎にパスワードを設定する(使い回さない

と記載してみたものの、意味を持たないパスワードは忘れてしまいがちだし、数多のサイトのパスワードを個別に設定するのも大変ですよね。

でも、ここを面倒だと思ってサボると痛い目にあいます。

大事なのは「意識をもって、対策を取る」ということですね。

まとめ

今回はパスワードのクラックに関して解説してみました。

様々な攻撃を使ってパスワードを盗もうとするので、気を付けないといけないですね。

一番やってはいけないことは、パスワードを忘れてしまうからといって、机やコンピュータに付箋でログインIDとパスワードを貼っておく、ことですね。

最近は電車の中でショルダーハックによる、パスワードの盗み見もあるので、これも結構気を付けないとだめですね。

自分の身は自分でしっかり守りましょう。

以上です!

-セキュリティ