「宅ふぁいる便」と「Peing」の情報漏えいの違いとリスク
2つの漏えい事件について
2019年1月末、2つのサービスで大規模な情報漏えい(Peingは実質的にその危険に晒されていた)の事件が発生した。一つはファイル転送サービスである「宅ふぁいる便」約480万件。
もう一つはTwitter上で匿名で質問を送る俗に「質問箱」と言われる「Peing」約150万件弱。
※なお、実際に漏えいしていたのは、APIトークン。直接的な情報については、そのAPIトークンを利用して二次的に漏えいしていた可能性がある、という状況)
どちらも極めて個人や企業に結びつきやすいサービスであった。
情報漏えい自体は、Webサービス提供者として最も注意するべきリスクの一つである。
ただ、今回の2件の漏えい事件には一つ違いがあり、短期長期的双方から鑑みて利用者影響の観点では大きな差が生まれた。
パスワードのハッシュ化有無の違い
この2つのサービスに限らず、登録時、利用者は- アカウント名(メールアドレス)
- パスワード
を登録することがほとんどだ。
このとき、Webサービス側ではそれらを管理する単純な方法として
「パスワードをそのまま(平文のまま)保存する」という方法が考えられる。
こちらは「宅ふぁいる便」のケースである。
ただ、現在では特別な事情がない限り、パスワードの平文での管理はされてはならない。
もう一つは「パスワードに何らかの加工を行って保存する」という方法が考えられる。
それをする理由は、後述する情報漏えい時の重大なリスクを現実的に無害化するためである。
つまり、パスワードをそのまま持っていることは、漏れたときにいろいろまずいことが起きるわけだが、だったら、もともとのパスワードとは違う形に変更して保存しておけば悪用されないよね?という論理である。
これを実現するための方法の一つがハッシュ化である。
ハッシュ化について
ハッシュ化は、ハッシュ関数と呼ばれる処理によってある固定長(必ず決まった文字数)の文字列(ダイジェストと呼ばれる)に変換する方法である。つまり、直接パスワードを管理せずハッシュ関数で処理し、ダイジェストを保管しておく、という寸法だ。ハッシュ関数が同じである限り、必ず同じダイジェストに変換されるので、同一性を(天文学的な確率を無視すれば)保証できる。
また、ハッシュ関数の特徴の一つとして、ダイジェストから元のパスワードに戻すことは(天文学的な時間を掛けなければ)できない。事実上不可逆である。
Wikipedia - 暗号化的ハッシュ関数より引用 |
まあ「常識」とはいいつつも、巨大なサービスであるTwitterでさえ2018年5月というつい最近まで平文のパスワードを内部ログに保存してしまう不具合を抱えていた(記事)ので、必ずしもその常識を信用していいものではない。
ただ、絶対に特定できない、というわけでなく、上に書いたカッコ書きのとおり、天文学的な時間を掛けたりなどすれば理論的には特定が可能である。これが、PeingがPeing-質問箱-における情報漏洩についてお詫びとご説明(第二報)で言及されていることと言える。
なお、漏洩した可能性のあるパスワードはハッシュ化されており、同時に漏洩した可能性のあるsalt情報と合わせて特定の方法を用いてパスワードを解析することが理論上可能な状況となっておりましたが、一般的に容易な方法では解析不可能であり、現段階において確認された具体的な被害はございません。Peing-質問箱-における情報漏洩についてお詫びとご説明(第二報)より引用
なので、実際のところ天文学的な時間を掛けるようなことをする人はいないので、Peing利用者は、”今のところは”漏洩された情報をもとに特定されないと思っていい。
※ "今のところは"というのは、現在の機械性能や技術では容易とは言えない、だけであり、
- 今後機械性能が上がった
- 計算技術が向上した
- 使われたハッシュ関数の脆弱性が発覚した
などした場合には、その限りでない、ということだ。理論的には時間をかければ、必ず判明することになる。それが1年後か、10年後か、100年後か天文学的な時間を費やすのかは、神のみぞ知るとしか言えない。
一方、「宅ふぁいる便」については、パスワードも平文で管理されていた。つまり、手に入れさえできれば、すぐに悪用できる状態にある。では、そのリスクはなにか。
情報漏えい時のリスク
漏洩したサービスに直接なりすましによる不正アクセス
一つは、直接そのサービスに、例えば「宅ふぁいる便」の既存のユーザーになりすますことができる、ということ。ただ、これは漏えいが発覚したときに、攻撃が不可能になる。つまり、現在の宅ふぁいる便のようにサービス停止してしまえば悪用もできない、ということだ。じゃあ、停止したから安心かというとそうでない。「二次的な被害が半永久的に生まれる可能性」がある。
他のサービスでなりすますことによる不正アクセス
二次的な被害というのは、つまり「ユーザーがパスワードを使い回していることによる他のサービスでの不正アクセス」だ。もしユーザーが他のサービスで同じメールアドレス、同じパスワードの組み合わせを使いまわしていた場合、不正アクセスを許すことになる。重大なことは、当の本人が気をつける以外、誰も気づけない。
なので、ユーザーは漏えい事件が起きた場合に、自主的にチェックしてパスワードを変更しなければならない。これを行う責任は、ユーザーにある。
そういったことを考えると、そもそもとして「パスワードの使い回しをしない」ということも重要だ。
また、二段階認証などの副次的な認証方法も設定しておけば、パスワードが漏れただけではログインできない、などという防御策もあるので、対策しておくことが望ましい。
個人情報をもとにしてなりすますことによる情報搾取
「宅ふぁいる便」では生年月日なども漏れている。例えば、パスワードの再発行に生年月日を聞くサービスもある。つまり、パスワードを変更して対策を取ったとしても、他に漏れた個人情報を利用して、パスワードを再発行する、などと言った方法も考えられる。この方法は必ずしも容易なものではないが、カスタマーデスクの個人確認が適当だったりすると、それで悪用されることもある。
行うべき対策
宅ふぁいる便およびPeingを使っていたユーザーは、他のサービスで同じメールアドレスとパスワードの組み合わせを使いまわしていた場合、パスワードを変更するべきだ。
特に、宅ふぁいる便のユーザーについては、すぐに悪用されるリスクがあるので直ちに行うべきである。
一方、Peingのユーザーは、今日明日で解析されたり悪用されることはないと考えて差し支えない。だからといって、そのまま放置しておいて、数年後に解析が可能になったときに悪用される…という事も万が一にもないとは言い切れないので、なるべく早めに他のサービスのパスワードを変更しておくほうが望ましい。
宅ふぁいる便のユーザーに関しては、同じメールアドレスで登録している他のサービスに関して、可能ならメールアドレスの変更をしておくことが望ましい。容易ではないが、個人情報をもとになりすましを行うことができる危険性がある。残念ながらこのリスクは、可能性は低いものの漏えい情報がネット上で流通される限り半永久的につきまとい続けるリスクだ。
Peingのユーザーについて、ここでは言及しなかったが、Twitterや他のOpenIDのサービスと連携している場合は、その連携を切るようにしよう。連携は、Peing側でなくTwitter側など連携側のサービスから切ることができる。
この連携を放置しておいて、アカウントそのものを乗っ取られることはないが、Twitterについては無断で投稿できるなどのリスクがある。連携を切る(と言っていたが、発行したOAuthトークンを無効化する)ことができれば、そのリスクは解消される。
まとめ
2019年1月に発生した2つの漏えい事件について言及した。
Webサービスのパスワード管理において、ずさんな管理をされていることにより、ユーザー側で発生するリスクについて言及した。また、そのリスクはユーザー側でパスワードを使い回すなどによって、他のサービスにも波及することを言及した。
漏えいしたときの対策についても言及した。ただ、必ずしも完璧に防げるとは言えないので、気をつけ続けるべきだ。
Scrapboxにもメモをしているのでリンクを張っておく。
コメント
コメントを投稿