react-native-device-defense 1.0.1 → 1.0.3

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.
Files changed (37) hide show
  1. package/README.md +92 -1
  2. package/android/build.gradle +1 -1
  3. package/android/proguard-rules.pro +13 -7
  4. package/android/src/main/AndroidManifest.xml +1 -1
  5. package/android/src/main/cpp/device-security.cpp +281 -7
  6. package/android/src/main/java/com/devicedefense/DeviceSecurityModule.kt +126 -2
  7. package/android/src/main/java/com/devicedefense/EmulatorDetection.kt +29 -18
  8. package/android/src/main/java/com/devicedefense/NativeSecurityCheck.kt +43 -1
  9. package/android/test-gradle.gradle +3 -0
  10. package/lib/commonjs/NativeDeviceSecurity.js.map +1 -1
  11. package/lib/commonjs/api.js +137 -2
  12. package/lib/commonjs/api.js.map +1 -1
  13. package/lib/commonjs/components/SecurityBlockedScreen.js +12 -2
  14. package/lib/commonjs/components/SecurityBlockedScreen.js.map +1 -1
  15. package/lib/commonjs/hooks/useDeviceSecurity.js +13 -7
  16. package/lib/commonjs/hooks/useDeviceSecurity.js.map +1 -1
  17. package/lib/module/NativeDeviceSecurity.js.map +1 -1
  18. package/lib/module/api.js +137 -2
  19. package/lib/module/api.js.map +1 -1
  20. package/lib/module/components/SecurityBlockedScreen.js +12 -2
  21. package/lib/module/components/SecurityBlockedScreen.js.map +1 -1
  22. package/lib/module/hooks/useDeviceSecurity.js +14 -8
  23. package/lib/module/hooks/useDeviceSecurity.js.map +1 -1
  24. package/lib/typescript/NativeDeviceSecurity.d.ts +7 -0
  25. package/lib/typescript/NativeDeviceSecurity.d.ts.map +1 -1
  26. package/lib/typescript/api.d.ts +29 -1
  27. package/lib/typescript/api.d.ts.map +1 -1
  28. package/lib/typescript/components/SecurityBlockedScreen.d.ts.map +1 -1
  29. package/lib/typescript/hooks/useDeviceSecurity.d.ts.map +1 -1
  30. package/lib/typescript/types.d.ts +30 -1
  31. package/lib/typescript/types.d.ts.map +1 -1
  32. package/package.json +4 -2
  33. package/src/NativeDeviceSecurity.ts +9 -0
  34. package/src/api.ts +143 -0
  35. package/src/components/SecurityBlockedScreen.tsx +10 -0
  36. package/src/hooks/useDeviceSecurity.ts +14 -11
  37. package/src/types.ts +36 -1
package/lib/module/api.js CHANGED
@@ -44,7 +44,13 @@ class DeviceSecurity {
44
44
  hasXposed: false,
45
45
  hasMagisk: false,
46
46
  isDebuggable: false,
47
- isEmulator: false
47
+ isEmulator: false,
48
+ hasSSLValidationBypass: false,
49
+ hasSSLPinningBypass: false,
50
+ hasProxyConfiguration: false,
51
+ hasModifiedSSLLibraries: false,
52
+ hasCertificateTampering: false,
53
+ hasSSLSecurityIssue: false
48
54
  };
49
55
  }
50
56
  try {
@@ -56,6 +62,37 @@ class DeviceSecurity {
56
62
  }
57
63
  }
58
64
 
65
+ /**
66
+ * Get detailed SSL security status
67
+ */
68
+ async getSSLSecurityStatus() {
69
+ if (Platform.OS !== 'android') {
70
+ // iOS: no-op for now, return secure status
71
+ return {
72
+ hasSSLValidationBypass: false,
73
+ hasSSLPinningBypass: false,
74
+ hasProxyConfiguration: false,
75
+ hasModifiedSSLLibraries: false,
76
+ hasCertificateTampering: false,
77
+ hasSSLSecurityIssue: false
78
+ };
79
+ }
80
+ try {
81
+ const statusJson = await NativeDeviceSecurity.getSSLSecurityStatus();
82
+ return JSON.parse(statusJson);
83
+ } catch (error) {
84
+ console.error('DeviceSecurity: Error getting SSL security status', error);
85
+ return {
86
+ hasSSLValidationBypass: false,
87
+ hasSSLPinningBypass: false,
88
+ hasProxyConfiguration: false,
89
+ hasModifiedSSLLibraries: false,
90
+ hasCertificateTampering: false,
91
+ hasSSLSecurityIssue: false
92
+ };
93
+ }
94
+ }
95
+
59
96
  /**
60
97
  * Check if device is rooted (synchronous, Android only)
61
98
  */
@@ -146,6 +183,98 @@ class DeviceSecurity {
146
183
  }
147
184
  }
148
185
 
