TOFU(流入を増やす)
第2のNauNauにならないために。位置情報アプリを作るなら知っておくべきFirestore/Supabaseのセキュリティ設定
位置情報共有アプリNauNauで発生した情報漏洩。その原因であるデータベースのセキュリティ設定(RLS/Security Rules)について、位置情報アプリを作る開発者が絶対に知っておくべき対策を解説します。
NauNau位置情報Supabaseセキュリティ
「友達の居場所がわかる」というコンセプトでZ世代に大人気だったアプリ「NauNau」が、一時サービス停止・事業譲渡に至った原因の一つに、ユーザー情報の閲覧可能な状態(セキュリティ不備)がありました。
原因:データベースの「鍵」が開いていた
技術的な詳細は公式発表等によりますが、一般的にこの手のインシデントで多いのが、Firebase(Firestore)やSupabaseといったBaaSにおけるセキュリティルールの設定ミスです。
「開発中は便利だから」と、データベースの読み取り権限を allow read: if true; (誰でも読める状態)にしたままリリースしてしまう……。
これは「家の玄関の鍵をかけたまま、窓が全開」のような状態です。アプリの画面上では見えなくても、裏側の通信を見れば誰でも全データを取得できてしまいます。
怖いのは「自分しか使わない環境」では気づけないこと
開発者が1人でテストしている時は、データが漏れていることに気づきません。「AさんのスマホからBさんのデータが見えてしまう」というバグは、複数人のデータを入れて初めて発覚する「データ混線」の一種だからです。
これを防ぐには?
- RLS(行レベルセキュリティ)の徹底 「自分のIDがついているデータしか読めない」というルールをDB側で強制する。
- 開発・本番環境の分離 開発用のDBとは別に本番環境を作り、本番側は最初から厳しいルールを適用する。
位置情報やチャット履歴など、センシティブなデータを扱うアプリをAIで作る際は、画面の動き以上に「裏側の鍵」に神経を使う必要があります。