日常的に発生しているパスワードリスト攻撃

パスワードリスト攻撃が猛威を振るっている。

パスワードリスト攻撃とは、あるサービスやシステムから流出したアカウント情報を用いて、ほかのサービスやシステムにログインを試みる攻撃手法だ。ユーザーが流出元と同じID/パスワードを他のサイトで使い回していると、アカウントが乗っ取られることになる。

パスワードリスト攻撃は、各サービスで提供されているログイン機能に対してIDとパスワードを投げるだけという手軽さから日常的に攻撃が行われている。某コミュニケーションサービスのアカウント乗っ取りなどを思い浮かべれば、攻撃の頻繁さをご理解いただけるだろう。多くの企業が不正ログインの調査結果を発表しているが、サービス事業者側に不備はないため、あえて公表しないケースも少なくない。

サービス事業者がこうした状況を打開する手はあるのか。セキュリティ企業のアズジェントのネビン・パトリック氏に話を聞いたので、本稿ではその模様を紹介しよう。

アズジェント 事業企画部 プロダクト管理 担当リーダー ネビン・パトリック氏

パスワードリスト攻撃へのシンプルな対抗策

パスワードの使い回しが根本原因とされることの多いパスワードリスト攻撃だが、パトリック氏は、「ユーザー自身の管理の甘さを指摘するだけでは問題は解決しない」と主張する。

そもそもパスワードリスト攻撃が成り立つのは、多くのユーザーがパスワード(とIDの組み合わせ)を使い回しているためである。したがって、使い回しを止めさせれば、被害に遭うこともなくなるはずである。

ただし、実際にはそうした施策を強制するのはほとんど不可能だろう。というのも、「一般的なユーザーで20~30のWebサイトを利用しており、その分だけIDとパスワードが必要になる。それだけの数のパスワードを覚えるのは難しく、使い勝手が悪くなるため、結局は使い回しを始めてしてしまう」(同氏)からだ。実際、20~30というWebサイト利用数に対して、利用するパスワードは4~6個という調査結果もあるという。

そこで、二要素認証やシングルサインオンなどのシステム的な仕組みを導入する必要がでてくる。といっても、昨今のITの利用環境を見ると、こうしたシステムの実現は決して簡単ではないことがわかる。たとえば、PC環境を整備したとしても、モバイルデバイスはどうするか、クラウドのサービスはどうするかといった課題が次々と出てくる。それを考慮すると、とても大掛かりで導入に時間のかかる高価なシステムになってしまうのだ。

パトリック氏は「そこで知っておいてほしいのが、トークンレスのワンタイムパスワードだ」と話す。

「トークンレスなワンタイムパスワード」で使い回しを防止

トークンレスのワンタイムパスワードというのは、ハードウェアデバイスや、メール(ソフトウェアトークン)などで受けとる一時的な文字列の組み合わせが必要ないワンタイムパスワードのことだ。

二要素認証では通常、ハードウェアデバイスやメールで送られてくるトークンを一時的なパスワードにして認証を行う。だが、これを利用するためには、特殊な機器の利用が必要であったり、メールでのやりとりが煩雑であったりと手間がかかる。パトリック氏は、そうした使い勝手の悪さもまた、パスワード使い回しの遠因になっていると指摘する。

こうした課題に対応したワンタイムパスワードが英Swivel社のPINsafeだ。「トークンレスでシンプルに管理でき、ユーザーが使いやすい。既存システムに簡単に組み込むこともできる。小規模から大規模まであらゆる企業に適用できる」(パトリック氏)という。まさに、いいことずくめの認証方法なのだ。

PINsafeの基本的な仕組みはこうだ。

まず、ユーザーは自分の好きな数字を組み合わせて、数ケタの暗証番号(PINの順番)をつくる。たとえば「6 2 3 9」としよう。次に、その暗証番号をPINsafeの乱数生成表が示した数字にあてはめる。乱数生成表は、次のように、0~9までの数字二列で構成したものだ。下段が、アクセスするたびに変わる乱数となる。自分の暗証番号が「6 2 3 9」ならば、このアクセスでは「9 7 2 8」を入力する。以上で終わりだ。

PINsafeのパスワード表示画面

「ユーザーは自分で設定した暗証番号を覚えるだけ。暗証番号は10ケタまで設定可能で、数字だけでなく、英字を利用してセキュリティ強度を高めることもできる」とパトリック氏。

要望に応じて、配列のデザインを変えることも可能だ。たとえば、下記のような蜂の巣デザインにしておき、マウスでクリックするといった方式も用意されている。

蜂の巣デザインのパスワード表示画面

また、相手の背後から肩越しに画面を覗いて暗証番号を盗み見る「ショルダーハック」への対策機能もあるという。PINsafeではモバイルアプリを無償提供しており、これをダウンロードすることで、身体で隠せる小さな画面でワンタイムパスワードを確認することができる。

しかも、モバイルアプリでは、ワンタイムパスワードをあらかじめ最大99個までダウンロードしておくことが可能。オンライン時に入手しておけば、オフラインでも利用できる仕組みになっている。加えて、盗み見られる危険性の低いモバイルアプリに関しては、(PINの必要ない)ワンタイムパスワードを直接送る機能も提供されており、セキュリティポリシーやユーザーの意向に合わせて、選択できる環境をそろえている。

モバイルアプリの画面。左はPINを使用するタイプ、右はワンタイムパスワードを直接表示するタイプ