Android SDK をベースとするアプリケーションは GooglePlayServices に依存する必要があります。例えば、gradle ビルドファイルには、dependencies ブロックに compile 'com.google.android.gms:play-services-gcm:x.x.x' があります。ProviderInstaller クラスは installIfNeeded または installIfNeededAsync のどちらかで呼び出されていることを確認する必要があります。ProviderInstaller はできるだけ早期にアプリケーションのコンポーネントにより呼び出される必要があります。これらのメソッドによりスローされる例外は正しく捕捉および処理されるべきです。アプリケーションがその セキュリティプロバイダ (Security Provider) にパッチを適用することができない場合、そのセキュアではない状態の API を通知するかユーザー操作を制限します (すべての HTTPS トラフィックがこの状況ではより危険であるとみなすべきであるため) 。
compile 'com.google.android.gms:play-services-gcm:x.x.x'
ProviderInstaller
installIfNeeded
installIfNeededAsync
ソースコードにアクセスできる場合は、セキュリティプロバイダのアップデートに関連する例外をアプリが適切に処理するかどうか、および、アプリケーションがパッチされていないセキュリティプロバイダで動作している場合にバックエンドに報告されるかどうかを確認します。 Android 開発者ドキュメントでは SSL エクスプロイトを防ぐためにセキュリティプロバイダをアップデートする方法arrow-up-right を示すさまざまな例を提供しています。
最後に、NDK ベースのアプリケーションは SSL/TLS 機能を提供する最新の正しくパッチ適用されたライブラリにのみバインドすることを確認します。
ソースコードがある場合:
デバッグモードでアプリケーションを実行し、アプリが最初にエンドポイントに接続するブレークポイントを作成します。
ハイライトされたコードを右クリックし、Evaluate Expression を選択します。
Evaluate Expression
Security.getProviders() と入力し Enter キーを押します。
Security.getProviders()
プロバイダをチェックし GmsCore_OpenSSL を探してみます。これは新たにトップにリストアップされたプロバイダになるはずです。
GmsCore_OpenSSL
ソースコードがない場合:
Frida (Android) を使用して java.security.Security.getProviders()arrow-up-right をフックするか、@platix/get-android-security-provider-mstg-network-6arrow-up-right などの Frida CodeShare スクリプトを使用します。
java.security.Security.getProviders()
最初のプロバイダが GmsCore_OpenSSL であるかどうかを判断します。
Last updated 15 hours ago