パスワードは破られる可能性があります。破られるとアカウントが乗っ取られて、自分の個人情報や暗号資産を含む金融資産が盗まれてしまうかもしれません。X(旧Twitter)やFacebookなどのSNSであれば、誰かに迷惑をかけたり恥ずかしい思いをしたり、それが企業アカウントであれば大きく評判を下げてしまいかねません。

 最近は2要素認証などで強度が上がっているとはいえ、今でもパスワードでしか守られていないサービスがまだまだ多く残っているのが現状です。安全なパスワードの付け方についてお伝えできればと思います。

 システム担当の方は適切なパスワードの運用を説明・教育する立場にあると思います。「ルールだからこうしなさい」ではなかなか動機付けされないので、なぜそれをするのかというのは、どんな仕事においても必要です。それを説くためにも使ってもらえたらと思います。

●パスワードの鉄則

 よく見聞きする内容かもしれませんが、まず3つのパスワードの鉄則をお伝えします。

 1つめは、短い文字列を使用しない。2つめは、推測可能な文字列を使用しない。笑い話になりつつもまだまだ残っているパスワードが“password”、ユーザIDと同じ文字列などです。3つめは、複数のサービスで単一のパスワードを使い回さない。例えば、A、B、Cのサービス全て同じパスワードを設定すること、もしくは2〜3個のパスワードを使い回すこと、これをやめましょうということです。

 パスワードは、それを知っているか否か許可されたユーザであるかを識別し、自分たちの資産やそれらへのアクセスを守るためのものです。しかし、パスワードは日常的にいたるところで突破されてしまっています。どうして、あなたしか知らないはずのパスワードを攻撃者は知ることができるのでしょうか。

 ここからは、攻撃者がどのような手口を使っているのかを知っていただき、パスワードの鉄則とした理由をご理解いただこうと思います。

●パスワードの破られ方

 パスワードの破られ方を今回は4つに分けて説明していきます。

 先に4つを挙げておくと、(1)総当たり(ブルートフォース)攻撃、(2)辞書(ディクショナリ)攻撃、(3)総当たりと辞書の逆パターン(リバースブルートフォースなど)(4)リスト型攻撃です。それでは1つずつ紹介していきます。

(1)総当たり(ブルートフォース)攻撃

 ブルート(brute)はあまり聞きなれないかもしれませんが、「野蛮な、強引な、力任せな」といった意味で、力任せに全部試す攻撃です。例えば南京錠みたいな形のものや扉でもありますが、数字が4桁なら0000から9999までの1万通りを試せばいつかは破れるだろうというものです。

 これは、パスワードの鉄則1つめの「短い文字列を使わないこと」と対応しています。最近のシステムでは、何回か試すと一定時間ログインできなくなるものがありますが、長い時間をかければいつかは破られてしまう恐れがあります。短ければ短いほど破られやすく、仮に1ケタなら10回試せば破れてしまいます。

(2)辞書(ディクショナリ)攻撃

 辞書というのは、よくパスワードに使われるさまざまな文字列が登録されたテキストファイルで、そこに書かれた文字列を順番に試していく攻撃です。辞書には、多くの人が付けてしまいがちな文字列が登録されています。例えば、8文字しか使えないシステムの場合は、passwordや12345678、キーボードの横並びの文字列を使ったasdfqwer、その他に縦や斜めのパターンなどもあります。

 人名、地名、文字の置き換え表現(アルファベットの「T」を数字の「7」や、「A」を「@」など)もあります。ほかにはセキュリティベンダーから発表される、最も多く使われたパスワードランキングの上位の文字列です(パナマのセキュリティ企業であるNord Securityが発表する「世界で最も利用されたパスワードTop200」など)。それだけ多く利用されているなら、それを使えば破れるんじゃないか、ということです。

 これは、パスワードの鉄則の2つめの「推測可能な文字列を使用しない」と対応しています。自分が思い付くものは他人(攻撃者)も思い付くということです。

●メアドは漏えいしている時代

(3)リバース攻撃(総当たりと辞書の逆パターン)

 リバース攻撃やリバースブルートフォースと言われますが、これは何の逆かというと、攻撃者はアカウントを乗っ取ろうとする場合、ID(多くの場合はメールアドレス)を固定した上でパスワードを試していきます。これが正で、逆はパスワードを固定してIDを変えていきます。

 メールアドレスは、今や漏えいしているのが当たり前の時代です。先ほどパスワードランキングの話をしましたが、多くの方が弱いパスワードを使っている現状があります。その考えに基づくと、弱いパスワードに固定してIDを変えていけば、弱いパスワードを設定している人を一網打尽にして、侵入できてしまうわけです。

 総当たり攻撃の説明の中で、何回かログインを試すとロックがかかると言いましたが、例えば3回間違えるとロックがかかるシステムだった場合、アカウントに2回ずつ試していけば攻撃者はロックされずにずっと攻撃し続けることができるというメリットがあります。これも、「短い文字列や推測可能な文字列をパスワードに設定しない」と対応しています。

