てきとうなメモ

本の感想とか技術メモとか

noteで執筆者のIPアドレスが漏洩した件

note.jp
note.jp

の件について思ったことをつらつらと

IPアドレスで個人特定可能か、IPアドレスは個人情報かどうか

これについては楠さんの説明が良さげ。単体で個人特定は難しいけど、いろいろ紐付けることができると個人特定できる可能性がある。そして紐付いた状態で保存されていると個人情報保護法の対象になる。

原因

今は修正済みなので自分は解析していないのだが、以下の方によるとAPIの出力にIPアドレスが入っていて、それをHTMLに出力したっぽい。


該当のAPIの出力を今見ると、IPアドレス等は出力されていないのだが、問題発生時は以下のような属性が出力されていたようだ。

last_sign_in_ipはRails+Deviseでユーザモデルが保持する属性なので、このAPIRails+Deviseで構成されていると予想される。

Devise批判

Deviseの属性をそのまま出しているということから、以下のようなDeviseに対する批判も出てきている。

diary.app.ssig33.com


ただ、自分の意見は以下の方の意見に近いかな。

sinsoku.hatenablog.com

DeviseはRailsを深く理解しないと使ってはダメと言っているのか

深く理解というのがどのレベルなのか曖昧なのだが、README読んだ感じだと、Railsの認証周りの文書を読んで、動きを理解してから使えよというぐらいかと。

Devise使うとIPアドレスが漏洩するか

User.attributes.to_jsonするとipアドレスが含まれるようだが、User.to_jsonでは含まれない。それ以前に、モデルクラスを何も加工せずにWeb APIのレスポンスとして出力する方が問題なので、DeviseではなくWeb API仕様・設計の問題だと思う。

再発防止策

noteが示している対策はそんなに悪くないのではという気がする。

対策
・全ソースコードに対して、IPアドレス及びそれ以外のセンシティブな情報が露出するような同様の欠陥がないことを調査し、さらに対応するデータベースからIPアドレスのデータを削除しました
・CEO・CTO直轄の特別対策チームを結成して、直接の対策と構造的な課題や開発体制までを含めた徹底的な見直しを行います
ソースコードのレビューおよびテストに今回の不具合や関連するセキュリティに対する観点を追加します
・データの持ち方やセンシティブな情報にアクセスするプロセスを見直します
・外部の複数の専門企業に依頼し、noteの脆弱性を発見・対策できるよう第三者の目線からの脆弱性診断をおこなってまいります

ただ、Web API仕様・設計のセキュリティ観点のレビューもした方が良いと思う。