186
+ // ===== SSL Security Methods =====
187
+
188
+ /**
189
+ * Check if SSL validation has been bypassed
190
+ */
191
+ hasSSLValidationBypass() {
192
+ if (Platform.OS !== 'android') {
193
+ return false;
194
+ }
195
+ try {
196
+ return NativeDeviceSecurity.hasSSLValidationBypass();
197
+ } catch (error) {
198
+ console.error('DeviceSecurity: Error checking SSL validation bypass', error);
199
+ return false;
200
+ }
201
+ }
202
+
203
+ /**
204
+ * Check if SSL pinning bypass tools are present
205
+ */
206
+ hasSSLPinningBypass() {
207
+ if (Platform.OS !== 'android') {
208
+ return false;
209
+ }
210
+ try {
211
+ return NativeDeviceSecurity.hasSSLPinningBypass();
212
+ } catch (error) {
213
+ console.error('DeviceSecurity: Error checking SSL pinning bypass', error);
214
+ return false;
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Check if proxy is configured (potential MITM)
220
+ */
221
+ hasProxyConfiguration() {
222
+ if (Platform.OS !== 'android') {
223
+ return false;
224
+ }
225
+ try {
226
+ return NativeDeviceSecurity.hasProxyConfiguration();
227
+ } catch (error) {
228
+ console.error('DeviceSecurity: Error checking proxy configuration', error);
229
+ return false;
230
+ }
231
+ }
232
+
233
+ /**
234
+ * Check if SSL libraries have been modified
235
+ */
236
+ hasModifiedSSLLibraries() {
237
+ if (Platform.OS !== 'android') {
238
+ return false;
239
+ }
240
+ try {
241
+ return NativeDeviceSecurity.hasModifiedSSLLibraries();
242
+ } catch (error) {
243
+ console.error('DeviceSecurity: Error checking modified SSL libraries', error);
244
+ return false;
245
+ }
246
+ }
247
+
248
+ /**
249
+ * Check if certificates have been tampered with
250
+ */
251
+ hasCertificateTampering() {
252
+ if (Platform.OS !== 'android') {
253
+ return false;
254
+ }
255
+ try {
256
+ return NativeDeviceSecurity.hasCertificateTampering();
257
+ } catch (error) {
258
+ console.error('DeviceSecurity: Error checking certificate tampering', error);
259
+ return false;
260
+ }
261
+ }
262
+
263
+ /**
264
+ * Comprehensive SSL security check
265
+ */
266
+ hasSSLSecurityIssue() {
267
+ if (Platform.OS !== 'android') {
268
+ return false;
269
+ }
270
+ try {
271
+ return NativeDeviceSecurity.hasSSLSecurityIssue();
272
+ } catch (error) {
273
+ console.error('DeviceSecurity: Error checking SSL security', error);
274
+ return false;
275
+ }
276
+ }
277
+
149
278
  /**
150
279
  * Block app when security threat detected
151
280
  * This will show an alert and potentially exit the app
@@ -194,7 +323,13 @@ class DeviceSecurity {
194
323
  hasXposed: false,
195
324
  hasMagisk: false,
196
325
  isDebuggable: false,
197
- isEmulator: false
326
+ isEmulator: false,
327
+ hasSSLValidationBypass: false,
328
+ hasSSLPinningBypass: false,
329
+ hasProxyConfiguration: false,
330
+ hasModifiedSSLLibraries: false,
331
+ hasCertificateTampering: false,
332
+ hasSSLSecurityIssue: false
198
333
  };
199
334
  }
200
335
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","NativeDeviceSecurity","DeviceSecurity","isDeviceSecure","OS","error","console","getSecurityStatus","isSecure","threats","isRooted","hasRootBeerDetected","hasNativeRootDetected","hasDangerousBins","hasRootApps","hasSystemPropsModified","hasFrida","hasXposed","hasMagisk","isDebuggable","isEmulator","statusJson","JSON","parse","getDefaultSecurityStatus","blockOnSecurityThreat","options","showAlert","alertTitle","alertMessage","alertButtonText","onBlocked","then","status","deviceSecurityInstance"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NativeDeviceSecurity","DeviceSecurity","isDeviceSecure","OS","error","console","getSecurityStatus","isSecure","threats","isRooted","hasRootBeerDetected","hasNativeRootDetected","hasDangerousBins","hasRootApps","hasSystemPropsModified","hasFrida","hasXposed","hasMagisk","isDebuggable","isEmulator","hasSSLValidationBypass","hasSSLPinningBypass","hasProxyConfiguration","hasModifiedSSLLibraries","hasCertificateTampering","hasSSLSecurityIssue","statusJson","JSON","parse","getDefaultSecurityStatus","getSSLSecurityStatus","blockOnSecurityThreat","options","showAlert","alertTitle","alertMessage","alertButtonText","onBlocked","then","status","deviceSecurityInstance"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,oBAAoB,MAAM,wBAAwB;AAQzD;AACA;AACA;AACA,MAAMC,cAAc,CAAC;EACnB;AACF;AACA;EACE,MAAMC,cAAcA,CAAA,EAAqB;IACvC,IAAIH,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B;MACA,OAAO,IAAI;IACb;IAEA,IAAI;MACF,OAAO,MAAMH,oBAAoB,CAACE,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,gDAAgD,EAAEA,KAAK,CAAC;MACtE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACE,MAAME,iBAAiBA,CAAA,EAA4B;IACjD,IAAIP,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B;MACA,OAAO;QACLI,QAAQ,EAAE,IAAI;QACdC,OAAO,EAAE,EAAE;QACXC,QAAQ,EAAE,KAAK;QACfC,mBAAmB,EAAE,KAAK;QAC1BC,qBAAqB,EAAE,KAAK;QAC5BC,gBAAgB,EAAE,KAAK;QACvBC,WAAW,EAAE,KAAK;QAClBC,sBAAsB,EAAE,KAAK;QAC7BC,QAAQ,EAAE,KAAK;QACfC,SAAS,EAAE,KAAK;QAChBC,SAAS,EAAE,KAAK;QAChBC,YAAY,EAAE,KAAK;QACnBC,UAAU,EAAE,KAAK;QACjBC,sBAAsB,EAAE,KAAK;QAC7BC,mBAAmB,EAAE,KAAK;QAC1BC,qBAAqB,EAAE,KAAK;QAC5BC,uBAAuB,EAAE,KAAK;QAC9BC,uBAAuB,EAAE,KAAK;QAC9BC,mBAAmB,EAAE;MACvB,CAAC;IACH;IAEA,IAAI;MACF,MAAMC,UAAU,GAAG,MAAM1B,oBAAoB,CAACM,iBAAiB,CAAC,CAAC;MACjE,OAAOqB,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC;IAC/B,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,+CAA+C,EAAEA,KAAK,CAAC;MACrE,OAAO,IAAI,CAACyB,wBAAwB,CAAC,CAAC;IACxC;EACF;;EAEA;AACF;AACA;EACE,MAAMC,oBAAoBA,CAAA,EAA+B;IACvD,IAAI/B,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B;MACA,OAAO;QACLiB,sBAAsB,EAAE,KAAK;QAC7BC,mBAAmB,EAAE,KAAK;QAC1BC,qBAAqB,EAAE,KAAK;QAC5BC,uBAAuB,EAAE,KAAK;QAC9BC,uBAAuB,EAAE,KAAK;QAC9BC,mBAAmB,EAAE;MACvB,CAAC;IACH;IAEA,IAAI;MACF,MAAMC,UAAU,GAAG,MAAM1B,oBAAoB,CAAC8B,oBAAoB,CAAC,CAAC;MACpE,OAAOH,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC;IAC/B,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,mDAAmD,EAAEA,KAAK,CAAC;MACzE,OAAO;QACLgB,sBAAsB,EAAE,KAAK;QAC7BC,mBAAmB,EAAE,KAAK;QAC1BC,qBAAqB,EAAE,KAAK;QAC5BC,uBAAuB,EAAE,KAAK;QAC9BC,uBAAuB,EAAE,KAAK;QAC9BC,mBAAmB,EAAE;MACvB,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACEhB,QAAQA,CAAA,EAAY;IAClB,IAAIV,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACS,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,OAAOL,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,4CAA4C,EAAEA,KAAK,CAAC;MAClE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEW,QAAQA,CAAA,EAAY;IAClB,IAAIhB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACe,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,OAAOX,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,sCAAsC,EAAEA,KAAK,CAAC;MAC5D,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEY,SAASA,CAAA,EAAY;IACnB,IAAIjB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACgB,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;MAC7D,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEa,SAASA,CAAA,EAAY;IACnB,IAAIlB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACiB,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,OAAOb,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;MAC7D,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEc,YAAYA,CAAA,EAAY;IACtB,IAAInB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACkB,YAAY,CAAC,CAAC;IAC5C,CAAC,CAAC,OAAOd,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,2CAA2C,EAAEA,KAAK,CAAC;MACjE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEe,UAAUA,CAAA,EAAY;IACpB,IAAIpB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACmB,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,OAAOf,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,yCAAyC,EAAEA,KAAK,CAAC;MAC/D,OAAO,KAAK;IACd;EACF;;EAEA;;EAEA;AACF;AACA;EACEgB,sBAAsBA,CAAA,EAAY;IAChC,IAAIrB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACoB,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,OAAOhB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,sDAAsD,EAAEA,KAAK,CAAC;MAC5E,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEiB,mBAAmBA,CAAA,EAAY;IAC7B,IAAItB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACqB,mBAAmB,CAAC,CAAC;IACnD,CAAC,CAAC,OAAOjB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,mDAAmD,EAAEA,KAAK,CAAC;MACzE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEkB,qBAAqBA,CAAA,EAAY;IAC/B,IAAIvB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACsB,qBAAqB,CAAC,CAAC;IACrD,CAAC,CAAC,OAAOlB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,oDAAoD,EAAEA,KAAK,CAAC;MAC1E,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEmB,uBAAuBA,CAAA,EAAY;IACjC,IAAIxB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACuB,uBAAuB,CAAC,CAAC;IACvD,CAAC,CAAC,OAAOnB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uDAAuD,EAAEA,KAAK,CAAC;MAC7E,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEoB,uBAAuBA,CAAA,EAAY;IACjC,IAAIzB,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACwB,uBAAuB,CAAC,CAAC;IACvD,CAAC,CAAC,OAAOpB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,sDAAsD,EAAEA,KAAK,CAAC;MAC5E,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACEqB,mBAAmBA,CAAA,EAAY;IAC7B,IAAI1B,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,KAAK;IACd;IAEA,IAAI;MACF,OAAOH,oBAAoB,CAACyB,mBAAmB,CAAC,CAAC;IACnD,CAAC,CAAC,OAAOrB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6CAA6C,EAAEA,KAAK,CAAC;MACnE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;EACE2B,qBAAqBA,CAACC,OAAqC,GAAG,CAAC,CAAC,EAAQ;IACtE,IAAIjC,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;MAC7B;IACF;IAEA,MAAM;MACJ8B,SAAS,GAAG,IAAI;MAChBC,UAAU,GAAG,kBAAkB;MAC/BC,YAAY,GAAG,8EAA8E;MAC7FC,eAAe,GAAG,IAAI;MACtBC;IACF,CAAC,GAAGL,OAAO;IAEX,IAAI;MACFhC,oBAAoB,CAAC+B,qBAAqB,CACxCE,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,eACF,CAAC;;MAED;MACA,IAAIC,SAAS,EAAE;QACb;QACA,IAAI,CAAC/B,iBAAiB,CAAC,CAAC,CAACgC,IAAI,CAACC,MAAM,IAAI;UACtCF,SAAS,CAACE,MAAM,CAAC;QACnB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,OAAOnC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,mDAAmD,EAAEA,KAAK,CAAC;IAC3E;EACF;;EAEA;AACF;AACA;EACUyB,wBAAwBA,CAAA,EAAmB;IACjD,OAAO;MACLtB,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,CAAC,mBAAmB,CAAC;MAAE;MAChCC,QAAQ,EAAE,KAAK;MACfC,mBAAmB,EAAE,KAAK;MAC1BC,qBAAqB,EAAE,KAAK;MAC5BC,gBAAgB,EAAE,KAAK;MACvBC,WAAW,EAAE,KAAK;MAClBC,sBAAsB,EAAE,KAAK;MAC7BC,QAAQ,EAAE,KAAK;MACfC,SAAS,EAAE,KAAK;MAChBC,SAAS,EAAE,KAAK;MAChBC,YAAY,EAAE,KAAK;MACnBC,UAAU,EAAE,KAAK;MACjBC,sBAAsB,EAAE,KAAK;MAC7BC,mBAAmB,EAAE,KAAK;MAC1BC,qBAAqB,EAAE,KAAK;MAC5BC,uBAAuB,EAAE,KAAK;MAC9BC,uBAAuB,EAAE,KAAK;MAC9BC,mBAAmB,EAAE;IACvB,CAAC;EACH;AACF;;AAEA;AACA,MAAMe,sBAAsB,GAAG,IAAIvC,cAAc,CAAC,CAAC;AACnD,eAAeuC,sBAAsB;AACrC,SAASvC,cAAc","ignoreList":[]}
@@ -17,7 +17,12 @@ const THREAT_TITLES = {
17
17
  xposed_detected: 'Phát hiện Xposed Framework',
18
18
  magisk_detected: 'Phát hiện Magisk',
19
19
  debugger_detected: 'Phát hiện Debugger',
20
- emulator_detected: 'Phát hiện Bộ giả lập'
20
+ emulator_detected: 'Phát hiện Bộ giả lập',
21
+ ssl_validation_bypass: 'SSL Validation bị bypass',
22
+ ssl_pinning_bypass: 'SSL Pinning bị bypass',
23
+ proxy_configuration: 'Phát hiện Proxy (MITM)',
24
+ modified_ssl_libraries: 'SSL Library đã sửa đổi',
25
+ certificate_tampering: 'Certificate bị can thiệp'
21
26
  };
22
27
  const THREAT_DESCRIPTIONS = {
23
28
  root_detected: 'Thiết bị của bạn đã được root, làm giảm tính bảo mật của ứng dụng.',
@@ -30,7 +35,12 @@ const THREAT_DESCRIPTIONS = {
30
35
  xposed_detected: 'Phát hiện Xposed Framework - có thể can thiệp vào ứng dụng.',
31
36
  magisk_detected: 'Phát hiện Magisk - công cụ root ẩn danh.',
32
37
  debugger_detected: 'Phát hiện debugger đang gắn vào ứng dụng.',
33
- emulator_detected: 'Ứng dụng đang chạy trên bộ giả lập, không an toàn cho môi trường production.'
38
+ emulator_detected: 'Ứng dụng đang chạy trên bộ giả lập, không an toàn cho môi trường production.',
39
+ ssl_validation_bypass: 'SSL certificate validation đã bị bypass, kết nối có thể không an toàn.',
40
+ ssl_pinning_bypass: 'Phát hiện công cụ SSL pinning bypass (Frida, Xposed...) - tấn công MITM có thể xảy ra.',
41
+ proxy_configuration: 'Phát hiện cấu hình proxy - có thể là dấu hiệu của tấn công MITM.',
42
+ modified_ssl_libraries: 'SSL libraries đã bị sửa đổi - có thể dẫn đến kết nối không an toàn.',
43
+ certificate_tampering: 'Phát hiện certificate đã bị can thiệp - kết nối có thể bị theo dõi.'
34
44
  };
35
45
 
36
46
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","ScrollView","SafeAreaView","THREAT_TITLES","root_detected","root_beer_detected","native_root_detected","dangerous_bins_detected","root_apps_detected","system_props_modified","frida_detected","xposed_detected","magisk_detected","debugger_detected","emulator_detected","THREAT_DESCRIPTIONS","SecurityBlockedScreen","threats","title","message","icon","createElement","style","styles","container","contentContainerStyle","scrollContent","bounces","iconContainer","length","Fragment","threatsTitle","threatsList","map","threat","key","threatItem","bullet","threatContent","threatTitle","threatDescription","footer","footerText","create","flex","backgroundColor","padding","alignItems","width","height","borderRadius","justifyContent","marginBottom","fontSize","fontWeight","color","textAlign","lineHeight","alignSelf","flexDirection","borderLeftWidth","borderLeftColor","marginTop","marginRight","paddingTop","borderTopWidth","borderTopColor"],"sourceRoot":"../../../src","sources":["components/SecurityBlockedScreen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","ScrollView","SafeAreaView","THREAT_TITLES","root_detected","root_beer_detected","native_root_detected","dangerous_bins_detected","root_apps_detected","system_props_modified","frida_detected","xposed_detected","magisk_detected","debugger_detected","emulator_detected","ssl_validation_bypass","ssl_pinning_bypass","proxy_configuration","modified_ssl_libraries","certificate_tampering","THREAT_DESCRIPTIONS","SecurityBlockedScreen","threats","title","message","icon","createElement","style","styles","container","contentContainerStyle","scrollContent","bounces","iconContainer","length","Fragment","threatsTitle","threatsList","map","threat","key","threatItem","bullet","threatContent","threatTitle","threatDescription","footer","footerText","create","flex","backgroundColor","padding","alignItems","width","height","borderRadius","justifyContent","marginBottom","fontSize","fontWeight","color","textAlign","lineHeight","alignSelf","flexDirection","borderLeftWidth","borderLeftColor","marginTop","marginRight","paddingTop","borderTopWidth","borderTopColor"],"sourceRoot":"../../../src","sources":["components/SecurityBlockedScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,20 +2,23 @@
2
2
  * React hook for device security
3
3
  */
4
4
 
5
- import { useCallback, useEffect, useState } from 'react';
5
+ import { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { Platform } from 'react-native';
7
7
  import deviceSecurity from '../api';
8
8
  export function useDeviceSecurity(options = {}) {
9
9
  const {
10
- onSecurityThreat,
11
- blockOnThreat = false,
12
- blockOptions,
13
10
  checkInterval = 0
14
11
  } = options;
15
12
  const [isSecure, setIsSecure] = useState(null);
16
13
  const [isLoading, setIsLoading] = useState(true);
17
14
  const [securityStatus, setSecurityStatus] = useState(null);
18
15
  const [error, setError] = useState(null);
16
+
17
+ // Use refs for options to avoid infinite loops when inline objects/functions are passed
18
+ const optionsRef = useRef(options);
19
+ useEffect(() => {
20
+ optionsRef.current = options;
21
+ }, [options]);
19
22
  const checkSecurity = useCallback(async () => {
20
23
  if (Platform.OS !== 'android') {
21
24
  setIsSecure(true);
@@ -31,14 +34,17 @@ export function useDeviceSecurity(options = {}) {
31
34
 
32
35
  // Handle security threats
33
36
  if (!status.isSecure) {
37
+ const currentOptions = optionsRef.current;
38
+
34
39
  // Call callback for each threat
35
40
  for (const threat of status.threats) {
36
- onSecurityThreat === null || onSecurityThreat === void 0 || onSecurityThreat(threat, status);
41
+ var _currentOptions$onSec;
42
+ (_currentOptions$onSec = currentOptions.onSecurityThreat) === null || _currentOptions$onSec === void 0 || _currentOptions$onSec.call(currentOptions, threat, status);
37
43
  }
38
44
 
39
45
  // Block if requested
40
- if (blockOnThreat) {
41
- deviceSecurity.blockOnSecurityThreat(blockOptions);
46
+ if (currentOptions.blockOnThreat) {
47
+ deviceSecurity.blockOnSecurityThreat(currentOptions.blockOptions);
42
48
  }
43
49
  }
44
50
  } catch (err) {
@@ -48,7 +54,7 @@ export function useDeviceSecurity(options = {}) {
48
54
  } finally {
49
55
  setIsLoading(false);
50
56
  }
51
- }, [onSecurityThreat, blockOnThreat, blockOptions]);
57
+ }, []);
52
58
  const recheck = useCallback(async () => {
53
59
  await checkSecurity();
54
60
  }, [checkSecurity]);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","Platform","deviceSecurity","useDeviceSecurity","options","onSecurityThreat","blockOnThreat","blockOptions","checkInterval","isSecure","setIsSecure","isLoading","setIsLoading","securityStatus","setSecurityStatus","error","setError","checkSecurity","OS","status","getSecurityStatus","threat","threats","blockOnSecurityThreat","err","errorObj","Error","recheck","intervalId","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["hooks/useDeviceSecurity.ts"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACxD,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,cAAc,MAAM,QAAQ;AAOnC,OAAO,SAASC,iBAAiBA,CAC/BC,OAAiC,GAAG,CAAC,CAAC,EACb;EACzB,MAAM;IACJC,gBAAgB;IAChBC,aAAa,GAAG,KAAK;IACrBC,YAAY;IACZC,aAAa,GAAG;EAClB,CAAC,GAAGJ,OAAO;EAEX,MAAM,CAACK,QAAQ,EAAEC,WAAW,CAAC,GAAGV,QAAQ,CAAiB,IAAI,CAAC;EAC9D,MAAM,CAACW,SAAS,EAAEC,YAAY,CAAC,GAAGZ,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACa,cAAc,EAAEC,iBAAiB,CAAC,GAAGd,QAAQ,CAClD,IACF,CAAC;EACD,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAe,IAAI,CAAC;EAEtD,MAAMiB,aAAa,GAAGnB,WAAW,CAAC,YAAY;IAC5C,IAAIG,QAAQ,CAACiB,EAAE,KAAK,SAAS,EAAE;MAC7BR,WAAW,CAAC,IAAI,CAAC;MACjBE,YAAY,CAAC,KAAK,CAAC;MACnB;IACF;IAEA,IAAI;MACFA,YAAY,CAAC,IAAI,CAAC;MAClBI,QAAQ,CAAC,IAAI,CAAC;MAEd,MAAMG,MAAM,GAAG,MAAMjB,cAAc,CAACkB,iBAAiB,CAAC,CAAC;MACvDN,iBAAiB,CAACK,MAAM,CAAC;MACzBT,WAAW,CAACS,MAAM,CAACV,QAAQ,CAAC;;MAE5B;MACA,IAAI,CAACU,MAAM,CAACV,QAAQ,EAAE;QACpB;QACA,KAAK,MAAMY,MAAM,IAAIF,MAAM,CAACG,OAAO,EAAE;UACnCjB,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAGgB,MAAM,EAAEF,MAAM,CAAC;QACpC;;QAEA;QACA,IAAIb,aAAa,EAAE;UACjBJ,cAAc,CAACqB,qBAAqB,CAAChB,YAAY,CAAC;QACpD;MACF;IACF,CAAC,CAAC,OAAOiB,GAAG,EAAE;MACZ,MAAMC,QAAQ,GACZD,GAAG,YAAYE,KAAK,GAAGF,GAAG,GAAG,IAAIE,KAAK,CAAC,uBAAuB,CAAC;MACjEV,QAAQ,CAACS,QAAQ,CAAC;MAClBf,WAAW,CAAC,KAAK,CAAC;IACpB,CAAC,SAAS;MACRE,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACP,gBAAgB,EAAEC,aAAa,EAAEC,YAAY,CAAC,CAAC;EAEnD,MAAMoB,OAAO,GAAG7B,WAAW,CAAC,YAAY;IACtC,MAAMmB,aAAa,CAAC,CAAC;EACvB,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnBlB,SAAS,CAAC,MAAM;IACdkB,aAAa,CAAC,CAAC;;IAEf;IACA,IAAIT,aAAa,GAAG,CAAC,EAAE;MACrB,MAAMoB,UAAU,GAAGC,WAAW,CAACZ,aAAa,EAAET,aAAa,CAAC;MAC5D,OAAO,MAAMsB,aAAa,CAACF,UAAU,CAAC;IACxC;EACF,CAAC,EAAE,CAACX,aAAa,EAAET,aAAa,CAAC,CAAC;EAElC,OAAO;IACLC,QAAQ;IACRE,SAAS;IACTE,cAAc;IACdE,KAAK;IACLY;EACF,CAAC;AACH;AAEA,eAAexB,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Platform","deviceSecurity","useDeviceSecurity","options","checkInterval","isSecure","setIsSecure","isLoading","setIsLoading","securityStatus","setSecurityStatus","error","setError","optionsRef","current","checkSecurity","OS","status","getSecurityStatus","currentOptions","threat","threats","_currentOptions$onSec","onSecurityThreat","call","blockOnThreat","blockOnSecurityThreat","blockOptions","err","errorObj","Error","recheck","intervalId","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["hooks/useDeviceSecurity.ts"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,13 @@ export interface Spec extends TurboModule {
7
7
  hasMagisk(): boolean;
8
8
  isDebuggable(): boolean;
9
9
  isEmulator(): boolean;
10
+ hasSSLValidationBypass(): boolean;
11
+ hasSSLPinningBypass(): boolean;
12
+ hasProxyConfiguration(): boolean;
13
+ hasModifiedSSLLibraries(): boolean;
14
+ hasCertificateTampering(): boolean;
15
+ hasSSLSecurityIssue(): boolean;
16
+ getSSLSecurityStatus(): Promise<string>;
10
17
  getSecurityStatus(): Promise<string>;
11
18
  isDeviceSecure(): Promise<boolean>;
12
19
  blockOnSecurityThreat(showAlert: boolean, alertTitle: string, alertMessage: string, alertButtonText: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeDeviceSecurity.d.ts","sourceRoot":"","sources":["../../src/NativeDeviceSecurity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,QAAQ,IAAI,OAAO,CAAC;IACpB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAGvC,QAAQ,IAAI,OAAO,CAAC;IACpB,SAAS,IAAI,OAAO,CAAC;IACrB,SAAS,IAAI,OAAO,CAAC;IAGrB,YAAY,IAAI,OAAO,CAAC;IAGxB,UAAU,IAAI,OAAO,CAAC;IAGtB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAGnC,qBAAqB,CACnB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,IAAI,CAAC;CACT;;AAED,wBAAwE"}
1
+ {"version":3,"file":"NativeDeviceSecurity.d.ts","sourceRoot":"","sources":["../../src/NativeDeviceSecurity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,QAAQ,IAAI,OAAO,CAAC;IACpB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAGvC,QAAQ,IAAI,OAAO,CAAC;IACpB,SAAS,IAAI,OAAO,CAAC;IACrB,SAAS,IAAI,OAAO,CAAC;IAGrB,YAAY,IAAI,OAAO,CAAC;IAGxB,UAAU,IAAI,OAAO,CAAC;IAGtB,sBAAsB,IAAI,OAAO,CAAC;IAClC,mBAAmB,IAAI,OAAO,CAAC;IAC/B,qBAAqB,IAAI,OAAO,CAAC;IACjC,uBAAuB,IAAI,OAAO,CAAC;IACnC,uBAAuB,IAAI,OAAO,CAAC;IACnC,mBAAmB,IAAI,OAAO,CAAC;IAC/B,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAGxC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAGnC,qBAAqB,CACnB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,IAAI,CAAC;CACT;;AAED,wBAAwE"}
@@ -2,7 +2,7 @@
2
2
  * DeviceSecurity API
3
3
  * Main singleton class for device security checks
4
4
  */
5
- import type { BlockOnSecurityThreatOptions, SecurityStatus } from './types';
5
+ import type { BlockOnSecurityThreatOptions, SecurityStatus, SSLSecurityStatus } from './types';
6
6
  /**
7
7
  * Main DeviceSecurity API class
8
8
  */
@@ -15,6 +15,10 @@ declare class DeviceSecurity {
15
15
  * Get detailed security status
16
16
  */
17
17
  getSecurityStatus(): Promise<SecurityStatus>;
18
+ /**
19
+ * Get detailed SSL security status
20
+ */
21
+ getSSLSecurityStatus(): Promise<SSLSecurityStatus>;
18
22
  /**
19
23
  * Check if device is rooted (synchronous, Android only)
20
24
  */
@@ -39,6 +43,30 @@ declare class DeviceSecurity {
39
43
  * Check if running on emulator
40
44
  */
41
45
  isEmulator(): boolean;
46
+ /**
47
+ * Check if SSL validation has been bypassed
48
+ */
49
+ hasSSLValidationBypass(): boolean;
50
+ /**
51
+ * Check if SSL pinning bypass tools are present
52
+ */
53
+ hasSSLPinningBypass(): boolean;
54
+ /**
55
+ * Check if proxy is configured (potential MITM)
56
+ */
57
+ hasProxyConfiguration(): boolean;
58
+ /**
59
+ * Check if SSL libraries have been modified
60
+ */
61
+ hasModifiedSSLLibraries(): boolean;
62
+ /**
63
+ * Check if certificates have been tampered with
64
+ */
65
+ hasCertificateTampering(): boolean;
66
+ /**
67
+ * Comprehensive SSL security check
68
+ */
69
+ hasSSLSecurityIssue(): boolean;
42
70
  /**
43
71
  * Block app when security threat detected
44
72
  * This will show an alert and potentially exit the app
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,4BAA4B,EAC5B,cAAc,EAEf,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,cAAM,cAAc;IAClB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAcxC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IA6BlD;;OAEG;IACH,QAAQ,IAAI,OAAO;IAanB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAanB;;OAEG;IACH,SAAS,IAAI,OAAO;IAapB;;OAEG;IACH,SAAS,IAAI,OAAO;IAapB;;OAEG;IACH,YAAY,IAAI,OAAO;IAavB;;OAEG;IACH,UAAU,IAAI,OAAO;IAarB;;;OAGG;IACH,qBAAqB,CAAC,OAAO,GAAE,4BAAiC,GAAG,IAAI;IAiCvE;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAiBjC;AAGD,QAAA,MAAM,sBAAsB,gBAAuB,CAAC;AACpD,eAAe,sBAAsB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,4BAA4B,EAC5B,cAAc,EAEd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,cAAM,cAAc;IAClB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAcxC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAmClD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA6BxD;;OAEG;IACH,QAAQ,IAAI,OAAO;IAanB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAanB;;OAEG;IACH,SAAS,IAAI,OAAO;IAapB;;OAEG;IACH,SAAS,IAAI,OAAO;IAapB;;OAEG;IACH,YAAY,IAAI,OAAO;IAavB;;OAEG;IACH,UAAU,IAAI,OAAO;IAerB;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAajC;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAa9B;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAahC;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAalC;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAalC;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAa9B;;;OAGG;IACH,qBAAqB,CAAC,OAAO,GAAE,4BAAiC,GAAG,IAAI;IAiCvE;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAuBjC;AAGD,QAAA,MAAM,sBAAsB,gBAAuB,CAAC;AACpD,eAAe,sBAAsB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityBlockedScreen.d.ts","sourceRoot":"","sources":["../../../src/components/SecurityBlockedScreen.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,UAAU,0BAA0B;IAClC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AA8BD;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAoDtE,CAAC;AA4FF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"SecurityBlockedScreen.d.ts","sourceRoot":"","sources":["../../../src/components/SecurityBlockedScreen.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,UAAU,0BAA0B;IAClC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAwCD;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAoDtE,CAAC;AA4FF,eAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDeviceSecurity.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDeviceSecurity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAElB,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CAyEzB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"useDeviceSecurity.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDeviceSecurity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAElB,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CA4EzB;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,7 +1,24 @@
1
1
  /**
2
2
  * Security threat types
3
3
  */
4
- export type SecurityThreat = 'root_detected' | 'root_beer_detected' | 'native_root_detected' | 'dangerous_bins_detected' | 'root_apps_detected' | 'system_props_modified' | 'frida_detected' | 'xposed_detected' | 'magisk_detected' | 'debugger_detected' | 'emulator_detected';
4
+ export type SecurityThreat = 'root_detected' | 'root_beer_detected' | 'native_root_detected' | 'dangerous_bins_detected' | 'root_apps_detected' | 'system_props_modified' | 'frida_detected' | 'xposed_detected' | 'magisk_detected' | 'debugger_detected' | 'emulator_detected' | 'ssl_validation_bypass' | 'ssl_pinning_bypass' | 'proxy_configuration' | 'modified_ssl_libraries' | 'certificate_tampering';
5
+ /**
6
+ * SSL Security Status
7
+ */
8
+ export interface SSLSecurityStatus {
9
+ /** SSL validation has been bypassed */
10
+ hasSSLValidationBypass: boolean;
11
+ /** SSL pinning bypass tools detected */
12
+ hasSSLPinningBypass: boolean;
13
+ /** Proxy configuration detected (potential MITM) */
14
+ hasProxyConfiguration: boolean;
15
+ /** SSL libraries have been modified */
16
+ hasModifiedSSLLibraries: boolean;
17
+ /** Certificate tampering detected */
18
+ hasCertificateTampering: boolean;
19
+ /** Any SSL security issue detected */
20
+ hasSSLSecurityIssue: boolean;
21
+ }
5
22
  /**
6
23
  * Detailed security status
7
24
  */
@@ -32,6 +49,18 @@ export interface SecurityStatus {
32
49
  isDebuggable: boolean;
33
50
  /** Running on emulator */
34
51
  isEmulator: boolean;
52
+ /** SSL validation has been bypassed */
53
+ hasSSLValidationBypass: boolean;
54
+ /** SSL pinning bypass tools detected */
55
+ hasSSLPinningBypass: boolean;
56
+ /** Proxy configuration detected */
57
+ hasProxyConfiguration: boolean;
58
+ /** SSL libraries have been modified */
59
+ hasModifiedSSLLibraries: boolean;
60
+ /** Certificate tampering detected */
61
+ hasCertificateTampering: boolean;
62
+ /** Any SSL security issue detected */
63
+ hasSSLSecurityIssue: boolean;
35
64
  /** Additional details about detection */
36
65
  details?: Record<string, boolean | string | number>;
37
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,oBAAoB,GACpB,sBAAsB,GACtB,yBAAyB,GACzB,oBAAoB,GACpB,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,sCAAsC;IACtC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,+BAA+B;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iCAAiC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,sBAAsB,EAAE,OAAO,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,0BAA0B;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5E,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,4BAA4B,CAAC;IAC5C,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uBAAuB;IACvB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,mBAAmB;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,iCAAiC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-device-defense",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Multi-layer device security detection for React Native (root, hook, debugger, emulator detection)",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -52,6 +52,8 @@
52
52
  "devDependencies": {
53
53
  "@types/react": "^18.0.0",
54
54
  "@types/react-native": "^0.72.0",
55
+ "@typescript-eslint/parser": "^8.59.2",
56
+ "eslint": "^8.57.1",
55
57
  "react-native-builder-bob": "^0.20.0",
56
58
  "typescript": "^5.0.0"
57
59
  },
@@ -69,4 +71,4 @@
69
71
  ]
70
72
  ]
71
73
  }
72
- }
74
+ }
@@ -17,6 +17,15 @@ export interface Spec extends TurboModule {
17
17
  // Emulator detection
18
18
  isEmulator(): boolean;
19
19
 
20
+ // SSL security methods
21
+ hasSSLValidationBypass(): boolean;
22
+ hasSSLPinningBypass(): boolean;
23
+ hasProxyConfiguration(): boolean;
24
+ hasModifiedSSLLibraries(): boolean;
25
+ hasCertificateTampering(): boolean;
26
+ hasSSLSecurityIssue(): boolean;
27
+ getSSLSecurityStatus(): Promise<string>;
28
+
20
29
  // Comprehensive security check
21
30
  getSecurityStatus(): Promise<string>;
22
31
  isDeviceSecure(): Promise<boolean>;