Google DriveやFacebookの非公開投稿の画像はログインせずに第三者閲覧可能

Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+

【これは約 7 分の記事です】

これは2017年6月12日時点の情報です。

タイトル通りです。基本的にWebブラウザで閲覧できる画像ファイルは、

  • 共有かけていないGoogle Drive
  • Facebookの限定公開
  • Facebookメッセンジャー
  • iCloud

いずれも、第三者がログインせずに閲覧できます。

Googleドライブ内の画像URLを取得する

実際に見てみましょう

まず、Googleドライブ内に画像ファイルを保存します。

ここでは、「googleドライブ内の画像.png」としています。

Google Drive内の画像

このファイルをプレビューします。

Googleドライブ画像のプレビュー

このプレビューから、画像へのURLを調べます。調べ方は割愛しますが、難しくないです。

この画像の場合、以下のURLが出てきました。2017年6月12日時点では、このURLをクリックすると、Googleドライブ認証していなくても、Googleドライブ内の画像が閲覧できます。

https://lh3.googleusercontent.com/TOPTVc2tLW93FN6B9tM3qFf3FyjqrBjBLsu61dAFsw-i3eN-opGKPki06EzrDT6mcYLyoeXwxyYkd2F8tWoR3OwPlo1bApMhI4wxXmoF6EWHziP39Cq21uqRigHy_ekZB1Vq50UaxMkZxhYLk31yhUscjxDSJu2K9JpuNJfv2dZLxVHaerZpZtmBiVHzZegOohJ9P3fRJgACQgK-azj7GA43j3VEkej0870BcOjkvE9eA2M_cg37GZR5KGx0IkzE3txl3slifN7GznAoGSAw9GxbspnetC1O31JsQpZeM9WafhYwQt6qVw4dNeotoZEvQQsUxSkC6iEuMFG9gH-AkOGTd1jXJKKkFTCZ4kX0vth6O7mDfVMO3bOX6843f6h2VhFQUvJN5Q8VHaqHTBceBGquMaMOUZfSymcrZxnpFEUdWXyCf5Avfo3kB1yUbjDmV65gbO_aN7aSE7GN9f2E8fAjcOH6XtTwUvZljKMlyW7Nd2C6WPko7vKigwQsFJYkHrBknwq8V31sEISZL2YonJESJJvbGltNJOEmGhSW4bkKDK7wLl4Xygw9MZC8ocTwUdB5bm_L=w1292-h848

私自身で試す場合は、ChromeでGoogleドライブ認証した状態で閲覧し、Edgeで認証せずに閲覧しました。

また、福井から離れた場所にいる友人にもURLを送って確認してもらいました。

Google Driveで第三者閲覧可能ですが、もちろん同じことはGoogle Photoでもいえます。

HTTPプロトコルはセッションの連続性を管理できない

なぜ、認証なしにGoogleドライブ内の画像ファイルが閲覧できてしまえるか。技術的に理由を説明すると、

Webブラウザで使われる通信プロトコルHTTPでは、セッションの連続性を管理できないから

です。少し難しい話になりますが、認証を行った閲覧者が次のページに行くためにURLをクリックしたとき、認証を行った閲覧者だけがその先のURLに行けるようにする必要があります。つまり、今のページを見ている閲覧者と次のページを見る閲覧者が同一で連続していることを管理する必要があるのです。

ここで問題になるのは、

  • 画像ファイル(正確にはHTMLファイル以外)

です。HTMLファイル(PHPも含む)で認証ができるのは、HTMLが使うクッキーやセッション情報で同一性を確認しているからです。JPEGやPNGと行った画像ファイルにはクッキーやセッション情報を保持する仕組みがありません。そのため、第三者にもGoogle Driveの閲覧ができてしまいます。

Facebookの友達限定投稿も同じ

Facebookの友達限定も同様です。私はこういう投稿を友達限定でしました。

友達限定のfacebook写真

この投稿、画像だけは以下のURLで6月12日の時点で誰でも閲覧できます。

https://scontent.xx.fbcdn.net/v/t31.0-8/18954694_1433440776724382_8251097989224046295_o.jpg?oh=61b34a8275e64f8c0dfe83390e37627e&oe=59A54DE1

Facebookメッセンジャーも同様です。Facebookメッセンジャーは相手の方がいるので勝手にテストできませんが、同様の原理で第三者が閲覧できます。

Gmailも数秒、第三者が画像閲覧できる状態になる

基本的に、WebブラウザでHTTPを使う画像閲覧は、認証なく第三者閲覧可能です。そうすると、疑問に思うのは、

Gmail

です。Gmailは、数秒ほど、第三者が閲覧できる状態になります。数秒すると、403エラーが表示されます。

さすがにGmailは情報漏えいするのはまずいとGoogleも思っているのでしょう。

先程書いたとおり、原理上、HTTPで送信される画像はアクセス管理できません。おそらく、この問題を回避するために、Gmailの場合は、閲覧できる画像ファイルは一時ファイルとして作成して、時間の経過など何らかの条件でサーバ上の画像ファイルを消しているのではないかと思います。

そう考えると、もしかしたら、Google DriveやFacebookの画像も、時間が経ったら消えているかもしれません。ただ、数日程度では消えないようです。

クラウドサービス上の画像ファイルは認証の仕組みがあっても漏洩する可能性がある

クラウドサービス上の画像ファイル(正確にはHTML及びPHPなどそれと類似するファイル以外)で、Webで操作可能なものは、HTTPの特性上、漏洩の余地があります。クラウドサービス上に画像をアップする際には、そのことを念頭に置いていただいたほうが良いかと思います。

佐藤英治
情報処理安全確保支援士第5338号。ネットワークスペシャリスト。防災士。東北大学大学情報科学研究科第2期生。1994年からインターネットに携わる。システムベンダーの総務社内SEとして、社内システムの構築運用や従業員教育に関与。2015年情報セキュリティ専門法人「まるおかディジタル株式会社」を設立し現在に至る。研修では基本的に着物でお話させていただいております。
Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+