交際している相手に関する情報を漏らすことが目的のアプリであるTeaOnHerが、何千人ものユーザーの個人情報をオープンウェブに漏らしていたというのは皮肉なことだ。
TeaOnHerは、男性が交際していたと主張する女性の写真や情報を共有するために設計されました。しかし、TechCrunchが先週報じたように、TeaOnHerが模倣しようとしていた女性向け出会い系ゴシップアプリ「Tea」と同様に、TeaOnHerにもセキュリティに大きな穴があり、運転免許証やその他の政府発行の身分証明書の写真を含むユーザーの個人情報が漏洩していました。
これらのゲートコミュニティのようなアプリは、表向きは個人の安全を装い、ユーザーが人間関係に関する情報を共有できるようにするために開発されました。しかし、粗雑なコーディングとセキュリティ上の欠陥は、アプリやウェブサイトの利用に機密情報の提供を求めることに伴う、継続的なプライバシーリスクを浮き彫りにしています。
こうしたリスクは悪化する一方だ。人気のアプリやウェブサービスはすでに、個人情報のデータベース保存に伴うプライバシーやセキュリティ上のリスクにもかかわらず、成人向けコンテンツへのアクセスを許可する前に身分証明書の提出を義務付ける年齢確認法に従わなければならない。
先週、TechCrunchが私たちの記事を掲載した際、TeaOnHerで発見されたバグの具体的な詳細は公表しませんでした。これは、悪意のあるユーザーがバグを悪用するのを助長しないよう、慎重を期すためです。しかし、アプリの人気が高まり、ユーザーがアプリ使用時に直面する差し迫ったリスクを考慮し、限定的な情報開示を行うことにしました。
情報開示時点では、TeaOnHer は Apple App Store の無料アプリランキングで第 2 位であり、現在もその地位を維持しています。
発見された欠陥は解決されたようです。TechCrunchでは、アプリの公開バックエンドシステム(API)に簡単に発見できる欠陥があったため、App Storeでアプリへのリンクを送信してから10分以内にユーザーの運転免許証を見つけることができた経緯をお伝えできるようになりました。
アプリ開発者のザビエル・ランプキン氏は、私たちがセキュリティ欠陥の詳細を提出した後、何度もコメントを求めたが、返答しなかった。また、影響を受けるTeaOnHerユーザーや州の規制当局にセキュリティ欠陥を通知する約束もしなかった。
また、TeaOnHerアプリのリリース前にセキュリティレビューが実施されたかどうかもランプキン氏に尋ねましたが、回答はありませんでした。(情報開示については後ほど詳しく説明します。)
よし、時計をスタート。
TeaOnHerが「管理パネル」の資格情報を公開
アプリをダウンロードする前に、まずは、TeaOnHer の Web サイトやそのドメインでホストされているものなど、公開されているインフラストラクチャを調べて、TeaOnHer がインターネット上のどこにホストされているかを調べたいと考えました。
これは通常、ドメインがインターネット上でどのような他のサービスに接続されているかを理解するのに役立つため、開始するには適切な場所です。
ドメイン名を見つけるために、まず(偶然にも)Apple App Store のアプリ一覧を見て、アプリのウェブサイトを探しました。ウェブサイトは通常、プライバシーポリシーに記載されており、Apple の App Store に掲載される前にアプリはプライバシーポリシーへの記載が義務付けられています。(アプリ一覧には、開発者が「このアプリからいかなるデータも収集しません」と記載されていますが、これは明らかに誤りなので、ご自由に解釈してください。)
TeaOnHer のプライバシー ポリシーは公開された Google ドキュメントの形式で、teaonher.com
ドメイン付きの電子メール アドレスは含まれていましたが、Web サイトは含まれていませんでした。
当時、ウェブサイトは非公開でした。そのため、ウェブサイトが読み込まれていない状態で、ドメインの公開DNSレコードを確認しました。これは、メールサーバーやウェブホスティングの種類など、ドメインでホストされている他のサービスを特定するのに役立ちます。また、開発者がアプリの機能(または管理ダッシュボード、データベース、その他のウェブサービスなど、公開すべきではないリソース)をホストするために使用している可能性のある公開サブドメインも調査しました。
しかし、TeaOnHer の公開インターネット記録を確認したところ、単一のサブドメイン以外には意味のある情報はありませんでしたappserver.teaonher.com
。
このページをブラウザで開くと、TeaOnHerのAPIのランディングページが読み込まれました(興味のある方のために、コピーをこちらにアップロードしました)。APIとは、インターネット上のさまざまなものが相互に通信できるようにするもので、例えばアプリを中央データベースにリンクさせるといった機能があります。
このランディング ページで、Lampkin のアカウントで TeaOnHer の「管理パネル」にアクセスするために公開された電子メール アドレスとプレーンテキストのパスワード (「パスワード」とそれほど変わらないもの) が見つかりました。
APIページには、書類検証システムとユーザー管理に使用される管理パネルが「localhost」に配置されていたことが示されていました。これは単にサーバーを実行している物理的なコンピュータを指しており、インターネットから直接アクセスできなかった可能性があります。誰かが資格情報を使用して管理パネルにアクセスできたかどうかは不明ですが、それ自体が十分に憂慮すべき発見でした。
この時点で、まだ 2 分ほどしか経っていませんでした。
APIランディングページには、APIで何ができるのかをある程度示す以外に、特に何も記載されていませんでした。ページには、TeaOnHerのデータベースからユーザーレコードを取得したり、ユーザーがレビューを投稿したり、通知を送信したりといった、アプリが機能するためにアクセスする必要があるいくつかのAPIエンドポイントがリストされていました。
これらのエンドポイントの知識があれば、まるでアプリそのものを模倣しているかのように、APIを直接操作しやすくなります。APIはそれぞれ異なるため、どのエンドポイントを使用するか、その言語を効果的に理解するために必要なパラメータなど、APIの仕組みや通信方法を習得するには時間がかかります。Postmanのようなアプリは、APIに直接アクセスして操作するのに役立ちますが、APIが本来出力すべきでないデータを出力させるには、時間とある程度の試行錯誤(そして忍耐)が必要です。
しかし、この場合はさらに簡単な方法がありました。
TeaOnHer API はユーザーデータへの認証されていないアクセスを許可しました
この API ランディング ページには、 というエンドポイントが含まれていました/docs
。このエンドポイントには、API で実行できるコマンドの完全なリストを含む、API の自動生成されたドキュメント (Swagger UI という製品によって提供) が含まれていました。
このドキュメント ページは、新しいユーザーの作成、ユーザーの ID 文書の確認、コメントの管理など、通常のアプリ ユーザーとして、そしてさらに重要なことにはアプリの管理者として、TeaOnHer API で実行できるすべてのアクションのマスター シートでした。
API ドキュメントには、TeaOnHer API をクエリしてユーザー データを返す機能も記載されており、基本的にはアプリのバックエンド サーバーからデータを取得してブラウザーに表示することができます。
開発者がAPIドキュメントを公開することは珍しくありませんが、ここで問題となったのは、一部のAPIリクエストが認証なしで実行可能だったことです。TeaOnHerデータベースから情報を取得するために、パスワードや認証情報は必要ありませんでした。つまり、APIに対してコマンドを実行することで、アプリユーザーはもちろん、インターネット上の誰もがアクセスできないはずのユーザーの個人データにアクセスできてしまうのです。
これらすべては、誰でも見ることができるように、都合よく公開文書化されていました。
たとえば、現在 TeaOnHer の ID 検証キューに登録されているユーザーのリストを要求すると (API ページでボタンを押すだけで、特別なことは何もせずに)、最近 TeaOnHer にサインアップした人々のアカウント レコードが数十件返されます。
TeaOnHerのサーバーから返された記録には、アプリ内でのユーザー固有の識別子(基本的にはランダムな文字と数字の文字列)、公開プロフィールのスクリーンネーム、自己申告の年齢と居住地、そして個人のメールアドレスが含まれていました。また、記録には、ユーザーの運転免許証とそれに対応する自撮り写真を含むウェブアドレスのリンクも含まれていました。
さらに悪いことに、これらの運転免許証、政府発行の身分証明書、そして自撮り写真は、AmazonがホストするS3クラウドサーバーに保存されており、ウェブアドレスを知っている人なら誰でもアクセスできる公開設定になっていました。この公開設定により、誰かの身分証明書へのリンクを知っている人なら誰でも、どこからでも制限なくファイルを開くことができます。

