[更新]Android端末のクリップボード注意点

こんにちは。桜谷 剋真です。

今日は、Android端末におけるクリップボードのアクセス権限・セキュリティ懸念について、
知られておくべきでは…?と思うことながら日本語での情報が
全然見当たらなかったので、書いておきたいと思います。

2020.01.03更新:こちらの問題は、Android 10で改善されているようです。(未検証)
https://developer.android.com/about/versions/10/privacy/changes

概要

日頃、スマホのクリップボードには様々なデータが流れ込むと思いますが、機種によっては
スクショを撮影した際に同時にクリップボードに送られる機種があったり、1PasswordやLastPassのような
パスワード管理系アプリからパスワードをコピペしている人もいらっしゃるのではないかと思います。

そんなクリップボードですが、とあるアプリを使っている際に
「クリップボードを常時監視して、URLがあればバックグラウンドでダウンロード開始」
という機能に遭遇したことで、

クリップボードは、ユーザーへの権限確認なくアプリから自由に読み取れるということを知りました。

正直、驚きました。
(セキュアな情報を一時とはいえクリップボードに置くなと言われるかもしれませんが・・・)


仮にパスワードが漏れてもIDや二段階認証がクリア出来ないとログインは出来ませんし、
Android Oreo以降であれば、クリップボードを経由せずともパスワード自動入力できますし、
最近はGoogle Smart Lockに対応したアプリも増えてきてはいますので
あまり神経質になりすぎることはないかもしれませんが、

クリップボードを常に見られているかも・・・・というのもあまり気分のいいものではありません。

ADB経由でアクセス権の確認・管理が出来ますので、書いておきます。
下記すべて自己責任でご理解ください。


クリップボードへのアクセス権の確認

まずは、クリップボードの読み取り権限を持つアプリの確認方法です。

下記のコマンドを打つことで、一覧が出てきます。

adb shell cmd appops query-op --user 0 READ_CLIPBOARD allow

こんな感じです。


いっぱいありますねー


アクセス権の制限

当然ながら、制限すると不具合の出るアプリもあると思います。

「ああこのアプリは確かにクリップボード読み取る機能あるなぁ」と思い当たるものもあれば、
「いやこのアプリにクリップボードアクセスはあり得んわ・・」と思うものもありますが、

実際本当にアクセスしてるかは分かりませんし、何に使ってるか使ってないかも分かりませんし、
あくまで各アプリや開発元への信頼に応じて個人の判断で・・・。

adb shell cmd appops set [package name] READ_CLIPBOARD ignore

例えば、Baiduの百度雲アプリのアクセス権を拒否するとこんな感じになります。


何も表示は出ませんが、これで権限は取り除かれます。


逆に、権限を与える際は
adb shell cmd appops set [package name] READ_CLIPBOARD allow
でいけます。


誤りやご意見など、何かあればコメント欄またはBlueskyからご連絡ください。

コメント