- 26 Nov 2024
- 7 Minutes to read
- DarkLight
- PDF
Version 7.0.2 (December 2024)
- Updated on 26 Nov 2024
- 7 Minutes to read
- DarkLight
- PDF
Introduction
Welcome to Mobile Application Shielding 7.0.2!
The OneSpan Customer Portal only accepts connections via TLS 1.2 or later. Earlier versions are no longer supported because all versions of the TLS protocol prior to 1.2 have been deprecated.
This is a release of Mobile Application Shielding that contains enhancements and other product updates. See New features and other updates and Fixes and other changes for more information.
For information about configuring and using Mobile Application Shielding, see Mobile Application Shielding Integration Guide.
On the OneSpan Customer Portal, the last 12 versions of Mobile Application Shielding are available for download. To maintain protection against the latest mobile threats, ensure to update Mobile Application Shielding to the latest version!
Supported platform versions
App Shielding version 7.0.2 was successfully tested with Android 15.
Android 5.0 (API level 21) – Android 15 (API level 35).
Shielding Tool:
Windows 10: 64-bit Java 17
Mac OSX (10.9+)
Ubuntu Linux 20.04 LTS or 22.04 LTS
The App Shielding Gradle plugin version 2.0 and later is supported.
The App Shielding Gradle plugin 2.0 supports Android App Bundles and newer Android build versions.
The plugin and documentation can be downloaded from:
Android platform updates
Added support for Android 15 (API 35)
The Android minimum supported version is 5.0 (API level 21). This version of App Shielding supports Android 15.
If you want your protected app to run on Android 15, you must upgrade to App Shielding 6.6.0 or later.
Beginning with Android 15, Android supports devices that are configured to use a page size of 16 KB (i.e., 16 KB devices). App Shielding has been updated to work on these 16 KB devices. However, if your app uses any native libraries, you must ensure that these libraries are ready for 16 KB page sizes. For more information, refer to the Android Developer documentation.
As of March 1, 2024, App Shielding for Android version 4.3.11.78273 and earlier are no longer supported. For more information, refer to the OneSpan Mobile Portal or the OneSpan Customer Portal.
Deprecations
Platform minimum supported versions
Android 4.4 (API levels 19 and 20) are no longer supported by App Shielding. The new minimum supported version is Android Lollipop 5.0 (API level 21).
Android Native Development Kit (NDK)
Google has announced that Android Native Development Kit (NDK) (r26) will no longer support KitKat (API levels 19 and 20). The minimum version supported by the NDK for r26 will be Lollipop (API level 21).
App Shielding switches to NDK r26 after its release as LTS version.
Deprecated API: ShieldSDK-secure-edit-text
The ShieldSDK-secure-edit-text API has been marked as deprecated.
New features and other updates
New feature to support PIPL compliance
To distribute an app in the People's Republic of China, the app must comply with China's Personal Information Protection Law (PIPL). The PIPL has implications for all parties handling personal information of natural persons within the borders of China.
Among a range of consequences, for banks, this means implementing a one-time consent for each customer prior to using their banking app. For App Shielding, this means that some of the security checks must be postponed until after the consent activity has been shown and accepted. OneSpan has created a dedicated PIPL feature in App Shielding to postpone its related method calls used in certain security checks. Some of the checks could be partially postponed, while others must be fully postponed. For both cases, the actual security impact can be neglected as long as the correct precautions are implemented, as described in the Integrate App Shielding for App Distribution in China.
Fixes and other changes
Fix Shielding Tool memory usage for some applications
Description: When protecting applications that utilize a significant amount of compiled Kotlin code, the Shielding Tool could encounter memory exhaustion.
Status: This issue has been addressed for several of these scenarios.
Fix rare unexpected termination in libshield caused by a race condition
Resolved a race condition in the libshield activity lifecycle listener 's that could potentially cause an unexpected termination.
Fix unexpected termination of App Shielding on some Android 5.x devices
Description: On some Android 5.x devices, App Shielding exited with an invalid option error. This was because App Shielding passed a flag to a libc function that was unknown to the old Linux Kernel of that Android version.
Status: This issue has been fixed.
Added removed ShieldSDK-secure-edit-text API
The ShieldSDK-secure-edit-text API that was removed in the previous version has been added again.
SHAND-4517: Fix rare unexpected termination of App Shielding on spuriously awakening
Fixed an issue where App Shielding terminated unexpectedly when being woken spuriously.
SHAND-4518, Support case ESC-43: Fix parsing byte code for applications
Description: Fixed an issue when the Shielding Tool needed to parse a specific byte code instruction that may be in an app that was compiled for an SDK version 26 or later. The Shielding Tool previously exited with an error like the following:
ERROR: Error: java.lang.RuntimeException: Unable to parse line 40 from classes.dex/com.example.Test:
invoke-custom {p0}, call_site_0("run", ...)@...Ljava/lang/invoke/CallSite;
...
Caused by: java.lang.IllegalArgumentException: Unknown primitive value type ()V
Status: This issue has been fixed.
SHAND-4529: Fix NullPointerException when blocking untrusted screen reader
Description: A NullPointerException related to AccessibilityNodeInfo occurred on some Android versions while App Shielding blocked an untrusted screen reader.
Status: This issue has been fixed.
SHAND-4533: Fix unblocking screen readers on slow devices
Description: Some devices are rather slow on enabling accessibility services, for example Talkback. If a trusted screen reader is enabled while a protected application is running and enabling that screen reader takes a long time, App Shielding failed to see the enabled trusted screen reader and thus did not unblock the application for screen reader access.
Status: This issue has been fixed.
SHAND-4544, Support case ESC-52: Fix leaking Intent Receiver
Description: Fixed a leaking Intent Receiver. The error may have been observed in an adb log message like:
... 1234 1234 E ActivityThread: Activity com.example.MyActivity has leaked IntentReceiver ab.C@12345678 that was originally registered here. Are you missing a call to unregisterReceiver()?
Status: This issue has been fixed.
SHAND-4549: Fix stack overflow unexpected termination while executing onTransact
Description: On several Huawei devices, an unexpected termination due to stack overflow was observed when executing onTransact while running a shielded application.
Status: This issue has been fixed.
Known limitations
The limitations described here have not yet been solved for the current Mobile Application Shielding version. Possible workarounds are described where available.
Bypassing App Shielding protection in Cordova-based applications
Description: Because of the nature of pure Javascript frameworks such as Cordova, the effectiveness of the push and pull bindings of App Shielding is affected. As a result, it might be possible to extract all Javascript files from a shielded application and build a new Cordova-based application with the extracted Javascript files. That new application will behave identical to the original one but has two major differences:
It is not longer protected with App Shielding.
It is signed with a different developer certificate.
Because this new application is signed with a different developer certificate, it is recognized by the stores or every device as a completely different and new application in comparison to the original shielded application. It cannot be avoided that a new application like this is built that looks and behaves similar to the original application.
OneSpan risk assessment: Threat actors will need to make heavy use of targeted phishing attacks to convince users of the original application to install the rogue version. For attackers, however, it is much easier to use existing malware frameworks that mimic hundreds of login screens in one single piece of malware. In addition, the existence of any rogue versions of the application does not affect the security features of the original shielded application. Everyone who is using the genuine, shielded application is protected with all the features of App Shielding, including all security measures of the original application. Therefore, we consider this issue to be of low risk.
NFC payment failure in shielded apps with Thales Gemalto SDK
Description: When using the shielded version of the app, NFC payments fail. This is caused by a compatibility issue with the Thales Gemalto TSH Pay SDK which also provides debugger detection. The SDK incorrectly flags the App Shielding debugger detection as a native debugger.
Solution: Allowlisting. For implementations integrating both the Thales Gemalto SDK and App Shielding, debuggers coming from the SDK's own debugging processes and sub-processes should be added to an allowlist within theThales Gemalto SDK.
It is essential to not only add the processes to the allowlist but also their sub-processes. Otherwise, the SDK will still handle App Shielding as a native debugger!
Magisk and root hider tools on new Android versions
Root hider tools such as Magisk Hide are designed to hide the fact that the device is compromised (rooted). Android has been increasingly restricted in what can be inspected and observed of the system from inside an app. This means that a rooted system with a root hider tool can be hard to detect due to missing privileges.
On Android 8+, App Shielding may not able to reliably detect a rooted device with Magisk Hide depending on the version of these tools.
Android App Bundles
The OneSpan Customer Portal support for Android App Bundles does not yet include instant-enabled app bundles.