All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Android SDK version: 11.1.0
- iOS SDK version: 6.6.0
- Auditing mechanism for runtime checks
- Migration to declarative Gradle plugin
- CHANGELOG.md now follows Keep a Changelog
- Updated README.md with new documentation links
- Auditing mechanism for runtime checks
- Breaking: TalsecConfig creation was migrated to a Builder pattern
- Refactored fetching the list of installed applications for root and hook detection
- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0
- Native crashes (SEGFAULT) in
ifpip
method - Collision for command line tools (e.g.
ping
) which couldn't be invoked without the full path
- Dopamine jailbreak detection.
- Enhanced and accelerated the data collection logic
- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0
- 🔎 Added new threat
Threat.systemVPN
for VPN detection - 🔎 Added new callback
onSystemVPN
inThreatCallback
for handlingThreat.systemVPN
threat - ❗ Increased minimal Dart SDK version to 2.18.0 and minimal Flutter version to 3.3.0
- ⚡ Resolved issue in logging caused by the device's default system locale.
- ✔️ Updated CA bundle
- 📄 Documentation updates
- 🔎 Added new threat
Threat.devMode
for detecting Developer mode on Android - 🔎 Added new callback
onDevMode
inThreatCallback
for handlingThreat.devMode
threat - ✔️ Increased the version of the GMS dependency
- ⚡ Passcode check is now periodical
- 📄 Fixed typo in README
- ⚡ New Talsec SDK artifact hosting - better stability and availibility
- ⚡ Updated
CURL
to8.5.0
andOpenSSL
to1.1.1w
(resolves issue #93) - 📄 Added information about APK size increase and ways to decrease it (resolves issue #100)
- ⚡ Fixed issue with disappearing threats when the app is quickly put into the background and then back to the foreground (resolves issue #91)
- ⚡ Fixed a native crash bug during one of the native root checks (detected after NDK upgrade)
- ⚡ Improved appIntegrity check and its logging
- ❗ Added Privacy Manifest
- ❗ Added codesigning for the SDK, it is signed by:
- Team ID:
ASQC376HCN
- Team Name:
AHEAD iTec, s.r.o.
- Team ID:
- ⚡ Improved obfuscation of Swift and C strings
Minor fixes and improvements
- ⚡ Improved reaction obfuscation
- ⚡ Improved obfuscation of the iOS SDK
- ⚡ Fixed ProviderException on Android
- ⚡ Fixed typo in namespace which caused incompatibility with AGP 8.0
- 📄 Fixed information about Xcode version
- ❗ Raised supported Xcode version to 14.3.1
Improved logging of the Android SDK and minor bug fixes
- 📄 Documentation updates and improvements
- ✔️ Updated CA bundle for logging pinning
- ✔️ Added error logging of network issues within the logging process
- ✔️ Added retry politics for logging
- ⚡ Fixed issue with DeadObjectException on Android 5 and 6 caused by excessive PackageManager.queryIntentActivities() usage
- ⚡ Improved root detection capabilities
Minor fixes and added support for AGP 8.0
- ⚡ Added support for AGP 8.0
- ❗ Removed PolarSSL dependency on Android
- ❗ Removed forgotten
onOverlay
callback - ✔️ Fixed issue with denied USE_BIOMETRICS permission
- ⚡ Fixed issue with incorrect Keystore type detection on Android 11 and above (#77)
- ⚡ Reduced timeout period for logging from 20 sec to 5 sec on iOS
- ⚡ Logging is now async in all calls on iOS
We are constantly working on improving your freeRASP experience. This update contains a new check - obfuscation detection. Minimal supported Android SDK level was raised to 23.
- ❗ BREAKING: Raised minSdkVersion on Android to 23
- ❗ Removed BouncyCastle dependency on Android
- 🔎 New threat type
obfuscationIssues
- 🔎 New threat callback
onObfuscationIssues
- ✔️ Fixed
NullPointerException
which could occur during specific subcheck execution on Android
- ✔️ Fixed issue with metadata in iOS framework
Fixed issue that caused freeRASP to be killed prematurely
- ✔️ Fixed issue when freeRASP throws IllegalStateException: Talsec is not running
Fixed issue causing app to freeze on iOS
- ✔️ Fixed issue with app freezing after
start
called on iOS - 📄 Updated example application
Minor changes in documentation
- 📄 Updated documentation for migration from freeRASP 4.x to 5.x
Get ready for some exciting updates! In this latest release, we have revamped the freeRASP's codebase, which has helped to resolve several known issues. As a result, the integration of freeRASP into your workflow is even easier than before.
- ⚡ New enum values for threat types
- ⚡ New threat handler for handling threat types
- ✔️ Fixed issue with platform detection
- ✔️ Fixed issue with Codemagic CI/CD on iOS
- ✔️ Fixed issue with app crashing on hot restart
- 📄 Documentation updates and improvements
- ⚡ Updated demo app for new implementation
- ⬆️ Increased constraint with maximal Dart SDK version to support the latest release
New changes incoming! This major update, contains new API to for handling dev and release deployments of freeRASP. Now, you can integrate freeRASP more easily without pesky iOS installation steps. We also no longer rely on HMS.
-
❗ Only one version of the SDK is used from now on, instead of two separate for dev and release
-
❗ Removed the HMS dependencies
-
⚡ Improved root detection accuracy by moving the 'ro.debuggable' property state to an ignored group
-
⚡ Enhanced root detection capabilities by moving the selinux properties check to device state
-
⚡ Fine-tuning root evaluation strategy
- ❗ Removed the dependency on the symlinks choosing the proper version (release/dev)
- ❗️ Removed pre-built script for changing the Debug and Release versions
- 📄 Documentation updates and improvements
- ⚡ Updated demo app for new implementation
A new round of fixes and improvements! Here's the list of all the new things we included in the latest release.
- ❗ BREAKING API CHANGE: Added multi-signature support for certificate hashes of Android apps
- ✔️ Fixed
NullPointerException
in RootDetector when there are no running processes (issue) on Android - ✔️ Removed deprecated SafetyNet dependency (issue) on Android
- ✔️ Fixed the ANR issue (issue) on Android
- ✔️ Updated HMS and GMS dependencies on Android
- 🔎 Improved detection of BlueStacks and Nox emulators (issue) on Android
- ❗ Improved device binding detection to not trigger for moving the app to a new device on iOS
- ⚡ Improved hook detection and logging on iOS
- 🔎 Improved logging of non-existing hardware for biometrics on iOS
We are constantly listening to our community to make freeRASP better. This update contain fixes to reported issues.
- 📄 Updated troubleshoot section related to ProGuard issue
- ✔️ Fixed
Duplicate class
issue
This update contains small fix of documentation.
- 🛠️ Fixed Plans Comparison table in README.md
We are constantly working on improving your freeRASP experience, and today we're happy to announce a major update packed with new features and improvements! Here's the list of all the new things we included in the latest release.
Among the first changes, you will notice our prettier and easy-to-navigate README. We also created a much-desired tool for a hash conversion (including a guide on how to use it) and added a check, so you know you've done it right.
- 👀 Updated README.md
- 🛠️ Added tool for converting sha-256 hash to base64 form
- 🛠️ Added checks for hash correctness in the
AndroidConfig
constructor
And as usual, the new release also contains some bug squashing.
For Android builds, we focused on extending the critical tampering detection and improving the informational value provided by logs. You may also notice improved performance and API changes for device binding checks.
- 🔎 Added native checks in C
- 📄 Added information about security patches to logs
- 📄 Added information about Google Play Services, Huawei Mobile Services, SafetyNet Verify Apps
- ⚡ Improved performance
- ❗ BREAKING API CHANGE: Renamed
onDeviceBinding
callback toonDeviceBindingDetected
For iOS devices, we prepared upgraded and polished incident detections and even added some new ones. Other changes include several API modifications, based on discussion with the community.
- 🔎 Improved detection of jailbreak hiders (Shadow)
- ⚡ Improved jailbreak detection
- ⚡ Improved hook detection
- ❗ BREAKING API CHANGE: Added
unofficialStoreDetected
callback - ❗ BREAKING API CHANGE: Removed
onPasscodeChangeDetected
- ❗ BREAKING API CHANGE: Renamed
IOScallback
toIOSCallback
- ❗ BREAKING API CHANGE: Renamed parameter
IOSCallback
toiosCallback
-
Fixed bug causing Talsec to not run properly (initialization checks for non null-safe version of Flutter)
-
Added configuration tests
-
Improved performance during library initialization
-
Improved method handling
-
Improved incident handling
-
Sensitive content logging modification, package names of well-known dangerous applications (rooting apps, hooking frameworks, etc...) are no longer sent to Elastic, only a flag that device contains one of those applications is sent
-
Fixed usage of deprecated API calls (DexFile) for Android 8.0 and above
-
Fixed issue with root prompt ("app asking for root permission") on rooted devices
-
Updated jailbreak checks to detect jailbreak hiders
-
Updated hook checks
-
Better debugger handling
-
Better incident handling
-
Fixed issue with false positive during device binding check
- Changed minSDK to 21
- Added DeviceBinding callback
- Added UntrustedInstallation callback
- Added onDeviceChange callback
- Added onDeviceIdDetected callback
- Initial full release of freeRASP.
- Update: documentation
- Fix: documentation
-
Updated README.md
-
Fixed build failure on Xcode
- Initial testing release of freeRASP.