この固有のユーザーIDがあれば、APIページから個々のユーザーの記録を直接検索し、アカウントデータや関連する身分証明書を取得することも可能でした。APIへの無制限のアクセスがあれば、悪意のあるユーザーがアプリから膨大な量のユーザーデータをスクレイピングできた可能性があり、これはTeaアプリで発生したのとよく似ています。
豆からカップまで、たった10分ほどで完了しました。まだアプリにログインもしていませんでした。バグは簡単に発見できたので、悪意のある人が私たちより先に発見してくれたら、本当に幸運でした。
われわれは尋ねたが、ランプキン氏は、API からウェブアドレスをスクレイピングするなどして、誰かがいつでも API を使って (または悪用して) ユーザーの認証文書にアクセスしたかどうかを判断できるログなどの技術的能力があるかどうかについては答えなかった。
Lampkin氏への報告から数日後、APIランディングページとドキュメントページは削除され、TeaOnHer APIが稼働しているサーバーの状態が「正常」とのみ表示されるようになりました。少なくとも簡単なテストでは、APIは認証に依存しているようで、以前のAPIを使った呼び出しは機能しなくなりました。
ユーザーがアップロードした身分証明書類を含むウェブアドレスも、一般公開が制限されています。
TeaOnHerの開発者は欠陥を明らかにする試みを却下した
調査時点ではTeaOnHerには公式ウェブサイトがなかったため、TechCrunchはプライバシーポリシーに記載されているメールアドレスに連絡を取り、セキュリティ上の欠陥を開示するよう求めた。
しかし、メールは「メールアドレスが見つかりません」というエラーメッセージとともに返送されてしまいました。ランプキン氏のウェブサイト「Newville Media」に掲載されているメールアドレスからも連絡を試みましたが、同じエラーメッセージとともに返送されてしまいました。
TechCrunchはLinkedInのメッセージでランプキン氏に連絡を取り、セキュリティ上の欠陥の詳細を送信できるメールアドレスの提供を依頼しました。ランプキン氏は一般的な「サポート」用のメールアドレスを返信しました。
TechCrunchがセキュリティ上の欠陥を公開する際、まずは個人または企業が正しい受信者であることを確認するために連絡を取ります。そうでないと、セキュリティ上の欠陥の詳細を盲目的に誤った相手に送信すると、リスクが生じる可能性があります。欠陥の具体的な詳細を共有する前に、「サポート」メールアドレスの受信者に、TeaOnHerユーザーデータに関するセキュリティ上の脆弱性を公開するのに、このアドレスが正しいアドレスであるかどうかを確認しました。
「『Teaアプリ』と混同されているようですね」とランプキン氏はメールで返信した。(実際はそうではありませんでした。)「セキュリティ侵害やデータ漏洩は発生していません」と彼は言った。(発生していました。)「ボットはせいぜい数個程度ですが、まだその件について議論できるほどの規模にはなっていません。誤解を招いてしまい申し訳ありません。」(実際はそうでした。)
正しい人物とのコンタクトが確立されたことに満足したTechCrunchは(返答は得られなかったものの)、セキュリティ上の欠陥の詳細、公開された運転免許証へのリンク数件、そしてランプキン氏自身のデータのコピーを共有し、セキュリティ問題の深刻さを強調した。
「この情報ありがとうございます。非常に憂慮すべき事態です。今すぐ対応します」とランプキン氏は述べた。
何度かフォローアップのメールを送ったにもかかわらず、セキュリティ上の欠陥を公表して以来、ランプキン氏からは連絡がありません。
一人でソフトウェアを開発している会社でも、週末にプログラミングに励む億万長者のような雰囲気の会社でも、開発者にはユーザーのデータを安全に保つ責任があります。ユーザーの個人データを安全に守れないのであれば、そもそも開発すべきではありません。
人気アプリやサービスが情報を漏洩または公開しているという証拠をお持ちの場合は、ご連絡ください。Signalのzackwhittaker.1337宛ての暗号化メッセージで、この報告者に安全に連絡を取ることができます。
私たちは常に進化を目指しています。TechCrunchや私たちの取材、イベントに関する皆様のご意見やご感想をお聞かせいただければ、私たちの活動に大きく貢献できます。 アンケートにご回答いただく と、賞品が当たるチャンスがあります!