TikTokアプリ「キー入力を監視している」との指摘は本当か
ショート動画アプリの「TikTok」が、ユーザーのキー入力などを監視しているのではないかという指摘が話題になっています。いったい何が起きているのか、またユーザーが気を付けるべき点はあるのか解説します。
イベント取得はパフォーマンス測定用途?
この問題は、8月18日にアプリ開発やセキュリティに詳しいFelix Krause氏によって報告された後、多くの海外メディアが報じたことで話題になっています。
その手法とは、SNSアプリなどから専用のWebサイト(https://inappbrowser.com/)を開くことにより、どのようなイベントに対して独自のコードが加えられているか(イベントリスナーとして登録されているか)調べるというものです。
報告によると、iOS用のTikTokアプリは、アプリ内ブラウザで開いたWebサイトに対し、クリック(画面タップ)やキー押下のイベントに独自のコードを加えており、監視している可能性があると指摘しています。
また、Krause氏はTikTokアプリがWebサイトに追加したとみられるJavaScriptコードを公開しています。以下はその抜粋です。
TikTokはこのコードで何を実行しているのでしょうか。この点について、公開されているコードは一部であること、また呼び出している関数には中身が分からないものがあることから、断言できません。
ただ、LCPMonitorという文字列が「LCP」(最大視覚コンテンツの表示時間)に関するものだとすれば、ページの表示速度に関係する調査をしている雰囲気は感じられます。
一般に、Webサイトやアプリにおいて、ユーザーの操作に応じた処理を実行することはごく普通に行われており、開発者が利用できるAPIとして提供されています。
また、ユーザーが操作した内容を細かく記録する場合もあります。これにより、タッチ操作をミスした場所などがデータとして取れるので、画面の改善につなげることができます。
そのため、こうした実装になっているからといって、利用規約の範囲を超えて不正にデータを収集しているとまではいえません。これはKrause氏による報告でも強調されています。
重要なのは、このコードを入れた目的は何だったのかという点です。TikTok側からは、「デバッグや障害対応、性能測定の目的のみに利用している」との説明があったと報じられています。
デバッグ用のコードが製品版に残っていたとすれば、コードレビューなど開発体制に不安を感じるところです。性能測定が目的であれば、製品版にコードが入っていてもおかしくはありません。
なお、TikTokアプリの現在配布されているバージョン(25.7.1)では、問題となったコードは削除されているようです。
ユーザーが気を付けるべき点はあるか
すでにTikTokのiOSアプリはバージョンアップされており、詳しく検証することはできないのですが、影響範囲としてはそれほど大きくないと筆者は考えています。
というのも、動画を見たり、コメントを読み書きしたりする場合、その説明欄やコメント欄に出てくるURLはリンクになっておらず、直接開くことはできません。
そこで、投稿者によってはプロフィールからリンクを開くように誘導している人がいます。このリンクを開くときに、アプリ内ブラウザは使われています。
このようにTikTokを普通に使っているとき、アプリ内ブラウザを開く機会というのはかなり少ない印象があります。
どうしてもアプリ内で開くブラウザに不安がある場合は、標準のブラウザ(Safari)で開くことで、アプリから干渉を受けることはなくなります。
たとえばInstagramのアプリでは、アプリ内ブラウザの右上のメニューから「ブラウザーで開く」を選ぶと、そのページを標準ブラウザで開くことができます。
しかしTikTokのアプリには、この機能が用意されていない点についても不満が高まっているようです。URLをコピーすることもできないため、標準ブラウザを使うにはURLを手打ちする必要があります。