★☆★JNSAメールマガジン 第31号 2014.3.20.☆★☆
このメールマガジンをご覧の皆様。
はじめまして。
辻 伸弘と申します。
私のことをご存じない方のほうが多いと思いますので簡単に自己紹介をさせていただきます。
大阪生まれ大阪育ちの上京11年のセキュリティエンジニアです。
上京した理由はペネトレーションテスト(セキュティ診断)を仕事にしたかったからです。
ペネトレーションとは、コンピュータに対して、侵入や情報窃取を行うことができるのかどうかを調べ、もし行えた場合はその修正方法を提示、提案するという攻撃視点のセキュリティサービスです。もちろん、安全の押し付け、押し売りをするのではなく、予算やシステムの仕組み上即座に修正できない場合は、暫定策や緩和策の提案も行います。
身近なものに置き換えると皆さんが年に1回は受けているであろう健康診断と似ているのではないでしょうか。例えば煙草などはすぐにやめるほうがいいに決まっているのですがお医者さんは「即禁煙」という手段だけではなく「徐々に減らしていく方法」や「禁煙外来への通院」など複数の手段を提示され、その手段のメリット、デメリットの説明をしてくださるはずです。
それと同じようなことをシステム(もちろん人を含む)に対して行ってきました。
さて自己紹介はこれくらいにしておきましょう。
今回は、ユーザサイドでの認証をテーマにコラムを書かせていただきます。
ユーザサイドの認証という言葉を聞いたときにまっさきに思い浮かべるものは何でしょうか。私は、即答で「パスワード」です。
古くて新しく太古から人やその資産を守りつつも、その管理方法について人々を悩ませ続けてきた存在です。
私は前述した通りペネトレーションテストという仕事に従事してきました。
言い換えれば様々な方法を駆使してパスワードの突破を試みる立場です。
パスワードを破る方法にはいくつかあります。
そちらを少し紹介しましょう。
「総当り(ブルートフォース)攻撃」と呼ばれる、決められた範囲の文字列パターンのパスワードをすべて試すことで、そのうち破ることができるだろうという考え(例えば4桁数字と限定するなら0000-9999といった具合)のもと行われるパスワード突破手法。
「辞書(ディクショナリ)攻撃」と呼ばれる、ファイル内に記述された文字列を試すパスワード突破手法。このファイルにはある種の使われやすそうな文字列(123456やpasswordやP@ssw0rd。その他にも人名や地名、システム名など)が収録されいます。すべてを試すよりも人が設定しやすい文字列を用いたほうが突破効率がよい場合があります。
上記2つはパスワード突破手法の基本形と言えると思います。
この基本に対して「逆」のパターンも存在します。
基本としたものはある程度ユーザ名を固定した上でパスワードを変更していくことに対して、逆のパターンはパスワードを固定した上でユーザ名を変更していくというもので「リバース攻撃」「リバースブルートフォース攻撃」と呼ばれるものです。
この手法はユーザ名に規則性があるなどの理由から推測が容易であったり、どこかから入手したユーザ名(多くの場合はメールアドレス)のリストを持っている場合に効果を発揮します。
例えば、パスワードをよく使われるパスワード(米SplashDataの発表によると2013年の最もよく使われた弱いパスワードは「123456」でした)に固定しユーザ名を変更していくことで弱いパスワードを利用しているユーザを一網打尽にすることが可能となります。また、この手法は1つのユーザに対して、大量のログイン試行を行わないためそのユーザのアカウントがロックされることがなく、多少攻撃に気付きにくいというメリットもあります。
(現実問題として様々な不正ログインやWebサイト改ざんに関するインシデントは自社で気付く前に利用者から通報されるケースが多いようです。)
これらに加え昨年の4月頃から「リスト型攻撃」(IPAではパスワードリスト型攻撃と呼ばれていますがこれでは辞書攻撃と混同される気がしますので私はシンプルなリスト型攻撃と呼ぶようにしています。)が相次いで発生しています。
被害に遭ったサービス提供側から出されるリリースに「他社サイトから流出したと思われるユーザーID・パスワードを不正に入手し、第三者が本人になりすまして同一のID・パスワードを使い?」というような文章が書かれているものを目にした方も多いと思います。
リスト型攻撃とは、前述した突破手法のようにユーザ名、パスワードのいずれか一方を固定し、もう一方を変化させるのではなく、1回のログイン試行につき1つのユーザ名とパスワードのセットを用いるというものです。実際の攻撃では報道からも分かる通り数万、数十万以上ログイン試行を繰り返し、かなりの確率で不正ログインに成功しているとのことです。
実は、この手法自体はペネトレーションテストの現場では長らく当たり前のように用いられてきた手法です。ペネトレーションテストでは、1つのコンピュータへの侵入に成功した際には他のコンピュータへの侵入に役立つ情報をその侵入に成功したコンピュータから取得します。その代表的なものがユーザ名とパスワードです。
勘のいい方は既にお気づきかと思いますが、この手法は同じパスワードを複数のシステムで使い回しをしているユーザを狙った攻撃方法です。
パスワード管理の鉄則としてよく言われ守るべきものは下記のようなものです。
とあるセキュリティ関連企業の発表では1人当たり約14(厳密には13.95)の認証を有するサイトを利用している。というものがありました。(2012年に18歳から59歳までの男女316名を対象にアンケートを実施)3つほどのパスワードであればなんとか覚えることは可能かもしれませんが、これが10以上ともなると誰でも容易にというわけにはいきません。
どうしても、安易なパスワードを複数のサイトで使い回してしまう。という状況が発生してしまいます。そして、最近ではネットのサービス上で換金性の高いポイント利用が可能となった背景も手伝ってか、そこにつけ込んだリスト型攻撃が増えてきたのだと私は考えています。
前述したパスワード管理の鉄則とされていることは昔から言われ続けていることです。
しかし、一向に被害はなくなりません。むしろ増える一方です。
こういった状況はどういう理由によるものなのでしょうか。
細かいものを見ていくと大小理由は様々であるとは思うのですがそもそもの理由として
「鉄則を示すのみでその実現方法が示されないことにより、結果、無理難題となっている場合があるのではないか」
と私は考えています。
私の見てきた限りこの鉄則を示された多くの方は「そんなこと言われてもパスワード覚えられないんだもん。すぐ忘れちゃうし。」といった反応をします。
鉄則のみを示され実現方法がはっきりされていないことにより暗黙の「記憶するもの」と思い込んでいる方も多いように感じます。
もちろん、このメールマガジンをお読みの方はセキュリティ意識が高いと思いますのでそれぞれの方法で実現されているかとは思いますが、それは一握りの方たちだと私たちは認識する必要があると思います。自分ができているので他人が同じようにできるとは限りません。
...次回(後編)に続きます。