
noteのIPアドレス漏洩と同様のリスクを持つSNS ID漏洩が修正されたので、何が起きてたかをまとめます(※ SNS連携の同意目的外利用は未修正)
noteで投稿者のIPアドレス漏洩の騒ぎのときに、以下をTwitterに投稿しました。2週間経ってもnote側からのパブリック情報はでていないのですが、先程確認したら一部修正されていたので、何が問題だったかをまとめておこうと思います。
この件、シェアされ続けるのを意図したわけではないので(ただの疑問ツイートなので)、ツイート削除しました。スクリーンキャプチャの方、共有しておきます。 pic.twitter.com/aEdq7SZHJB
— Masahiko Sakakibara (@rdlabo) August 14, 2020
IPアドレス漏洩の何が問題だったか
IPアドレスが漏洩することによって何が危険かという専門的な記事は以下を参照いただけましたら幸いです。
ただ今回大きく騒ぎになったのは、他の匿名サービスで公開されているIPアドレスと一致する可能性でした。IPアドレスは時間ごとの使い捨てである場合が多いので、タイムスタンプがないと同一性は保証されませんし、仮にあったとしても同一LANを利用してる別人(同僚など)かもしれません。
とはいえ、これは正確度が100%ではないという話でしかないため、以下のような記事・推測が多く行われました。
ここで重要なのは「ユーザ(投稿者)が意図していない形で他サービスと結び付けられて公開されること」はユーザにとって未知のリスクであるという点です。
SNS ID漏洩という問題
SNSのID漏洩についても同様の問題を抱えていました(現在は修正済み)。
以下は、記事データを取得するAPIのレスポンスの一部です。 `user` というオブジェクトに `socails` というキーがあり、そこでSNSログインによって取得できるデータがそのまま入っていました。私の場合、以下の通りです(データは **** としています)
user: {
...
social: {
facebook: { id: ****, name: ****, nickname: ****, uid: ****},
twitter: { id: ****, name: ****, nickname: ****, uid: **** }
}
}
ふたつの問題点についてまとめます。
1. ログイン用途の許可でも強制公開
まずひとつめは、ログインに用いたSNSアカウントが強制公開されていたことです。FacebookにしてもTwitterにしても、「アカウントを公開する」という機能はなく、ログイン = 公開という状態です。記事の下部であったり、プロフィールであったりにSNSアカウントが表示されます。なお、会員登録画面や利用規約にその旨の表記は見当たりませんでした。(デジタルコンテンツ購入者にはその配慮があるのになぜ・・・)
SNSアカウントを登録(ログイン)という用途で受け取って、同意なく公開情報として扱うのは事業者として問題ですし、noteのヘルプセンターの表記にも反しています。
ちなみに、これが表示されるのが嫌で、ソーシャル連携を外したら、SNSログイン自体ができなくなる問題もあります。
一応、ユーザがマイページもしくはプロフィール、自分で執筆した記事をみたら、表示されてるのが気付くことができます。現在も未修正です。
2. SNSの固有IDが公開されている
もう一度、APIの返り値をみてみましょう。
user: {
...
social: {
facebook: { id: ****, name: ****, nickname: ****, uid: ****},
twitter: { id: ****, name: ****, nickname: ****, uid: **** }
}
}
uidとあります。これが問題で、ここに格納されているのはFacebookなり、Twitterなりのシステム的なユーザの固定IDです。ユーザからは変更できない値であり、SNS連携するすべてのサービスで同じ値が入ります。
追記:FacebookはGraphAPI v2.0以降はアプリ毎にユニークになったとのことです。 https://twitter.com/meihong/status/1300611313501048832
例えば、noteと「サービスA」と「サービスB」であなたがTwitterログインしてるとしたら、これらのサービスはすべてTwitterから同じ固定IDを受け取るわけです。つまりは、先程のIPアドレス問題と同じで、「ユーザ(投稿者)が意図していない形で他サービスと結び付けられて公開される」という可能性を持っています。
実際のところ、掲示板サービスでIPアドレスをデフォルトで投稿者情報に含めるようにSNSの固定IDを公開するサービスは(私が知る限りは)ないので危険性でいうとIPアドレスの方が高いですが、それは他サービスの振る舞いの問題であって、noteが公開してもいいというわけではありません。
もし悪意をもつなら、noteの投稿者のSNS IDを一覧化するようなことも可能だったわけです。(繰り返しになりますが、現時点でnoteはこの問題を修正済みです)。ちなみにIPアドレスがタイムスタンプなどないと同一性が100%でないことに対して、こちらは同一性100%であり、IPアドレスと同様に改正個人情報で個人データのひとつとして扱われています。
SNSログインの情報をそのままDBにつっこんで、レスポンスAPIに入れるのだめ。絶対だめ。
個人情報漏洩時の対応について
noteはIPアドレス漏洩問題時、この事態を重く受け止め、サービスを一時停止し、即座にIPアドレスの漏洩問題を解消してお詫び文を掲載しました。個人情報保護法では、漏洩等が発覚した場合、以下の対応が求められています。
個人データの漏えい等の事案が発覚した場合に講ずるべき措置
としては、①事業者内部における報告、被害の拡大防止、②事実
関係の調査、原因の究明、③影響範囲の特定、④再発防止策の検討・
実施、⑤影響を受ける可能性のある本人への連絡等、⑥事実関係、
再発防止策の公表
なのですが、SNS IDの漏洩についてどこかで公開してますか?もしあったよという方は、本記事にでもコメントいただけましたら幸いです。
noteは好きなサービスなので、こういうちょっとした実装上の問題で問題を抱え続けて大きなトラブルに発展してほしくない気持ちありまして、これからの改善、進化に期待します。
それでは、また。
参考URL
SNS IDが個人情報としての扱いを(明示的に)求められたのは2017年5月30日に施行された改正個人情報保護法からです。なので、ないとは思うのですが「SNS IDは個人を特定できないから個人情報じゃない!」という方は以下をご覧ください。
> 事例 7)官報、電話帳、職員録、法定開示書類(有価証券報告書等)、新聞、ホームページ、SNS(ソーシャル・ネットワーク・サービス)等で公にされている特定の個人を識別できる情報
気軽にクリエイターの支援と、記事のオススメができます!