数百万人分のユーザー名とパスワードを載せたリストがオンライン上で発見されたことが報道などで明らかになった際、自分自身のユーザー名やパスワードが何かしらのセキュリティ被害が受けていないかどうか気になるところだろう。今回の記事では、その確認方法について幾つか紹介をしていく。
この記事は、ESETが運営するマルウェアやセキュリティに関する情報サイト「Welivesecurity」の記事を翻訳したものである。
2019年1月中旬にリサーチャーのトロイ・ハント(Troy Hunt)が明らかにしたように、複数のハッキングフォーラムにとどまらず、クラウドストレージ内にもリストが点在しているという。コレクション番号1 (Collection#1) と称するリストには、これまで最大の規模となる、7億以上のメールアドレスと2,000万以上のパスワードが含まれていることがわかっている。
このようなニュースを聞けば、自分のメールアドレスやパスワードがそうしたリストに含まれていないか、心配するのが普通だろう。自分の認証情報が盗まれていないかどうかがわかれば、新たなサービスに登録する際、あるいはパスワード更新時にも自身の設定するパスワードの安全性を把握できる。その方法を以下に説明していくことにする。
最初に紹介するのは、「Have I Been Pwned」というサービスだ。ユーザーはこのサービスで、自分のメールアドレスが盗まれていないか、オンライン上に出回っているメール・パスワード情報のリストに含まれていないかを確認することができる。このサービスが利用しているデータベースは常時、最新状態が維持されているため、直近で盗まれたメールアドレスやパスワードも含まれている。
サイトを訪問すると、訪問時点におけるデータベースの状況が一覧できる。上の画像(図2)では64億件超のリストとなっている。
試しに、あるメールアドレスを入力して確認したところ、リストに該当するメールアドレスの存在を確認できた。ページをスクロールしていくと、以下(図3)のように今回存在が確認されたメールアドレス漏えいの原因について、サービスの名称と漏えいの詳細な情報が記載されている。
掲載されている情報は日付順および情報が盗まれたサイト順に並んでいる。例えば、さまざまなウェブサイトを回遊して収集したデータだけでなく、大きく話題となったLinkedInやTaringaで漏えいした情報なども含まれている。
では、自分の認証情報が盗まれたと判明した場合、どのような対処が必要となるだろうか。まずは一覧に掲載されているウェブサイトで設定しているパスワードの変更を速やかにおこなうべきだろう。注意したいのが、よくあることではあるが、同じパスワードを複数のウェブサイトやサービスで設定しているケースだ。その場合、判明したパスワードを使用しているすべてのウェブサイトで、パスワードの変更が必要となる。パスワードが誰かの手に渡れば、そのパスワードを悪用してさまざまなウェブサイトにログインする可能性が生じるためである。
なお、このサイトには新しいパスワードの候補を考える際に便利なツールも備えている。
このフォームに入力した文字列がパスワードとしてどれだけ使用され、過去の窃取された実績も確認できる。信じられないと思うかもしれないが、最も使用されるパスワードのランキングに載りそうな文字列を入力した結果が次の表の一覧だ。
パスワード | 窃取された回数 |
---|---|
123456 | 23,174,662 |
password | 3,645,804 |
qwerty | 3,810,555 |
111111 | 3,093,220 |
183,778 | |
64,811 | |
a3Z6!B:9#s.2 | 0 |
見ればわかる通り、完全にランダムな文字列(この場合、一番下の「a3Z6!B:9#s.2」)を入力すると、窃取された実績が「0」と表示されている。おそらく過去に使用または解読されていない文字列と考えられる。このように、このツールを利用することで、どのようなパスワードが安全か、もしくは盗難の可能性が低いかをチェックすることができるのだ。安全性の高いパスワードを設定するためには、先のような方法でデータベースを利用するだけでなく、以下のような事項に気をつけてほしい。
- 英数字と文字を組み合わせて使用すること
- 特殊文字を使用すること
- 少なくとも8文字以上の長さにすること (10文字以上の長さにすると総当たり攻撃に対してより安全性が増す)
- 二要素認証の使用を検討すること(2層目のセキュリティを追加することで安全性が向上する)
そして、一番重要なことは自分にとって覚えやすいパスワードにしておくことである。思い出すのも難しいような文字列をパスワードに設定すると、パスワードをメモに残す、ディスプレイ下に付箋で貼り付ける、といった方法をとりがちである。これではせっかく安全性の高いパスワードに設定してもその努力が無意味なものとなってしまう。
安全なパスワードを生成し、それを暗号化して保管してくれる「KeePass」のようなパスワードマネージャーを使用するユーザーならば、GitHub上のツール経由で、「Have I Been Pwned」データベースと照合することも可能だ。
このアプリケーションは「kdbxpasswordpwned」と呼ばれ、KeePassに保管されているすべてのパスワードを自動的にデータベースと照合してくれる。利用するには、一定のプログラミングスキルが必要にはなるが、以下の手順に沿って進めていけば、簡単に設定することができる。
まず、次のコマンドラインを使用して自分のシステムにアプリケーションをインストールする (Pythonを事前にインストールする必要あり)。
$ pip install kdbxpasswordpwned
インストール完了後、.kdbxファイルが置かれているディレクトリに移動し、以下のコマンドを実行する (.kdbxは、KeePassパスワードマネージャーのファイル形式である)。
Kdbxpasswordpwned passkeys.kdbx
続けて暗号化されたファイルに対するパスワードを要求されるので、入力するとパスワードマネージャーに保管されているデータベースと照合することができる。この例(図5)では、保管しているサンプルパスワードのうち2件がヒットしたことがわかる。もしこのパスワードを実際に利用しているならば、すみやかにこれらのパスワードを使用しているサービスにアクセスし、パスワードの変更をおこなうべきだろう。
サイバー犯罪者が手にした情報で何を企んでいるかについて、常に注意が欠かせない。その前提で、最後にひとつだけアドバイスをしておきたい。サイバー犯罪者がユーザーのパスワードを知っていると脅し、金銭を要求するメールを受信した場合、慎重に行動すべきである。他にも、ESET Labでは、ニセのセクストーションのキャンペーンがいまだに存在することを確認している。この場合、受け取ったメールのメッセージ内(件名か本文の最初の数行)には自分のパスワードが記載され、多額の支払いを要求していることがわかっている。
使用しているアプリケーションやサービスがパスワードの変更を要求しない場合でも、定期的にパスワードは変更しておきたい。そして、可能なら二要素認証の利用を推奨したい。そうしたアクションが、自身の個人情報の安全性を確保し、危険性の回避につながることも覚えておいてほしい。