誰でもアクセスできるURLで情報を共有するリスクについての考察
Webサービスでは誰でもアクセスできるURLを発行する機能を持つものが多くあります。例えばGoogle Driveの共有設定で「リンクを知っている全員」にするとか、Notionで「Web公開」をするなどです。非公開URLやリンク共有などと呼ばれることもあります。お手軽に誰でもアクセスできるようになるのは便利なのですが、当然漏れてはいけない情報が漏れるというようなセキュリティリスクもあります。
意外と人によってリスクの捉え方が違っているので、改めて情報や思考の整理をしてみようと思います。
この記事は株式会社オプティマインドによる「Optimind Advent Calendar 2024」の11日目の記事です。
前提
- 本記事では、主に企業や団体において外部に公開されていない情報に対して誰でもアクセスできるURLを発行することについて考えます。
- URL発行の是非を主張するものではありません。
- セキュリティについて何か方針を示すものではありません。
はじめに
Google DriveやNotionなどのサービスにおいて、誰でもアクセスできるURLを発行する機能があることはご存じかと思います。何か情報を共有しようとしたとき、社内の人ならアクセス権限を簡単に設定できますが、社外の人に共有しようとすると例えばGoogleアカウントを教えてもらって共有設定しないといけなかったりして、結構手間だと感じることは多いのでは無いでしょうか。そんなときにURLを発行して渡すというのは相手の手を煩わせることがなく手軽に共有できる良い方法だと思います。
しかし、誰でもアクセスできるURLを発行するということにはセキュリティリスクは無いのでしょうか?誰でもアクセスできると聞くとなんだかヤバそうな気がしてきます。しかし発行したURLが第三者にバレなければ問題は無いようにも思えます。いや、でもこのURLは本当に第三者にバレないんでしょうか?
本記事ではそんなようなことをつらつらと考えてみます。前提にも書きましたが、何かしらの結論を出すものではありませんのでご了承ください。
URLが漏れる可能性は?
要はURLが漏れなければ良いのか?と言うと、たしかにURLが漏れなければ情報が漏れることはありません。漏れなければいいとも言えなくもないかもしれません。ただし絶対に漏れないという保証は絶対にありません。そこが問題です。
とはいえ、じゃあ漏れない保証が無いから一切使うべきではないというわけでもありません。その可能性ってどれくらいあるのか?ということも大変重要です。セキュリティ対策は常にバランスです。
ではここで、URLを発行して送信者が受信者に向けて送る場合にどこでそのURLが漏れる可能性があるのかを考えてみます。
ここで考えるポイントは送信者、受信者、その間の通信経路(ローカルネットワークやインターネットなど)、およびデータの保存場所(メールやチャットの事業者)があります。
ざっと書くと以下のようなリスクがあります。
- 送信者は送信先を誤ってしまうかもしれません。昔からある情報セキュリティ事故ですね。たしかにその場合はURLが漏れますが、本来の受信者に届いていないとか、CCに入っている人が気づくなど、ある程度早めに対処できる可能性も高そうです。
- 送信者(と受信者)はマルウェアへの感染によって情報が流出することも考えられます。ただこれはありとあらゆる情報が抜き取られることになるので、特段URLの発行についてどうこう言うことでもありません。
- 通信経路上では盗聴がされるかもしれません。無線LANの傍受や悪意のあるルーターを経由してしまうなどが考えられます。しかし近年の通信はたいていTLS暗号化されているので、実際にURLが漏れるということはそんなに頻繁ではないと考えてもよさそうです。
- データの保存場所であるメールやチャット事業者はどうでしょうか。ここはそもそもURLどころではない大量の機密情報が入っているかと思います。ここのリスクを考えるのであれば、URLでの共有という以前の問題になります。
- 受信者にはURLを渡してしまっているので何があってもおかしくありません。誤って別の顧客へ転送したり、社外向けの資料やホームページに載せてしまったりするかもしれません。普段から漏れてはいけない情報をやりとりする関係性であればそのすべてに言えることでもありますが、ただURLが秘密であるという認識を共有できているかどうかは重要そうです。またファイルと違ってコピペが簡単にできてしまうのも、流出しやすさにつながる可能性があります。
ちなみに、URLがhttpsプロトコルであればアクセスするだけでは(たとえ通信経路上で盗聴されたとしても)URL全体が漏れることはありません。十分に長く予測できないパスやパラメータにしておけば十分でしょう(もちろんドメイン名の解決をしようとしているのはわかりますが、ドメイン名はそもそもパブリックなものなのでここでは問題ないとします)。
ここまで考えてみて、実際にURLが漏れる可能性はどの程度だと感じたでしょうか。これは第三者が判断できることではありませので、各自で具体的な利用方法を考える上での参考にしていただければと思います。また他にもリスクの種類や深刻度の考え方などはいろいろとあるかと思いますので、ぜひそこも考えてみてください。
サービスが能動的に "知らしめる" こともある
公開設定と言えば、2021年にTrelloのボードがGoogle検索にインデックスされていることが発覚して大騒ぎになったことがありました。
利用者がURLを知っていれば誰でも見られる状態にしていたのですが、それだけでここまで大騒ぎになることは無かったはずです。実は、裏でTrello側が能動的にそのURLを検索エンジンが知れるようにしていたのです。具体的には、ボードを公開設定にするとサイトマップに登録され、URLを誰にも教えていなくてもGoogleなどの検索エンジンがページの存在を検知しインデックスする仕組みでした(ちなみに今はそうなっておらず、さらに各ボードのページに <meta name="robots" content="noindex">
が設定されているため、少なくとも主要な検索エンジンには存在を知られたとしてもインデックスされません)。
公開設定にした瞬間にサイトマップに登録され検索エンジンに通知されるという仕様は、確かにTrelloにおいて直感的ではないと感じる人も多そうです。しかし、サービスによってはそういう仕様のものもあるというのは事実ですし、実際にその方が望ましい場合もあります。
例えばZennで記事を書いて公開状態にしたら、すぐにGoogleの検索エンジンにインデックスされても何も不思議ではないですし、むしろ早くインデックスされてほしいと思う人も多いのではないでしょうか。逆にGoogleドライブは一時的にファイルの受け渡しのために使う場合も多そうですし、すぐにインデックスされたら困るという人は多そうです(ただし知られたらインデックスされます)。ではNotionサイトはどうでしょうか?微妙なところのような気がします。
まとめると、公開設定にしたときに検索エンジンに知らされるかどうかと検索エンジンに知られたらインデックスされるかどうかがあります。私の身の回りのサービスについて調べてみた結果を以下にまとめます(記事最終更新時点)。
サービス | 検索エンジンに知られる | 検索エンジンに知られたらインデックスされる†1 |
---|---|---|
Trelloの「公開」 (2021年以降) | No | No |
ChatGPTの「チャットへの公開リンクの共有」 | No | No |
Googleドライブの「リンクを知っている全員」 | No | Yes |
Notionの「Web公開」 | No | Yes |
Trelloの「公開」 (2021年以前) | Yes | Yes |
GitHubの「Public repository」 | Yes | Yes |
†1: ここではページのmetaタグでnoindexが指定されていないものを "Yes" としています。
裏でどういう処理がされているのかということをしっかり調べた上で公開設定を使うのがよさそうです。またこれらの仕様はサービス運営者によっていつでも変更できるので、過去に公開したものがある場合は常に動向をチェックする方が良いでしょう。
URLが漏れていなくても問題になる場合もある
URLが漏れる可能性について考えてみましたが、たしかに漏れなければ情報漏洩にはならないものの、漏れない保証はないというのに加えてURLを知られたら見られる状態だったということ自体が問題視されることもあるという点には注意が必要です。
典型的なのが、以前よくあったAmazon S3の公開設定ミスで閲覧可能状態になっていた、というような話ですね。
例えば2023年にもトヨタ自動車の車やサービスを利用していたユーザーの情報が閲覧可能だったことがニュースになりました。
これは対象のデータが顧客の機密情報や個人情報にあたるため、ことが大きくなりました。この件では情報漏洩は明確に確認されていないものの、実際にこういった事態が判明すれば、漏洩有無や影響範囲の調査を行い、社外への説明を行い、サポート窓口を設置し、などの対応が必要となります。またニュースで取り上げられることで少なからず取引先や株主などに悪印象を与えてしまう面もあるでしょう。データの種類によっては公開状態だったというだけでこれだけのインパクトがあるということですね。
さいごに
誰でもアクセスできるURLを発行することについて、いろいろな面から見てみました。で、結局どうなんだと思われるかもしれません。何度も書きますがセキュリティ対策は常にバランスです。どういうリスクがあり、逆にどういう利便性があるか、などを総合して考えて対策をする必要があります。どれくらいの重要度の情報を扱うかということも大切なポイントです。また企業のルールとして決めるのであれば、個人のミスや悪意などをどこまで考慮に入れるかということもありますね。
Webサービスにおける「誰でもアクセスできるURL」をより便利かつ安全に使っていただく上で本記事が少しでも参考になれば幸いです。
世界のラストワンマイルを最適化する、OPTIMINDのテックブログです。「どの車両が、どの訪問先を、どの順に、どういうルートで回ると最適か」というラストワンマイルの配車最適化サービス、Loogiaを展開しています。recruit.optimind.tech/
Discussion