前回は、「認証を突破する」と一言で言ってもオンライン/オフラインといった「経路」があるというお話をさせていただきました。

第二回となる今回は、昨今、世の中を騒がしている不正ログイン被害、つまり「オンライン」のパスワード突破手法に焦点を当ててお話をさせていただきます。

どんな突破手法があるのかを知ることで対策方法や対策を講じる理由をご理解いただければと思います。

著者プロフィール

辻 伸弘氏(Tsuji Nobuhiro) - ソフトバンク・テクノロジー株式会社


セキュリティエンジニアとして、主にペネトレーション検査などに従事している。民間企業、官公庁問わず多くの検査実績を持つ。

また、アノニマスの一面からみ見えるようなハクティビズムやセキュリティ事故などによる情勢の調査分析なども行っている。趣味として、自宅でのハニーポット運用、IDSによる監視などを行う。

Twitter: @ntsuji

スタンダードな突破手法

まずは、オンラインにおけるパスワードの突破手法においてスタンダードと思われる2つを紹介します。

  • ブルートフォース攻撃
  • ディクショナリ攻撃

まずは「ブルートフォース攻撃」から。

ブルートフォースの綴りは「Brute Force」。日本語では「強引な」とか「力技の」といった意味になり、特定の範囲の文字数、文字種すべてを埋めるように試行するというものです(上限の文字数や文字種を定めず延々と続けるという場合もあります)。例えば4桁で数字のパスワードに対して突破を試みる場合、ある程度固定したユーザIDに対して

0000, 0001, 0002, 0003 ……
9999, 9998, 9997, 9996 ……
1728, 8827, 3247, 0205 ……(決められた文字数、文字種の範囲をランダムに試行)

とパスワードを試行するといったようなものです。

次に「ディクショナリ攻撃」ですが、ディクショナリは日本語で「辞書」(ワードリストと呼ばれる場合もあります)。ここでいう辞書とは、予め試行するパスワードを収録したテキストファイルのことを指します。辞書には、単語、人名や組織名、地名、置き換え表現(aを@や4など形が似た別の文字に置き換える表現でleet表現とも呼ばれます)、キーボード配列(キーボードの並びの連続「asdf」のようなもの。)など、パスワードとしてよく使われる(であろう)文字列が収録されています。いろいろなカテゴリ別に分けられたものがインターネット上でも無料で公開されており、誰でも簡単に入手可能です(辞書ファイルの入手先の一例 : http://packetstormsecurity.com/Crackers/wordlists/dictionaries/)。

ディクショナリ攻撃ではこの辞書ファイルに収録されている文字列をパスワード突破のために試行していきます。

例えば、ある程度固定した特定のユーザIDに対して

password, Password, PASSWORD, p@ssword ……
123, 1234, abc, abcd ……
tsuji, watanabe, izumita, odagiri ……
qwer, asdf, zxcv, 1qaz ……

とパスワードを試行するといったようなものです。

前述したとおりインターネットには様々な辞書ファイルが多数、公開されています。容易に推測できるような文字列は、ほぼ辞書に収録されていると言っても過言ではないでしょう。

ちょっと応用した手法 – 安易なパスワードのユーザを一網打尽

ここまで、オンラインにおけるパスワードの突破手法のスタンダードなものを2つ紹介しました。ここからは、それらを少し応用した逆パターンの突破手法を紹介しましょう。

逆パターンとは、試行対象をパスワードからIDに変更した手法のことを指します。前述した2つの突破手法が、ある程度固定したユーザIDを対象に試行するパスワードを変化させる手法だったのに対して、こちらはパスワードをある程度固定し、ユーザIDを変化していくわけです。

例えば、パスワードを「password」と固定します。そのうえで、数字の連番、桁数固定で推測しやすいユーザ名が使われるサービスに対して、前述のブルートフォースの要領で突破を試みます。また、メールアドレスがユーザ名として使われているサービスに対しては、どこかから盗むか購入/収集したメールアドレス一覧を前述のディクショナリ攻撃の要領でログイン試行を行います。

一般にこの手法は「リバースブルートフォース」と呼ばれており、弱いパスワードを設定しているユーザを一網打尽にするのに適した突破手法と言えます。passwordのような単語をパスワードに設定した時点で、「突破を受けるのを待っている」ような状況に陥ってしまうのです。

ブルートフォース(通常)とリバースブルートフォースのイメージ

*  *  *

パスワードを設定する際の注意事項として、「安易な単語を用いず、長く複雑で推測されない文字列を設定するように」と言われることがあります。これは今回紹介した突破手法を見据えた対策と言えるでしょう。

次回は、今回紹介した手法とはまた別の、そして、とても厄介なアプローチの突破手法について解説します。