問題タブ [android-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1867 参照

android - Apache Cordova のセキュリティ上の脆弱性

最近、Android アプリを Google Play にアップロードしましたが、よく知られているセキュリティ脆弱性警告Apache Cordova セキュリティ脆弱性 を取得しました。Cordova CLI 6.0.0 と Cordova Android 5.1.1 を使用しているため、少し混乱しています。私が間違っていることは何ですか?

プロジェクト情報:

config.xml で次の行を追加/削除しようとしました

また、index.htmlの次の行を追加および削除しようとしました

これは、Google Play チームから受け取ったメールです。

Google Play デベロッパー様、こんにちは。

XXXXXX、パッケージ ID XXXXXXX は、悪意のある行為に関するポリシーに違反しているため拒否されました。アップデートを送信した場合、アプリの以前のバージョンは引き続き Google Play で入手できます。

このアプリは、ユーザーにとってセキュリティ上の脆弱性を含むソフトウェアを使用しています。

以下は、最近の送信で検出された脆弱性と対応する APK バージョンのリストです。できるだけ早くアプリをアップグレードし、アップグレードされた APK のバージョン番号を増やしてください。

脆弱性 APK バージョン Apache Cordova 脆弱性は Apache Cordova v.3.5.1 で修正されました。

詳細と次のステップについては、このGoogle ヘルプ センターの記事をご覧ください。

0 投票する
1 に答える
348 参照

android - アプリが逆コンパイルされた場合の GoogleAuthUtils.getToken() の安全性

現在、バックエンド サーバーからデータを要求する Android 用のアプリを作成しています。もちろん、自分のサーバーで受信したリクエストが本当に自分のアプリからのものなのか、それとも誰かが別のサーバーから HTTP リクエストを送信しただけなのかなどを知りたいです。そのトピックに関する Tim Bray の記事を読みましたが、このアプローチが実際にどれほど安全かを知りたいです。 . この記事では、ルート化されたデバイスがセキュリティを侵害する可能性があると述べていますが、私は次のシナリオについて考えていました。

  • 悪意のある人物が私のアプリを取得し、完全に逆コンパイルして、私が使用していることを検出しますGoogleAuthUtils
  • 彼女/彼はそれをハッキングするために私のアプリを変更し、それを彼女/彼のデバイスに展開します (同じパッケージ名を使用するなど)。

偽のアプリの署名が異なること (悪意のある人物が私の秘密鍵を持っていないため) と、Play ストアからダウンロードできないこと (同じパッケージ名のアプリを 2 つ公開できないため) はわかっています。

デバイスがルート化されていない場合: この偽のアプリはGoogleAuthUtils.getToken()、本物のアプリと同じ (または何らかの) 結果を得ていますか?

ルート化されたデバイスでハッカーが応答に適用できる可能性のある変更は何ですか?

0 投票する
8 に答える
59074 参照

android - Webview は、onReceivedSslError の実装時に Google Play からのセキュリティ アラートを回避します

webviewで開くリンクがあります。問題は、次のように onReceivedSslError をオーバーライドするまで開くことができないことです。

Google Play から次のようなセキュリティ アラートが表示されます。

セキュリティ アラート アプリケーションには、WebViewClient.onReceivedSslError ハンドラーの安全でない実装があります。特に、この実装では SSL 証明書の検証エラーがすべて無視されるため、アプリは中間者攻撃に対して脆弱になります。攻撃者は、影響を受ける WebView のコンテンツを変更し、送信されたデータ (ログイン資格情報など) を読み取り、JavaScript を使用してアプリ内でコードを実行する可能性があります。

SSL 証明書の検証を適切に処理するには、コードを変更して、サーバーによって提示された証明書が期待どおりである場合は常に SslErrorHandler.proceed() を呼び出し、それ以外の場合は SslErrorHandler.cancel() を呼び出します。影響を受けるアプリとクラスを含む電子メール アラートが開発者アカウント アドレスに送信されました。

できるだけ早くこの脆弱性に対処し、アップグレードされた APK のバージョン番号を増やしてください。SSL エラー ハンドラの詳細については、開発者ヘルプ センターのドキュメントを参照してください。その他の技術的な質問については、https: //www.stackoverflow.com/questions に投稿し、タグ「android-security」および「SslErrorHandler」を使用できます。これを担当するサードパーティのライブラリを使用している場合は、サードパーティに通知し、協力して問題に対処してください。

正しくアップグレードされたことを確認するには、更新されたバージョンを開発者コンソールにアップロードし、5 時間後にもう一度確認してください。アプリが正しくアップグレードされていない場合は、警告が表示されます。

これらの特定の問題は、WebView SSL を使用するすべてのアプリに影響するわけではありませんが、すべてのセキュリティ パッチを最新の状態にしておくことをお勧めします。ユーザーを侵害のリスクにさらす脆弱性を持つアプリは、コンテンツ ポリシーと開発者配布契約のセクション 4.4 に違反する危険な製品と見なされる可能性があります。

公開されたすべてのアプリが、開発者配布契約とコンテンツ ポリシーに準拠していることを確認してください。ご質問やご不明な点がございましたら、Google Play デベロッパー ヘルプ センターからサポート チームまでお問い合わせください。

を削除するonReceivedSslError (handler.proceed())と、ページが開かなくなります。

とにかく、webview でページを開き、セキュリティ アラートを回避できますか。

0 投票する
2 に答える
178 参照

android - Androidで.realmファイルを非表示/難読化する方法はありますか?

レルムを使用して、ハッシュ化されたパスワードと PIN を保存する予定です。私はソルティングについて研究してきましたが、パスワード/PINごとに異なるソルトを使用することをお勧めします. また、ソルトはデータベース内のどこかに置くことをお勧めします。

私の質問は、.realm ファイルは安全ですか? .realm ファイルの内容を開けないようにする方法はありますか?

0 投票する
1 に答える
3792 参照

android - Androidで2つ以上のアプリケーション間でデータを安全に共有する方法は?

デバイス メモリから 2 つ以上のアプリケーション間でデータを共有するエンタープライズ環境向けのアプリケーション フレームワークを作成しています。このデータはデバイスに保存する必要があり、少数のアプリケーションのみがアクセスできる必要があります (アプリケーションのインストールに使用される証明書によって識別できます)。また、他のサードパーティ製アプリケーションからアクセスできないように、安全な方法で保存する必要があります。この機能を実装する最良の方法はどれですか?

私の理解では、このプロセスを容易にするだけのContentProvidersContentResolversについて読みました。データの実際のストレージはより重要です。また、達成する必要があるものに最も近いと思われる AndroidのKeychain APIも調べました。

ContentProvidersContentResolversを Keychain APIと統合する方法はありますか? これは正しい方法ですか?そうでない場合、同じことを達成するための最良の方法は何ですか? また、 Keychain APIの機能を完全に理解するための適切なコード サンプルを見つけることができませんでした。助けてください!

編集:Keystore API
も見ました。これは内部的にキーチェーン API を使用し、アプリケーション間でデータを共有するには、キーチェーンを使用する必要があります。キーチェーン API の使用方法に関する同じ、または詳細なドキュメントまたは API ガイドのコード サンプルを見つけることができませんでしたが。iOS Keychainに相当する Android を探しています。

Android 5 では、マネージド プロファイルと呼ばれるものも導入されました。これは私がやろうとしていることを達成する正しい方法ですか?

0 投票する
0 に答える
168 参照

android-security - X509TrustManager Google Play 警告問題の正しい変更を確認する方法は?

「Google Play 警告: X509TrustManager の安全でない実装を使用しています」という警告メッセージを受け取りました。問題のあるコードを削除し、APK を更新しましたが、警告がまだ残っています。おそらくライブラリの1つが原因です。APKをリリースせずに正しい変更を確認するための変更はありますか?

0 投票する
1 に答える
2437 参照

android - TrustManager の安全でない実装を含むアプリを修正する方法

この要件と手順に従って安全なアプリを使用するという Android の新しいポリシーに Android アプリを準拠させようとしています。

1) 最初にアプリの URL に SSL と https を追加しました 2) 次に、HttpURLConnection の代わりにクラス HttpsURLConnection の使用を開始しました

私が使用するリモート呼び出しの例を次に示します。

しかし、開発者コンソールの警告サインは削除されませんでした。私が間違っていることと、これを修正する方法はありますか?

0 投票する
0 に答える
63 参照

android - KeyStore を使用した 2 つの Android アプリでのデータのエンコード/デコード

同じキーストアで署名された 2 つのアプリがあります。

これらのアプリ間で機密データを共有したくありません。

たとえば、アプリケーション A で文字列を暗号化します。結果Context.MODE_WORLD_READABLE) SharedPreferencesを入力し、そのデータをアプリケーション B で読み取り、復号化します。

それは合理的なシナリオですか?または、この問題に別の方法でアプローチする必要がありますか?

アプリケーション A でキー パーを作成できますが、KeyStore を正しく理解していれば、アプリケーション B はそれについて何も知りませんか?