freerasp-react-native 3.7.2 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +10 -0
- package/android/build.gradle +2 -1
- package/android/proguard-rules.pro +1 -0
- package/android/src/main/java/com/freeraspreactnative/FreeraspThreatHandler.kt +8 -0
- package/android/src/main/java/com/freeraspreactnative/Threat.kt +5 -2
- package/example/index.d.ts +1 -0
- package/example/ios/FreeraspReactNativeExample.xcodeproj/project.pbxproj +15 -0
- package/example/package.json +8 -3
- package/example/src/App.tsx +18 -0
- package/example/src/checks.ts +10 -6
- package/example/yarn.lock +1167 -1770
- package/ios/FreeraspReactNative.swift +23 -18
- package/ios/TalsecRuntime.xcframework/Info.plist +5 -5
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeResources +93 -93
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeSignature +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +7 -7
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +4 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.abi.json +214 -77
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +1 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +1 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/cacert.pem +909 -464
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +2 -2
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +7 -7
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +4 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.abi.json +214 -77
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +1 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +214 -77
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +1 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/_CodeSignature/CodeResources +35 -35
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/cacert.pem +909 -464
- package/lib/commonjs/definitions.js +3 -1
- package/lib/commonjs/definitions.js.map +1 -1
- package/lib/commonjs/index.js +7 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/definitions.js +3 -1
- package/lib/module/definitions.js.map +1 -1
- package/lib/module/index.js +7 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/plugin/src/index.d.ts +1 -1
- package/lib/typescript/plugin/src/index.d.ts.map +1 -1
- package/lib/typescript/src/definitions.d.ts +4 -0
- package/lib/typescript/src/definitions.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +8 -17
- package/plugin/build/index.d.ts +1 -1
- package/src/definitions.ts +7 -0
- package/src/index.tsx +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# freeRASP 3.8.0
|
|
2
|
+
|
|
3
|
+
- ⚡ Added new threat `systemVPN` for VPN detection
|
|
4
|
+
- 📄 Documentation updates
|
|
5
|
+
|
|
6
|
+
### Android
|
|
7
|
+
|
|
8
|
+
- ⚡ Added new threat `devMode` for Developer mode detection
|
|
9
|
+
- ⚡ Enhanced and accelerated the data collection logic
|
|
10
|
+
- ⚡ Fixed proguard warning in specific versions of RN
|
|
11
|
+
- ⚡ Fixed issue with Arabic alphabet in logs caused by the device’s default system locale
|
|
12
|
+
- ✔️ Increased the version of the GMS dependency
|
|
13
|
+
- ✔️ Updated CA bundle
|
|
14
|
+
|
|
15
|
+
### iOS
|
|
16
|
+
- ⚡ Fixed issue with Arabic alphabet in logs caused by the device’s default system locale
|
|
17
|
+
- ⚡ Passcode check is now periodical
|
|
18
|
+
- ✔️ Updated CA bundle
|
|
19
|
+
|
|
1
20
|
# freeRASP 3.7.2
|
|
2
21
|
|
|
3
22
|
- ⚡ Update expo config plugin to fix release build issue in RN 0.73
|
package/README.md
CHANGED
|
@@ -222,6 +222,10 @@ const actions = {
|
|
|
222
222
|
console.log('secureHardwareNotAvailable');
|
|
223
223
|
},
|
|
224
224
|
// Android & iOS
|
|
225
|
+
systemVPN: () => {
|
|
226
|
+
console.log('systemVPN');
|
|
227
|
+
},
|
|
228
|
+
// Android & iOS
|
|
225
229
|
passcode: () => {
|
|
226
230
|
console.log('passcode');
|
|
227
231
|
},
|
|
@@ -233,6 +237,10 @@ const actions = {
|
|
|
233
237
|
obfuscationIssues: () => {
|
|
234
238
|
console.log('obfuscationIssues');
|
|
235
239
|
},
|
|
240
|
+
// Android only
|
|
241
|
+
devMode: () => {
|
|
242
|
+
console.log('devMode');
|
|
243
|
+
},
|
|
236
244
|
};
|
|
237
245
|
|
|
238
246
|
useFreeRasp(config, actions);
|
|
@@ -507,6 +515,8 @@ freeRASP is freemium software i.e. there is a Fair Usage Policy (FUP) that impos
|
|
|
507
515
|
<li>Screen lock control</li>
|
|
508
516
|
<li>Google Play Services enabled/disabled</li>
|
|
509
517
|
<li>Last security patch update</li>
|
|
518
|
+
<li>System VPN control</li>
|
|
519
|
+
<li>Developer mode control</li>
|
|
510
520
|
</ul>
|
|
511
521
|
</td>
|
|
512
522
|
<td>yes</td>
|
package/android/build.gradle
CHANGED
|
@@ -48,6 +48,7 @@ android {
|
|
|
48
48
|
buildTypes {
|
|
49
49
|
release {
|
|
50
50
|
minifyEnabled true
|
|
51
|
+
proguardFiles "proguard-rules.pro"
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
|
|
@@ -86,7 +87,7 @@ dependencies {
|
|
|
86
87
|
//noinspection GradleDynamicVersion
|
|
87
88
|
implementation "com.facebook.react:react-native:$react_native_version"
|
|
88
89
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
89
|
-
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-ReactNative:9.
|
|
90
|
+
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-ReactNative:9.6.0"
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
if (isNewArchitectureEnabled()) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
-dontwarn java.lang.invoke.StringConcatFactory
|
|
@@ -46,6 +46,14 @@ internal object FreeraspThreatHandler : ThreatListener.ThreatDetected, ThreatLis
|
|
|
46
46
|
listener?.threatDetected(Threat.SecureHardwareNotAvailable)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
override fun onDeveloperModeDetected() {
|
|
50
|
+
listener?.threatDetected(Threat.DevMode)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
override fun onSystemVPNDetected() {
|
|
54
|
+
listener?.threatDetected(Threat.SystemVPN)
|
|
55
|
+
}
|
|
56
|
+
|
|
49
57
|
internal interface TalsecReactNative {
|
|
50
58
|
fun threatDetected(threatType: Threat)
|
|
51
59
|
}
|
|
@@ -21,6 +21,8 @@ internal sealed class Threat(val value: Int) {
|
|
|
21
21
|
object DeviceBinding : Threat((10000..999999999).random())
|
|
22
22
|
object UnofficialStore : Threat((10000..999999999).random())
|
|
23
23
|
object ObfuscationIssues : Threat((10000..999999999).random())
|
|
24
|
+
object SystemVPN : Threat((10000..999999999).random())
|
|
25
|
+
object DevMode : Threat((10000..999999999).random())
|
|
24
26
|
|
|
25
27
|
companion object {
|
|
26
28
|
internal fun getThreatValues(): WritableArray {
|
|
@@ -33,12 +35,13 @@ internal sealed class Threat(val value: Int) {
|
|
|
33
35
|
Passcode.value,
|
|
34
36
|
Simulator.value,
|
|
35
37
|
SecureHardwareNotAvailable.value,
|
|
38
|
+
SystemVPN.value,
|
|
36
39
|
DeviceBinding.value,
|
|
37
40
|
UnofficialStore.value,
|
|
38
|
-
ObfuscationIssues.value
|
|
41
|
+
ObfuscationIssues.value,
|
|
42
|
+
DevMode.value
|
|
39
43
|
)
|
|
40
44
|
)
|
|
41
|
-
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module '*.png';
|
|
@@ -582,6 +582,7 @@
|
|
|
582
582
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
583
583
|
"DEBUG=1",
|
|
584
584
|
"$(inherited)",
|
|
585
|
+
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
|
|
585
586
|
);
|
|
586
587
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
|
587
588
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
@@ -608,6 +609,11 @@
|
|
|
608
609
|
"-DFOLLY_MOBILE=1",
|
|
609
610
|
"-DFOLLY_USE_LIBCPP=1",
|
|
610
611
|
);
|
|
612
|
+
OTHER_LDFLAGS = (
|
|
613
|
+
"$(inherited)",
|
|
614
|
+
"-Wl",
|
|
615
|
+
"-ld_classic",
|
|
616
|
+
);
|
|
611
617
|
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
|
612
618
|
SDKROOT = iphoneos;
|
|
613
619
|
};
|
|
@@ -649,6 +655,10 @@
|
|
|
649
655
|
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
|
|
650
656
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
651
657
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
658
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
659
|
+
"$(inherited)",
|
|
660
|
+
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
|
|
661
|
+
);
|
|
652
662
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
653
663
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
654
664
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
@@ -672,6 +682,11 @@
|
|
|
672
682
|
"-DFOLLY_MOBILE=1",
|
|
673
683
|
"-DFOLLY_USE_LIBCPP=1",
|
|
674
684
|
);
|
|
685
|
+
OTHER_LDFLAGS = (
|
|
686
|
+
"$(inherited)",
|
|
687
|
+
"-Wl",
|
|
688
|
+
"-ld_classic",
|
|
689
|
+
);
|
|
675
690
|
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
|
676
691
|
SDKROOT = iphoneos;
|
|
677
692
|
VALIDATE_PRODUCT = YES;
|
package/example/package.json
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
"android": "react-native run-android",
|
|
7
7
|
"ios": "react-native run-ios",
|
|
8
8
|
"start": "react-native start",
|
|
9
|
-
"pods": "pod-install --quiet"
|
|
9
|
+
"pods": "pod-install --quiet",
|
|
10
|
+
"build:android": "cd android && ./gradlew assembleDebug --no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a",
|
|
11
|
+
"build:ios": "cd ios && xcodebuild -workspace FreeraspReactNativeExample.xcworkspace -scheme FreeraspReactNativeExample -configuration Debug -sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO"
|
|
10
12
|
},
|
|
11
13
|
"dependencies": {
|
|
12
14
|
"@react-native-material/core": "^1.3.7",
|
|
@@ -15,10 +17,13 @@
|
|
|
15
17
|
"react-native-svg": "^13.8.0"
|
|
16
18
|
},
|
|
17
19
|
"devDependencies": {
|
|
18
|
-
"@babel/core": "^7.
|
|
20
|
+
"@babel/core": "^7.24.4",
|
|
19
21
|
"@babel/runtime": "^7.24.1",
|
|
20
|
-
"babel-plugin-module-resolver": "^
|
|
22
|
+
"babel-plugin-module-resolver": "^5.0.0",
|
|
21
23
|
"metro-react-native-babel-preset": "0.72.3",
|
|
22
24
|
"react-native-svg-transformer": "^1.0.0"
|
|
25
|
+
},
|
|
26
|
+
"resolutions": {
|
|
27
|
+
"react-devtools-core": "^4.28.4"
|
|
23
28
|
}
|
|
24
29
|
}
|
package/example/src/App.tsx
CHANGED
|
@@ -101,6 +101,14 @@ const App = () => {
|
|
|
101
101
|
);
|
|
102
102
|
},
|
|
103
103
|
// Android & iOS
|
|
104
|
+
systemVPN: () => {
|
|
105
|
+
setAppChecks((currentState) =>
|
|
106
|
+
currentState.map((threat) =>
|
|
107
|
+
threat.name === 'System VPN' ? { ...threat, status: 'nok' } : threat
|
|
108
|
+
)
|
|
109
|
+
);
|
|
110
|
+
},
|
|
111
|
+
// Android & iOS
|
|
104
112
|
passcode: () => {
|
|
105
113
|
setAppChecks((currentState) =>
|
|
106
114
|
currentState.map((threat) =>
|
|
@@ -126,6 +134,16 @@ const App = () => {
|
|
|
126
134
|
)
|
|
127
135
|
);
|
|
128
136
|
},
|
|
137
|
+
// Android only
|
|
138
|
+
devMode: () => {
|
|
139
|
+
setAppChecks((currentState) =>
|
|
140
|
+
currentState.map((threat) =>
|
|
141
|
+
threat.name === 'Developer Mode'
|
|
142
|
+
? { ...threat, status: 'nok' }
|
|
143
|
+
: threat
|
|
144
|
+
)
|
|
145
|
+
);
|
|
146
|
+
},
|
|
129
147
|
};
|
|
130
148
|
|
|
131
149
|
useFreeRasp(config, actions);
|
package/example/src/checks.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
export const commonChecks = [
|
|
2
|
+
{ name: 'App Integrity', status: 'ok' },
|
|
2
3
|
{ name: 'Privileged Access', status: 'ok' },
|
|
3
4
|
{ name: 'Debug', status: 'ok' },
|
|
4
|
-
{ name: 'Simulator', status: 'ok' },
|
|
5
|
-
{ name: 'App Integrity', status: 'ok' },
|
|
6
|
-
{ name: 'Unofficial Store', status: 'ok' },
|
|
7
5
|
{ name: 'Hooks', status: 'ok' },
|
|
8
|
-
{ name: 'Device Binding', status: 'ok' },
|
|
9
|
-
{ name: 'Secure Hardware Not Available', status: 'ok' },
|
|
10
6
|
{ name: 'Passcode', status: 'ok' },
|
|
7
|
+
{ name: 'Simulator', status: 'ok' },
|
|
8
|
+
{ name: 'Secure Hardware Not Available', status: 'ok' },
|
|
9
|
+
{ name: 'System VPN', status: 'ok' },
|
|
10
|
+
{ name: 'Device Binding', status: 'ok' },
|
|
11
|
+
{ name: 'Unofficial Store', status: 'ok' },
|
|
11
12
|
];
|
|
12
13
|
|
|
13
14
|
export const iosChecks = [{ name: 'Device ID', status: 'ok' }];
|
|
14
15
|
|
|
15
|
-
export const androidChecks = [
|
|
16
|
+
export const androidChecks = [
|
|
17
|
+
{ name: 'Obfuscation Issues', status: 'ok' },
|
|
18
|
+
{ name: 'Developer Mode', status: 'ok' },
|
|
19
|
+
];
|