RECEIVE_SMSアクセス許可を使用してSMSメッセージをインターセプトできますか?


13

私はRECEIVE_SMS許可を要求しているかなりの数のアプリに気づきました。ここでは、2つのことがはっきりしています。

  • RECEIVE_SMS アプリが着信SMSを「スナップ」できるようにします
  • READ_SMS すでに保存されているSMSにのみ適用されます

一部のアプリがを求めてRECEIVE_SMSいたのでREAD_SMS、私は好奇心が強くなりました:これRECEIVE_SMSは受信部分を対象にしているだけでなく、受信したメッセージでアプリが望むことを実行できることを暗示しているようです。静かにそれを捨てます(そのため、ユーザーはSMSに気付かないこともあります。これはTANトロイの木馬がオンラインバンキングトランザクションの識別子をスナップするように振る舞う方法かもしれません)。

しかし、そのようなアプリがメッセージを「傍受」、つまり受信、読み取り(およびその内容を何らかの方法で処理する、たとえばIP経由などの他の手段で転送する)してから、何も起こらなかったら?つまり、この方法でユーザーをスパイできますか?

回答:


13

はい、できますが、Android 4.3以前でのみ可能です。これは、たとえばWhatsappで使用されます。アプリをアクティブにすると、Whatsappは報告した番号にSMSを送信し、アプリはそれを静かに傍受し、SMSを受信したことをサーバーに報告します。これは、アカウントが番号に結び付けられる方法です。

もちろん、これは有害なアプリでも使用できます。アプリが最高の優先度でSMS受信機として登録されている場合、アプリは着信SMSをリッスンして処理し、ユーザーに気付かれずにそれらを破棄するか、2番目に高い優先度を持つ次のSMSリスナーに転送できます。

これはAndroid 4.4でやり直されました。正しく理解すれば、デフォルトのSMSアプリのみがすべての着信SMS(SMS_DELIVER_ACTION)にアクセスでき、正しい許可を持つ他のアプリは着信メッセージの通知のみを受け取ります(SMS_RECEIVED_ACTION)。さらに、そのSMS_RECEIVED意図は不可抗力であり、止めることはできません。Android 4.4では、これはユーザーがデフォルトのアプリですべての着信SMSメッセージを見ることができるようにするために行われると思います。

編集:Android Developers Blogでさらに役立つ情報を見つけてください。これをさらにテストしますが、私の唯一のAndroid携帯電話は現在WiFiのみであるため、SMSはありません:/


洞察に感謝します、onik!それらのキットカットの変更について知りませんでした。これらが配置されていて、たとえばWhatsAppREAD_SMS「アクティベーションコード」にアクセスするためのアクセス許可を必要とすることや、RECEIVE_SMS「コピーを受信する」アクセス許可を持つアプリを実行することを正しく理解しました(デフォルトのSMSアプリは例外で、オリジナルを受け取る」)?
イジー

@Izzyこれについても質問があります。ユーザーは、これらのコントロールテキストをデフォルトのアプリで直接見るようになりましたか?それとも、「消費された」テキストを見ることができるが、通常のテキストアプリに実際に表示されないオプションでしょうか?
ランチャー14年

1
@Izzy正しく理解できれば、デフォルトのSMSアプリとして設定されていないアプリは読み取り専用プロバイダーにアクセスできます。つまり、READ_SMS許可は必要ありませんが、SMSを編集することはできません(読み取り、削除などのマークを付けます) )。
オニック14年

1
@Cruncherメッセージは、デフォルトのSMSアプリに表示されるはずです。メッセージを削除するために、そのアプリのみがSMSProviderに書き込むことができるからです。
オニック14年

1
「はい、できます」。ただし、Android 4.3以前のみ。4.4以降、SMS_RECEIVEDは中止できないインテントです。その重要な事実を追加してください。stackoverflow.com/questions/20021492/…
フロー

10

物事が立つように

  1. ハングアウトアプリを使用しないAndroid 4.3以下:SMS_RECEIVE権限を持つアプリは、着信SMSを読み取り/中止できます(ala Whatsapp)
  2. ハングアウトを使用したAndroid 4.3以下(SMSモードがオン):SMS_RECEIVE権限を持つアプリはすべて、着信SMSを読み取ることができますが、中止することはできません
  3. Android 4.4以降:SMS_RECEIVE権限を持つアプリは、着信SMSを読み取ることはできますが、中止することはできません

3つのケースすべてで、READ_SMSは、新しい着信SMSだけでなく、すべてのSMSを読み取る許可をアプリに与えます。

onikが述べたように、物事はAndroid 4.4でかなり変化しています


1
ハングアウトを指摘してくれてありがとう、Android 4.4未満で違いが出るかもしれません!アプリで最も高い優先度を持つSMSレシーバーとして登録されているonikが指しているものに対応すると思いますが、ハングアウトはまさにそれを行っています(したがって、他のアプリはそれを超えることができません)?
イジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.