web-dev-qa-db-ja.com

Androidアプリは私の電話の他のアプリからキャッシュ/保存されたパスワードを盗むことができます

Androidアプリは、インストールした他のアプリから保存されたパスワードを盗むことができますか?

スナップチャットを使用していて、一度ログインするとログインしたままになるとしましょう。後でそのアプリからキャッシュを削除すると、ログアウトされます。

保存されているパスワードは脆弱ですか?

2
alfredo-fredo

ようこそアルフレド:)

TL; DR

いいえ。Androidアプリは、オペレーティングシステムの自分のユーザーの内部に「サンドボックス化されています。」したがって、Snapchat/you Androidバージョンに特定の脆弱性がない限り、スマートフォンを更新した場合、これは起こりません)、他のアプリは保存されたパスワードを取得できません。

Androidのアプリケーションサンドボックス

AndroidはLinuxオペレーティングシステムに基づいています。したがって、アプリを相互に隔離し、アプリとシステムを悪意のあるアプリから保護します。これを行うには、Androidが一意のユーザーIDを各Androidアプリケーションに割り当てます。これは、特に定義されていない限り、すべてのアプリケーションファイルが保護され、この特定のアプリケーション(ユーザーID)。

ユーザーのパスワードを保存するその他のメカニズム

Androidは、アプリがトークンとパスワードを安全に保存するために アカウントマネージャー も実装しました。つまり、これはオペレーティングシステム自体によって管理される暗号化されたDBであり、すべてのアプリはそれを使用してトークン/パスワードを安全な方法で保存できます。

2
user3467955

パスワードを保存することで何を意味するかによって異なります。これは、SharedPreferences、sqliteデータベース、ファイルベースのストレージなどのデータを永続化する各アプリによって実行されます。または、システムによって提供されるAndroidキーストアを参照している可能性があります。

最初のケース(SharedPreferences、sqliteなど):設計上、各アプリは独自のサンドボックスにあると想定されています。他のアプリはデータにアクセスできません。保護はLinuxの権限に基づいています。ただし、脆弱性があるため、近年SELinuxが使用されており、Androidのバージョンごとに権限が厳しくなっています。たとえば、通常のアプリがアクセスできるシステムデータはますます制限されています。

2番目のケースでは、Androidシステムによって管理されるため、より安全であると考えることができます。

ただし、Androidデバイスを見つけることは非常に一般的です。ルート化のプロセスにより、保護の多くが削除されるため、Androidキーストアと他のアプリデータは銀行のアプリなどの一部のアプリやPokemon Goなどのゲームでは、ルート検出機能を実装して、アプリがルート化されたデバイスで実行されないようにします。

1
auspicious99