デジタルペンテスト部の山崎です。
4月から「セキュリティ診断」の部署が「ペネトレーションテスト(ペンテスト)」の部署に吸収合併されまして、ペンテストのペの字も知らない私も晴れてペンテスターと名乗れる日がやってまいりました!(そんな日は来ていない😇)
そんなわけで、新しい部署が開設しているブログのネタを探す日々を送っていたのですが、最近、Googleフォームの設定ミスによる情報漏えい事故が増えてきているようです。
どのような設定が問題となっているのでしょうか?
同じような事故を起こさないよう、設定項目について見ていきたいと思います。
情報漏えいの原因となりうるGoogleフォームの設定について
Googleフォームから情報漏えいとなっている事例を見てみると、大きく分けて以下の2パターンのいずれかが原因となっているようです。
1.表示設定で「結果の概要を表示する」が有効に設定されている
あるいは
2.「共同編集者」が「リンクを知っている全員」に設定されている
特に、2については、自分は大丈夫!と思っていても実は……という罠があります。
それぞれ見ていきましょう。
パターン1: 「結果の概要を表示する」がオン
Googleフォームには、表示設定に「結果の概要を表示する」というオプションがあります。デフォルトはオフですが、これをオンにすることで、自分の回答を送信したあとに結果の概要やほかの人の回答を表示することができます。簡単なアンケートなどの場合にはとても有用な機能ですが、個人情報を収集するようなフォームでは決してオンに設定してはいけません。
設定画面:
なお、設定画面のオンオフ画面の直下に「重要情報」というリンクがあり、そこに以下のようにちゃんと注意事項が掲示されていました。(グーグルさん悪くない!)
実際の画面を見てみましょう。この「結果の概要を表示する」がオンの場合、フォームの回答画面で「送信」ボタンを押すと、「前の回答を表示」というリンクが表示されます。
この「前の回答を表示」リンクを押下すると、以下のように他人の回答を表示することができます。(使いどころさえ間違えなければ、便利な機能なのですけどね……。)
こちらのパターン1の場合、親切な回答者の人が「ほかの人の回答が見えましたよ」と教えてくれることが多いので、傷が浅いうちに見つかるかも知れません。
パターン2: 「共同編集者」が「リンクを知っている全員」
もう1つのパターンは、Googleフォームの項目の編集や回答の閲覧を多人数でおこないたいときに、ついつい設定してしまう設定項目。「共同編集者の追加」で、一般的なアクセスの項目を「リンクを知っている全員」にすることです。
そして、「編集ができるこっちのリンクは絶対に秘密だからね!」といって、関係者に共有したりするのです。
でも、待ってください!
よくリンクを見比べてみてください。
● フォームに回答してもらうために全員にシェアするリンク
https://docs.google.com/forms/~~~~/viewform?usp=sf_link
● フォームを編集するために関係者だけに秘密でシェアする(?!)リンク
https://docs.google.com/forms/~~~~/viewform?usp=sharing
残念ながら、~~~~部分が同じです。編集のほうのリンクだけぜんぜん違うものになる期待をしてしまいがちですが、そういう意味合いの機能ではないようです。
(2024/7/1追記 : 打ち消し線部分を取り下げます。 以前は「共同編集者の追加」画面の下部のリンクから編集のためのリンクがコピーできていたのですが、執筆時点で(編集ではなく)「回答者リンクをコピー」に機能が変更されていた模様です。機能が変わっていることに気づかずに意味のない比較をしていました。こちらの回答者リンクから編集画面は表示されません。また、回答者リンクと編集画面のURLは、末尾箇所以外も異なるものとなっています。)
Googleアカウントにログインした状態で、フォームに回答して、「Googleフォーム」のトップページに戻ると、「最近使用したフォーム」に先ほどのフォームが表示されます。(※少し前まではこのような動作だったのですが、現時点では、フォームを送信しただけでは編集の画面へのリンクは出てこないようです。動作が修正されたのかも知れません。しかしながら、「リンクを知っている全員」に編集を許すことは原理的に引き続き危険であると言えます。)
このフォームのリンクを押下すると、以下のようにフォームの編集画面が表示され、「回答」タブで回答を閲覧したりもできます。
関係者が回答のテストをする際は、Googleアカウントにログインせず、プライベートブラウズでテストしたりするので気づきづらい面はあるかも知れません。