Skip to content

Commit

Permalink
Merge pull request #134 from talsec/release/6.7.0
Browse files Browse the repository at this point in the history
freeRASP 6.7.0
  • Loading branch information
msikyna authored Sep 26, 2024
2 parents 1b3f350 + 2e820f7 commit c7377a8
Show file tree
Hide file tree
Showing 54 changed files with 1,197 additions and 6,955 deletions.
47 changes: 47 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,50 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [6.7.0] - 2024-09-26

- Android SDK version: 11.1.0
- iOS SDK version: 6.6.0

### Flutter

#### Added
- Auditing mechanism for runtime checks

#### Changed
- Migration to [declarative Gradle plugin](https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply)
- [CHANGELOG.md](CHANGELOG.md) now follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
- Updated [README.md](README.md) with new documentation links

### Android

#### Added
- Auditing mechanism for runtime checks

#### Changed
- 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

#### Fixed
- Native crashes (SEGFAULT) in `ifpip` method
- Collision for command line tools (e.g. `ping`) which couldn't be invoked without the full path

### iOS

#### Added
- [Dopamine](https://github.com/opa334/Dopamine) jailbreak detection.

#### Changed
- Enhanced and accelerated the data collection logic
- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0

# freeRASP 6.6.0

## What's new in 6.6.0?
Expand Down
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@

freeRASP for Flutter is a mobile in-app protection and security monitoring SDK. It aims to cover the main aspects of RASP (Runtime App Self Protection) and application shielding.

:loudspeaker: The official documentation has been moved to a new location. You can now find it [here](https://docs.talsec.app/freerasp). :loudspeaker:

:loudspeaker: The official documentation has been moved to a new location. You can now find it [here](https://docs.talsec.app/docs-and-articles-portal). :loudspeaker:

# Overview

Expand Down Expand Up @@ -47,8 +46,8 @@ Learn more about commercial features at [https://talsec.app](https://talsec.app)

Learn more about freemium freeRASP features at [GitHub main repository](https://github.com/talsec/Free-RASP-Community).

# :book: Discover Official Documentation
Visit the [GitBook page](https://docs.talsec.app/freerasp) for comprehensive and up-to-date guides, tutorials, and technical documentation. It serves as your go-to resource, offering everything from basic instructions to advanced tips and tricks to help you get the most out of the project.
# :book: Discover the Official freeRASP Documentation
Visit the [GitBook page](https://docs.talsec.app/freerasp) for comprehensive and up-to-date guides, tutorials, and technical documentation specifically for freeRASP. It serves as your go-to resource, offering everything from basic instructions to advanced tips and tricks to help you get the most out of the project.

## :link: Integration Guide
For integrating freeRASP on the Flutter platform, be sure to follow all the steps in the [Integration Guide](https://docs.talsec.app/freerasp/integration). This guide provides detailed instructions to help you achieve a smooth and efficient integration.
Expand All @@ -57,12 +56,12 @@ Be sure to bookmark it and stay informed! :books: :sparkles:.

## :scroll: Reference to Legacy Documentation

If you have any suggestions for improvement or notice anything that could be clarified in the new GitBook documentation, please open an issue. Your feedback helps us maintain high-quality resources for all users.
If you have any suggestions for improvement or notice anything that could be clarified in the new GitBook documentation, please open an issue. Your feedback helps us maintain high-quality resources for all users.

For information on older integration methods, you can refer to the [freeRASP wiki](https://github.com/talsec/Free-RASP-Flutter/wiki), which includes comprehensive legacy details and guidance. Additionally, the old integration can be found when you checkout to a specific tag. Your input is invaluable in helping us improve our resources and provide even better support for your needs.

# :rocket: What's New and Changelog
Stay informed and make the most of freeRASP by checking out [What's New and Changelog](https://docs.talsec.app/freerasp/whats-new-and-changelog)! Here, you’ll discover the latest features, enhancements, and bug fixes we’ve implemented to improve your experience across all platforms, including Android, iOS, Flutter, React Native, Capacitor, and Cordova.
Stay informed and make the most of freeRASP by checking out [What's New and Changelog](https://docs.talsec.app/freerasp/whats-new-and-changelog)! Here, you’ll discover the latest features, enhancements, and bug fixes we’ve implemented to improve your experience across all platforms, including Android, iOS, Flutter, React Native, Capacitor, and Cordova.

Don’t miss out on any updates and explore the changelog to see how we’re continually making freeRASP better for you!

Expand All @@ -71,3 +70,6 @@ Don’t miss out on any updates and explore the changelog to see how we’re con
If you have any ideas for improvements, feel free to [raise an issue](https://github.com/talsec/Free-RASP-Flutter/issues) and mark it with an **enhancement** label. We track these enhancements using [GitHub Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) to keep tasks organized and connected to relevant issues or pull requests.

You can check out the project board [here](https://github.com/orgs/talsec/projects/2).

# :page_facing_up: License
This project is provided as freemium software, i.e. there is a fair usage policy that imposes some limitations on the free usage. The SDK software consists of open-source and binary parts, which is the property of Talsec. The open-source part is licensed under the MIT License - see the LICENSE file for details.
3 changes: 2 additions & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ version '1.0-SNAPSHOT'

buildscript {
ext.kotlin_version = '1.7.20'
ext.talsec_version = '11.1.0'
repositories {
google()
mavenCentral()
Expand Down Expand Up @@ -56,5 +57,5 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

// Talsec SDK
implementation 'com.aheaditec.talsec.security:TalsecSecurity-Community-Flutter:9.6.0'
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-Flutter:$talsec_version"
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.aheaditec.freerasp.Threat
import com.aheaditec.talsec_security.security.api.ThreatListener
import com.aheaditec.talsec_security.security.api.ThreatListener.DeviceState
import com.aheaditec.talsec_security.security.api.ThreatListener.ThreatDetected
import com.aheaditec.talsec_security.security.api.SuspiciousAppInfo

/**
* A Singleton object that implements the [ThreatDetected] and [DeviceState] interfaces to handle
Expand Down Expand Up @@ -73,6 +74,10 @@ internal object PluginThreatHandler : ThreatDetected, DeviceState {
notify(Threat.DevMode)
}

override fun onMalwareDetected(appInfo: List<SuspiciousAppInfo>) {
// Nothing to do yet.
}

private fun notify(threat: Threat) {
listener?.threatDetected(threat) ?: detectedThreats.add(threat)
}
Expand Down
12 changes: 5 additions & 7 deletions android/src/main/kotlin/com/aheaditec/freerasp/utils/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,11 @@ internal class Utils {
isProd = json.getBoolean("isProd")
}

return TalsecConfig(
packageName,
certificateHashes.toTypedArray(),
watcherMail,
alternativeStores.toTypedArray(),
isProd
)
return TalsecConfig.Builder(packageName, certificateHashes.toTypedArray())
.watcherMail(watcherMail)
.supportedAlternativeStores(alternativeStores.toTypedArray())
.prod(isProd)
.build()
}
}
}
22 changes: 7 additions & 15 deletions example/android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
Expand All @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) {
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
Expand All @@ -21,13 +22,8 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
// TODO: Update to "flutter.compileSdkVersion" when sdk will be updated to >= 2.0
compileSdkVersion 33
compileSdkVersion flutter.compileSdkVersion

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand Down Expand Up @@ -65,7 +61,3 @@ android {
flutter {
source '../..'
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
13 changes: 0 additions & 13 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,3 @@
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

allprojects {
repositories {
google()
Expand Down
30 changes: 22 additions & 8 deletions example/android/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
include ':app'
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()

def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}

def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.4.2" apply false
id "org.jetbrains.kotlin.android" version "1.6.10" apply false
}

include ":app"
2 changes: 1 addition & 1 deletion example/ios/Flutter/AppFrameworkInfo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>11.0</string>
<string>12.0</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion example/ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '11.0'
# platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
Expand Down
4 changes: 2 additions & 2 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/freerasp/ios"

SPEC CHECKSUMS:
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
freerasp: bb827d80b926abcfb8f4ca4ff4557c2fe4a5ae21

PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011

COCOAPODS: 1.15.2
2 changes: 1 addition & 1 deletion example/ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1430;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1510"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
14 changes: 9 additions & 5 deletions ios/TalsecRuntime.xcframework/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,35 @@
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>TalsecRuntime.framework/TalsecRuntime</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>TalsecRuntime.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>TalsecRuntime.framework/TalsecRuntime</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>TalsecRuntime.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
Expand Down
Binary file modified ios/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory
Binary file not shown.
Binary file modified ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1
Binary file not shown.
Loading

0 comments on commit c7377a8

Please sign in to comment.