(4)リスト型攻撃

 リストとは、IDとパスワードがセットになったものがたくさん入ったテキストファイルやCSVのことです。以下の図はその一例で赤く処理しているところにパスワードが記載されており、その左にそのパスワードを使っているアカウントが記載されています。

 例えば、ショッピングサイトのシステム脆弱(ぜいじゃく)性を悪用され漏えいしたIDとパスワードのリストがあったとします。これを使って、SNSやメールのクラウドサービスに同じIDとパスワードで試していくというのがリスト型攻撃です。厄介なことに、ユーザの力量でパスワードの流出することを止めることができないため、預けているサービスを信用するしかありません。

 これはパスワードの鉄則の3つめの「複数のサービスで使い回さない」と対応しています。文字列が超長い、誰が見ても意味の分からない推測もできないような文字列をパスワードに設定しても、流出している以上パスワードが分かってしまいます。そのため、複雑なパスワードを設定していたとしても、使い回していると突破されてしまうリスクがあります。

 トレンドマイクロが2012年ごろから継続的に調査している「パスワードの利用実態調査」では、Webサービスの利用者(n=1030)のうち、83.8%(863人)が複数のWebサービスでパスワードを使い回しているというもので、この結果は10年以上大きな変化はありません。これが現実です。

 こうした状況をおいしいと思って、攻撃者は自身でどこかのサービスから盗むか、盗まれたリストを買い攻撃を行っています。

●パスワードの鉄則とその根拠

 「パスワードってそんなに流出しているの?」とピンとこない方もいらっしゃるかもしれませんが、実は筆者が収集したものだけで重複はあるものの30億件程度のIDとパスワードのリストを所有しています。

 筆者は、セキュリティの調査・分析のために収集していますが、入手はそれほど難しくはありません。それは攻撃者にとっても同じです。他にもさまざまなブラックマーケットが存在していて、いわゆるダークウェブといわれるようなところで、金額もそこまで高額ではなく売買されています。

 自分のパスワードが流出しているかを知る手段の一つとして、「Have I Been Pwned(ハブ アイ ビーン ポウンド)」というWebサイトがあります。過去の流出データが数多く登録されていて、自分のメールアドレスを入力するとどういった件で流出が認められているか判断してくれるというものです。2024年5月15日時点で13,137,301,752アカウントと、かなりの情報量が登録されていることが分かります。

 メールアドレスを毎回入力するのが面倒であれば、「Notify me(ノーティファイ ミー)」という機能もあり、自分のメールアドレスを登録しておくと流出が認められた際にお知らせしてくれる機能もあります。

 他にもシステム管理者の方であれば、自組織のドメインを登録することができる「Domain search(ドメイン サーチ)」という機能もあります。登録方法は、本人確認などがあるため「Notify me」よりも多少ハードルが高めではあります。

 登録方法は、筆者のブログで紹介していますので、よかったら参考にしてみてください。

●パスワード管理の例

 ここまでパスワードの破られ方を知っていただき、鉄則を守らばければならない理由を解説してきました。しかし、皆さんは、数多くのシステムを利用しており、その数だけパスワードを管理しなければならないとなると、そう簡単には実現できないと思われるのではないでしょうか。

 それはとても自然な感想だと思います。まず、記憶だけでどうにかしようという考えは不可能ですので捨ててください。筆者も400ほどのパスワードを扱っていますが一切記憶していません。ここからは、記憶に頼らないパスワード管理の方法をいくつか紹介・解説していきます。

パスワード管理ソフト

 自分の代わりにIDとパスワードを記録してくれるソフトウェアで、例えるなら守衛室にある鍵のいっぱい入ったボックスみたいなものです。それを開けるためのマスターパスワードだけ覚えていれば、その一つを覚えているだけで他のサービスを使う時に自分の代わりにパスワードを入力してくれるもので、筆者も使っています。

 WebブラウザにIDとパスワードを登録する方法もありますが、Webブラウザ内のパスワードを盗む情報窃取型のマルウェアの存在も考えると、この方法は個人的には避けたほうが良いのかなと思っています。

紙管理

 パスワード管理ソフトもExcelも使い難いという方は紙に書くという方法もあります。紙といっても付箋(ふせん)のように誰にでも見られるところに貼り付けるというものではなく、手帳やノートに書く、財布に入れておくなどです。

 「その紙を落としたらどうするんだ」という方もいますが、例えば持ち歩くパスワードは初めと終わりの2文字は共通にしてそれを記憶し、それを書かずにお財布などに入れて持ち歩くなど、方法はあります。

 紙の管理さえしっかりしておけば強固になるし、持ち歩く数を減らしておけば落とした時のリスクは低減できています。仮に落としたとしても初めと終わりの文字が書かれていなければそれはパスワードとして成立していないので、自分にしか分からない状態になっています。

 紙とデータを比較した場合、紙が優位なのはなくなった場合に気が付くことができます。情報が盗まれるというのは、情報が持っていかれるのではなく、コピーが持っていかれているわけです。手元にも残っているし相手にもある状態です。

●パスワードを強固に

より安全に利用するための認証

 もしサービスが対応しているなら2要素認証を設定しましょう。SMSの認証はあまり推奨できないですが、パスワードの入力以外の経路で知らせてくれる文字列を入力するようなものにするか、あとはYubiKeyやパスキーといった、物理的なセキュリティキーを使う方法があります。

 さて、多くのパスワードを管理している皆さん。これまで使ってきたパスワードを一気に強固なものへ変更し、しかも使い回しをなくすことは相当に骨が折れることだと思います。まずは、パスワードのリセットに使っているメールアカウント、そして仕事で使うものや金銭に関わるもの、SNSといったように優先順位の高いものから少しずつ変えていっていただければと思います。

 そして、管理側の方々は、できるだけ利用者の方に負担を強いないような仕組み、例えば定期変更の強制をやめ、二要素認証の導入などを検討していただければと思います。管理側も利用側も仲間です。互いに協力しあってより強固なセキュリティを実現していきましょう!

(辻 伸弘 SBテクノロジー社、プリンシパルセキュリティリサーチャー)